Commit 32e07a38 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

include: Update the d3d12 headers from vkd3d.

This corresponds to vkd3d as of commit ec6fe1cc9dd31ed17d5c9818632ce9ab83d6c441. Signed-off-by: 's avatarHenri Verbeet <hverbeet@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent ed377c99
...@@ -29,6 +29,8 @@ const UINT D3D12_MAX_ROOT_COST = 64; ...@@ -29,6 +29,8 @@ const UINT D3D12_MAX_ROOT_COST = 64;
const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767; const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767;
const UINT D3D12_VIEWPORT_BOUNDS_MIN = -32768; const UINT D3D12_VIEWPORT_BOUNDS_MIN = -32768;
const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff; const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff;
cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)") cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)")
cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)") cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)")
...@@ -42,6 +44,9 @@ const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff; ...@@ -42,6 +44,9 @@ const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff;
const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff; const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff;
cpp_quote("#define D3D12_FLOAT32_MAX (3.402823466e+38f)") cpp_quote("#define D3D12_FLOAT32_MAX (3.402823466e+38f)")
const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
const UINT D3D12_UAV_SLOT_COUNT = 64;
const UINT D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
const UINT D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
const UINT D3D12_REQ_MIP_LEVELS = 15; const UINT D3D12_REQ_MIP_LEVELS = 15;
const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048; const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384; const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384;
...@@ -51,10 +56,22 @@ const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; ...@@ -51,10 +56,22 @@ const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384; const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384;
const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff; const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff;
const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
const UINT D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
const UINT D3D12_SO_BUFFER_SLOT_COUNT = 4;
const UINT D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff;
const UINT D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff;
const UINT D3D12_SO_OUTPUT_COMPONENT_COUNT = 128;
const UINT D3D12_SO_STREAM_COUNT = 4;
const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256; const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256;
const UINT D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304;
const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536; const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
const UINT D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16;
const UINT D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
const UINT D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096;
const UINT D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256; const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256;
const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512; const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096;
const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32; const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32;
const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
...@@ -159,6 +176,74 @@ typedef enum D3D12_FORMAT_SUPPORT2 ...@@ -159,6 +176,74 @@ typedef enum D3D12_FORMAT_SUPPORT2
D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000, D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000,
} D3D12_FORMAT_SUPPORT2; } D3D12_FORMAT_SUPPORT2;
typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE
{
D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2,
} D3D12_WRITEBUFFERIMMEDIATE_MODE;
typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
{
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2,
} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
{
D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
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_FLAGS;
typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
{
D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40,
} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
typedef enum D3D12_VIEW_INSTANCING_TIER
{
D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
D3D12_VIEW_INSTANCING_TIER_3 = 0x3,
} D3D12_VIEW_INSTANCING_TIER;
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;
typedef enum D3D12_HEAP_SERIALIZATION_TIER
{
D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa,
} D3D12_HEAP_SERIALIZATION_TIER;
typedef enum D3D12_RENDER_PASS_TIER
{
D3D12_RENDER_PASS_TIER_0 = 0x0,
D3D12_RENDER_PASS_TIER_1 = 0x1,
D3D12_RENDER_PASS_TIER_2 = 0x2,
} D3D12_RENDER_PASS_TIER;
typedef enum D3D12_RAYTRACING_TIER
{
D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
D3D12_RAYTRACING_TIER_1_0 = 0xa,
} D3D12_RAYTRACING_TIER;
interface ID3D12Fence; interface ID3D12Fence;
interface ID3D12RootSignature; interface ID3D12RootSignature;
interface ID3D12Heap; interface ID3D12Heap;
...@@ -198,6 +283,18 @@ typedef struct D3D12_RANGE ...@@ -198,6 +283,18 @@ typedef struct D3D12_RANGE
SIZE_T End; SIZE_T End;
} D3D12_RANGE; } D3D12_RANGE;
typedef struct D3D12_RANGE_UINT64
{
UINT64 Begin;
UINT64 End;
} D3D12_RANGE_UINT64;
typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
{
UINT Subresource;
D3D12_RANGE_UINT64 Range;
} D3D12_SUBRESOURCE_RANGE_UINT64;
typedef struct D3D12_RESOURCE_ALLOCATION_INFO typedef struct D3D12_RESOURCE_ALLOCATION_INFO
{ {
UINT64 SizeInBytes; UINT64 SizeInBytes;
...@@ -254,6 +351,21 @@ typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT ...@@ -254,6 +351,21 @@ typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
D3D12_FORMAT_SUPPORT2 Support2; D3D12_FORMAT_SUPPORT2 Support2;
} D3D12_FEATURE_DATA_FORMAT_SUPPORT; } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
{
D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x00000000,
D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x00000001,
} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);")
typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
{
DXGI_FORMAT Format;
UINT SampleCount;
D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
UINT NumQualityLevels;
} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
typedef enum D3D12_HEAP_TYPE typedef enum D3D12_HEAP_TYPE
{ {
D3D12_HEAP_TYPE_DEFAULT = 1, D3D12_HEAP_TYPE_DEFAULT = 1,
...@@ -265,6 +377,7 @@ typedef enum D3D12_HEAP_TYPE ...@@ -265,6 +377,7 @@ typedef enum D3D12_HEAP_TYPE
typedef enum D3D12_CPU_PAGE_PROPERTY typedef enum D3D12_CPU_PAGE_PROPERTY
{ {
D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3, D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3,
} D3D12_CPU_PAGE_PROPERTY; } D3D12_CPU_PAGE_PROPERTY;
...@@ -481,6 +594,20 @@ typedef struct D3D12_RESOURCE_DESC ...@@ -481,6 +594,20 @@ typedef struct D3D12_RESOURCE_DESC
D3D12_RESOURCE_FLAGS Flags; D3D12_RESOURCE_FLAGS Flags;
} D3D12_RESOURCE_DESC; } D3D12_RESOURCE_DESC;
typedef enum D3D12_RESOLVE_MODE
{
D3D12_RESOLVE_MODE_DECOMPRESS = 0,
D3D12_RESOLVE_MODE_MIN = 1,
D3D12_RESOLVE_MODE_MAX = 2,
D3D12_RESOLVE_MODE_AVERAGE = 3,
} D3D12_RESOLVE_MODE;
typedef struct D3D12_SAMPLE_POSITION
{
INT8 X;
INT8 Y;
} D3D12_SAMPLE_POSITION;
typedef enum D3D12_TEXTURE_COPY_TYPE typedef enum D3D12_TEXTURE_COPY_TYPE
{ {
D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
...@@ -532,7 +659,11 @@ typedef struct D3D12_DESCRIPTOR_RANGE ...@@ -532,7 +659,11 @@ typedef struct D3D12_DESCRIPTOR_RANGE
typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS
{ {
D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
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_FLAGS; } D3D12_DESCRIPTOR_RANGE_FLAGS;
typedef struct D3D12_DESCRIPTOR_RANGE1 typedef struct D3D12_DESCRIPTOR_RANGE1
...@@ -572,7 +703,10 @@ typedef struct D3D12_ROOT_DESCRIPTOR ...@@ -572,7 +703,10 @@ typedef struct D3D12_ROOT_DESCRIPTOR
typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS
{ {
D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8,
} D3D12_ROOT_DESCRIPTOR_FLAGS; } D3D12_ROOT_DESCRIPTOR_FLAGS;
typedef struct D3D12_ROOT_DESCRIPTOR1 typedef struct D3D12_ROOT_DESCRIPTOR1
...@@ -873,6 +1007,10 @@ cpp_quote(" | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHAD ...@@ -873,6 +1007,10 @@ cpp_quote(" | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHAD
cpp_quote(" | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)") cpp_quote(" | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)")
cpp_quote("#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)") cpp_quote("#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)")
cpp_quote("#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \\")
cpp_quote(" ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \\")
cpp_quote(" & D3D12_SHADER_COMPONENT_MAPPING_MASK))")
typedef struct D3D12_BUFFER_SRV typedef struct D3D12_BUFFER_SRV
{ {
UINT64 FirstElement; UINT64 FirstElement;
...@@ -1478,6 +1616,7 @@ typedef enum D3D12_COMMAND_QUEUE_PRIORITY ...@@ -1478,6 +1616,7 @@ typedef enum D3D12_COMMAND_QUEUE_PRIORITY
{ {
D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000,
} D3D12_COMMAND_QUEUE_PRIORITY; } D3D12_COMMAND_QUEUE_PRIORITY;
typedef enum D3D12_COMMAND_QUEUE_FLAGS typedef enum D3D12_COMMAND_QUEUE_FLAGS
...@@ -1515,14 +1654,133 @@ typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS ...@@ -1515,14 +1654,133 @@ typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
} D3D12_FEATURE_DATA_FEATURE_LEVELS; } D3D12_FEATURE_DATA_FEATURE_LEVELS;
typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
{
D3D_ROOT_SIGNATURE_VERSION HighestVersion;
} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
{
UINT MaxGPUVirtualAddressBitsPerResource;
UINT MaxGPUVirtualAddressBitsPerProcess;
} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
typedef enum D3D_SHADER_MODEL
{
D3D_SHADER_MODEL_5_1 = 0x51,
D3D_SHADER_MODEL_6_0 = 0x60,
} D3D_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
{
D3D_SHADER_MODEL HighestShaderModel;
} D3D12_FEATURE_DATA_SHADER_MODEL;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
{
BOOL WaveOps;
UINT WaveLaneCountMin;
UINT WaveLaneCountMax;
UINT TotalLaneCount;
BOOL ExpandedComputeResourceStates;
BOOL Int64ShaderOps;
} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
{
UINT NodeIndex;
BOOL TileBasedRenderer;
BOOL UMA;
BOOL CacheCoherentUMA;
BOOL IsolatedMMU;
} D3D12_FEATURE_DATA_ARCHITECTURE1;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
{
BOOL DepthBoundsTestSupported;
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
{
D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
} D3D12_FEATURE_DATA_SHADER_CACHE;
typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
{
D3D12_COMMAND_LIST_TYPE CommandListType;
UINT Priority;
BOOL PriorityForTypeIsSupported;
} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
{
BOOL CopyQueueTimestampQueriesSupported;
BOOL CastingFullyTypedFormatSupported;
D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
BOOL BarycentricsSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
{
BOOL Supported;
} D3D12_FEATURE_DATA_EXISTING_HEAPS;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
{
BOOL MSAA64KBAlignedTextureSupported;
D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
BOOL Native16BitShaderOpsSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
typedef struct D3D12_FEATURE_DATA_SERIALIZATION
{
UINT NodeIndex;
D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
} D3D12_FEATURE_DATA_SERIALIZATION;
typedef struct D3D12_FEATURE_DATA_CROSS_NODE
{
D3D12_CROSS_NODE_SHARING_TIER SharingTier;
BOOL AtomicShaderInstructions;
} D3D12_FEATURE_DATA_CROSS_NODE;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
{
BOOL SRVOnlyTiledResourceTier3;
D3D12_RENDER_PASS_TIER RenderPassesTier;
D3D12_RAYTRACING_TIER RaytracingTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
typedef enum D3D12_FEATURE typedef enum D3D12_FEATURE
{ {
D3D12_FEATURE_D3D12_OPTIONS = 0, D3D12_FEATURE_D3D12_OPTIONS = 0,
D3D12_FEATURE_ARCHITECTURE = 1, D3D12_FEATURE_ARCHITECTURE = 1,
D3D12_FEATURE_FEATURE_LEVELS = 2, D3D12_FEATURE_FEATURE_LEVELS = 2,
D3D12_FEATURE_FORMAT_SUPPORT = 3, D3D12_FEATURE_FORMAT_SUPPORT = 3,
D3D12_FEATURE_FORMAT_INFO = 4, D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 5, D3D12_FEATURE_FORMAT_INFO = 5,
D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
D3D12_FEATURE_SHADER_MODEL = 7,
D3D12_FEATURE_D3D12_OPTIONS1 = 8,
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
D3D12_FEATURE_ROOT_SIGNATURE = 12,
D3D12_FEATURE_ARCHITECTURE1 = 16,
D3D12_FEATURE_D3D12_OPTIONS2 = 18,
D3D12_FEATURE_SHADER_CACHE = 19,
D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
D3D12_FEATURE_D3D12_OPTIONS3 = 21,
D3D12_FEATURE_EXISTING_HEAPS = 22,
D3D12_FEATURE_D3D12_OPTIONS4 = 23,
D3D12_FEATURE_SERIALIZATION = 24,
D3D12_FEATURE_CROSS_NODE = 25,
D3D12_FEATURE_D3D12_OPTIONS5 = 27,
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_FEATURE;
typedef struct D3D12_MEMCPY_DEST typedef struct D3D12_MEMCPY_DEST
...@@ -1539,6 +1797,29 @@ typedef struct D3D12_SUBRESOURCE_DATA ...@@ -1539,6 +1797,29 @@ typedef struct D3D12_SUBRESOURCE_DATA
LONG_PTR SlicePitch; LONG_PTR SlicePitch;
} D3D12_SUBRESOURCE_DATA; } D3D12_SUBRESOURCE_DATA;
typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
{
D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0,
} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);")
typedef enum D3D12_RESIDENCY_PRIORITY
{
D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000,
} D3D12_RESIDENCY_PRIORITY;
typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
{
D3D12_GPU_VIRTUAL_ADDRESS Dest;
UINT32 Value;
} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
[ [
uuid(c4fec28f-7966-4e95-9f94-f431cb56c3b8), uuid(c4fec28f-7966-4e95-9f94-f431cb56c3b8),
object, object,
...@@ -1575,6 +1856,17 @@ interface ID3D12Pageable : ID3D12DeviceChild ...@@ -1575,6 +1856,17 @@ interface ID3D12Pageable : ID3D12DeviceChild
} }
[ [
uuid(6b3b2502-6e51-45b3-90ee-9884265e8df3),
object,
local,
pointer_default(unique)
]
interface ID3D12Heap : ID3D12Pageable
{
D3D12_HEAP_DESC GetDesc();
}
[
uuid(696442be-a72e-4059-bc79-5b5c98040fad), uuid(696442be-a72e-4059-bc79-5b5c98040fad),
object, object,
local, local,
...@@ -1679,6 +1971,12 @@ typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS ...@@ -1679,6 +1971,12 @@ typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
UINT64 CSInvocations; UINT64 CSInvocations;
} D3D12_QUERY_DATA_PIPELINE_STATISTICS; } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
typedef struct D3D12_QUERY_DATA_SO_STATISTICS
{
UINT64 NumPrimitivesWritten;
UINT64 PrimitivesStorageNeeded;
} D3D12_QUERY_DATA_SO_STATISTICS;
typedef enum D3D12_PREDICATION_OP typedef enum D3D12_PREDICATION_OP
{ {
D3D12_PREDICATION_OP_EQUAL_ZERO = 0, D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
...@@ -1838,6 +2136,50 @@ interface ID3D12GraphicsCommandList : ID3D12CommandList ...@@ -1838,6 +2136,50 @@ interface ID3D12GraphicsCommandList : ID3D12CommandList
ID3D12Resource *count_buffer, UINT64 count_buffer_offset); ID3D12Resource *count_buffer, UINT64 count_buffer_offset);
} }
[
uuid(553103fb-1fe7-4557-bb38-946d7d0e7ca7),
object,
local,
pointer_default(unique)
]
interface ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList
{
void AtomicCopyBufferUINT(ID3D12Resource *dst_buffer, UINT64 dst_offset,
ID3D12Resource *src_buffer, UINT64 src_offset,
UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
void AtomicCopyBufferUINT64(ID3D12Resource *dst_buffer, UINT64 dst_offset,
ID3D12Resource *src_buffer, UINT64 src_offset,
UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
void OMSetDepthBounds(FLOAT min, FLOAT max);
void SetSamplePositions(UINT sample_count, UINT pixel_count,
D3D12_SAMPLE_POSITION *sample_positions);
void ResolveSubresourceRegion(ID3D12Resource *dst_resource,
UINT dst_sub_resource_idx, UINT dst_x, UINT dst_y,
ID3D12Resource *src_resource, UINT src_sub_resource_idx,
D3D12_RECT *src_rect, DXGI_FORMAT format, D3D12_RESOLVE_MODE mode);
void SetViewInstanceMask(UINT mask);
}
[
uuid(38c3e585-ff17-412c-9150-4fc6f9d72a28),
object,
local,
pointer_default(unique)
]
interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1
{
void WriteBufferImmediate(UINT count,
const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
}
typedef enum D3D12_TILE_RANGE_FLAGS typedef enum D3D12_TILE_RANGE_FLAGS
{ {
D3D12_TILE_RANGE_FLAG_NONE = 0x0, D3D12_TILE_RANGE_FLAG_NONE = 0x0,
...@@ -2139,6 +2481,23 @@ interface ID3D12Device : ID3D12Object ...@@ -2139,6 +2481,23 @@ interface ID3D12Device : ID3D12Object
} }
[ [
uuid(77acce80-638e-4e65-8895-c1f23386863e),
object,
local,
pointer_default(unique)
]
interface ID3D12Device1 : ID3D12Device
{
HRESULT CreatePipelineLibrary(const void *blob, SIZE_T blob_size, REFIID iid, void **lib);
HRESULT SetEventOnMultipleFenceCompletion(ID3D12Fence * const *fences,
const UINT64 *values, UINT fence_count, D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, HANDLE event);
HRESULT SetResidencyPriority(UINT object_count, ID3D12Pageable * const *objects,
const D3D12_RESIDENCY_PRIORITY *priorities);
}
[
uuid(34ab647b-3cc8-46ac-841b-c0965645c046), uuid(34ab647b-3cc8-46ac-841b-c0965645c046),
object, object,
local, local,
...@@ -2149,13 +2508,36 @@ interface ID3D12RootSignatureDeserializer : IUnknown ...@@ -2149,13 +2508,36 @@ interface ID3D12RootSignatureDeserializer : IUnknown
const D3D12_ROOT_SIGNATURE_DESC *GetRootSignatureDesc(); const D3D12_ROOT_SIGNATURE_DESC *GetRootSignatureDesc();
} }
[
uuid(7f91ce67-090c-4bb7-b78e-ed8ff2e31da0),
object,
local,
pointer_default(unique)
]
interface ID3D12VersionedRootSignatureDeserializer : IUnknown
{
HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION version,
const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *GetUnconvertedRootSignatureDesc();
};
[local] HRESULT __stdcall D3D12CreateRootSignatureDeserializer( [local] HRESULT __stdcall D3D12CreateRootSignatureDeserializer(
const void *data, SIZE_T data_size, REFIID iid, void **deserializer); const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
[local] HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
[local] HRESULT __stdcall D3D12SerializeRootSignature( [local] HRESULT __stdcall D3D12SerializeRootSignature(
const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc, const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,
D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob); D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc, ID3DBlob **blob, ID3DBlob **error_blob);
[local] HRESULT __stdcall D3D12SerializeVersionedRootSignature( [local] HRESULT __stdcall D3D12SerializeVersionedRootSignature(
const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc, const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,
ID3DBlob **blob, ID3DBlob **error_blob); ID3DBlob **blob, ID3DBlob **error_blob);
......
...@@ -28,3 +28,16 @@ interface ID3D12Debug : IUnknown ...@@ -28,3 +28,16 @@ interface ID3D12Debug : IUnknown
{ {
void EnableDebugLayer(); void EnableDebugLayer();
} }
[
uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304),
object,
local,
pointer_default(unique)
]
interface ID3D12Debug1 : IUnknown
{
void EnableDebugLayer();
void SetEnableGPUBasedValidation(BOOL enable);
void SetEnableSynchronizedCommandQueueValidation(BOOL enable);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment