ReactOS 0.4.17-dev-934-g091855f
utils.c File Reference
#include "d3d11_private.h"
Include dependency graph for utils.c:

Go to the source code of this file.

Macros

#define WINE_D3D_TO_STR(x)   case x: return #x
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d11)
 
const char * debug_d3d10_primitive_topology (D3D10_PRIMITIVE_TOPOLOGY topology)
 
const char * debug_dxgi_format (DXGI_FORMAT format)
 
const char * debug_float4 (const float *values)
 
void d3d11_primitive_topology_from_wined3d_primitive_type (enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count, D3D11_PRIMITIVE_TOPOLOGY *topology)
 
void wined3d_primitive_type_from_d3d11_primitive_topology (D3D11_PRIMITIVE_TOPOLOGY topology, enum wined3d_primitive_type *type, unsigned int *patch_vertex_count)
 
DXGI_FORMAT dxgi_format_from_wined3dformat (enum wined3d_format_id format)
 
enum wined3d_format_id wined3dformat_from_dxgi_format (DXGI_FORMAT format)
 
unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags (unsigned int d3d11_flags)
 
DWORD wined3d_usage_from_d3d11 (enum D3D11_USAGE usage)
 
enum D3D11_USAGE d3d11_usage_from_d3d10_usage (enum D3D10_USAGE usage)
 
enum D3D10_USAGE d3d10_usage_from_d3d11_usage (enum D3D11_USAGE usage)
 
UINT d3d11_bind_flags_from_d3d10_bind_flags (UINT bind_flags)
 
UINT d3d10_bind_flags_from_d3d11_bind_flags (UINT bind_flags)
 
UINT d3d11_cpu_access_flags_from_d3d10_cpu_access_flags (UINT cpu_access_flags)
 
UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags (UINT cpu_access_flags)
 
UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags (UINT resource_misc_flags)
 
UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags (UINT resource_misc_flags)
 
static BOOL d3d11_bind_flags_are_gpu_read_only (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)
 
struct wined3d_resource * wined3d_resource_from_d3d11_resource (ID3D11Resource *resource)
 
struct wined3d_resource * wined3d_resource_from_d3d10_resource (ID3D10Resource *resource)
 
DWORD wined3d_map_flags_from_d3d11_map_type (D3D11_MAP map_type)
 
DWORD wined3d_map_flags_from_d3d10_map_type (D3D10_MAP map_type)
 
DWORD wined3d_clear_flags_from_d3d11_clear_flags (UINT clear_flags)
 
unsigned int wined3d_access_from_d3d11 (D3D11_USAGE usage, UINT cpu_access)
 
HRESULT d3d_get_private_data (struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
 
HRESULT d3d_set_private_data (struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
 
HRESULT d3d_set_private_data_interface (struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
 

Macro Definition Documentation

◆ WINE_D3D_TO_STR

#define WINE_D3D_TO_STR (   x)    case x: return #x

Definition at line 24 of file utils.c.

Function Documentation

◆ d3d10_bind_flags_from_d3d11_bind_flags()

UINT d3d10_bind_flags_from_d3d11_bind_flags ( UINT  bind_flags)

Definition at line 502 of file utils.c.

503{
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
512 | D3D11_BIND_DECODER
513 | D3D11_BIND_VIDEO_ENCODER;
514 UINT d3d10_bind_flags = bind_flags & handled_flags;
515
516 if (bind_flags & ~handled_flags)
517 FIXME("Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
518
519 return d3d10_bind_flags;
520}
#define FIXME(fmt,...)
Definition: precomp.h:53
unsigned int UINT
Definition: sysinfo.c:13

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_cpu_access_flags_from_d3d11_cpu_access_flags()

UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags ( UINT  cpu_access_flags)

Definition at line 534 of file utils.c.

535{
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;
539
540 if (cpu_access_flags & ~handled_flags)
541 FIXME("Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
542
543 return d3d10_cpu_access_flags;
544}

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_resource_misc_flags_from_d3d11_resource_misc_flags()

UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags ( UINT  resource_misc_flags)

Definition at line 567 of file utils.c.

568{
569 static const UINT bitwise_identical_flags = D3D11_RESOURCE_MISC_GENERATE_MIPS
572 const UINT handled_flags = bitwise_identical_flags
579 UINT d3d10_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
580
581 if (resource_misc_flags & D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX)
582 d3d10_resource_misc_flags |= D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX;
583 if (resource_misc_flags & D3D11_RESOURCE_MISC_GDI_COMPATIBLE)
584 d3d10_resource_misc_flags |= D3D10_RESOURCE_MISC_GDI_COMPATIBLE;
585
586 if (resource_misc_flags & ~handled_flags)
587 FIXME("Unhandled resource misc flags #%x.\n", resource_misc_flags & ~handled_flags);
588
589 return d3d10_resource_misc_flags;
590}
@ D3D10_RESOURCE_MISC_GDI_COMPATIBLE
Definition: d3d10.idl:892
@ D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX
Definition: d3d10.idl:891
@ D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Definition: d3d11.idl:1039
@ D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Definition: d3d11.idl:1037
@ D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Definition: d3d11.idl:1041
@ D3D11_RESOURCE_MISC_GENERATE_MIPS
Definition: d3d11.idl:1034
@ D3D11_RESOURCE_MISC_TEXTURECUBE
Definition: d3d11.idl:1036
@ D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Definition: d3d11.idl:1043
@ D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Definition: d3d11.idl:1038
@ D3D11_RESOURCE_MISC_SHARED
Definition: d3d11.idl:1035
@ D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Definition: d3d11.idl:1042

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_usage_from_d3d11_usage()

enum D3D10_USAGE d3d10_usage_from_d3d11_usage ( enum D3D11_USAGE  usage)

Definition at line 471 of file utils.c.

472{
473 switch (usage)
474 {
475 case D3D11_USAGE_DEFAULT: return D3D10_USAGE_DEFAULT;
476 case D3D11_USAGE_IMMUTABLE: return D3D10_USAGE_IMMUTABLE;
477 case D3D11_USAGE_DYNAMIC: return D3D10_USAGE_DYNAMIC;
478 case D3D11_USAGE_STAGING: return D3D10_USAGE_STAGING;
479 default:
480 FIXME("Unhandled usage %#x.\n", usage);
481 return D3D10_USAGE_DEFAULT;
482 }
483}
@ D3D10_USAGE_DEFAULT
Definition: d3d10.idl:461
@ D3D10_USAGE_STAGING
Definition: d3d10.idl:464
@ D3D10_USAGE_DYNAMIC
Definition: d3d10.idl:463
@ D3D10_USAGE_IMMUTABLE
Definition: d3d10.idl:462
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d11_bind_flags_are_gpu_read_only()

static BOOL d3d11_bind_flags_are_gpu_read_only ( UINT  bind_flags)
static

Definition at line 592 of file utils.c.

593{
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;
597
598 return !(bind_flags & ~read_only_bind_flags);
599}
unsigned int BOOL
Definition: ntddk_ex.h:94

Referenced by validate_d3d11_resource_access_flags().

◆ d3d11_bind_flags_from_d3d10_bind_flags()

UINT d3d11_bind_flags_from_d3d10_bind_flags ( UINT  bind_flags)

Definition at line 485 of file utils.c.

486{
487 static const UINT handled_flags = D3D10_BIND_VERTEX_BUFFER
494 UINT d3d11_bind_flags = bind_flags & handled_flags;
495
496 if (bind_flags & ~handled_flags)
497 FIXME("Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
498
499 return d3d11_bind_flags;
500}
@ D3D10_BIND_INDEX_BUFFER
Definition: d3d10.idl:469
@ D3D10_BIND_DEPTH_STENCIL
Definition: d3d10.idl:474
@ D3D10_BIND_STREAM_OUTPUT
Definition: d3d10.idl:472
@ D3D10_BIND_SHADER_RESOURCE
Definition: d3d10.idl:471
@ D3D10_BIND_CONSTANT_BUFFER
Definition: d3d10.idl:470
@ D3D10_BIND_VERTEX_BUFFER
Definition: d3d10.idl:468
@ D3D10_BIND_RENDER_TARGET
Definition: d3d10.idl:473

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_cpu_access_flags_from_d3d10_cpu_access_flags()

UINT d3d11_cpu_access_flags_from_d3d10_cpu_access_flags ( UINT  cpu_access_flags)

Definition at line 522 of file utils.c.

523{
524 static const UINT handled_flags = D3D10_CPU_ACCESS_WRITE
526 UINT d3d11_cpu_access_flags = cpu_access_flags & handled_flags;
527
528 if (cpu_access_flags & ~handled_flags)
529 FIXME("Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
530
531 return d3d11_cpu_access_flags;
532}
@ D3D10_CPU_ACCESS_WRITE
Definition: d3d10.idl:883
@ D3D10_CPU_ACCESS_READ
Definition: d3d10.idl:884

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_primitive_topology_from_wined3d_primitive_type()

void d3d11_primitive_topology_from_wined3d_primitive_type ( enum wined3d_primitive_type  primitive_type,
unsigned int  patch_vertex_count,
D3D11_PRIMITIVE_TOPOLOGY *  topology 
)

Definition at line 169 of file utils.c.

171{
172 if (primitive_type <= WINED3D_PT_TRIANGLESTRIP_ADJ)
173 {
174 *topology = (D3D11_PRIMITIVE_TOPOLOGY)primitive_type;
175 return;
176 }
177
178 if (primitive_type == WINED3D_PT_PATCH)
179 {
180 *topology = D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST + patch_vertex_count - 1;
181 return;
182 }
183
185}
D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY
Definition: d3d11.idl:26
@ D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Definition: d3dcommon.idl:447
@ D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: d3dcommon.idl:437
@ WINED3D_PT_PATCH
Definition: wined3d.h:86
@ WINED3D_PT_TRIANGLESTRIP_ADJ
Definition: wined3d.h:85

Referenced by d3d11_device_context_IAGetPrimitiveTopology().

◆ d3d11_resource_misc_flags_from_d3d10_resource_misc_flags()

UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags ( UINT  resource_misc_flags)

Definition at line 546 of file utils.c.

547{
548 static const UINT bitwise_identical_flags = D3D10_RESOURCE_MISC_GENERATE_MIPS
551 const UINT handled_flags = bitwise_identical_flags
554 UINT d3d11_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
555
556 if (resource_misc_flags & D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX)
557 d3d11_resource_misc_flags |= D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX;
558 if (resource_misc_flags & D3D10_RESOURCE_MISC_GDI_COMPATIBLE)
559 d3d11_resource_misc_flags |= D3D11_RESOURCE_MISC_GDI_COMPATIBLE;
560
561 if (resource_misc_flags & ~handled_flags)
562 FIXME("Unhandled resource misc flags %#x.\n", resource_misc_flags & ~handled_flags);
563
564 return d3d11_resource_misc_flags;
565}
@ D3D10_RESOURCE_MISC_GENERATE_MIPS
Definition: d3d10.idl:888
@ D3D10_RESOURCE_MISC_TEXTURECUBE
Definition: d3d10.idl:890
@ D3D10_RESOURCE_MISC_SHARED
Definition: d3d10.idl:889

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_usage_from_d3d10_usage()

enum D3D11_USAGE d3d11_usage_from_d3d10_usage ( enum D3D10_USAGE  usage)

Definition at line 457 of file utils.c.

458{
459 switch (usage)
460 {
461 case D3D10_USAGE_DEFAULT: return D3D11_USAGE_DEFAULT;
462 case D3D10_USAGE_IMMUTABLE: return D3D11_USAGE_IMMUTABLE;
463 case D3D10_USAGE_DYNAMIC: return D3D11_USAGE_DYNAMIC;
464 case D3D10_USAGE_STAGING: return D3D11_USAGE_STAGING;
465 default:
466 FIXME("Unhandled usage %#x.\n", usage);
467 return D3D11_USAGE_DEFAULT;
468 }
469}

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d_get_private_data()

HRESULT d3d_get_private_data ( struct wined3d_private_store *  store,
REFGUID  guid,
UINT *  data_size,
void *  data 
)

Definition at line 803 of file utils.c.

805{
806 const struct wined3d_private_data *stored_data;
807 DWORD size_in;
808
809 if (!data_size)
810 return E_INVALIDARG;
811
813 if (!(stored_data = wined3d_private_store_get_private_data(store, guid)))
814 {
815 *data_size = 0;
818 }
819
820 size_in = *data_size;
821 *data_size = stored_data->size;
822 if (!data)
823 {
825 return S_OK;
826 }
827 if (size_in < stored_data->size)
828 {
831 }
832
833 if (stored_data->flags & WINED3DSPD_IUNKNOWN)
834 IUnknown_AddRef(stored_data->content.object);
835 memcpy(data, stored_data->content.data, stored_data->size);
836
838 return S_OK;
839}
#define E_INVALIDARG
Definition: ddrawi.h:101
GUID guid
Definition: version.c:147
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
#define S_OK
Definition: intsafe.h:52
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
union wined3d_private_data::@4825 content
IUnknown * object
Definition: wined3d.h:2285
static struct wined3d_private_data * wined3d_private_store_get_private_data(const struct wined3d_private_store *store, const GUID *tag)
Definition: wined3d.h:2612
#define WINED3DSPD_IUNKNOWN
Definition: wined3d.h:1018
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539
#define DXGI_ERROR_NOT_FOUND
Definition: winerror.h:7122
#define DXGI_ERROR_MORE_DATA
Definition: winerror.h:7123

Referenced by d3d10_blend_state_GetPrivateData(), d3d10_depthstencil_state_GetPrivateData(), d3d10_depthstencil_view_GetPrivateData(), d3d10_geometry_shader_GetPrivateData(), d3d10_input_layout_GetPrivateData(), d3d10_pixel_shader_GetPrivateData(), d3d10_query_GetPrivateData(), d3d10_rasterizer_state_GetPrivateData(), d3d10_rendertarget_view_GetPrivateData(), d3d10_sampler_state_GetPrivateData(), d3d10_shader_resource_view_GetPrivateData(), d3d10_vertex_shader_GetPrivateData(), d3d11_blend_state_GetPrivateData(), d3d11_class_linkage_GetPrivateData(), d3d11_command_list_GetPrivateData(), d3d11_compute_shader_GetPrivateData(), d3d11_depthstencil_state_GetPrivateData(), d3d11_depthstencil_view_GetPrivateData(), d3d11_device_context_GetPrivateData(), d3d11_domain_shader_GetPrivateData(), d3d11_geometry_shader_GetPrivateData(), d3d11_hull_shader_GetPrivateData(), d3d11_input_layout_GetPrivateData(), d3d11_pixel_shader_GetPrivateData(), d3d11_query_GetPrivateData(), d3d11_rasterizer_state_GetPrivateData(), d3d11_rendertarget_view_GetPrivateData(), d3d11_sampler_state_GetPrivateData(), d3d11_shader_resource_view_GetPrivateData(), d3d11_unordered_access_view_GetPrivateData(), d3d11_vertex_shader_GetPrivateData(), d3d11_video_decoder_GetPrivateData(), d3d11_video_decoder_output_view_GetPrivateData(), and d3d_device_context_state_GetPrivateData().

◆ d3d_set_private_data()

HRESULT d3d_set_private_data ( struct wined3d_private_store *  store,
REFGUID  guid,
UINT  data_size,
const void *  data 
)

Definition at line 841 of file utils.c.

843{
845 HRESULT hr;
846
848 if (!data)
849 {
851 {
853 return S_FALSE;
854 }
857
858 return S_OK;
859 }
860
861 hr = wined3d_private_store_set_private_data(store, guid, data, data_size, 0);
863
864 return hr;
865}
HRESULT hr
Definition: delayimp.cpp:582
uint32_t entry
Definition: isohybrid.c:63
static void wined3d_private_store_free_private_data(struct wined3d_private_store *store, struct wined3d_private_data *entry)
Definition: wined3d.h:2627
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)
Definition: wined3d.h:2648
#define S_FALSE
Definition: winerror.h:3451

Referenced by d3d10_blend_state_SetPrivateData(), d3d10_depthstencil_state_SetPrivateData(), d3d10_depthstencil_view_SetPrivateData(), d3d10_geometry_shader_SetPrivateData(), d3d10_input_layout_SetPrivateData(), d3d10_pixel_shader_SetPrivateData(), d3d10_query_SetPrivateData(), d3d10_rasterizer_state_SetPrivateData(), d3d10_rendertarget_view_SetPrivateData(), d3d10_sampler_state_SetPrivateData(), d3d10_shader_resource_view_SetPrivateData(), d3d10_vertex_shader_SetPrivateData(), d3d11_blend_state_SetPrivateData(), d3d11_class_linkage_SetPrivateData(), d3d11_command_list_SetPrivateData(), d3d11_compute_shader_SetPrivateData(), d3d11_depthstencil_state_SetPrivateData(), d3d11_depthstencil_view_SetPrivateData(), d3d11_device_context_SetPrivateData(), d3d11_domain_shader_SetPrivateData(), d3d11_geometry_shader_SetPrivateData(), d3d11_hull_shader_SetPrivateData(), d3d11_input_layout_SetPrivateData(), d3d11_pixel_shader_SetPrivateData(), d3d11_query_SetPrivateData(), d3d11_rasterizer_state_SetPrivateData(), d3d11_rendertarget_view_SetPrivateData(), d3d11_sampler_state_SetPrivateData(), d3d11_shader_resource_view_SetPrivateData(), d3d11_unordered_access_view_SetPrivateData(), d3d11_vertex_shader_SetPrivateData(), d3d11_video_decoder_output_view_SetPrivateData(), d3d11_video_decoder_SetPrivateData(), d3d_device_context_state_SetPrivateData(), and d3d_set_private_data_interface().

◆ d3d_set_private_data_interface()

HRESULT d3d_set_private_data_interface ( struct wined3d_private_store *  store,
REFGUID  guid,
const IUnknown *  object 
)

Definition at line 867 of file utils.c.

869{
870 HRESULT hr;
871
872 if (!object)
873 return d3d_set_private_data(store, guid, sizeof(object), &object);
874
877 guid, object, sizeof(object), WINED3DSPD_IUNKNOWN);
879
880 return hr;
881}
HRESULT d3d_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
Definition: utils.c:841

Referenced by d3d10_blend_state_SetPrivateDataInterface(), d3d10_depthstencil_state_SetPrivateDataInterface(), d3d10_depthstencil_view_SetPrivateDataInterface(), d3d10_geometry_shader_SetPrivateDataInterface(), d3d10_input_layout_SetPrivateDataInterface(), d3d10_pixel_shader_SetPrivateDataInterface(), d3d10_query_SetPrivateDataInterface(), d3d10_rasterizer_state_SetPrivateDataInterface(), d3d10_rendertarget_view_SetPrivateDataInterface(), d3d10_sampler_state_SetPrivateDataInterface(), d3d10_shader_resource_view_SetPrivateDataInterface(), d3d10_vertex_shader_SetPrivateDataInterface(), d3d11_blend_state_SetPrivateDataInterface(), d3d11_class_linkage_SetPrivateDataInterface(), d3d11_command_list_SetPrivateDataInterface(), d3d11_compute_shader_SetPrivateDataInterface(), d3d11_depthstencil_state_SetPrivateDataInterface(), d3d11_depthstencil_view_SetPrivateDataInterface(), d3d11_device_context_SetPrivateDataInterface(), d3d11_domain_shader_SetPrivateDataInterface(), d3d11_geometry_shader_SetPrivateDataInterface(), d3d11_hull_shader_SetPrivateDataInterface(), d3d11_input_layout_SetPrivateDataInterface(), d3d11_pixel_shader_SetPrivateDataInterface(), d3d11_query_SetPrivateDataInterface(), d3d11_rasterizer_state_SetPrivateDataInterface(), d3d11_rendertarget_view_SetPrivateDataInterface(), d3d11_sampler_state_SetPrivateDataInterface(), d3d11_shader_resource_view_SetPrivateDataInterface(), d3d11_unordered_access_view_SetPrivateDataInterface(), d3d11_vertex_shader_SetPrivateDataInterface(), d3d11_video_decoder_output_view_SetPrivateDataInterface(), d3d11_video_decoder_SetPrivateDataInterface(), and d3d_device_context_state_SetPrivateDataInterface().

◆ debug_d3d10_primitive_topology()

const char * debug_d3d10_primitive_topology ( D3D10_PRIMITIVE_TOPOLOGY  topology)

Definition at line 26 of file utils.c.

27{
28 switch (topology)
29 {
40 default:
41 FIXME("Unrecognized D3D10_PRIMITIVE_TOPOLOGY %#x\n", topology);
42 return "unrecognized";
43 }
44}
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Definition: d3dcommon.idl:433
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP
Definition: d3dcommon.idl:430
@ D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: d3dcommon.idl:427
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Definition: d3dcommon.idl:434
@ D3D10_PRIMITIVE_TOPOLOGY_POINTLIST
Definition: d3dcommon.idl:428
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: d3dcommon.idl:436
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST
Definition: d3dcommon.idl:429
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Definition: d3dcommon.idl:431
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Definition: d3dcommon.idl:432
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Definition: d3dcommon.idl:435
#define WINE_D3D_TO_STR(x)
Definition: utils.c:24

Referenced by d3d10_device_IASetPrimitiveTopology().

◆ debug_dxgi_format()

const char * debug_dxgi_format ( DXGI_FORMAT  format)

Definition at line 46 of file utils.c.

47{
48 switch(format)
49 {
153 default:
154 FIXME("Unrecognized DXGI_FORMAT %#x.\n", format);
155 return "unrecognized";
156 }
157}
@ DXGI_FORMAT_R16_UINT
Definition: dxgiformat.idl:80
@ DXGI_FORMAT_B8G8R8A8_UNORM
Definition: dxgiformat.idl:110
@ DXGI_FORMAT_R8_TYPELESS
Definition: dxgiformat.idl:83
@ DXGI_FORMAT_BC3_UNORM_SRGB
Definition: dxgiformat.idl:101
@ DXGI_FORMAT_R8G8_B8G8_UNORM
Definition: dxgiformat.idl:91
@ DXGI_FORMAT_R32G32B32_TYPELESS
Definition: dxgiformat.idl:28
@ DXGI_FORMAT_BC3_TYPELESS
Definition: dxgiformat.idl:99
@ DXGI_FORMAT_R16G16_SNORM
Definition: dxgiformat.idl:60
@ DXGI_FORMAT_D32_FLOAT_S8X24_UINT
Definition: dxgiformat.idl:43
@ DXGI_FORMAT_R32G32B32A32_SINT
Definition: dxgiformat.idl:27
@ DXGI_FORMAT_BC5_UNORM
Definition: dxgiformat.idl:106
@ DXGI_FORMAT_BC1_UNORM
Definition: dxgiformat.idl:94
@ DXGI_FORMAT_R8G8_UINT
Definition: dxgiformat.idl:73
@ DXGI_FORMAT_R32G32B32A32_UINT
Definition: dxgiformat.idl:26
@ DXGI_FORMAT_R16G16B16A16_SNORM
Definition: dxgiformat.idl:36
@ DXGI_FORMAT_R32_FLOAT
Definition: dxgiformat.idl:64
@ DXGI_FORMAT_R16G16B16A16_UNORM
Definition: dxgiformat.idl:34
@ DXGI_FORMAT_R32_SINT
Definition: dxgiformat.idl:66
@ DXGI_FORMAT_R8G8_UNORM
Definition: dxgiformat.idl:72
@ DXGI_FORMAT_R16G16_UNORM
Definition: dxgiformat.idl:58
@ DXGI_FORMAT_BC1_UNORM_SRGB
Definition: dxgiformat.idl:95
@ DXGI_FORMAT_R16G16_SINT
Definition: dxgiformat.idl:61
@ DXGI_FORMAT_R24_UNORM_X8_TYPELESS
Definition: dxgiformat.idl:69
@ DXGI_FORMAT_R8G8B8A8_TYPELESS
Definition: dxgiformat.idl:50
@ DXGI_FORMAT_BC2_TYPELESS
Definition: dxgiformat.idl:96
@ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
Definition: dxgiformat.idl:44
@ DXGI_FORMAT_R32G32B32_FLOAT
Definition: dxgiformat.idl:29
@ DXGI_FORMAT_R32G32B32_SINT
Definition: dxgiformat.idl:31
@ DXGI_FORMAT_R32G32B32A32_TYPELESS
Definition: dxgiformat.idl:24
@ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
Definition: dxgiformat.idl:114
@ DXGI_FORMAT_B8G8R8X8_TYPELESS
Definition: dxgiformat.idl:115
@ DXGI_FORMAT_B8G8R8A8_TYPELESS
Definition: dxgiformat.idl:113
@ DXGI_FORMAT_UNKNOWN
Definition: dxgiformat.idl:23
@ DXGI_FORMAT_X24_TYPELESS_G8_UINT
Definition: dxgiformat.idl:70
@ DXGI_FORMAT_R16_SINT
Definition: dxgiformat.idl:82
@ DXGI_FORMAT_R1_UNORM
Definition: dxgiformat.idl:89
@ DXGI_FORMAT_R16G16B16A16_UINT
Definition: dxgiformat.idl:35
@ DXGI_FORMAT_R16_UNORM
Definition: dxgiformat.idl:79
@ DXGI_FORMAT_R8G8B8A8_SINT
Definition: dxgiformat.idl:55
@ DXGI_FORMAT_D24_UNORM_S8_UINT
Definition: dxgiformat.idl:68
@ DXGI_FORMAT_R8G8B8A8_SNORM
Definition: dxgiformat.idl:54
@ DXGI_FORMAT_A8_UNORM
Definition: dxgiformat.idl:88
@ DXGI_FORMAT_R8G8B8A8_UINT
Definition: dxgiformat.idl:53
@ DXGI_FORMAT_R10G10B10A2_TYPELESS
Definition: dxgiformat.idl:46
@ DXGI_FORMAT_R32G32_FLOAT
Definition: dxgiformat.idl:39
@ DXGI_FORMAT_BC6H_UF16
Definition: dxgiformat.idl:118
@ DXGI_FORMAT_BC6H_SF16
Definition: dxgiformat.idl:119
@ DXGI_FORMAT_R10G10B10A2_UNORM
Definition: dxgiformat.idl:47
@ DXGI_FORMAT_R8_SNORM
Definition: dxgiformat.idl:86
@ DXGI_FORMAT_R9G9B9E5_SHAREDEXP
Definition: dxgiformat.idl:90
@ DXGI_FORMAT_R16G16B16A16_TYPELESS
Definition: dxgiformat.idl:32
@ DXGI_FORMAT_R16G16B16A16_FLOAT
Definition: dxgiformat.idl:33
@ DXGI_FORMAT_BC7_TYPELESS
Definition: dxgiformat.idl:120
@ DXGI_FORMAT_R32_TYPELESS
Definition: dxgiformat.idl:62
@ DXGI_FORMAT_R8_UNORM
Definition: dxgiformat.idl:84
@ DXGI_FORMAT_R32G32_UINT
Definition: dxgiformat.idl:40
@ DXGI_FORMAT_R11G11B10_FLOAT
Definition: dxgiformat.idl:49
@ DXGI_FORMAT_R8G8B8A8_UNORM
Definition: dxgiformat.idl:51
@ DXGI_FORMAT_G8R8_G8B8_UNORM
Definition: dxgiformat.idl:92
@ DXGI_FORMAT_YUY2
Definition: dxgiformat.idl:130
@ DXGI_FORMAT_D16_UNORM
Definition: dxgiformat.idl:78
@ DXGI_FORMAT_R16_FLOAT
Definition: dxgiformat.idl:77
@ DXGI_FORMAT_R10G10B10A2_UINT
Definition: dxgiformat.idl:48
@ DXGI_FORMAT_BC6H_TYPELESS
Definition: dxgiformat.idl:117
@ DXGI_FORMAT_BC7_UNORM
Definition: dxgiformat.idl:121
@ DXGI_FORMAT_BC5_TYPELESS
Definition: dxgiformat.idl:105
@ DXGI_FORMAT_R32G32_SINT
Definition: dxgiformat.idl:41
@ DXGI_FORMAT_BC2_UNORM_SRGB
Definition: dxgiformat.idl:98
@ DXGI_FORMAT_R16_SNORM
Definition: dxgiformat.idl:81
@ DXGI_FORMAT_R8_SINT
Definition: dxgiformat.idl:87
@ DXGI_FORMAT_BC5_SNORM
Definition: dxgiformat.idl:107
@ DXGI_FORMAT_R32_UINT
Definition: dxgiformat.idl:65
@ DXGI_FORMAT_BC4_TYPELESS
Definition: dxgiformat.idl:102
@ DXGI_FORMAT_R32G32B32A32_FLOAT
Definition: dxgiformat.idl:25
@ DXGI_FORMAT_R24G8_TYPELESS
Definition: dxgiformat.idl:67
@ DXGI_FORMAT_R8G8_SINT
Definition: dxgiformat.idl:75
@ DXGI_FORMAT_R16_TYPELESS
Definition: dxgiformat.idl:76
@ DXGI_FORMAT_BC3_UNORM
Definition: dxgiformat.idl:100
@ DXGI_FORMAT_R32G32B32_UINT
Definition: dxgiformat.idl:30
@ DXGI_FORMAT_R16G16_TYPELESS
Definition: dxgiformat.idl:56
@ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
Definition: dxgiformat.idl:52
@ DXGI_FORMAT_R16G16_UINT
Definition: dxgiformat.idl:59
@ DXGI_FORMAT_D32_FLOAT
Definition: dxgiformat.idl:63
@ DXGI_FORMAT_R8G8_TYPELESS
Definition: dxgiformat.idl:71
@ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Definition: dxgiformat.idl:112
@ DXGI_FORMAT_R16G16B16A16_SINT
Definition: dxgiformat.idl:37
@ DXGI_FORMAT_BC1_TYPELESS
Definition: dxgiformat.idl:93
@ DXGI_FORMAT_BC7_UNORM_SRGB
Definition: dxgiformat.idl:122
@ DXGI_FORMAT_BC2_UNORM
Definition: dxgiformat.idl:97
@ DXGI_FORMAT_R32G32_TYPELESS
Definition: dxgiformat.idl:38
@ DXGI_FORMAT_R32G8X24_TYPELESS
Definition: dxgiformat.idl:42
@ DXGI_FORMAT_B4G4R4A4_UNORM
Definition: dxgiformat.idl:138
@ DXGI_FORMAT_R16G16_FLOAT
Definition: dxgiformat.idl:57
@ DXGI_FORMAT_B5G6R5_UNORM
Definition: dxgiformat.idl:108
@ DXGI_FORMAT_BC4_UNORM
Definition: dxgiformat.idl:103
@ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
Definition: dxgiformat.idl:45
@ DXGI_FORMAT_R8G8_SNORM
Definition: dxgiformat.idl:74
@ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
Definition: dxgiformat.idl:116
@ DXGI_FORMAT_R8_UINT
Definition: dxgiformat.idl:85
@ DXGI_FORMAT_BC4_SNORM
Definition: dxgiformat.idl:104
@ DXGI_FORMAT_NV12
Definition: dxgiformat.idl:126
@ DXGI_FORMAT_B5G5R5A1_UNORM
Definition: dxgiformat.idl:109
@ DXGI_FORMAT_B8G8R8X8_UNORM
Definition: dxgiformat.idl:111

Referenced by debug_dxgi_mode(), and debug_dxgi_mode1().

◆ debug_float4()

const char * debug_float4 ( const float *  values)

Definition at line 161 of file utils.c.

162{
163 if (!values)
164 return "(null)";
165 return wine_dbg_sprintf("{%.8e, %.8e, %.8e, %.8e}",
166 values[0], values[1], values[2], values[3]);
167}
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666

Referenced by d3d10_device_ClearRenderTargetView(), d3d10_device_OMSetBlendState(), d3d11_device_context_ClearRenderTargetView(), d3d11_device_context_ClearUnorderedAccessViewFloat(), and d3d11_device_context_OMSetBlendState().

◆ dxgi_format_from_wined3dformat()

DXGI_FORMAT dxgi_format_from_wined3dformat ( enum wined3d_format_id  format)

Definition at line 210 of file utils.c.

211{
212 switch(format)
213 {
317 default:
318 FIXME("Unhandled wined3d format %#x.\n", format);
319 return DXGI_FORMAT_UNKNOWN;
320 }
321}
@ WINED3DFMT_R32G32B32_TYPELESS
Definition: wined3d.h:160
@ WINED3DFMT_R8_TYPELESS
Definition: wined3d.h:217
@ WINED3DFMT_BC5_UNORM
Definition: wined3d.h:240
@ WINED3DFMT_R32G32B32_SINT
Definition: wined3d.h:163
@ WINED3DFMT_R8G8_UNORM
Definition: wined3d.h:206
@ WINED3DFMT_BC7_TYPELESS
Definition: wined3d.h:253
@ WINED3DFMT_BC7_UNORM_SRGB
Definition: wined3d.h:255
@ WINED3DFMT_R32G32_SINT
Definition: wined3d.h:173
@ WINED3DFMT_X24_TYPELESS_G8_UINT
Definition: wined3d.h:204
@ WINED3DFMT_BC2_UNORM_SRGB
Definition: wined3d.h:232
@ WINED3DFMT_B4G4R4A4_UNORM
Definition: wined3d.h:130
@ WINED3DFMT_R16G16_UINT
Definition: wined3d.h:193
@ WINED3DFMT_R16G16_UNORM
Definition: wined3d.h:192
@ WINED3DFMT_R8G8_TYPELESS
Definition: wined3d.h:205
@ WINED3DFMT_BC5_SNORM
Definition: wined3d.h:241
@ WINED3DFMT_R32_SINT
Definition: wined3d.h:200
@ WINED3DFMT_D32_FLOAT
Definition: wined3d.h:197
@ WINED3DFMT_R10G10B10A2_UNORM
Definition: wined3d.h:179
@ WINED3DFMT_R8_UINT
Definition: wined3d.h:219
@ WINED3DFMT_R32G32_FLOAT
Definition: wined3d.h:171
@ WINED3DFMT_R16G16_SNORM
Definition: wined3d.h:194
@ WINED3DFMT_B8G8R8A8_UNORM
Definition: wined3d.h:244
@ WINED3DFMT_R16_UNORM
Definition: wined3d.h:213
@ WINED3DFMT_R24G8_TYPELESS
Definition: wined3d.h:201
@ WINED3DFMT_R10G10B10A2_TYPELESS
Definition: wined3d.h:178
@ WINED3DFMT_R32G32_UINT
Definition: wined3d.h:172
@ WINED3DFMT_R32G32B32_UINT
Definition: wined3d.h:162
@ WINED3DFMT_BC4_TYPELESS
Definition: wined3d.h:236
@ WINED3DFMT_BC2_UNORM
Definition: wined3d.h:231
@ WINED3DFMT_R8_UNORM
Definition: wined3d.h:218
@ WINED3DFMT_R8G8B8A8_SNORM
Definition: wined3d.h:188
@ WINED3DFMT_NV12
Definition: wined3d.h:279
@ WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM
Definition: wined3d.h:182
@ WINED3DFMT_R16_TYPELESS
Definition: wined3d.h:210
@ WINED3DFMT_R16G16B16A16_SINT
Definition: wined3d.h:169
@ WINED3DFMT_R16_SINT
Definition: wined3d.h:216
@ WINED3DFMT_R8G8_B8G8_UNORM
Definition: wined3d.h:225
@ WINED3DFMT_R32G32B32_FLOAT
Definition: wined3d.h:161
@ WINED3DFMT_B8G8R8X8_UNORM
Definition: wined3d.h:245
@ WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
Definition: wined3d.h:176
@ WINED3DFMT_BC1_UNORM_SRGB
Definition: wined3d.h:229
@ WINED3DFMT_R16G16B16A16_FLOAT
Definition: wined3d.h:165
@ WINED3DFMT_D16_UNORM
Definition: wined3d.h:212
@ WINED3DFMT_R8G8_SNORM
Definition: wined3d.h:208
@ WINED3DFMT_UNKNOWN
Definition: wined3d.h:127
@ WINED3DFMT_R8G8B8A8_TYPELESS
Definition: wined3d.h:184
@ WINED3DFMT_R8G8_UINT
Definition: wined3d.h:207
@ WINED3DFMT_BC7_UNORM
Definition: wined3d.h:254
@ WINED3DFMT_R8G8B8A8_UNORM_SRGB
Definition: wined3d.h:186
@ WINED3DFMT_R9G9B9E5_SHAREDEXP
Definition: wined3d.h:224
@ WINED3DFMT_B8G8R8X8_TYPELESS
Definition: wined3d.h:248
@ WINED3DFMT_R32_UINT
Definition: wined3d.h:199
@ WINED3DFMT_B5G5R5A1_UNORM
Definition: wined3d.h:243
@ WINED3DFMT_R16_FLOAT
Definition: wined3d.h:211
@ WINED3DFMT_R8G8B8A8_UNORM
Definition: wined3d.h:185
@ WINED3DFMT_R10G10B10A2_UINT
Definition: wined3d.h:180
@ WINED3DFMT_G8R8_G8B8_UNORM
Definition: wined3d.h:226
@ WINED3DFMT_R32G32B32A32_UINT
Definition: wined3d.h:158
@ WINED3DFMT_R16G16B16A16_UNORM
Definition: wined3d.h:166
@ WINED3DFMT_BC3_UNORM
Definition: wined3d.h:234
@ WINED3DFMT_BC6H_UF16
Definition: wined3d.h:251
@ WINED3DFMT_R16G16B16A16_TYPELESS
Definition: wined3d.h:164
@ WINED3DFMT_R24_UNORM_X8_TYPELESS
Definition: wined3d.h:203
@ WINED3DFMT_D32_FLOAT_S8X24_UINT
Definition: wined3d.h:175
@ WINED3DFMT_R32_FLOAT
Definition: wined3d.h:198
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
Definition: wined3d.h:177
@ WINED3DFMT_B5G6R5_UNORM
Definition: wined3d.h:242
@ WINED3DFMT_R16G16B16A16_UINT
Definition: wined3d.h:167
@ WINED3DFMT_BC1_TYPELESS
Definition: wined3d.h:227
@ WINED3DFMT_B8G8R8X8_UNORM_SRGB
Definition: wined3d.h:249
@ WINED3DFMT_BC4_UNORM
Definition: wined3d.h:237
@ WINED3DFMT_B8G8R8A8_TYPELESS
Definition: wined3d.h:246
@ WINED3DFMT_BC3_TYPELESS
Definition: wined3d.h:233
@ WINED3DFMT_R16G16_TYPELESS
Definition: wined3d.h:190
@ WINED3DFMT_R8_SNORM
Definition: wined3d.h:220
@ WINED3DFMT_YUY2
Definition: wined3d.h:258
@ WINED3DFMT_R16G16_FLOAT
Definition: wined3d.h:191
@ WINED3DFMT_R8G8B8A8_UINT
Definition: wined3d.h:187
@ WINED3DFMT_R16_SNORM
Definition: wined3d.h:215
@ WINED3DFMT_BC6H_TYPELESS
Definition: wined3d.h:250
@ WINED3DFMT_BC1_UNORM
Definition: wined3d.h:228
@ WINED3DFMT_R32G32B32A32_TYPELESS
Definition: wined3d.h:156
@ WINED3DFMT_R32_TYPELESS
Definition: wined3d.h:196
@ WINED3DFMT_R32G8X24_TYPELESS
Definition: wined3d.h:174
@ WINED3DFMT_R16_UINT
Definition: wined3d.h:214
@ WINED3DFMT_R8_SINT
Definition: wined3d.h:221
@ WINED3DFMT_BC5_TYPELESS
Definition: wined3d.h:239
@ WINED3DFMT_R8G8_SINT
Definition: wined3d.h:209
@ WINED3DFMT_R32G32B32A32_SINT
Definition: wined3d.h:159
@ WINED3DFMT_R8G8B8A8_SINT
Definition: wined3d.h:189
@ WINED3DFMT_R1_UNORM
Definition: wined3d.h:223
@ WINED3DFMT_R11G11B10_FLOAT
Definition: wined3d.h:183
@ WINED3DFMT_B8G8R8A8_UNORM_SRGB
Definition: wined3d.h:247
@ WINED3DFMT_BC3_UNORM_SRGB
Definition: wined3d.h:235
@ WINED3DFMT_A8_UNORM
Definition: wined3d.h:222
@ WINED3DFMT_R32G32B32A32_FLOAT
Definition: wined3d.h:157
@ WINED3DFMT_BC2_TYPELESS
Definition: wined3d.h:230
@ WINED3DFMT_BC6H_SF16
Definition: wined3d.h:252
@ WINED3DFMT_D24_UNORM_S8_UINT
Definition: wined3d.h:202
@ WINED3DFMT_R16G16B16A16_SNORM
Definition: wined3d.h:168
@ WINED3DFMT_BC4_SNORM
Definition: wined3d.h:238
@ WINED3DFMT_R16G16_SINT
Definition: wined3d.h:195
@ WINED3DFMT_R32G32_TYPELESS
Definition: wined3d.h:170

◆ validate_d3d11_resource_access_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 
)

Definition at line 601 of file utils.c.

603{
604 const BOOL is_texture = resource_dimension != D3D11_RESOURCE_DIMENSION_BUFFER;
605
606 switch (usage)
607 {
608 case D3D11_USAGE_DEFAULT:
609 if ((bind_flags == D3D11_BIND_SHADER_RESOURCE && feature_level >= D3D_FEATURE_LEVEL_11_0)
610 || (is_texture && bind_flags == D3D11_BIND_RENDER_TARGET)
611 || bind_flags == D3D11_BIND_UNORDERED_ACCESS)
612 break;
613 if (cpu_access_flags)
614 {
615 WARN("Default resources are not CPU accessible.\n");
616 return FALSE;
617 }
618 break;
619
620 case D3D11_USAGE_IMMUTABLE:
621 if (!bind_flags)
622 {
623 WARN("Bind flags must be non-zero for immutable resources.\n");
624 return FALSE;
625 }
626 if (!d3d11_bind_flags_are_gpu_read_only(bind_flags))
627 {
628 WARN("Immutable resources cannot be writable by GPU.\n");
629 return FALSE;
630 }
631
632 if (cpu_access_flags)
633 {
634 WARN("Immutable resources are not CPU accessible.\n");
635 return FALSE;
636 }
637 break;
638
639 case D3D11_USAGE_DYNAMIC:
640 if (!bind_flags)
641 {
642 WARN("Bind flags must be non-zero for dynamic resources.\n");
643 return FALSE;
644 }
645 if (!d3d11_bind_flags_are_gpu_read_only(bind_flags))
646 {
647 WARN("Dynamic resources cannot be writable by GPU.\n");
648 return FALSE;
649 }
650
651 if (cpu_access_flags != D3D11_CPU_ACCESS_WRITE)
652 {
653 WARN("CPU access must be D3D11_CPU_ACCESS_WRITE for dynamic resources.\n");
654 return FALSE;
655 }
656 break;
657
658 case D3D11_USAGE_STAGING:
659 if (bind_flags)
660 {
661 WARN("Invalid bind flags %#x for staging resources.\n", bind_flags);
662 return FALSE;
663 }
664
665 if (!cpu_access_flags)
666 {
667 WARN("CPU access must be non-zero for staging resources.\n");
668 return FALSE;
669 }
670 break;
671
672 default:
673 WARN("Invalid usage %#x.\n", usage);
674 return FALSE;
675 }
676
677 return TRUE;
678}
#define WARN(fmt,...)
Definition: precomp.h:61
@ D3D_FEATURE_LEVEL_11_0
Definition: d3dcommon.idl:109
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static BOOL d3d11_bind_flags_are_gpu_read_only(UINT bind_flags)
Definition: utils.c:592

Referenced by validate_buffer_desc(), and validate_texture2d_desc().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d11  )

◆ wined3d_access_from_d3d11()

unsigned int wined3d_access_from_d3d11 ( D3D11_USAGE  usage,
UINT  cpu_access 
)

Definition at line 788 of file utils.c.

789{
790 unsigned int access;
791
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);
799
800 return access;
801}
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define WINED3D_RESOURCE_ACCESS_GPU
Definition: wined3d.h:51
#define WINED3D_RESOURCE_ACCESS_CPU
Definition: wined3d.h:52
#define WINED3D_RESOURCE_ACCESS_MAP_R
Definition: wined3d.h:53
#define WINED3D_RESOURCE_ACCESS_MAP_W
Definition: wined3d.h:54

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ wined3d_clear_flags_from_d3d11_clear_flags()

DWORD wined3d_clear_flags_from_d3d11_clear_flags ( UINT  clear_flags)

Definition at line 770 of file utils.c.

771{
772 DWORD wined3d_clear_flags = 0;
773
774 if (clear_flags & D3D11_CLEAR_DEPTH)
775 wined3d_clear_flags |= WINED3DCLEAR_ZBUFFER;
776 if (clear_flags & D3D11_CLEAR_STENCIL)
777 wined3d_clear_flags |= WINED3DCLEAR_STENCIL;
778
779 if (clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL))
780 {
781 FIXME("Unhandled clear flags %#x.\n",
782 clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL));
783 }
784
785 return wined3d_clear_flags;
786}
#define WINED3DCLEAR_STENCIL
Definition: wined3d.h:1010
#define WINED3DCLEAR_ZBUFFER
Definition: wined3d.h:1009

Referenced by d3d10_device_ClearDepthStencilView(), and d3d11_device_context_ClearDepthStencilView().

◆ wined3d_getdata_flags_from_d3d11_async_getdata_flags()

unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags ( unsigned int  d3d11_flags)

Definition at line 436 of file utils.c.

437{
438 if (d3d11_flags & ~D3D11_ASYNC_GETDATA_DONOTFLUSH)
439 FIXME("Unhandled async getdata flags %#x.\n", d3d11_flags);
440
441 if (d3d11_flags & D3D11_ASYNC_GETDATA_DONOTFLUSH)
442 return 0;
443
445}
@ D3D11_ASYNC_GETDATA_DONOTFLUSH
Definition: d3d11.idl:1029
#define WINED3DGETDATA_FLUSH
Definition: wined3d.h:783

Referenced by d3d10_query_GetData(), and d3d11_device_context_GetData().

◆ wined3d_map_flags_from_d3d10_map_type()

DWORD wined3d_map_flags_from_d3d10_map_type ( D3D10_MAP  map_type)

Definition at line 765 of file utils.c.

766{
768}
D3D11_MAP
Definition: d3d11.idl:971
DWORD wined3d_map_flags_from_d3d11_map_type(D3D11_MAP map_type)
Definition: utils.c:740
static VARTYPE map_type(struct string_t *str)

Referenced by d3d10_buffer_Map(), d3d10_texture1d_Map(), d3d10_texture2d_Map(), and d3d10_texture3d_Map().

◆ wined3d_map_flags_from_d3d11_map_type()

DWORD wined3d_map_flags_from_d3d11_map_type ( D3D11_MAP  map_type)

Definition at line 740 of file utils.c.

741{
742 switch (map_type)
743 {
744 case D3D11_MAP_WRITE:
745 return WINED3D_MAP_WRITE;
746
749
750 case D3D11_MAP_READ:
751 return WINED3D_MAP_READ;
752
755
758
759 default:
760 FIXME("Unhandled map_type %#x.\n", map_type);
762 }
763}
@ D3D11_MAP_READ
Definition: d3d11.idl:972
@ D3D11_MAP_WRITE
Definition: d3d11.idl:973
@ D3D11_MAP_WRITE_NO_OVERWRITE
Definition: d3d11.idl:976
@ D3D11_MAP_WRITE_DISCARD
Definition: d3d11.idl:975
@ D3D11_MAP_READ_WRITE
Definition: d3d11.idl:974
#define WINED3D_MAP_READ
Definition: wined3d.h:957
#define WINED3D_MAP_DISCARD
Definition: wined3d.h:953
#define WINED3D_MAP_WRITE
Definition: wined3d.h:956
#define WINED3D_MAP_NOOVERWRITE
Definition: wined3d.h:952

Referenced by d3d11_device_context_Map(), and wined3d_map_flags_from_d3d10_map_type().

◆ wined3d_primitive_type_from_d3d11_primitive_topology()

void wined3d_primitive_type_from_d3d11_primitive_topology ( D3D11_PRIMITIVE_TOPOLOGY  topology,
enum wined3d_primitive_type *  type,
unsigned int *  patch_vertex_count 
)

Definition at line 187 of file utils.c.

189{
191 {
192 *type = (enum wined3d_primitive_type)topology;
193 *patch_vertex_count = 0;
194 return;
195 }
196
199 {
201 *patch_vertex_count = topology - D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST + 1;
202 return;
203 }
204
205 WARN("Invalid primitive topology %#x.\n", topology);
207 *patch_vertex_count = 0;
208}
@ D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Definition: d3dcommon.idl:478
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: d3dcommon.idl:446
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
wined3d_primitive_type
Definition: wined3d.h:74
@ WINED3D_PT_UNDEFINED
Definition: wined3d.h:75

Referenced by d3d11_device_context_IASetPrimitiveTopology().

◆ wined3d_resource_from_d3d10_resource()

struct wined3d_resource * wined3d_resource_from_d3d10_resource ( ID3D10Resource *  resource)

Definition at line 710 of file utils.c.

711{
712 D3D10_RESOURCE_DIMENSION dimension;
713
714 ID3D10Resource_GetType(resource, &dimension);
715
716 switch (dimension)
717 {
721
725
729
733
734 default:
735 FIXME("Unhandled resource dimension %#x.\n", dimension);
736 return NULL;
737 }
738}
D3D10_RESOURCE_DIMENSION
Definition: d3d10.idl:452
@ D3D10_RESOURCE_DIMENSION_TEXTURE1D
Definition: d3d10.idl:455
@ D3D10_RESOURCE_DIMENSION_BUFFER
Definition: d3d10.idl:454
@ D3D10_RESOURCE_DIMENSION_TEXTURE3D
Definition: d3d10.idl:457
@ D3D10_RESOURCE_DIMENSION_TEXTURE2D
Definition: d3d10.idl:456
struct d3d_texture2d * unsafe_impl_from_ID3D10Texture2D(ID3D10Texture2D *iface)
Definition: texture.c:907
struct d3d_texture3d * unsafe_impl_from_ID3D10Texture3D(ID3D10Texture3D *iface)
Definition: texture.c:1424
struct d3d_texture1d * unsafe_impl_from_ID3D10Texture1D(ID3D10Texture1D *iface)
Definition: texture.c:403
#define NULL
Definition: types.h:112
struct d3d_buffer * unsafe_impl_from_ID3D10Buffer(ID3D10Buffer *iface)
Definition: buffer.c:386
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
Definition: buffer.c:520
struct wined3d_resource *CDECL wined3d_texture_get_resource(struct wined3d_texture *texture)
Definition: texture.c:1649

Referenced by d3d10_device_CopyResource(), d3d10_device_CopySubresourceRegion(), and d3d10_device_ResolveSubresource().

◆ wined3d_resource_from_d3d11_resource()

struct wined3d_resource * wined3d_resource_from_d3d11_resource ( ID3D11Resource *  resource)

Definition at line 680 of file utils.c.

681{
682 D3D11_RESOURCE_DIMENSION dimension;
683
684 ID3D11Resource_GetType(resource, &dimension);
685
686 switch (dimension)
687 {
688 case D3D11_RESOURCE_DIMENSION_BUFFER:
690 (ID3D11Buffer *)resource)->wined3d_buffer);
691
692 case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
694 (ID3D11Texture1D *)resource)->wined3d_texture);
695
696 case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
698 (ID3D11Texture2D *)resource)->wined3d_texture);
699
700 case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
702 (ID3D11Texture3D *)resource)->wined3d_texture);
703
704 default:
705 FIXME("Unhandled resource dimension %#x.\n", dimension);
706 return NULL;
707 }
708}
struct d3d_texture2d * unsafe_impl_from_ID3D11Texture2D(ID3D11Texture2D *iface)
Definition: texture.c:718
struct d3d_texture3d * unsafe_impl_from_ID3D11Texture3D(ID3D11Texture3D *iface)
Definition: texture.c:1432
struct d3d_texture1d * unsafe_impl_from_ID3D11Texture1D(ID3D11Texture1D *iface)
Definition: texture.c:216
struct d3d_buffer * unsafe_impl_from_ID3D11Buffer(ID3D11Buffer *iface)
Definition: buffer.c:214

Referenced by d3d11_device_context_CopyResource(), d3d11_device_context_CopySubresourceRegion(), d3d11_device_context_CopySubresourceRegion1(), d3d11_device_context_Map(), d3d11_device_context_ResolveSubresource(), d3d11_device_context_Unmap(), d3d11_device_context_UpdateSubresource(), d3d11_device_context_UpdateSubresource1(), d3d11_unordered_access_view_init(), d3d_depthstencil_view_init(), d3d_rendertarget_view_init(), and d3d_shader_resource_view_init().

◆ wined3d_usage_from_d3d11()

DWORD wined3d_usage_from_d3d11 ( enum D3D11_USAGE  usage)

Definition at line 447 of file utils.c.

448{
449 DWORD wined3d_usage = 0;
450
451 if (usage == D3D11_USAGE_DYNAMIC)
452 wined3d_usage |= WINED3DUSAGE_DYNAMIC;
453
454 return wined3d_usage;
455}
#define WINED3DUSAGE_DYNAMIC
Definition: wined3d.h:924

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ wined3dformat_from_dxgi_format()

enum wined3d_format_id wined3dformat_from_dxgi_format ( DXGI_FORMAT  format)

Definition at line 323 of file utils.c.

324{
325 switch(format)
326 {
430 default:
431 FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
432 return WINED3DFMT_UNKNOWN;
433 }
434}

Referenced by wined3d_display_mode_from_dxgi(), wined3d_display_mode_from_dxgi1(), and wined3d_swapchain_desc_from_dxgi().