-- v3: include: Fill in missing enum values in vkd3d_d3d12.idl. include: Add some more struct/enum definitions to vkd3d_d3d12.idl.
From: Martin Storsjö martin@martin.st
This is enough for compiling QtBase's Direct3D 12 backend, if this is imported into mingw-w64.
Signed-off-by: Martin Storsjö martin@martin.st --- include/vkd3d_d3d12.idl | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+)
diff --git a/include/vkd3d_d3d12.idl b/include/vkd3d_d3d12.idl index 71a74999..258d5e0d 100644 --- a/include/vkd3d_d3d12.idl +++ b/include/vkd3d_d3d12.idl @@ -1663,6 +1663,62 @@ typedef struct D3D12_PIPELINE_STATE_STREAM_DESC void *pPipelineStateSubobjectStream; } D3D12_PIPELINE_STATE_STREAM_DESC;
+struct D3D12_RT_FORMAT_ARRAY +{ + DXGI_FORMAT RTFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]; + UINT NumRenderTargets; +}; + +typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE +{ + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0x0, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = 0x1, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = 0x2, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = 0x3, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = 0x4, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = 0x5, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = 0x6, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 0x7, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = 0x8, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 0x9, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = 0xa, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 0xb, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 0xc, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 0xd, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 0xe, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 0xf, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 0x10, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 0x11, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x12, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = 0x13, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = 0x14, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 0x15, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 0x16, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 0x18, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 0x19, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = 0x1a, +} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; + +typedef struct D3D12_VIEW_INSTANCE_LOCATION +{ + UINT ViewportArrayIndex; + UINT RenderTargetArrayIndex; +} D3D12_VIEW_INSTANCE_LOCATION; + +typedef enum D3D12_VIEW_INSTANCING_FLAGS +{ + D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0, + D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1, +} D3D12_VIEW_INSTANCING_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIEW_INSTANCING_FLAGS);") + +typedef struct D3D12_VIEW_INSTANCING_DESC +{ + UINT ViewInstanceCount; + const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; + D3D12_VIEW_INSTANCING_FLAGS Flags; +} D3D12_VIEW_INSTANCING_DESC; + typedef enum D3D12_COMMAND_LIST_TYPE { D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
From: Martin Storsjö martin@martin.st
Signed-off-by: Martin Storsjö martin@martin.st --- include/vkd3d_d3d12.idl | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+)
diff --git a/include/vkd3d_d3d12.idl b/include/vkd3d_d3d12.idl index 258d5e0d..ccd83088 100644 --- a/include/vkd3d_d3d12.idl +++ b/include/vkd3d_d3d12.idl @@ -122,6 +122,7 @@ typedef enum D3D12_CROSS_NODE_SHARING_TIER D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, D3D12_CROSS_NODE_SHARING_TIER_1 = 2, D3D12_CROSS_NODE_SHARING_TIER_2 = 3, + D3D12_CROSS_NODE_SHARING_TIER_3 = 4, } D3D12_CROSS_NODE_SHARING_TIER;
typedef enum D3D12_RESOURCE_HEAP_TIER @@ -179,6 +180,7 @@ typedef enum D3D12_FORMAT_SUPPORT2 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100, D3D12_FORMAT_SUPPORT2_TILED = 0x00000200, D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000, + D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x00008000, } D3D12_FORMAT_SUPPORT2; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);")
@@ -203,6 +205,9 @@ typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, + D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, + D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, + D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40, } D3D12_SHADER_CACHE_SUPPORT_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);")
@@ -231,6 +236,7 @@ typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER { D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0, D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1, + D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = 0x2, } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
typedef enum D3D12_HEAP_SERIALIZATION_TIER @@ -250,6 +256,7 @@ typedef enum D3D12_RAYTRACING_TIER { D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0, D3D12_RAYTRACING_TIER_1_0 = 0xa, + D3D12_RAYTRACING_TIER_1_1 = 0xb, } D3D12_RAYTRACING_TIER;
typedef enum D3D12_RESIDENCY_FLAGS @@ -521,7 +528,10 @@ typedef enum D3D12_RESOURCE_STATES D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, + D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, + D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, D3D12_RESOURCE_STATE_GENERIC_READ = 0x1 | 0x2 | 0x40 | 0x80 | 0x200 | 0x800, + D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = 0x40 | 0x80, D3D12_RESOURCE_STATE_PRESENT = 0x0, D3D12_RESOURCE_STATE_PREDICATION = 0x200, D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000, @@ -605,6 +615,9 @@ typedef enum D3D12_RESOURCE_FLAGS D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, + D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, + D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, + D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, } D3D12_RESOURCE_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);")
@@ -628,6 +641,8 @@ typedef enum D3D12_RESOLVE_MODE D3D12_RESOLVE_MODE_MIN = 1, D3D12_RESOLVE_MODE_MAX = 2, D3D12_RESOLVE_MODE_AVERAGE = 3, + D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, + D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5, } D3D12_RESOLVE_MODE;
typedef struct D3D12_SAMPLE_POSITION @@ -692,6 +707,7 @@ typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, + D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000, } D3D12_DESCRIPTOR_RANGE_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);")
@@ -763,6 +779,8 @@ typedef enum D3D12_SHADER_VISIBILITY D3D12_SHADER_VISIBILITY_DOMAIN = 3, D3D12_SHADER_VISIBILITY_GEOMETRY = 4, D3D12_SHADER_VISIBILITY_PIXEL = 5, + D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, + D3D12_SHADER_VISIBILITY_MESH = 7, } D3D12_SHADER_VISIBILITY;
typedef struct D3D12_ROOT_PARAMETER @@ -1018,6 +1036,7 @@ typedef enum D3D12_SRV_DIMENSION D3D12_SRV_DIMENSION_TEXTURE3D = 8, D3D12_SRV_DIMENSION_TEXTURECUBE = 9, D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, + D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11, } D3D12_SRV_DIMENSION;
typedef enum D3D12_BUFFER_SRV_FLAGS @@ -1451,6 +1470,8 @@ typedef enum D3D12_BLEND D3D12_BLEND_INV_SRC1_COLOR = 17, D3D12_BLEND_SRC1_ALPHA = 18, D3D12_BLEND_INV_SRC1_ALPHA = 19, + D3D12_BLEND_ALPHA_FACTOR = 20, + D3D12_BLEND_INV_ALPHA_FACTOR = 21, } D3D12_BLEND;
typedef enum D3D12_BLEND_OP @@ -1725,6 +1746,9 @@ typedef enum D3D12_COMMAND_LIST_TYPE D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, D3D12_COMMAND_LIST_TYPE_COPY = 3, + D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, + D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, + D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, } D3D12_COMMAND_LIST_TYPE;
typedef enum D3D12_COMMAND_QUEUE_PRIORITY @@ -1785,6 +1809,14 @@ typedef enum D3D_SHADER_MODEL { D3D_SHADER_MODEL_5_1 = 0x51, D3D_SHADER_MODEL_6_0 = 0x60, + D3D_SHADER_MODEL_6_1 = 0x61, + D3D_SHADER_MODEL_6_2 = 0x62, + D3D_SHADER_MODEL_6_3 = 0x63, + D3D_SHADER_MODEL_6_4 = 0x64, + D3D_SHADER_MODEL_6_5 = 0x65, + D3D_SHADER_MODEL_6_6 = 0x66, + D3D_SHADER_MODEL_6_7 = 0x67, + D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_7, } D3D_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_SHADER_MODEL @@ -1892,11 +1924,18 @@ typedef enum D3D12_FEATURE D3D12_FEATURE_SERIALIZATION = 24, D3D12_FEATURE_CROSS_NODE = 25, D3D12_FEATURE_D3D12_OPTIONS5 = 27, + D3D12_FEATURE_DISPLAYABLE = 28, D3D12_FEATURE_D3D12_OPTIONS6 = 30, D3D12_FEATURE_QUERY_META_COMMAND = 31, D3D12_FEATURE_D3D12_OPTIONS7 = 32, D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, + D3D12_FEATURE_D3D12_OPTIONS8 = 36, + D3D12_FEATURE_D3D12_OPTIONS9 = 37, + D3D12_FEATURE_D3D12_OPTIONS10 = 39, + D3D12_FEATURE_D3D12_OPTIONS11 = 40, + D3D12_FEATURE_D3D12_OPTIONS12 = 41, + D3D12_FEATURE_D3D12_OPTIONS13 = 42, } D3D12_FEATURE;
typedef struct D3D12_MEMCPY_DEST @@ -2089,6 +2128,8 @@ typedef enum D3D12_QUERY_TYPE D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, + D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, + D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10, } D3D12_QUERY_TYPE;
typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS @@ -2411,6 +2452,7 @@ typedef enum D3D12_FENCE_FLAGS D3D12_FENCE_FLAG_NONE = 0x0, D3D12_FENCE_FLAG_SHARED = 0x1, D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, + D3D12_FENCE_FLAG_NON_MONITORED = 0x4, } D3D12_FENCE_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);")
@@ -2420,6 +2462,9 @@ typedef enum D3D12_QUERY_HEAP_TYPE D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, + D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, + D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, + D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7, } D3D12_QUERY_HEAP_TYPE;
typedef struct D3D12_QUERY_HEAP_DESC @@ -2440,6 +2485,8 @@ typedef enum D3D12_INDIRECT_ARGUMENT_TYPE D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW, D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW, + D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS, + D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH, } D3D12_INDIRECT_ARGUMENT_TYPE;
typedef struct D3D12_INDIRECT_ARGUMENT_DESC
Looks good, thanks again.
This merge request was approved by Henri Verbeet.