24#define WINE_D3D_TO_STR(x) case x: return #x
41 FIXME(
"Unrecognized D3D10_PRIMITIVE_TOPOLOGY %#x\n", topology);
42 return "unrecognized";
155 return "unrecognized";
159#undef WINE_D3D_TO_STR
193 *patch_vertex_count = 0;
205 WARN(
"Invalid primitive topology %#x.\n", topology);
207 *patch_vertex_count = 0;
439 FIXME(
"Unhandled async getdata flags %#x.\n", d3d11_flags);
449 DWORD wined3d_usage = 0;
451 if (
usage == D3D11_USAGE_DYNAMIC)
454 return wined3d_usage;
467 return D3D11_USAGE_DEFAULT;
494 UINT d3d11_bind_flags = bind_flags & handled_flags;
496 if (bind_flags & ~handled_flags)
497 FIXME(
"Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
499 return d3d11_bind_flags;
504 static const UINT handled_flags = D3D11_BIND_VERTEX_BUFFER
505 | D3D11_BIND_INDEX_BUFFER
506 | D3D11_BIND_CONSTANT_BUFFER
507 | D3D11_BIND_SHADER_RESOURCE
508 | D3D11_BIND_STREAM_OUTPUT
509 | D3D11_BIND_RENDER_TARGET
510 | D3D11_BIND_DEPTH_STENCIL
511 | D3D11_BIND_UNORDERED_ACCESS
513 | D3D11_BIND_VIDEO_ENCODER;
514 UINT d3d10_bind_flags = bind_flags & handled_flags;
516 if (bind_flags & ~handled_flags)
517 FIXME(
"Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
519 return d3d10_bind_flags;
526 UINT d3d11_cpu_access_flags = cpu_access_flags & handled_flags;
528 if (cpu_access_flags & ~handled_flags)
529 FIXME(
"Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
531 return d3d11_cpu_access_flags;
536 static const UINT handled_flags = D3D11_CPU_ACCESS_WRITE
537 | D3D11_CPU_ACCESS_READ;
538 UINT d3d10_cpu_access_flags = cpu_access_flags & handled_flags;
540 if (cpu_access_flags & ~handled_flags)
541 FIXME(
"Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
543 return d3d10_cpu_access_flags;
551 const UINT handled_flags = bitwise_identical_flags
554 UINT d3d11_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
561 if (resource_misc_flags & ~handled_flags)
562 FIXME(
"Unhandled resource misc flags %#x.\n", resource_misc_flags & ~handled_flags);
564 return d3d11_resource_misc_flags;
572 const UINT handled_flags = bitwise_identical_flags
579 UINT d3d10_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
586 if (resource_misc_flags & ~handled_flags)
587 FIXME(
"Unhandled resource misc flags #%x.\n", resource_misc_flags & ~handled_flags);
589 return d3d10_resource_misc_flags;
594 static const BOOL read_only_bind_flags = D3D11_BIND_VERTEX_BUFFER
595 | D3D11_BIND_INDEX_BUFFER | D3D11_BIND_CONSTANT_BUFFER
596 | D3D11_BIND_SHADER_RESOURCE;
598 return !(bind_flags & ~read_only_bind_flags);
604 const BOOL is_texture = resource_dimension != D3D11_RESOURCE_DIMENSION_BUFFER;
608 case D3D11_USAGE_DEFAULT:
610 || (is_texture && bind_flags == D3D11_BIND_RENDER_TARGET)
611 || bind_flags == D3D11_BIND_UNORDERED_ACCESS)
613 if (cpu_access_flags)
615 WARN(
"Default resources are not CPU accessible.\n");
620 case D3D11_USAGE_IMMUTABLE:
623 WARN(
"Bind flags must be non-zero for immutable resources.\n");
628 WARN(
"Immutable resources cannot be writable by GPU.\n");
632 if (cpu_access_flags)
634 WARN(
"Immutable resources are not CPU accessible.\n");
639 case D3D11_USAGE_DYNAMIC:
642 WARN(
"Bind flags must be non-zero for dynamic resources.\n");
647 WARN(
"Dynamic resources cannot be writable by GPU.\n");
651 if (cpu_access_flags != D3D11_CPU_ACCESS_WRITE)
653 WARN(
"CPU access must be D3D11_CPU_ACCESS_WRITE for dynamic resources.\n");
658 case D3D11_USAGE_STAGING:
661 WARN(
"Invalid bind flags %#x for staging resources.\n", bind_flags);
665 if (!cpu_access_flags)
667 WARN(
"CPU access must be non-zero for staging resources.\n");
682 D3D11_RESOURCE_DIMENSION dimension;
684 ID3D11Resource_GetType(
resource, &dimension);
688 case D3D11_RESOURCE_DIMENSION_BUFFER:
692 case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
696 case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
700 case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
705 FIXME(
"Unhandled resource dimension %#x.\n", dimension);
714 ID3D10Resource_GetType(
resource, &dimension);
735 FIXME(
"Unhandled resource dimension %#x.\n", dimension);
772 DWORD wined3d_clear_flags = 0;
774 if (clear_flags & D3D11_CLEAR_DEPTH)
776 if (clear_flags & D3D11_CLEAR_STENCIL)
779 if (clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL))
781 FIXME(
"Unhandled clear flags %#x.\n",
782 clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL));
785 return wined3d_clear_flags;
793 if (cpu_access & D3D11_CPU_ACCESS_WRITE)
795 if (cpu_access & D3D11_CPU_ACCESS_READ)
797 if (cpu_access &= ~(D3D11_CPU_ACCESS_WRITE | D3D11_CPU_ACCESS_READ))
798 FIXME(
"Unhandled CPU access flags %#x.\n", cpu_access);
820 size_in = *data_size;
821 *data_size = stored_data->
size;
827 if (size_in < stored_data->
size)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
@ D3D10_RESOURCE_MISC_GDI_COMPATIBLE
@ D3D10_RESOURCE_MISC_GENERATE_MIPS
@ D3D10_RESOURCE_MISC_TEXTURECUBE
@ D3D10_RESOURCE_MISC_SHARED
@ D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX
@ D3D10_RESOURCE_DIMENSION_TEXTURE1D
@ D3D10_RESOURCE_DIMENSION_BUFFER
@ D3D10_RESOURCE_DIMENSION_TEXTURE3D
@ D3D10_RESOURCE_DIMENSION_TEXTURE2D
@ D3D10_BIND_INDEX_BUFFER
@ D3D10_BIND_DEPTH_STENCIL
@ D3D10_BIND_STREAM_OUTPUT
@ D3D10_BIND_SHADER_RESOURCE
@ D3D10_BIND_CONSTANT_BUFFER
@ D3D10_BIND_VERTEX_BUFFER
@ D3D10_BIND_RENDER_TARGET
D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY
@ D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
@ D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
@ D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
@ D3D11_RESOURCE_MISC_GENERATE_MIPS
@ D3D11_RESOURCE_MISC_TEXTURECUBE
@ D3D11_RESOURCE_MISC_SHARED_NTHANDLE
@ D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
@ D3D11_RESOURCE_MISC_SHARED
@ D3D11_RESOURCE_MISC_GDI_COMPATIBLE
@ D3D11_ASYNC_GETDATA_DONOTFLUSH
@ D3D11_MAP_WRITE_NO_OVERWRITE
@ D3D11_MAP_WRITE_DISCARD
struct d3d_texture2d * unsafe_impl_from_ID3D10Texture2D(ID3D10Texture2D *iface)
struct d3d_texture2d * unsafe_impl_from_ID3D11Texture2D(ID3D11Texture2D *iface)
struct d3d_texture3d * unsafe_impl_from_ID3D11Texture3D(ID3D11Texture3D *iface)
struct d3d_texture1d * unsafe_impl_from_ID3D11Texture1D(ID3D11Texture1D *iface)
struct d3d_texture3d * unsafe_impl_from_ID3D10Texture3D(ID3D10Texture3D *iface)
struct d3d_texture1d * unsafe_impl_from_ID3D10Texture1D(ID3D10Texture1D *iface)
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP
@ D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
@ D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
@ D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
@ D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED
@ D3D10_PRIMITIVE_TOPOLOGY_POINTLIST
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
struct d3d_buffer * unsafe_impl_from_ID3D10Buffer(ID3D10Buffer *iface)
struct d3d_buffer * unsafe_impl_from_ID3D11Buffer(ID3D11Buffer *iface)
UINT d3d11_bind_flags_from_d3d10_bind_flags(UINT bind_flags)
struct wined3d_resource * wined3d_resource_from_d3d11_resource(ID3D11Resource *resource)
const char * debug_dxgi_format(DXGI_FORMAT format)
const char * debug_float4(const float *values)
enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
UINT d3d10_bind_flags_from_d3d11_bind_flags(UINT bind_flags)
BOOL validate_d3d11_resource_access_flags(D3D11_RESOURCE_DIMENSION resource_dimension, D3D11_USAGE usage, UINT bind_flags, UINT cpu_access_flags, D3D_FEATURE_LEVEL feature_level)
UINT d3d11_cpu_access_flags_from_d3d10_cpu_access_flags(UINT cpu_access_flags)
enum D3D10_USAGE d3d10_usage_from_d3d11_usage(enum D3D11_USAGE usage)
UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags(UINT cpu_access_flags)
HRESULT d3d_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
#define WINE_D3D_TO_STR(x)
void d3d11_primitive_topology_from_wined3d_primitive_type(enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count, D3D11_PRIMITIVE_TOPOLOGY *topology)
DWORD wined3d_usage_from_d3d11(enum D3D11_USAGE usage)
DWORD wined3d_map_flags_from_d3d11_map_type(D3D11_MAP map_type)
void wined3d_primitive_type_from_d3d11_primitive_topology(D3D11_PRIMITIVE_TOPOLOGY topology, enum wined3d_primitive_type *type, unsigned int *patch_vertex_count)
struct wined3d_resource * wined3d_resource_from_d3d10_resource(ID3D10Resource *resource)
UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags(UINT resource_misc_flags)
unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags(unsigned int d3d11_flags)
enum D3D11_USAGE d3d11_usage_from_d3d10_usage(enum D3D10_USAGE usage)
DWORD wined3d_clear_flags_from_d3d11_clear_flags(UINT clear_flags)
HRESULT d3d_set_private_data_interface(struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
static BOOL d3d11_bind_flags_are_gpu_read_only(UINT bind_flags)
unsigned int wined3d_access_from_d3d11(D3D11_USAGE usage, UINT cpu_access)
UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags(UINT resource_misc_flags)
HRESULT d3d_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
DWORD wined3d_map_flags_from_d3d10_map_type(D3D10_MAP map_type)
const char * debug_d3d10_primitive_topology(D3D10_PRIMITIVE_TOPOLOGY topology)
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
struct wined3d_resource *CDECL wined3d_texture_get_resource(struct wined3d_texture *texture)
const char * wine_dbg_sprintf(const char *format,...)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLenum GLenum GLvoid * values
GLuint GLint GLboolean GLint GLenum access
GLsizeiptr const GLvoid GLenum usage
#define memcpy(s1, s2, n)
union wined3d_private_data::@4825 content
@ WINED3D_PT_TRIANGLESTRIP_ADJ
#define WINED3DGETDATA_FLUSH
#define WINED3D_RESOURCE_ACCESS_GPU
#define WINED3D_RESOURCE_ACCESS_CPU
static struct wined3d_private_data * wined3d_private_store_get_private_data(const struct wined3d_private_store *store, const GUID *tag)
@ WINED3DFMT_R32G32B32_TYPELESS
@ WINED3DFMT_R32G32B32_SINT
@ WINED3DFMT_BC7_TYPELESS
@ WINED3DFMT_BC7_UNORM_SRGB
@ WINED3DFMT_X24_TYPELESS_G8_UINT
@ WINED3DFMT_BC2_UNORM_SRGB
@ WINED3DFMT_B4G4R4A4_UNORM
@ WINED3DFMT_R16G16_UNORM
@ WINED3DFMT_R8G8_TYPELESS
@ WINED3DFMT_R10G10B10A2_UNORM
@ WINED3DFMT_R32G32_FLOAT
@ WINED3DFMT_R16G16_SNORM
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_R24G8_TYPELESS
@ WINED3DFMT_R10G10B10A2_TYPELESS
@ WINED3DFMT_R32G32B32_UINT
@ WINED3DFMT_BC4_TYPELESS
@ WINED3DFMT_R8G8B8A8_SNORM
@ WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM
@ WINED3DFMT_R16_TYPELESS
@ WINED3DFMT_R16G16B16A16_SINT
@ WINED3DFMT_R8G8_B8G8_UNORM
@ WINED3DFMT_R32G32B32_FLOAT
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
@ WINED3DFMT_BC1_UNORM_SRGB
@ WINED3DFMT_R16G16B16A16_FLOAT
@ WINED3DFMT_R8G8B8A8_TYPELESS
@ WINED3DFMT_R8G8B8A8_UNORM_SRGB
@ WINED3DFMT_R9G9B9E5_SHAREDEXP
@ WINED3DFMT_B8G8R8X8_TYPELESS
@ WINED3DFMT_B5G5R5A1_UNORM
@ WINED3DFMT_R8G8B8A8_UNORM
@ WINED3DFMT_R10G10B10A2_UINT
@ WINED3DFMT_G8R8_G8B8_UNORM
@ WINED3DFMT_R32G32B32A32_UINT
@ WINED3DFMT_R16G16B16A16_UNORM
@ WINED3DFMT_R16G16B16A16_TYPELESS
@ WINED3DFMT_R24_UNORM_X8_TYPELESS
@ WINED3DFMT_D32_FLOAT_S8X24_UINT
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
@ WINED3DFMT_B5G6R5_UNORM
@ WINED3DFMT_R16G16B16A16_UINT
@ WINED3DFMT_BC1_TYPELESS
@ WINED3DFMT_B8G8R8X8_UNORM_SRGB
@ WINED3DFMT_B8G8R8A8_TYPELESS
@ WINED3DFMT_BC3_TYPELESS
@ WINED3DFMT_R16G16_TYPELESS
@ WINED3DFMT_R16G16_FLOAT
@ WINED3DFMT_R8G8B8A8_UINT
@ WINED3DFMT_BC6H_TYPELESS
@ WINED3DFMT_R32G32B32A32_TYPELESS
@ WINED3DFMT_R32_TYPELESS
@ WINED3DFMT_R32G8X24_TYPELESS
@ WINED3DFMT_BC5_TYPELESS
@ WINED3DFMT_R32G32B32A32_SINT
@ WINED3DFMT_R8G8B8A8_SINT
@ WINED3DFMT_R11G11B10_FLOAT
@ WINED3DFMT_B8G8R8A8_UNORM_SRGB
@ WINED3DFMT_BC3_UNORM_SRGB
@ WINED3DFMT_R32G32B32A32_FLOAT
@ WINED3DFMT_BC2_TYPELESS
@ WINED3DFMT_D24_UNORM_S8_UINT
@ WINED3DFMT_R16G16B16A16_SNORM
@ WINED3DFMT_R32G32_TYPELESS
#define WINED3DCLEAR_STENCIL
#define WINED3D_RESOURCE_ACCESS_MAP_R
static void wined3d_private_store_free_private_data(struct wined3d_private_store *store, struct wined3d_private_data *entry)
#define WINED3DSPD_IUNKNOWN
#define WINED3D_MAP_DISCARD
#define WINED3D_MAP_WRITE
#define WINED3DCLEAR_ZBUFFER
#define WINED3D_MAP_NOOVERWRITE
#define WINED3DUSAGE_DYNAMIC
static HRESULT wined3d_private_store_set_private_data(struct wined3d_private_store *store, const GUID *guid, const void *data, DWORD data_size, uint32_t flags)
#define WINED3D_RESOURCE_ACCESS_MAP_W
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
#define DXGI_ERROR_NOT_FOUND
#define DXGI_ERROR_MORE_DATA