mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-14 14:23:43 +00:00
Should be all u32 in this struct, not uint https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_barrier_subresource_range
5860 lines
263 KiB
Odin
5860 lines
263 KiB
Odin
// Bindings for [[ Direct3D 12 ; https://learn.microsoft.com/en-us/windows/win32/direct3d12/direct3d-12-graphics ]].
|
|
package directx_d3d12
|
|
|
|
foreign import "system:d3d12.lib"
|
|
|
|
import "../dxgi"
|
|
import "../d3d_common"
|
|
import win32 "core:sys/windows"
|
|
|
|
IUnknown :: dxgi.IUnknown
|
|
IUnknown_VTable :: dxgi.IUnknown_VTable
|
|
|
|
HANDLE :: dxgi.HANDLE
|
|
HMODULE :: dxgi.HMODULE
|
|
HRESULT :: dxgi.HRESULT
|
|
HWND :: dxgi.HWND
|
|
LUID :: dxgi.LUID
|
|
UUID :: dxgi.UUID
|
|
GUID :: dxgi.GUID
|
|
IID :: dxgi.IID
|
|
SIZE_T :: dxgi.SIZE_T
|
|
BOOL :: dxgi.BOOL
|
|
|
|
RECT :: dxgi.RECT
|
|
|
|
LPCSTR :: win32.LPCSTR
|
|
LPCWSTR :: win32.LPCWSTR
|
|
|
|
IBlob :: d3d_common.ID3DBlob
|
|
|
|
@(default_calling_convention="system", link_prefix="D3D12")
|
|
foreign d3d12 {
|
|
CreateDevice :: proc(pAdapter: ^IUnknown, MinimumFeatureLevel: FEATURE_LEVEL, riid: ^IID, ppDevice: ^rawptr) -> HRESULT ---
|
|
CreateRootSignatureDeserializer :: proc(pSrcData: rawptr, SrcDataSizeInBytes: SIZE_T, pRootSignatureDeserializerInterface: ^IID, ppRootSignatureDeserializer: ^rawptr) -> HRESULT ---
|
|
CreateVersionedRootSignatureDeserializer :: proc(pSrcData: rawptr, SrcDataSizeInBytes: SIZE_T, pRootSignatureDeserializerInterface: ^IID, ppRootSignatureDeserializer: ^rawptr) -> HRESULT ---
|
|
EnableExperimentalFeatures :: proc(NumFeatures: u32, pIIDs: [^]IID, pConfigurationStructs: rawptr, pConfigurationStructSizes: [^]u32) -> HRESULT ---
|
|
GetDebugInterface :: proc(riid: ^IID, ppvDebug: ^rawptr) -> HRESULT ---
|
|
SerializeRootSignature :: proc(pRootSignature: ^ROOT_SIGNATURE_DESC, Version: ROOT_SIGNATURE_VERSION, ppBlob: ^^IBlob, ppErrorBlob: ^^IBlob) -> HRESULT ---
|
|
SerializeVersionedRootSignature :: proc(pRootSignature: ^VERSIONED_ROOT_SIGNATURE_DESC, ppBlob: ^^IBlob, ppErrorBlob: ^^IBlob) -> HRESULT ---
|
|
}
|
|
|
|
WKPDID_D3DDebugObjectNameW_UUID_STRING :: "4CCA5FD8-921F-42C8-8566-70CAF2A9B741"
|
|
WKPDID_D3DDebugObjectNameW_UUID := &IID{0x4cca5fd8, 0x921f, 0x42c8, {0x85, 0x66, 0x70, 0xca, 0xf2, 0xa9, 0xb7, 0x41}}
|
|
|
|
WKPDID_CommentStringW_UUID_STRING :: "d0149dc0-90e8-4ec8-8144-e900ad266bb2"
|
|
WKPDID_CommentStringW_UUID := &IID{0xd0149dc0, 0x90e8, 0x4ec8, {0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2}}
|
|
|
|
DEBUG_D3D12_UUID_STRING :: "cf59a98c-a950-4326-91ef-9ba17bfd95"
|
|
DEBUG_D3D12_UUID := &IID{0xcf59a98c, 0xa950, 0x4326, {0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95}}
|
|
|
|
PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED_UUID_STRING :: "62b0084e-c70e-4daa-a109-30ff8d5a0482"
|
|
PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED_UUID := &IID{0x62b0084e, 0xc70e, 0x4daa, {0xa1, 0x09, 0x30, 0xff, 0x8d, 0x5a, 0x04, 0x82}}
|
|
|
|
TEXTURE_LAYOUT_ROW_MAJOR_UUID_STRING :: "b5dc234f-72bb-4bec-9705-8cf258df6b6c"
|
|
TEXTURE_LAYOUT_ROW_MAJOR_UUID := &IID{0xb5dc234f, 0x72bb, 0x4bec, {0x97, 0x05, 0x8c, 0xf2, 0x58, 0xdf, 0x6b, 0x6c}}
|
|
|
|
TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE_UUID_STRING :: "4c0f29e3-3f5f-4d35-84c9-bc0983b62c28"
|
|
TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE_UUID := &IID{0x4c0f29e3, 0x3f5f, 0x4d35, {0x84, 0xc9, 0xbc, 0x09, 0x83, 0xb6, 0x2c, 0x28}}
|
|
|
|
ExperimentalShaderModels_UUID_STRING :: "76f5573e-f13a-40f5-b297-81ce9e18933f"
|
|
ExperimentalShaderModels_UUID := &IID{0x76f5573e, 0xf13a, 0x40f5, {0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f}}
|
|
|
|
TiledResourceTier4_UUID_STRING :: "c9c4725f-a81a-4f56-8c5b-c51039d694fb"
|
|
TiledResourceTier4_UUID := &IID{0xc9c4725f, 0xa81a, 0x4f56, {0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb}}
|
|
|
|
|
|
DRIVER_TYPE :: enum i32 {
|
|
UNKNOWN = 0,
|
|
HARDWARE = 1,
|
|
REFERENCE = 2,
|
|
NULL = 3,
|
|
SOFTWARE = 4,
|
|
WARP = 5,
|
|
}
|
|
|
|
FEATURE_LEVEL :: enum i32 {
|
|
_1_0_CORE = 4096,
|
|
_9_1 = 37120,
|
|
_9_2 = 37376,
|
|
_9_3 = 37632,
|
|
_10_0 = 40960,
|
|
_10_1 = 41216,
|
|
_11_0 = 45056,
|
|
_11_1 = 45312,
|
|
_12_0 = 49152,
|
|
_12_1 = 49408,
|
|
_12_2 = 49664,
|
|
}
|
|
|
|
PRIMITIVE_TOPOLOGY :: enum i32 {
|
|
UNDEFINED = 0,
|
|
POINTLIST = 1,
|
|
LINELIST = 2,
|
|
LINESTRIP = 3,
|
|
TRIANGLELIST = 4,
|
|
TRIANGLESTRIP = 5,
|
|
LINELIST_ADJ = 10,
|
|
LINESTRIP_ADJ = 11,
|
|
TRIANGLELIST_ADJ = 12,
|
|
TRIANGLESTRIP_ADJ = 13,
|
|
_1_CONTROL_POINT_PATCHLIST = 33,
|
|
_2_CONTROL_POINT_PATCHLIST = 34,
|
|
_3_CONTROL_POINT_PATCHLIST = 35,
|
|
_4_CONTROL_POINT_PATCHLIST = 36,
|
|
_5_CONTROL_POINT_PATCHLIST = 37,
|
|
_6_CONTROL_POINT_PATCHLIST = 38,
|
|
_7_CONTROL_POINT_PATCHLIST = 39,
|
|
_8_CONTROL_POINT_PATCHLIST = 40,
|
|
_9_CONTROL_POINT_PATCHLIST = 41,
|
|
_10_CONTROL_POINT_PATCHLIST = 42,
|
|
_11_CONTROL_POINT_PATCHLIST = 43,
|
|
_12_CONTROL_POINT_PATCHLIST = 44,
|
|
_13_CONTROL_POINT_PATCHLIST = 45,
|
|
_14_CONTROL_POINT_PATCHLIST = 46,
|
|
_15_CONTROL_POINT_PATCHLIST = 47,
|
|
_16_CONTROL_POINT_PATCHLIST = 48,
|
|
_17_CONTROL_POINT_PATCHLIST = 49,
|
|
_18_CONTROL_POINT_PATCHLIST = 50,
|
|
_19_CONTROL_POINT_PATCHLIST = 51,
|
|
_20_CONTROL_POINT_PATCHLIST = 52,
|
|
_21_CONTROL_POINT_PATCHLIST = 53,
|
|
_22_CONTROL_POINT_PATCHLIST = 54,
|
|
_23_CONTROL_POINT_PATCHLIST = 55,
|
|
_24_CONTROL_POINT_PATCHLIST = 56,
|
|
_25_CONTROL_POINT_PATCHLIST = 57,
|
|
_26_CONTROL_POINT_PATCHLIST = 58,
|
|
_27_CONTROL_POINT_PATCHLIST = 59,
|
|
_28_CONTROL_POINT_PATCHLIST = 60,
|
|
_29_CONTROL_POINT_PATCHLIST = 61,
|
|
_30_CONTROL_POINT_PATCHLIST = 62,
|
|
_31_CONTROL_POINT_PATCHLIST = 63,
|
|
_32_CONTROL_POINT_PATCHLIST = 64,
|
|
}
|
|
|
|
PRIMITIVE :: enum i32 {
|
|
UNDEFINED = 0,
|
|
POINT = 1,
|
|
LINE = 2,
|
|
TRIANGLE = 3,
|
|
LINE_ADJ = 6,
|
|
TRIANGLE_ADJ = 7,
|
|
_1_CONTROL_POINT_PATCH = 8,
|
|
_2_CONTROL_POINT_PATCH = 9,
|
|
_3_CONTROL_POINT_PATCH = 10,
|
|
_4_CONTROL_POINT_PATCH = 11,
|
|
_5_CONTROL_POINT_PATCH = 12,
|
|
_6_CONTROL_POINT_PATCH = 13,
|
|
_7_CONTROL_POINT_PATCH = 14,
|
|
_8_CONTROL_POINT_PATCH = 15,
|
|
_9_CONTROL_POINT_PATCH = 16,
|
|
_10_CONTROL_POINT_PATCH = 17,
|
|
_11_CONTROL_POINT_PATCH = 18,
|
|
_12_CONTROL_POINT_PATCH = 19,
|
|
_13_CONTROL_POINT_PATCH = 20,
|
|
_14_CONTROL_POINT_PATCH = 21,
|
|
_15_CONTROL_POINT_PATCH = 22,
|
|
_16_CONTROL_POINT_PATCH = 23,
|
|
_17_CONTROL_POINT_PATCH = 24,
|
|
_18_CONTROL_POINT_PATCH = 25,
|
|
_19_CONTROL_POINT_PATCH = 26,
|
|
_20_CONTROL_POINT_PATCH = 27,
|
|
_21_CONTROL_POINT_PATCH = 28,
|
|
_22_CONTROL_POINT_PATCH = 29,
|
|
_23_CONTROL_POINT_PATCH = 30,
|
|
_24_CONTROL_POINT_PATCH = 31,
|
|
_25_CONTROL_POINT_PATCH = 32,
|
|
_26_CONTROL_POINT_PATCH = 33,
|
|
_27_CONTROL_POINT_PATCH = 34,
|
|
_28_CONTROL_POINT_PATCH = 35,
|
|
_29_CONTROL_POINT_PATCH = 36,
|
|
_30_CONTROL_POINT_PATCH = 37,
|
|
_31_CONTROL_POINT_PATCH = 38,
|
|
_32_CONTROL_POINT_PATCH = 39,
|
|
}
|
|
|
|
SRV_DIMENSION :: enum i32 {
|
|
UNKNOWN = 0,
|
|
BUFFER = 1,
|
|
TEXTURE1D = 2,
|
|
TEXTURE1DARRAY = 3,
|
|
TEXTURE2D = 4,
|
|
TEXTURE2DARRAY = 5,
|
|
TEXTURE2DMS = 6,
|
|
TEXTURE2DMSARRAY = 7,
|
|
TEXTURE3D = 8,
|
|
TEXTURECUBE = 9,
|
|
TEXTURECUBEARRAY = 10,
|
|
BUFFEREX = 11,
|
|
RAYTRACING_ACCELERATION_STRUCTURE = 11,
|
|
BUFFER_BYTE_OFFSET = 12,
|
|
}
|
|
|
|
PFN_DESTRUCTION_CALLBACK :: #type proc "c" (a0: rawptr)
|
|
|
|
|
|
ID3DDestructionNotifier_UUID_STRING :: "a06eb39a-50da-425b-8c31-4eecd6c270f3"
|
|
ID3DDestructionNotifier_UUID := &IID{0xa06eb39a, 0x50da, 0x425b, {0x8c, 0x31, 0x4e, 0xec, 0xd6, 0xc2, 0x70, 0xf3}}
|
|
ID3DDestructionNotifier :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3ddestructionnotifier_vtable: ^ID3DDestructionNotifier_VTable,
|
|
}
|
|
ID3DDestructionNotifier_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
RegisterDestructionCallback: proc "system" (this: ^ID3DDestructionNotifier, callbackFn: PFN_DESTRUCTION_CALLBACK, pData: rawptr, pCallbackID: ^u32) -> HRESULT,
|
|
UnregisterDestructionCallback: proc "system" (this: ^ID3DDestructionNotifier, callbackID: u32) -> HRESULT,
|
|
}
|
|
|
|
SHADER_VARIABLE_CLASS :: enum i32 {
|
|
SCALAR = 0,
|
|
VECTOR = 1,
|
|
MATRIX_ROWS = 2,
|
|
MATRIX_COLUMNS = 3,
|
|
OBJECT = 4,
|
|
STRUCT = 5,
|
|
INTERFACE_CLASS = 6,
|
|
INTERFACE_POINTER = 7,
|
|
}
|
|
|
|
SHADER_VARIABLE_FLAGS :: distinct bit_set[SHADER_VARIABLE_FLAG; u32]
|
|
SHADER_VARIABLE_FLAG :: enum u32 {
|
|
USERPACKED = 0,
|
|
USED = 1,
|
|
INTERFACE_POINTER = 2,
|
|
INTERFACE_PARAMETER = 3,
|
|
}
|
|
|
|
SHADER_VARIABLE_TYPE :: enum i32 {
|
|
VOID = 0,
|
|
BOOL = 1,
|
|
INT = 2,
|
|
FLOAT = 3,
|
|
STRING = 4,
|
|
TEXTURE = 5,
|
|
TEXTURE1D = 6,
|
|
TEXTURE2D = 7,
|
|
TEXTURE3D = 8,
|
|
TEXTURECUBE = 9,
|
|
SAMPLER = 10,
|
|
SAMPLER1D = 11,
|
|
SAMPLER2D = 12,
|
|
SAMPLER3D = 13,
|
|
SAMPLERCUBE = 14,
|
|
PIXELSHADER = 15,
|
|
VERTEXSHADER = 16,
|
|
PIXELFRAGMENT = 17,
|
|
VERTEXFRAGMENT = 18,
|
|
UINT = 19,
|
|
UINT8 = 20,
|
|
GEOMETRYSHADER = 21,
|
|
RASTERIZER = 22,
|
|
DEPTHSTENCIL = 23,
|
|
BLEND = 24,
|
|
BUFFER = 25,
|
|
CBUFFER = 26,
|
|
TBUFFER = 27,
|
|
TEXTURE1DARRAY = 28,
|
|
TEXTURE2DARRAY = 29,
|
|
RENDERTARGETVIEW = 30,
|
|
DEPTHSTENCILVIEW = 31,
|
|
TEXTURE2DMS = 32,
|
|
TEXTURE2DMSARRAY = 33,
|
|
TEXTURECUBEARRAY = 34,
|
|
HULLSHADER = 35,
|
|
DOMAINSHADER = 36,
|
|
INTERFACE_POINTER = 37,
|
|
COMPUTESHADER = 38,
|
|
DOUBLE = 39,
|
|
RWTEXTURE1D = 40,
|
|
RWTEXTURE1DARRAY = 41,
|
|
RWTEXTURE2D = 42,
|
|
RWTEXTURE2DARRAY = 43,
|
|
RWTEXTURE3D = 44,
|
|
RWBUFFER = 45,
|
|
BYTEADDRESS_BUFFER = 46,
|
|
RWBYTEADDRESS_BUFFER = 47,
|
|
STRUCTURED_BUFFER = 48,
|
|
RWSTRUCTURED_BUFFER = 49,
|
|
APPEND_STRUCTURED_BUFFER = 50,
|
|
CONSUME_STRUCTURED_BUFFER = 51,
|
|
MIN8FLOAT = 52,
|
|
MIN10FLOAT = 53,
|
|
MIN16FLOAT = 54,
|
|
MIN12INT = 55,
|
|
MIN16INT = 56,
|
|
MIN16UINT = 57,
|
|
}
|
|
|
|
SHADER_INPUT_FLAGS :: distinct bit_set[SHADER_INPUT_FLAG; u32]
|
|
SHADER_INPUT_FLAG :: enum u32 {
|
|
USERPACKED = 0,
|
|
COMPARISON_SAMPLER = 1,
|
|
TEXTURE_COMPONENT_0 = 2,
|
|
TEXTURE_COMPONENT_1 = 3,
|
|
UNUSED = 4,
|
|
}
|
|
|
|
|
|
SHADER_INPUT_TYPE :: enum i32 {
|
|
CBUFFER = 0,
|
|
TBUFFER = 1,
|
|
TEXTURE = 2,
|
|
SAMPLER = 3,
|
|
UAV_RWTYPED = 4,
|
|
STRUCTURED = 5,
|
|
UAV_RWSTRUCTURED = 6,
|
|
BYTEADDRESS = 7,
|
|
UAV_RWBYTEADDRESS = 8,
|
|
UAV_APPEND_STRUCTURED = 9,
|
|
UAV_CONSUME_STRUCTURED = 10,
|
|
UAV_RWSTRUCTURED_WITH_COUNTER = 11,
|
|
RTACCELERATIONSTRUCTURE = 12,
|
|
UAV_FEEDBACKTEXTURE = 13,
|
|
}
|
|
|
|
SHADER_CBUFFER_FLAGS :: distinct bit_set[SHADER_CBUFFER_FLAG; u32]
|
|
SHADER_CBUFFER_FLAG :: enum u32 {
|
|
USERPACKED = 0,
|
|
}
|
|
|
|
CBUFFER_TYPE :: enum i32 {
|
|
CBUFFER = 0,
|
|
TBUFFER = 1,
|
|
INTERFACE_POINTERS = 2,
|
|
RESOURCE_BIND_INFO = 3,
|
|
}
|
|
|
|
NAME :: enum i32 {
|
|
UNDEFINED = 0,
|
|
POSITION = 1,
|
|
CLIP_DISTANCE = 2,
|
|
CULL_DISTANCE = 3,
|
|
RENDER_TARGET_ARRAY_INDEX = 4,
|
|
VIEWPORT_ARRAY_INDEX = 5,
|
|
VERTEX_ID = 6,
|
|
PRIMITIVE_ID = 7,
|
|
INSTANCE_ID = 8,
|
|
IS_FRONT_FACE = 9,
|
|
SAMPLE_INDEX = 10,
|
|
FINAL_QUAD_EDGE_TESSFACTOR = 11,
|
|
FINAL_QUAD_INSIDE_TESSFACTOR = 12,
|
|
FINAL_TRI_EDGE_TESSFACTOR = 13,
|
|
FINAL_TRI_INSIDE_TESSFACTOR = 14,
|
|
FINAL_LINE_DETAIL_TESSFACTOR = 15,
|
|
FINAL_LINE_DENSITY_TESSFACTOR = 16,
|
|
BARYCENTRICS = 23,
|
|
SHADINGRATE = 24,
|
|
CULLPRIMITIVE = 25,
|
|
TARGET = 64,
|
|
DEPTH = 65,
|
|
COVERAGE = 66,
|
|
DEPTH_GREATER_EQUAL = 67,
|
|
DEPTH_LESS_EQUAL = 68,
|
|
STENCIL_REF = 69,
|
|
INNER_COVERAGE = 70,
|
|
}
|
|
|
|
RESOURCE_RETURN_TYPE :: enum i32 {
|
|
UNORM = 1,
|
|
SNORM = 2,
|
|
SINT = 3,
|
|
UINT = 4,
|
|
FLOAT = 5,
|
|
MIXED = 6,
|
|
DOUBLE = 7,
|
|
CONTINUED = 8,
|
|
}
|
|
|
|
REGISTER_COMPONENT_TYPE :: enum i32 {
|
|
UNKNOWN = 0,
|
|
UINT32 = 1,
|
|
SINT32 = 2,
|
|
FLOAT32 = 3,
|
|
}
|
|
|
|
TESSELLATOR_DOMAIN :: enum i32 {
|
|
UNDEFINED = 0,
|
|
ISOLINE = 1,
|
|
TRI = 2,
|
|
QUAD = 3,
|
|
}
|
|
|
|
TESSELLATOR_PARTITIONING :: enum i32 {
|
|
UNDEFINED = 0,
|
|
INTEGER = 1,
|
|
POW2 = 2,
|
|
FRACTIONAL_ODD = 3,
|
|
FRACTIONAL_EVEN = 4,
|
|
}
|
|
|
|
TESSELLATOR_OUTPUT_PRIMITIVE :: enum i32 {
|
|
UNDEFINED = 0,
|
|
POINT = 1,
|
|
LINE = 2,
|
|
TRIANGLE_CW = 3,
|
|
TRIANGLE_CCW = 4,
|
|
}
|
|
|
|
MIN_PRECISION :: enum i32 {
|
|
DEFAULT = 0,
|
|
FLOAT_16 = 1,
|
|
FLOAT_2_8 = 2,
|
|
RESERVED = 3,
|
|
SINT_16 = 4,
|
|
UINT_16 = 5,
|
|
ANY_16 = 240,
|
|
ANY_10 = 241,
|
|
}
|
|
|
|
INTERPOLATION_MODE :: enum i32 {
|
|
UNDEFINED = 0,
|
|
CONSTANT = 1,
|
|
LINEAR = 2,
|
|
LINEAR_CENTROID = 3,
|
|
LINEAR_NOPERSPECTIVE = 4,
|
|
LINEAR_NOPERSPECTIVE_CENTROID = 5,
|
|
LINEAR_SAMPLE = 6,
|
|
LINEAR_NOPERSPECTIVE_SAMPLE = 7,
|
|
}
|
|
|
|
PARAMETER_FLAGS :: distinct bit_set[PARAMETER_FLAG; u32]
|
|
PARAMETER_FLAG :: enum u32 {
|
|
IN = 0,
|
|
OUT = 1,
|
|
}
|
|
|
|
GPU_VIRTUAL_ADDRESS :: u64
|
|
|
|
COMMAND_LIST_TYPE :: enum i32 {
|
|
DIRECT = 0,
|
|
BUNDLE = 1,
|
|
COMPUTE = 2,
|
|
COPY = 3,
|
|
VIDEO_DECODE = 4,
|
|
VIDEO_PROCESS = 5,
|
|
VIDEO_ENCODE = 6,
|
|
}
|
|
|
|
COMMAND_QUEUE_FLAGS :: distinct bit_set[COMMAND_QUEUE_FLAG; u32]
|
|
COMMAND_QUEUE_FLAG :: enum u32 {
|
|
DISABLE_GPU_TIMEOUT = 0,
|
|
}
|
|
|
|
COMMAND_QUEUE_PRIORITY :: enum i32 {
|
|
NORMAL = 0,
|
|
HIGH = 100,
|
|
GLOBAL_REALTIME = 10000,
|
|
}
|
|
|
|
COMMAND_QUEUE_DESC :: struct {
|
|
Type: COMMAND_LIST_TYPE,
|
|
Priority: i32,
|
|
Flags: COMMAND_QUEUE_FLAGS,
|
|
NodeMask: u32,
|
|
}
|
|
|
|
PRIMITIVE_TOPOLOGY_TYPE :: enum i32 {
|
|
UNDEFINED = 0,
|
|
POINT = 1,
|
|
LINE = 2,
|
|
TRIANGLE = 3,
|
|
PATCH = 4,
|
|
}
|
|
|
|
INPUT_CLASSIFICATION :: enum i32 {
|
|
PER_VERTEX_DATA = 0,
|
|
PER_INSTANCE_DATA = 1,
|
|
}
|
|
|
|
INPUT_ELEMENT_DESC :: struct {
|
|
SemanticName: LPCSTR,
|
|
SemanticIndex: u32,
|
|
Format: dxgi.FORMAT,
|
|
InputSlot: u32,
|
|
AlignedByteOffset: u32,
|
|
InputSlotClass: INPUT_CLASSIFICATION,
|
|
InstanceDataStepRate: u32,
|
|
}
|
|
|
|
FILL_MODE :: enum i32 {
|
|
WIREFRAME = 2,
|
|
SOLID = 3,
|
|
}
|
|
|
|
CULL_MODE :: enum i32 {
|
|
NONE = 1,
|
|
FRONT = 2,
|
|
BACK = 3,
|
|
}
|
|
|
|
SO_DECLARATION_ENTRY :: struct {
|
|
Stream: u32,
|
|
SemanticName: LPCSTR,
|
|
SemanticIndex: u32,
|
|
StartComponent: u8,
|
|
ComponentCount: u8,
|
|
OutputSlot: u8,
|
|
}
|
|
|
|
VIEWPORT :: struct {
|
|
TopLeftX: f32,
|
|
TopLeftY: f32,
|
|
Width: f32,
|
|
Height: f32,
|
|
MinDepth: f32,
|
|
MaxDepth: f32,
|
|
}
|
|
|
|
BOX :: struct {
|
|
left: u32,
|
|
top: u32,
|
|
front: u32,
|
|
right: u32,
|
|
bottom: u32,
|
|
back: u32,
|
|
}
|
|
|
|
COMPARISON_FUNC :: enum i32 {
|
|
NEVER = 1,
|
|
LESS = 2,
|
|
EQUAL = 3,
|
|
LESS_EQUAL = 4,
|
|
GREATER = 5,
|
|
NOT_EQUAL = 6,
|
|
GREATER_EQUAL = 7,
|
|
ALWAYS = 8,
|
|
}
|
|
|
|
DEPTH_WRITE_MASK :: enum i32 {
|
|
ZERO = 0,
|
|
ALL = 1,
|
|
}
|
|
|
|
STENCIL_OP :: enum i32 {
|
|
KEEP = 1,
|
|
ZERO = 2,
|
|
REPLACE = 3,
|
|
INCR_SAT = 4,
|
|
DECR_SAT = 5,
|
|
INVERT = 6,
|
|
INCR = 7,
|
|
DECR = 8,
|
|
}
|
|
|
|
DEPTH_STENCILOP_DESC :: struct {
|
|
StencilFailOp: STENCIL_OP,
|
|
StencilDepthFailOp: STENCIL_OP,
|
|
StencilPassOp: STENCIL_OP,
|
|
StencilFunc: COMPARISON_FUNC,
|
|
}
|
|
|
|
DEPTH_STENCIL_DESC :: struct {
|
|
DepthEnable: BOOL,
|
|
DepthWriteMask: DEPTH_WRITE_MASK,
|
|
DepthFunc: COMPARISON_FUNC,
|
|
StencilEnable: BOOL,
|
|
StencilReadMask: u8,
|
|
StencilWriteMask: u8,
|
|
FrontFace: DEPTH_STENCILOP_DESC,
|
|
BackFace: DEPTH_STENCILOP_DESC,
|
|
}
|
|
|
|
DEPTH_STENCIL_DESC1 :: struct {
|
|
DepthEnable: BOOL,
|
|
DepthWriteMask: DEPTH_WRITE_MASK,
|
|
DepthFunc: COMPARISON_FUNC,
|
|
StencilEnable: BOOL,
|
|
StencilReadMask: u8,
|
|
StencilWriteMask: u8,
|
|
FrontFace: DEPTH_STENCILOP_DESC,
|
|
BackFace: DEPTH_STENCILOP_DESC,
|
|
DepthBoundsTestEnable: BOOL,
|
|
}
|
|
|
|
BLEND :: enum i32 {
|
|
ZERO = 1,
|
|
ONE = 2,
|
|
SRC_COLOR = 3,
|
|
INV_SRC_COLOR = 4,
|
|
SRC_ALPHA = 5,
|
|
INV_SRC_ALPHA = 6,
|
|
DEST_ALPHA = 7,
|
|
INV_DEST_ALPHA = 8,
|
|
DEST_COLOR = 9,
|
|
INV_DEST_COLOR = 10,
|
|
SRC_ALPHA_SAT = 11,
|
|
BLEND_FACTOR = 14,
|
|
INV_BLEND_FACTOR = 15,
|
|
SRC1_COLOR = 16,
|
|
INV_SRC1_COLOR = 17,
|
|
SRC1_ALPHA = 18,
|
|
INV_SRC1_ALPHA = 19,
|
|
}
|
|
|
|
BLEND_OP :: enum i32 {
|
|
ADD = 1,
|
|
SUBTRACT = 2,
|
|
REV_SUBTRACT = 3,
|
|
MIN = 4,
|
|
MAX = 5,
|
|
}
|
|
|
|
COLOR_WRITE_ENABLE_MASK :: distinct bit_set[COLOR_WRITE_ENABLE; u32]
|
|
|
|
COLOR_WRITE_ENABLE_RED :: COLOR_WRITE_ENABLE_MASK{.RED}
|
|
COLOR_WRITE_ENABLE_GREEN :: COLOR_WRITE_ENABLE_MASK{.GREEN}
|
|
COLOR_WRITE_ENABLE_BLUE :: COLOR_WRITE_ENABLE_MASK{.BLUE}
|
|
COLOR_WRITE_ENABLE_ALPHA :: COLOR_WRITE_ENABLE_MASK{.ALPHA}
|
|
COLOR_WRITE_ENABLE_ALL :: COLOR_WRITE_ENABLE_MASK{.RED, .GREEN, .BLUE, .ALPHA}
|
|
|
|
COLOR_WRITE_ENABLE :: enum i32 {
|
|
RED = 0,
|
|
GREEN = 1,
|
|
BLUE = 2,
|
|
ALPHA = 3,
|
|
}
|
|
|
|
LOGIC_OP :: enum i32 {
|
|
CLEAR = 0,
|
|
SET = 1,
|
|
COPY = 2,
|
|
COPY_INVERTED = 3,
|
|
NOOP = 4,
|
|
INVERT = 5,
|
|
AND = 6,
|
|
NAND = 7,
|
|
OR = 8,
|
|
NOR = 9,
|
|
XOR = 10,
|
|
EQUIV = 11,
|
|
AND_REVERSE = 12,
|
|
AND_INVERTED = 13,
|
|
OR_REVERSE = 14,
|
|
OR_INVERTED = 15,
|
|
}
|
|
|
|
RENDER_TARGET_BLEND_DESC :: struct {
|
|
BlendEnable: BOOL,
|
|
LogicOpEnable: BOOL,
|
|
SrcBlend: BLEND,
|
|
DestBlend: BLEND,
|
|
BlendOp: BLEND_OP,
|
|
SrcBlendAlpha: BLEND,
|
|
DestBlendAlpha: BLEND,
|
|
BlendOpAlpha: BLEND_OP,
|
|
LogicOp: LOGIC_OP,
|
|
RenderTargetWriteMask: u8,
|
|
}
|
|
|
|
BLEND_DESC :: struct {
|
|
AlphaToCoverageEnable: BOOL,
|
|
IndependentBlendEnable: BOOL,
|
|
RenderTarget: [8]RENDER_TARGET_BLEND_DESC,
|
|
}
|
|
|
|
CONSERVATIVE_RASTERIZATION_MODE :: enum i32 {
|
|
OFF = 0,
|
|
ON = 1,
|
|
}
|
|
|
|
RASTERIZER_DESC :: struct {
|
|
FillMode: FILL_MODE,
|
|
CullMode: CULL_MODE,
|
|
FrontCounterClockwise: BOOL,
|
|
DepthBias: i32,
|
|
DepthBiasClamp: f32,
|
|
SlopeScaledDepthBias: f32,
|
|
DepthClipEnable: BOOL,
|
|
MultisampleEnable: BOOL,
|
|
AntialiasedLineEnable: BOOL,
|
|
ForcedSampleCount: u32,
|
|
ConservativeRaster: CONSERVATIVE_RASTERIZATION_MODE,
|
|
}
|
|
|
|
|
|
IObject_UUID_STRING :: "c4fec28f-7966-4e95-9f94-f431cb56c3b8"
|
|
IObject_UUID := &IID{0xc4fec28f, 0x7966, 0x4e95, {0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8}}
|
|
IObject :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12object_vtable: ^IObject_VTable,
|
|
}
|
|
IObject_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetPrivateData: proc "system" (this: ^IObject, guid: ^GUID, pDataSize: ^u32, pData: rawptr) -> HRESULT,
|
|
SetPrivateData: proc "system" (this: ^IObject, guid: ^GUID, DataSize: u32, pData: rawptr) -> HRESULT,
|
|
SetPrivateDataInterface: proc "system" (this: ^IObject, guid: ^GUID, pData: ^IUnknown) -> HRESULT,
|
|
SetName: proc "system" (this: ^IObject, Name: LPCWSTR) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDeviceChild_UUID_STRING :: "905db94b-a00c-4140-9df5-2b64ca9ea357"
|
|
IDeviceChild_UUID := &IID{0x905db94b, 0xa00c, 0x4140, {0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57}}
|
|
IDeviceChild :: struct #raw_union {
|
|
#subtype id3d12object: IObject,
|
|
using id3d12devicechild_vtable: ^IDeviceChild_VTable,
|
|
}
|
|
IDeviceChild_VTable :: struct {
|
|
using id3d12object_vtable: IObject_VTable,
|
|
GetDevice: proc "system" (this: ^IDeviceChild, riid: ^IID, ppvDevice: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
|
|
IRootSignature_UUID_STRING :: "c54a6b66-72df-4ee8-8be5-a946a1429214"
|
|
IRootSignature_UUID := &IID{0xc54a6b66, 0x72df, 0x4ee8, {0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14}}
|
|
IRootSignature :: struct {
|
|
using id3d12devicechild: IDeviceChild,
|
|
}
|
|
|
|
SHADER_BYTECODE :: struct {
|
|
pShaderBytecode: rawptr,
|
|
BytecodeLength: SIZE_T,
|
|
}
|
|
|
|
STREAM_OUTPUT_DESC :: struct {
|
|
pSODeclaration: ^SO_DECLARATION_ENTRY,
|
|
NumEntries: u32,
|
|
pBufferStrides: ^u32,
|
|
NumStrides: u32,
|
|
RasterizedStream: u32,
|
|
}
|
|
|
|
INPUT_LAYOUT_DESC :: struct {
|
|
pInputElementDescs: [^]INPUT_ELEMENT_DESC `fmt:"v,NumElements"`,
|
|
NumElements: u32,
|
|
}
|
|
|
|
INDEX_BUFFER_STRIP_CUT_VALUE :: enum i32 {
|
|
DISABLED = 0,
|
|
_0xFFFF = 1,
|
|
_0xFFFFFFFF = 2,
|
|
}
|
|
|
|
CACHED_PIPELINE_STATE :: struct {
|
|
pCachedBlob: rawptr,
|
|
CachedBlobSizeInBytes: SIZE_T,
|
|
}
|
|
|
|
PIPELINE_STATE_FLAGS :: distinct bit_set[PIPELINE_STATE_FLAG; u32]
|
|
PIPELINE_STATE_FLAG :: enum u32 {
|
|
TOOL_DEBUG = 0,
|
|
}
|
|
|
|
GRAPHICS_PIPELINE_STATE_DESC :: struct {
|
|
pRootSignature: ^IRootSignature,
|
|
VS: SHADER_BYTECODE,
|
|
PS: SHADER_BYTECODE,
|
|
DS: SHADER_BYTECODE,
|
|
HS: SHADER_BYTECODE,
|
|
GS: SHADER_BYTECODE,
|
|
StreamOutput: STREAM_OUTPUT_DESC,
|
|
BlendState: BLEND_DESC,
|
|
SampleMask: u32,
|
|
RasterizerState: RASTERIZER_DESC,
|
|
DepthStencilState: DEPTH_STENCIL_DESC,
|
|
InputLayout: INPUT_LAYOUT_DESC,
|
|
IBStripCutValue: INDEX_BUFFER_STRIP_CUT_VALUE,
|
|
PrimitiveTopologyType: PRIMITIVE_TOPOLOGY_TYPE,
|
|
NumRenderTargets: u32,
|
|
RTVFormats: [8]dxgi.FORMAT,
|
|
DSVFormat: dxgi.FORMAT,
|
|
SampleDesc: dxgi.SAMPLE_DESC,
|
|
NodeMask: u32,
|
|
CachedPSO: CACHED_PIPELINE_STATE,
|
|
Flags: PIPELINE_STATE_FLAGS,
|
|
}
|
|
|
|
COMPUTE_PIPELINE_STATE_DESC :: struct {
|
|
pRootSignature: ^IRootSignature,
|
|
CS: SHADER_BYTECODE,
|
|
NodeMask: u32,
|
|
CachedPSO: CACHED_PIPELINE_STATE,
|
|
Flags: PIPELINE_STATE_FLAGS,
|
|
}
|
|
|
|
RT_FORMAT_ARRAY :: struct {
|
|
RTFormats: [8]dxgi.FORMAT,
|
|
NumRenderTargets: u32,
|
|
}
|
|
|
|
PIPELINE_STATE_STREAM_DESC :: struct {
|
|
SizeInBytes: SIZE_T,
|
|
pPipelineStateSubobjectStream: rawptr,
|
|
}
|
|
|
|
PIPELINE_STATE_SUBOBJECT_TYPE :: enum i32 {
|
|
ROOT_SIGNATURE = 0,
|
|
VS = 1,
|
|
PS = 2,
|
|
DS = 3,
|
|
HS = 4,
|
|
GS = 5,
|
|
CS = 6,
|
|
STREAM_OUTPUT = 7,
|
|
BLEND = 8,
|
|
SAMPLE_MASK = 9,
|
|
RASTERIZER = 10,
|
|
DEPTH_STENCIL = 11,
|
|
INPUT_LAYOUT = 12,
|
|
IB_STRIP_CUT_VALUE = 13,
|
|
PRIMITIVE_TOPOLOGY = 14,
|
|
RENDER_TARGET_FORMATS = 15,
|
|
DEPTH_STENCIL_FORMAT = 16,
|
|
SAMPLE_DESC = 17,
|
|
NODE_MASK = 18,
|
|
CACHED_PSO = 19,
|
|
FLAGS = 20,
|
|
DEPTH_STENCIL1 = 21,
|
|
VIEW_INSTANCING = 22,
|
|
AS = 24,
|
|
MS = 25,
|
|
MAX_VALID = 26,
|
|
}
|
|
|
|
FEATURE :: enum i32 {
|
|
OPTIONS = 0,
|
|
ARCHITECTURE = 1,
|
|
FEATURE_LEVELS = 2,
|
|
FORMAT_SUPPORT = 3,
|
|
MULTISAMPLE_QUALITY_LEVELS = 4,
|
|
FORMAT_INFO = 5,
|
|
GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
|
|
SHADER_MODEL = 7,
|
|
OPTIONS1 = 8,
|
|
PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
|
|
ROOT_SIGNATURE = 12,
|
|
ARCHITECTURE1 = 16,
|
|
OPTIONS2 = 18,
|
|
SHADER_CACHE = 19,
|
|
COMMAND_QUEUE_PRIORITY = 20,
|
|
OPTIONS3 = 21,
|
|
EXISTING_HEAPS = 22,
|
|
OPTIONS4 = 23,
|
|
SERIALIZATION = 24,
|
|
CROSS_NODE = 25,
|
|
OPTIONS5 = 27,
|
|
OPTIONS6 = 30,
|
|
QUERY_META_COMMAND = 31,
|
|
OPTIONS7 = 32,
|
|
PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
|
|
PROTECTED_RESOURCE_SESSION_TYPES = 34,
|
|
OPTIONS8 = 36,
|
|
OPTIONS9 = 37,
|
|
WAVE_MMA = 38,
|
|
OPTIONS10 = 39,
|
|
OPTIONS11 = 40,
|
|
OPTIONS12 = 41,
|
|
OPTIONS13 = 42,
|
|
OPTIONS14 = 43,
|
|
OPTIONS15 = 44,
|
|
OPTIONS16 = 45,
|
|
OPTIONS17 = 46,
|
|
OPTIONS18 = 47,
|
|
OPTIONS19 = 48,
|
|
OPTIONS20 = 49,
|
|
PREDICATION = 50,
|
|
PLACED_RESOURCE_SUPPORT_INFO = 51,
|
|
HARDWARE_COPY = 52,
|
|
OPTIONS21 = 53,
|
|
TIGHT_ALIGNMENT = 54,
|
|
APPLICATION_SPECIFIC_DRIVER_STATE = 56,
|
|
BYTECODE_BYPASS_HASH_SUPPORTED = 57,
|
|
SHADER_CACHE_ABI_SUPPORT = 61,
|
|
BARRIER_LAYOUT = 64,
|
|
OPTIONS22 = 65,
|
|
}
|
|
|
|
SHADER_MIN_PRECISION_SUPPORT :: distinct bit_set[SHADER_MIN_PRECISION_SUPPORT_FLAG; u32]
|
|
SHADER_MIN_PRECISION_SUPPORT_FLAG :: enum i32 {
|
|
_10_BIT,
|
|
_16_BIT,
|
|
}
|
|
|
|
TILED_RESOURCES_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
_3 = 3,
|
|
_4 = 4,
|
|
}
|
|
|
|
RESOURCE_BINDING_TIER :: enum i32 {
|
|
_1 = 1,
|
|
_2 = 2,
|
|
_3 = 3,
|
|
}
|
|
|
|
CONSERVATIVE_RASTERIZATION_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
_3 = 3,
|
|
}
|
|
|
|
FORMAT_SUPPORT1 :: distinct bit_set[FORMAT_SUPPORT1_FLAG; u32]
|
|
FORMAT_SUPPORT1_FLAG :: enum i32 {
|
|
BUFFER = 0,
|
|
IA_VERTEX_BUFFER = 1,
|
|
IA_INDEX_BUFFER = 2,
|
|
SO_BUFFER = 3,
|
|
TEXTURE1D = 4,
|
|
TEXTURE2D = 5,
|
|
TEXTURE3D = 6,
|
|
TEXTURECUBE = 7,
|
|
SHADER_LOAD = 8,
|
|
SHADER_SAMPLE = 9,
|
|
SHADER_SAMPLE_COMPARISON = 10,
|
|
SHADER_SAMPLE_MONO_TEXT = 11,
|
|
MIP = 12,
|
|
|
|
RENDER_TARGET = 14,
|
|
BLENDABLE = 15,
|
|
DEPTH_STENCIL = 16,
|
|
|
|
MULTISAMPLE_RESOLVE = 18,
|
|
DISPLAY = 19,
|
|
CAST_WITHIN_BIT_LAYOUT = 20,
|
|
MULTISAMPLE_RENDERTARGET = 21,
|
|
MULTISAMPLE_LOAD = 22,
|
|
SHADER_GATHER = 23,
|
|
BACK_BUFFER_CAST = 24,
|
|
TYPED_UNORDERED_ACCESS_VIEW = 25,
|
|
SHADER_GATHER_COMPARISON = 26,
|
|
DECODER_OUTPUT = 27,
|
|
VIDEO_PROCESSOR_OUTPUT = 28,
|
|
VIDEO_PROCESSOR_INPUT = 29,
|
|
VIDEO_ENCODER = 30,
|
|
}
|
|
|
|
FORMAT_SUPPORT2 :: distinct bit_set[FORMAT_SUPPORT2_FLAG; u32]
|
|
FORMAT_SUPPORT2_FLAG :: enum i32 {
|
|
UAV_ATOMIC_ADD = 0,
|
|
UAV_ATOMIC_BITWISE_OPS = 1,
|
|
UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 2,
|
|
UAV_ATOMIC_EXCHANGE = 3,
|
|
UAV_ATOMIC_SIGNED_MIN_OR_MAX = 4,
|
|
UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 5,
|
|
UAV_TYPED_LOAD = 6,
|
|
UAV_TYPED_STORE = 7,
|
|
OUTPUT_MERGER_LOGIC_OP = 8,
|
|
TILED = 9,
|
|
|
|
MULTIPLANE_OVERLAY = 14,
|
|
SAMPLER_FEEDBACK = 15,
|
|
}
|
|
|
|
MULTISAMPLE_QUALITY_LEVEL_FLAGS :: distinct bit_set[MULTISAMPLE_QUALITY_LEVEL_FLAG; u32]
|
|
MULTISAMPLE_QUALITY_LEVEL_FLAG :: enum u32 {
|
|
TILED_RESOURCE = 0,
|
|
}
|
|
|
|
CROSS_NODE_SHARING_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1_EMULATED = 1,
|
|
_1 = 2,
|
|
_2 = 3,
|
|
_3 = 4,
|
|
}
|
|
|
|
RESOURCE_HEAP_TIER :: enum i32 {
|
|
_1 = 1,
|
|
_2 = 2,
|
|
}
|
|
|
|
PROGRAMMABLE_SAMPLE_POSITIONS_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
}
|
|
|
|
VIEW_INSTANCING_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
_3 = 3,
|
|
}
|
|
|
|
WORK_GRAPHS_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1_0 = 10,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS :: struct {
|
|
DoublePrecisionFloatShaderOps: BOOL,
|
|
OutputMergerLogicOp: BOOL,
|
|
MinPrecisionSupport: SHADER_MIN_PRECISION_SUPPORT,
|
|
TiledResourcesTier: TILED_RESOURCES_TIER,
|
|
ResourceBindingTier: RESOURCE_BINDING_TIER,
|
|
PSSpecifiedStencilRefSupported: BOOL,
|
|
TypedUAVLoadAdditionalFormats: BOOL,
|
|
ROVsSupported: BOOL,
|
|
ConservativeRasterizationTier: CONSERVATIVE_RASTERIZATION_TIER,
|
|
MaxGPUVirtualAddressBitsPerResource: u32,
|
|
StandardSwizzle64KBSupported: BOOL,
|
|
CrossNodeSharingTier: CROSS_NODE_SHARING_TIER,
|
|
CrossAdapterRowMajorTextureSupported: BOOL,
|
|
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation: BOOL,
|
|
ResourceHeapTier: RESOURCE_HEAP_TIER,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS1 :: struct {
|
|
WaveOps: BOOL,
|
|
WaveLaneCountMin: u32,
|
|
WaveLaneCountMax: u32,
|
|
TotalLaneCount: u32,
|
|
ExpandedComputeResourceStates: BOOL,
|
|
Int64ShaderOps: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS2 :: struct {
|
|
DepthBoundsTestSupported: BOOL,
|
|
ProgrammableSamplePositionsTier: PROGRAMMABLE_SAMPLE_POSITIONS_TIER,
|
|
}
|
|
|
|
ROOT_SIGNATURE_VERSION :: enum i32 {
|
|
_1 = 1,
|
|
_1_0 = 1,
|
|
_1_1 = 2,
|
|
}
|
|
|
|
FEATURE_DATA_ROOT_SIGNATURE :: struct {
|
|
HighestVersion: ROOT_SIGNATURE_VERSION,
|
|
}
|
|
|
|
FEATURE_DATA_ARCHITECTURE :: struct {
|
|
NodeIndex: u32,
|
|
TileBasedRenderer: BOOL,
|
|
UMA: BOOL,
|
|
CacheCoherentUMA: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_ARCHITECTURE1 :: struct {
|
|
NodeIndex: u32,
|
|
TileBasedRenderer: BOOL,
|
|
UMA: BOOL,
|
|
CacheCoherentUMA: BOOL,
|
|
IsolatedMMU: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_FEATURE_LEVELS :: struct {
|
|
NumFeatureLevels: u32,
|
|
pFeatureLevelsRequested: ^FEATURE_LEVEL,
|
|
MaxSupportedFeatureLevel: FEATURE_LEVEL,
|
|
}
|
|
|
|
SHADER_MODEL :: enum i32 {
|
|
_5_1 = 81,
|
|
_6_0 = 96,
|
|
_6_1 = 97,
|
|
_6_2 = 98,
|
|
_6_3 = 99,
|
|
_6_4 = 100,
|
|
_6_5 = 101,
|
|
_6_6 = 102,
|
|
_6_7 = 103,
|
|
}
|
|
|
|
FEATURE_DATA_SHADER_MODEL :: struct {
|
|
HighestShaderModel: SHADER_MODEL,
|
|
}
|
|
|
|
FEATURE_DATA_FORMAT_SUPPORT :: struct {
|
|
Format: dxgi.FORMAT,
|
|
Support1: FORMAT_SUPPORT1,
|
|
Support2: FORMAT_SUPPORT2,
|
|
}
|
|
|
|
FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS :: struct {
|
|
Format: dxgi.FORMAT,
|
|
SampleCount: u32,
|
|
Flags: MULTISAMPLE_QUALITY_LEVEL_FLAGS,
|
|
NumQualityLevels: u32,
|
|
}
|
|
|
|
FEATURE_DATA_FORMAT_INFO :: struct {
|
|
Format: dxgi.FORMAT,
|
|
PlaneCount: u8,
|
|
}
|
|
|
|
FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT :: struct {
|
|
MaxGPUVirtualAddressBitsPerResource: u32,
|
|
MaxGPUVirtualAddressBitsPerProcess: u32,
|
|
}
|
|
|
|
SHADER_CACHE_SUPPORT_FLAGS :: distinct bit_set[SHADER_CACHE_SUPPORT_FLAG; u32]
|
|
SHADER_CACHE_SUPPORT_FLAG :: enum u32 {
|
|
SINGLE_PSO = 0,
|
|
LIBRARY = 1,
|
|
AUTOMATIC_INPROC_CACHE = 2,
|
|
AUTOMATIC_DISK_CACHE = 3,
|
|
DRIVER_MANAGED_CACHE = 4,
|
|
}
|
|
|
|
FEATURE_DATA_SHADER_CACHE :: struct {
|
|
SupportFlags: SHADER_CACHE_SUPPORT_FLAGS,
|
|
}
|
|
|
|
FEATURE_DATA_COMMAND_QUEUE_PRIORITY :: struct {
|
|
CommandListType: COMMAND_LIST_TYPE,
|
|
Priority: u32,
|
|
PriorityForTypeIsSupported: BOOL,
|
|
}
|
|
|
|
COMMAND_LIST_SUPPORT_FLAGS :: distinct bit_set[COMMAND_LIST_SUPPORT_FLAG; u32]
|
|
COMMAND_LIST_SUPPORT_FLAG :: enum u32 {
|
|
DIRECT = 0,
|
|
BUNDLE = 1,
|
|
COMPUTE = 2,
|
|
COPY = 3,
|
|
VIDEO_DECODE = 4,
|
|
VIDEO_PROCESS = 5,
|
|
VIDEO_ENCODE = 6,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS3 :: struct {
|
|
CopyQueueTimestampQueriesSupported: BOOL,
|
|
CastingFullyTypedFormatSupported: BOOL,
|
|
WriteBufferImmediateSupportFlags: COMMAND_LIST_SUPPORT_FLAGS,
|
|
ViewInstancingTier: VIEW_INSTANCING_TIER,
|
|
BarycentricsSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_EXISTING_HEAPS :: struct {
|
|
Supported: BOOL,
|
|
}
|
|
|
|
SHARED_RESOURCE_COMPATIBILITY_TIER :: enum i32 {
|
|
_0 = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS4 :: struct {
|
|
MSAA64KBAlignedTextureSupported: BOOL,
|
|
SharedResourceCompatibilityTier: SHARED_RESOURCE_COMPATIBILITY_TIER,
|
|
Native16BitShaderOpsSupported: BOOL,
|
|
}
|
|
|
|
HEAP_SERIALIZATION_TIER :: enum i32 {
|
|
_0 = 0,
|
|
_10 = 10,
|
|
}
|
|
|
|
FEATURE_DATA_SERIALIZATION :: struct {
|
|
NodeIndex: u32,
|
|
HeapSerializationTier: HEAP_SERIALIZATION_TIER,
|
|
}
|
|
|
|
FEATURE_DATA_CROSS_NODE :: struct {
|
|
SharingTier: CROSS_NODE_SHARING_TIER,
|
|
AtomicShaderInstructions: BOOL,
|
|
}
|
|
|
|
RENDER_PASS_TIER :: enum i32 {
|
|
_0 = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
}
|
|
|
|
RAYTRACING_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1_0 = 10,
|
|
_1_1 = 11,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS5 :: struct {
|
|
SRVOnlyTiledResourceTier3: BOOL,
|
|
RenderPassesTier: RENDER_PASS_TIER,
|
|
RaytracingTier: RAYTRACING_TIER,
|
|
}
|
|
|
|
VARIABLE_SHADING_RATE_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
_2 = 2,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS6 :: struct {
|
|
AdditionalShadingRatesSupported: BOOL,
|
|
PerPrimitiveShadingRateSupportedWithViewportIndexing: BOOL,
|
|
VariableShadingRateTier: VARIABLE_SHADING_RATE_TIER,
|
|
ShadingRateImageTileSize: u32,
|
|
BackgroundProcessingSupported: BOOL,
|
|
}
|
|
|
|
MESH_SHADER_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 10,
|
|
}
|
|
|
|
SAMPLER_FEEDBACK_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_0_9 = 90,
|
|
_1_0 = 100,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS7 :: struct {
|
|
MeshShaderTier: MESH_SHADER_TIER,
|
|
SamplerFeedbackTier: SAMPLER_FEEDBACK_TIER,
|
|
}
|
|
|
|
FEATURE_DATA_QUERY_META_COMMAND :: struct {
|
|
CommandId: GUID,
|
|
NodeMask: u32,
|
|
pQueryInputData: rawptr,
|
|
QueryInputDataSizeInBytes: SIZE_T,
|
|
pQueryOutputData: rawptr,
|
|
QueryOutputDataSizeInBytes: SIZE_T,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS8 :: struct {
|
|
UnalignedBlockTexturesSupported: BOOL,
|
|
}
|
|
|
|
WAVE_MMA_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1_0 = 10,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS9 :: struct {
|
|
MeshShaderPipelineStatsSupported: BOOL,
|
|
MeshShaderSupportsFullRangeRenderTargetArrayIndex: BOOL,
|
|
AtomicInt64OnTypedResourceSupported: BOOL,
|
|
AtomicInt64OnGroupSharedSupported: BOOL,
|
|
DerivativesInMeshAndAmplificationShadersSupported: BOOL,
|
|
WaveMMATier: WAVE_MMA_TIER,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS10 :: struct {
|
|
VariableRateShadingSumCombinerSupported: BOOL,
|
|
MeshShaderPerPrimitiveShadingRateSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS11 :: struct {
|
|
AtomicInt64OnDescriptorHeapResourceSupported: BOOL,
|
|
}
|
|
|
|
TRI_STATE :: enum i32 {
|
|
UNKNOWN = -1,
|
|
FALSE = 0,
|
|
TRUE = 1,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS12 :: struct {
|
|
MSPrimitivesPipelineStatisticIncludesCulledPrimitives: TRI_STATE,
|
|
EnhancedBarriersSupported: BOOL,
|
|
RelaxedFormatCastingSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS13 :: struct {
|
|
UnrestrictedBufferTextureCopyPitchSupported: BOOL,
|
|
UnrestrictedVertexElementAlignmentSupported: BOOL,
|
|
InvertedViewportHeightFlipsYSupported: BOOL,
|
|
InvertedViewportDepthFlipsZSupported: BOOL,
|
|
TextureCopyBetweenDimensionsSupported: BOOL,
|
|
AlphaBlendFactorSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS14 :: struct {
|
|
AdvancedTextureOpsSupported: BOOL,
|
|
WriteableMSAATexturesSupported: BOOL,
|
|
IndependentFrontAndBackStencilRefMaskSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS15 :: struct {
|
|
TriangleFanSupported: BOOL,
|
|
DynamicIndexBufferStripCutSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS16 :: struct {
|
|
DynamicDepthBiasSupported: BOOL,
|
|
GPUUploadHeapSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS17 :: struct {
|
|
NonNormalizedCoordinateSamplersSupported: BOOL,
|
|
ManualWriteTrackingResourceSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS18 :: struct {
|
|
RenderPassesValid: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS19 :: struct {
|
|
MismatchingOutputDimensionsSupported: BOOL,
|
|
SupportedSampleCountsWithNoOutputs: u32,
|
|
PointSamplingAddressesNeverRoundUp: BOOL,
|
|
RasterizerDesc2Supported: BOOL,
|
|
NarrowQuadrilateralLinesSupported: BOOL,
|
|
AnisoFilterWithPointMipSupported: BOOL,
|
|
MaxSamplerDescriptorHeapSize: u32,
|
|
MaxSamplerDescriptorHeapSizeWithStaticSamplers: u32,
|
|
MaxViewDescriptorHeapSize: u32,
|
|
ComputeOnlyCustomHeapSupported: BOOL,
|
|
}
|
|
|
|
RECREATE_AT_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = 1,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS20 :: struct {
|
|
ComputeOnlyWriteWatchSupported: BOOL,
|
|
RecreateAtTier: RECREATE_AT_TIER,
|
|
}
|
|
|
|
EXECUTE_INDIRECT_TIER :: enum i32 {
|
|
_1_0 = 10,
|
|
_1_1 = 11,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS21 :: struct {
|
|
WorkGraphsTier: WORK_GRAPHS_TIER,
|
|
ExecuteIndirectTier: EXECUTE_INDIRECT_TIER,
|
|
SampleCmpGradientAndBiasSupported: BOOL,
|
|
ExtendedCommandInfoSupported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_OPTIONS22 :: struct {
|
|
ShaderExecutionReorderingActuallyReorders: BOOL,
|
|
CreateByteOffsetViewsSupported: BOOL,
|
|
Max1DDispatchSize: u32,
|
|
Max1DDispatchMeshSize: u32,
|
|
}
|
|
|
|
TIGHT_ALIGNMENT_TIER :: enum i32 {
|
|
NOT_SUPPORTED = 0,
|
|
_1 = NOT_SUPPORTED + 1,
|
|
}
|
|
|
|
FEATURE_DATA_TIGHT_ALIGNMENT :: struct {
|
|
SupportTier: TIGHT_ALIGNMENT_TIER,
|
|
}
|
|
|
|
FEATURE_DATA_PREDICATION :: struct {
|
|
Supported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_HARDWARE_COPY :: struct {
|
|
Supported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE :: struct {
|
|
Supported: BOOL,
|
|
}
|
|
|
|
FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED :: struct {
|
|
Supported: BOOL,
|
|
}
|
|
|
|
WAVE_MMA_INPUT_DATATYPE :: enum i32 {
|
|
INVALID = 0,
|
|
BYTE = 1,
|
|
FLOAT16 = 2,
|
|
FLOAT = 3,
|
|
}
|
|
|
|
WAVE_MMA_DIMENSION :: enum i32 {
|
|
INVALID = 0,
|
|
_16 = 1,
|
|
_64 = 2,
|
|
}
|
|
|
|
WAVE_MMA_ACCUM_DATATYPE :: enum i32 {
|
|
NONE = 0,
|
|
INT32 = 1,
|
|
FLOAT16 = 2,
|
|
FLOAT = 4,
|
|
}
|
|
|
|
FEATURE_DATA_WAVE_MMA :: struct {
|
|
InputDataType: WAVE_MMA_INPUT_DATATYPE,
|
|
M: WAVE_MMA_DIMENSION,
|
|
N: WAVE_MMA_DIMENSION,
|
|
Supported: BOOL,
|
|
K: u32,
|
|
AccumDataTypes: WAVE_MMA_ACCUM_DATATYPE,
|
|
RequiredWaveLaneCountMin: u32,
|
|
RequiredWaveLaneCountMax: u32,
|
|
}
|
|
|
|
RESOURCE_ALLOCATION_INFO :: struct {
|
|
SizeInBytes: u64,
|
|
Alignment: u64,
|
|
}
|
|
|
|
RESOURCE_ALLOCATION_INFO1 :: struct {
|
|
Offset: u64,
|
|
Alignment: u64,
|
|
SizeInBytes: u64,
|
|
}
|
|
|
|
HEAP_TYPE :: enum i32 {
|
|
DEFAULT = 1,
|
|
UPLOAD = 2,
|
|
READBACK = 3,
|
|
CUSTOM = 4,
|
|
GPU_UPLOAD = 5,
|
|
}
|
|
|
|
CPU_PAGE_PROPERTY :: enum i32 {
|
|
UNKNOWN = 0,
|
|
NOT_AVAILABLE = 1,
|
|
WRITE_COMBINE = 2,
|
|
WRITE_BACK = 3,
|
|
}
|
|
|
|
MEMORY_POOL :: enum i32 {
|
|
UNKNOWN = 0,
|
|
L0 = 1,
|
|
L1 = 2,
|
|
}
|
|
|
|
HEAP_PROPERTIES :: struct {
|
|
Type: HEAP_TYPE,
|
|
CPUPageProperty: CPU_PAGE_PROPERTY,
|
|
MemoryPoolPreference: MEMORY_POOL,
|
|
CreationNodeMask: u32,
|
|
VisibleNodeMask: u32,
|
|
}
|
|
|
|
HEAP_FLAGS :: distinct bit_set[HEAP_FLAG; u32]
|
|
HEAP_FLAG :: enum u32 {
|
|
SHARED = 0,
|
|
DENY_BUFFERS = 2,
|
|
ALLOW_DISPLAY = 3,
|
|
SHARED_CROSS_ADAPTER = 5,
|
|
DENY_RT_DS_TEXTURES = 6,
|
|
DENY_NON_RT_DS_TEXTURES = 7,
|
|
HARDWARE_PROTECTED = 8,
|
|
ALLOW_WRITE_WATCH = 9,
|
|
ALLOW_SHADER_ATOMICS = 10,
|
|
CREATE_NOT_RESIDENT = 11,
|
|
CREATE_NOT_ZEROED = 12,
|
|
}
|
|
|
|
HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES :: HEAP_FLAGS{}
|
|
HEAP_FLAG_ALLOW_ONLY_BUFFERS :: HEAP_FLAGS{.DENY_RT_DS_TEXTURES, .DENY_NON_RT_DS_TEXTURES}
|
|
HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES :: HEAP_FLAGS{.DENY_BUFFERS, .DENY_RT_DS_TEXTURES}
|
|
HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES :: HEAP_FLAGS{.DENY_BUFFERS, .DENY_NON_RT_DS_TEXTURES}
|
|
|
|
HEAP_DESC :: struct {
|
|
SizeInBytes: u64,
|
|
Properties: HEAP_PROPERTIES,
|
|
Alignment: u64,
|
|
Flags: HEAP_FLAGS,
|
|
}
|
|
|
|
RESOURCE_DIMENSION :: enum i32 {
|
|
UNKNOWN = 0,
|
|
BUFFER = 1,
|
|
TEXTURE1D = 2,
|
|
TEXTURE2D = 3,
|
|
TEXTURE3D = 4,
|
|
}
|
|
|
|
TEXTURE_LAYOUT :: enum i32 {
|
|
UNKNOWN = 0,
|
|
ROW_MAJOR = 1,
|
|
_64KB_UNDEFINED_SWIZZLE = 2,
|
|
_64KB_STANDARD_SWIZZLE = 3,
|
|
}
|
|
|
|
RESOURCE_FLAGS :: distinct bit_set[RESOURCE_FLAG; u32]
|
|
RESOURCE_FLAG :: enum u32 {
|
|
ALLOW_RENDER_TARGET = 0,
|
|
ALLOW_DEPTH_STENCIL = 1,
|
|
ALLOW_UNORDERED_ACCESS = 2,
|
|
DENY_SHADER_RESOURCE = 3,
|
|
ALLOW_CROSS_ADAPTER = 4,
|
|
ALLOW_SIMULTANEOUS_ACCESS = 5,
|
|
VIDEO_DECODE_REFERENCE_ONLY = 6,
|
|
VIDEO_ENCODE_REFERENCE_ONLY = 7,
|
|
RAYTRACING_ACCELERATION_STRUCTURE = 8,
|
|
USE_TIGHT_ALIGNMENT = 10,
|
|
}
|
|
|
|
MIP_REGION :: struct {
|
|
Width: u32,
|
|
Height: u32,
|
|
Depth: u32,
|
|
}
|
|
|
|
RESOURCE_DESC :: struct {
|
|
Dimension: RESOURCE_DIMENSION,
|
|
Alignment: u64,
|
|
Width: u64,
|
|
Height: u32,
|
|
DepthOrArraySize: u16,
|
|
MipLevels: u16,
|
|
Format: dxgi.FORMAT,
|
|
SampleDesc: dxgi.SAMPLE_DESC,
|
|
Layout: TEXTURE_LAYOUT,
|
|
Flags: RESOURCE_FLAGS,
|
|
}
|
|
|
|
RESOURCE_DESC1 :: struct {
|
|
Dimension: RESOURCE_DIMENSION,
|
|
Alignment: u64,
|
|
Width: u64,
|
|
Height: u32,
|
|
DepthOrArraySize: u16,
|
|
MipLevels: u16,
|
|
Format: dxgi.FORMAT,
|
|
SampleDesc: dxgi.SAMPLE_DESC,
|
|
Layout: TEXTURE_LAYOUT,
|
|
Flags: RESOURCE_FLAGS,
|
|
SamplerFeedbackMipRegion: MIP_REGION,
|
|
}
|
|
|
|
DEPTH_STENCIL_VALUE :: struct {
|
|
Depth: f32,
|
|
Stencil: u8,
|
|
}
|
|
|
|
CLEAR_VALUE :: struct {
|
|
Format: dxgi.FORMAT,
|
|
using _: struct #raw_union {
|
|
Color: [4]f32,
|
|
DepthStencil: DEPTH_STENCIL_VALUE,
|
|
},
|
|
}
|
|
|
|
RANGE :: struct {
|
|
Begin: SIZE_T,
|
|
End: SIZE_T,
|
|
}
|
|
|
|
RANGE_UINT64 :: struct {
|
|
Begin: u64,
|
|
End: u64,
|
|
}
|
|
|
|
SUBRESOURCE_RANGE_UINT64 :: struct {
|
|
Subresource: u32,
|
|
Range: RANGE_UINT64,
|
|
}
|
|
|
|
SUBRESOURCE_INFO :: struct {
|
|
Offset: u64,
|
|
RowPitch: u32,
|
|
DepthPitch: u32,
|
|
}
|
|
|
|
TILED_RESOURCE_COORDINATE :: struct {
|
|
X: u32,
|
|
Y: u32,
|
|
Z: u32,
|
|
Subresource: u32,
|
|
}
|
|
|
|
TILE_REGION_SIZE :: struct {
|
|
NumTiles: u32,
|
|
UseBox: BOOL,
|
|
Width: u32,
|
|
Height: u16,
|
|
Depth: u16,
|
|
}
|
|
|
|
TILE_RANGE_FLAGS :: distinct bit_set[TILE_RANGE_FLAG; u32]
|
|
TILE_RANGE_FLAG :: enum u32 {
|
|
NULL = 0,
|
|
SKIP = 1,
|
|
REUSE_SINGLE_TILE = 2,
|
|
}
|
|
|
|
SUBRESOURCE_TILING :: struct {
|
|
WidthInTiles: u32,
|
|
HeightInTiles: u16,
|
|
DepthInTiles: u16,
|
|
StartTileIndexInOverallResource: u32,
|
|
}
|
|
|
|
TILE_SHAPE :: struct {
|
|
WidthInTexels: u32,
|
|
HeightInTexels: u32,
|
|
DepthInTexels: u32,
|
|
}
|
|
|
|
PACKED_MIP_INFO :: struct {
|
|
NumStandardMips: u8,
|
|
NumPackedMips: u8,
|
|
NumTilesForPackedMips: u32,
|
|
StartTileIndexInOverallResource: u32,
|
|
}
|
|
|
|
TILE_MAPPING_FLAGS :: distinct bit_set[TILE_MAPPING_FLAG; u32]
|
|
TILE_MAPPING_FLAG :: enum u32 {
|
|
NO_HAZARD = 0,
|
|
}
|
|
|
|
TILE_COPY_FLAGS :: distinct bit_set[TILE_COPY_FLAG; u32]
|
|
TILE_COPY_FLAG :: enum u32 {
|
|
NO_HAZARD = 0,
|
|
LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 1,
|
|
SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 2,
|
|
}
|
|
|
|
RESOURCE_STATES :: distinct bit_set[RESOURCE_STATE; u32]
|
|
RESOURCE_STATE :: enum i32 {
|
|
VERTEX_AND_CONSTANT_BUFFER = 0,
|
|
INDEX_BUFFER = 1,
|
|
RENDER_TARGET = 2,
|
|
UNORDERED_ACCESS = 3,
|
|
DEPTH_WRITE = 4,
|
|
DEPTH_READ = 5,
|
|
NON_PIXEL_SHADER_RESOURCE = 6,
|
|
PIXEL_SHADER_RESOURCE = 7,
|
|
STREAM_OUT = 8,
|
|
INDIRECT_ARGUMENT = 9,
|
|
COPY_DEST = 10,
|
|
COPY_SOURCE = 11,
|
|
RESOLVE_DEST = 12,
|
|
RESOLVE_SOURCE = 13,
|
|
RAYTRACING_ACCELERATION_STRUCTURE = 22,
|
|
SHADING_RATE_SOURCE = 24,
|
|
PREDICATION = 9,
|
|
VIDEO_DECODE_READ = 16,
|
|
VIDEO_DECODE_WRITE = 17,
|
|
VIDEO_PROCESS_READ = 18,
|
|
VIDEO_PROCESS_WRITE = 19,
|
|
VIDEO_ENCODE_READ = 21,
|
|
VIDEO_ENCODE_WRITE = 23,
|
|
}
|
|
|
|
RESOURCE_STATE_COMMON :: RESOURCE_STATES{}
|
|
RESOURCE_STATE_PRESENT :: RESOURCE_STATES{}
|
|
RESOURCE_STATE_GENERIC_READ :: RESOURCE_STATES{
|
|
.VERTEX_AND_CONSTANT_BUFFER, .INDEX_BUFFER, .NON_PIXEL_SHADER_RESOURCE, .PIXEL_SHADER_RESOURCE, .INDIRECT_ARGUMENT, .COPY_SOURCE,
|
|
}
|
|
RESOURCE_STATE_ALL_SHADER_RESOURCE :: RESOURCE_STATES{
|
|
.NON_PIXEL_SHADER_RESOURCE, .PIXEL_SHADER_RESOURCE,
|
|
}
|
|
|
|
RESOURCE_BARRIER_TYPE :: enum i32 {
|
|
TRANSITION = 0,
|
|
ALIASING = 1,
|
|
UAV = 2,
|
|
}
|
|
|
|
RESOURCE_TRANSITION_BARRIER :: struct {
|
|
pResource: ^IResource,
|
|
Subresource: u32,
|
|
StateBefore: RESOURCE_STATES,
|
|
StateAfter: RESOURCE_STATES,
|
|
}
|
|
|
|
RESOURCE_ALIASING_BARRIER :: struct {
|
|
pResourceBefore: ^IResource,
|
|
pResourceAfter: ^IResource,
|
|
}
|
|
|
|
RESOURCE_UAV_BARRIER :: struct {
|
|
pResource: ^IResource,
|
|
}
|
|
|
|
RESOURCE_BARRIER_FLAGS :: distinct bit_set[RESOURCE_BARRIER_FLAG; u32]
|
|
RESOURCE_BARRIER_FLAG :: enum u32 {
|
|
BEGIN_ONLY = 0,
|
|
END_ONLY = 1,
|
|
}
|
|
|
|
RESOURCE_BARRIER :: struct {
|
|
Type: RESOURCE_BARRIER_TYPE,
|
|
Flags: RESOURCE_BARRIER_FLAGS,
|
|
using _: struct #raw_union {
|
|
Transition: RESOURCE_TRANSITION_BARRIER,
|
|
Aliasing: RESOURCE_ALIASING_BARRIER,
|
|
UAV: RESOURCE_UAV_BARRIER,
|
|
},
|
|
}
|
|
|
|
SUBRESOURCE_FOOTPRINT :: struct {
|
|
Format: dxgi.FORMAT,
|
|
Width: u32,
|
|
Height: u32,
|
|
Depth: u32,
|
|
RowPitch: u32,
|
|
}
|
|
|
|
PLACED_SUBRESOURCE_FOOTPRINT :: struct {
|
|
Offset: u64,
|
|
Footprint: SUBRESOURCE_FOOTPRINT,
|
|
}
|
|
|
|
TEXTURE_COPY_TYPE :: enum i32 {
|
|
SUBRESOURCE_INDEX = 0,
|
|
PLACED_FOOTPRINT = 1,
|
|
}
|
|
|
|
TEXTURE_COPY_LOCATION :: struct {
|
|
pResource: ^IResource,
|
|
Type: TEXTURE_COPY_TYPE,
|
|
using _: struct #raw_union {
|
|
PlacedFootprint: PLACED_SUBRESOURCE_FOOTPRINT,
|
|
SubresourceIndex: u32,
|
|
},
|
|
}
|
|
|
|
RESOLVE_MODE :: enum i32 {
|
|
DECOMPRESS = 0,
|
|
MIN = 1,
|
|
MAX = 2,
|
|
AVERAGE = 3,
|
|
ENCODE_SAMPLER_FEEDBACK = 4,
|
|
DECODE_SAMPLER_FEEDBACK = 5,
|
|
}
|
|
|
|
SAMPLE_POSITION :: struct {
|
|
X: i8,
|
|
Y: i8,
|
|
}
|
|
|
|
VIEW_INSTANCE_LOCATION :: struct {
|
|
ViewportArrayIndex: u32,
|
|
RenderTargetArrayIndex: u32,
|
|
}
|
|
|
|
VIEW_INSTANCING_FLAGS :: distinct bit_set[VIEW_INSTANCING_FLAG; u32]
|
|
VIEW_INSTANCING_FLAG :: enum u32 {
|
|
ENABLE_VIEW_INSTANCE_MASKING = 0,
|
|
}
|
|
|
|
VIEW_INSTANCING_DESC :: struct {
|
|
ViewInstanceCount: u32,
|
|
pViewInstanceLocations: [^]VIEW_INSTANCE_LOCATION `fmt:"v,ViewInstanceCount"`,
|
|
Flags: VIEW_INSTANCING_FLAGS,
|
|
}
|
|
|
|
SHADER_COMPONENT_MAPPING :: enum u32 {
|
|
FROM_MEMORY_COMPONENT_0 = 0,
|
|
FROM_MEMORY_COMPONENT_1 = 1,
|
|
FROM_MEMORY_COMPONENT_2 = 2,
|
|
FROM_MEMORY_COMPONENT_3 = 3,
|
|
FORCE_VALUE_0 = 4,
|
|
FORCE_VALUE_1 = 5,
|
|
}
|
|
ENCODE_SHADER_4_COMPONENT_MAPPING :: #force_inline proc "contextless" (Src0, Src1, Src2, Src3: u32) -> u32 {
|
|
return (Src0 & SHADER_COMPONENT_MAPPING_MASK) |
|
|
((Src1 & SHADER_COMPONENT_MAPPING_MASK) << SHADER_COMPONENT_MAPPING_SHIFT) |
|
|
((Src2 & SHADER_COMPONENT_MAPPING_MASK) << (SHADER_COMPONENT_MAPPING_SHIFT * 2)) |
|
|
((Src3 & SHADER_COMPONENT_MAPPING_MASK) << (SHADER_COMPONENT_MAPPING_SHIFT * 3)) |
|
|
SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES
|
|
}
|
|
DECODE_SHADER_4_COMPONENT_MAPPING :: #force_inline proc "contextless" (ComponentToExtract, Mapping: u32) -> u32 {
|
|
return Mapping >> (SHADER_COMPONENT_MAPPING_SHIFT * ComponentToExtract) & SHADER_COMPONENT_MAPPING_MASK
|
|
}
|
|
|
|
BUFFER_SRV_FLAGS :: distinct bit_set[BUFFER_SRV_FLAG; u32]
|
|
BUFFER_SRV_FLAG :: enum u32 {
|
|
RAW = 0,
|
|
}
|
|
|
|
BUFFER_SRV :: struct {
|
|
FirstElement: u64,
|
|
NumElements: u32,
|
|
StructureByteStride: u32,
|
|
Flags: BUFFER_SRV_FLAGS,
|
|
}
|
|
|
|
TEX1D_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEX1D_ARRAY_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEX2D_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
PlaneSlice: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEX2D_ARRAY_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
PlaneSlice: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEX3D_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEXCUBE_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEXCUBE_ARRAY_SRV :: struct {
|
|
MostDetailedMip: u32,
|
|
MipLevels: u32,
|
|
First2DArrayFace: u32,
|
|
NumCubes: u32,
|
|
ResourceMinLODClamp: f32,
|
|
}
|
|
|
|
TEX2DMS_SRV :: struct {
|
|
UnusedField_NothingToDefine: u32,
|
|
}
|
|
|
|
TEX2DMS_ARRAY_SRV :: struct {
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_SRV :: struct {
|
|
Location: GPU_VIRTUAL_ADDRESS,
|
|
}
|
|
|
|
BUFFER_SRV_BYTE_OFFSET :: struct {
|
|
Offset: u64,
|
|
Size: u64,
|
|
StructureByteStride: u32,
|
|
Flags: BUFFER_SRV_FLAGS,
|
|
}
|
|
|
|
SHADER_RESOURCE_VIEW_DESC :: struct {
|
|
Format: dxgi.FORMAT,
|
|
ViewDimension: SRV_DIMENSION,
|
|
Shader4ComponentMapping: u32,
|
|
using _: struct #raw_union {
|
|
Buffer: BUFFER_SRV,
|
|
Texture1D: TEX1D_SRV,
|
|
Texture1DArray: TEX1D_ARRAY_SRV,
|
|
Texture2D: TEX2D_SRV,
|
|
Texture2DArray: TEX2D_ARRAY_SRV,
|
|
Texture2DMS: TEX2DMS_SRV,
|
|
Texture2DMSArray: TEX2DMS_ARRAY_SRV,
|
|
Texture3D: TEX3D_SRV,
|
|
TextureCube: TEXCUBE_SRV,
|
|
TextureCubeArray: TEXCUBE_ARRAY_SRV,
|
|
RaytracingAccelerationStructure: RAYTRACING_ACCELERATION_STRUCTURE_SRV,
|
|
BufferByteOffset: BUFFER_SRV_BYTE_OFFSET,
|
|
},
|
|
}
|
|
|
|
CONSTANT_BUFFER_VIEW_DESC :: struct {
|
|
BufferLocation: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u32,
|
|
}
|
|
|
|
FILTER :: enum i32 {
|
|
MIN_MAG_MIP_POINT = 0,
|
|
MIN_MAG_POINT_MIP_LINEAR = 1,
|
|
MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
|
|
MIN_POINT_MAG_MIP_LINEAR = 5,
|
|
MIN_LINEAR_MAG_MIP_POINT = 16,
|
|
MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
|
|
MIN_MAG_LINEAR_MIP_POINT = 20,
|
|
MIN_MAG_MIP_LINEAR = 21,
|
|
ANISOTROPIC = 85,
|
|
COMPARISON_MIN_MAG_MIP_POINT = 128,
|
|
COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
|
|
COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
|
|
COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
|
|
COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
|
|
COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
|
|
COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
|
|
COMPARISON_MIN_MAG_MIP_LINEAR = 149,
|
|
COMPARISON_ANISOTROPIC = 213,
|
|
MINIMUM_MIN_MAG_MIP_POINT = 256,
|
|
MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
|
|
MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
|
|
MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
|
|
MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
|
|
MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
|
|
MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
|
|
MINIMUM_MIN_MAG_MIP_LINEAR = 277,
|
|
MINIMUM_ANISOTROPIC = 341,
|
|
MAXIMUM_MIN_MAG_MIP_POINT = 384,
|
|
MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
|
|
MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
|
|
MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
|
|
MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
|
|
MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
|
|
MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
|
|
MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
|
|
MAXIMUM_ANISOTROPIC = 469,
|
|
}
|
|
|
|
FILTER_TYPE :: enum i32 {
|
|
POINT = 0,
|
|
LINEAR = 1,
|
|
}
|
|
|
|
FILTER_REDUCTION_TYPE :: enum i32 {
|
|
STANDARD = 0,
|
|
COMPARISON = 1,
|
|
MINIMUM = 2,
|
|
MAXIMUM = 3,
|
|
}
|
|
|
|
TEXTURE_ADDRESS_MODE :: enum i32 {
|
|
WRAP = 1,
|
|
MIRROR = 2,
|
|
CLAMP = 3,
|
|
BORDER = 4,
|
|
MIRROR_ONCE = 5,
|
|
}
|
|
|
|
SAMPLER_DESC :: struct {
|
|
Filter: FILTER,
|
|
AddressU: TEXTURE_ADDRESS_MODE,
|
|
AddressV: TEXTURE_ADDRESS_MODE,
|
|
AddressW: TEXTURE_ADDRESS_MODE,
|
|
MipLODBias: f32,
|
|
MaxAnisotropy: u32,
|
|
ComparisonFunc: COMPARISON_FUNC,
|
|
BorderColor: [4]f32,
|
|
MinLOD: f32,
|
|
MaxLOD: f32,
|
|
}
|
|
|
|
BUFFER_UAV_FLAGS :: distinct bit_set[BUFFER_UAV_FLAG; u32]
|
|
BUFFER_UAV_FLAG :: enum u32 {
|
|
RAW = 0,
|
|
}
|
|
|
|
BUFFER_UAV :: struct {
|
|
FirstElement: u64,
|
|
NumElements: u32,
|
|
StructureByteStride: u32,
|
|
CounterOffsetInBytes: u64,
|
|
Flags: BUFFER_UAV_FLAGS,
|
|
}
|
|
|
|
TEX1D_UAV :: struct {
|
|
MipSlice: u32,
|
|
}
|
|
|
|
TEX1D_ARRAY_UAV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
TEX2D_UAV :: struct {
|
|
MipSlice: u32,
|
|
PlaneSlice: u32,
|
|
}
|
|
|
|
TEX2D_ARRAY_UAV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
PlaneSlice: u32,
|
|
}
|
|
|
|
TEX3D_UAV :: struct {
|
|
MipSlice: u32,
|
|
FirstWSlice: u32,
|
|
WSize: u32,
|
|
}
|
|
|
|
BUFFER_UAV_BYTE_OFFSET :: struct {
|
|
Offset: u64,
|
|
Size: u32,
|
|
StructureByteStride: u32,
|
|
CounterOffsetInBytes: u64,
|
|
Flags: BUFFER_UAV_FLAGS,
|
|
}
|
|
|
|
UAV_DIMENSION :: enum i32 {
|
|
UNKNOWN = 0,
|
|
BUFFER = 1,
|
|
TEXTURE1D = 2,
|
|
TEXTURE1DARRAY = 3,
|
|
TEXTURE2D = 4,
|
|
TEXTURE2DARRAY = 5,
|
|
TEXTURE3D = 8,
|
|
BUFFER_BYTE_OFFSET = 9,
|
|
}
|
|
|
|
UNORDERED_ACCESS_VIEW_DESC :: struct {
|
|
Format: dxgi.FORMAT,
|
|
ViewDimension: UAV_DIMENSION,
|
|
using _: struct #raw_union {
|
|
Buffer: BUFFER_UAV,
|
|
Texture1D: TEX1D_UAV,
|
|
Texture1DArray: TEX1D_ARRAY_UAV,
|
|
Texture2D: TEX2D_UAV,
|
|
Texture2DArray: TEX2D_ARRAY_UAV,
|
|
Texture3D: TEX3D_UAV,
|
|
BufferByteOffset: BUFFER_UAV_BYTE_OFFSET,
|
|
},
|
|
}
|
|
|
|
BUFFER_RTV :: struct {
|
|
FirstElement: u64,
|
|
NumElements: u32,
|
|
}
|
|
|
|
TEX1D_RTV :: struct {
|
|
MipSlice: u32,
|
|
}
|
|
|
|
TEX1D_ARRAY_RTV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
TEX2D_RTV :: struct {
|
|
MipSlice: u32,
|
|
PlaneSlice: u32,
|
|
}
|
|
|
|
TEX2DMS_RTV :: struct {
|
|
UnusedField_NothingToDefine: u32,
|
|
}
|
|
|
|
TEX2D_ARRAY_RTV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
PlaneSlice: u32,
|
|
}
|
|
|
|
TEX2DMS_ARRAY_RTV :: struct {
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
TEX3D_RTV :: struct {
|
|
MipSlice: u32,
|
|
FirstWSlice: u32,
|
|
WSize: u32,
|
|
}
|
|
|
|
RTV_DIMENSION :: enum i32 {
|
|
UNKNOWN = 0,
|
|
BUFFER = 1,
|
|
TEXTURE1D = 2,
|
|
TEXTURE1DARRAY = 3,
|
|
TEXTURE2D = 4,
|
|
TEXTURE2DARRAY = 5,
|
|
TEXTURE2DMS = 6,
|
|
TEXTURE2DMSARRAY = 7,
|
|
TEXTURE3D = 8,
|
|
}
|
|
|
|
RENDER_TARGET_VIEW_DESC :: struct {
|
|
Format: dxgi.FORMAT,
|
|
ViewDimension: RTV_DIMENSION,
|
|
using _: struct #raw_union {
|
|
Buffer: BUFFER_RTV,
|
|
Texture1D: TEX1D_RTV,
|
|
Texture1DArray: TEX1D_ARRAY_RTV,
|
|
Texture2D: TEX2D_RTV,
|
|
Texture2DArray: TEX2D_ARRAY_RTV,
|
|
Texture2DMS: TEX2DMS_RTV,
|
|
Texture2DMSArray: TEX2DMS_ARRAY_RTV,
|
|
Texture3D: TEX3D_RTV,
|
|
},
|
|
}
|
|
|
|
TEX1D_DSV :: struct {
|
|
MipSlice: u32,
|
|
}
|
|
|
|
TEX1D_ARRAY_DSV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
TEX2D_DSV :: struct {
|
|
MipSlice: u32,
|
|
}
|
|
|
|
TEX2D_ARRAY_DSV :: struct {
|
|
MipSlice: u32,
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
TEX2DMS_DSV :: struct {
|
|
UnusedField_NothingToDefine: u32,
|
|
}
|
|
|
|
TEX2DMS_ARRAY_DSV :: struct {
|
|
FirstArraySlice: u32,
|
|
ArraySize: u32,
|
|
}
|
|
|
|
DSV_FLAGS :: distinct bit_set[DSV_FLAG; u32]
|
|
DSV_FLAG :: enum u32 {
|
|
READ_ONLY_DEPTH = 0,
|
|
READ_ONLY_STENCIL = 1,
|
|
}
|
|
|
|
DSV_DIMENSION :: enum i32 {
|
|
UNKNOWN = 0,
|
|
TEXTURE1D = 1,
|
|
TEXTURE1DARRAY = 2,
|
|
TEXTURE2D = 3,
|
|
TEXTURE2DARRAY = 4,
|
|
TEXTURE2DMS = 5,
|
|
TEXTURE2DMSARRAY = 6,
|
|
}
|
|
|
|
DEPTH_STENCIL_VIEW_DESC :: struct {
|
|
Format: dxgi.FORMAT,
|
|
ViewDimension: DSV_DIMENSION,
|
|
Flags: DSV_FLAGS,
|
|
using _: struct #raw_union {
|
|
Texture1D: TEX1D_DSV,
|
|
Texture1DArray: TEX1D_ARRAY_DSV,
|
|
Texture2D: TEX2D_DSV,
|
|
Texture2DArray: TEX2D_ARRAY_DSV,
|
|
Texture2DMS: TEX2DMS_DSV,
|
|
Texture2DMSArray: TEX2DMS_ARRAY_DSV,
|
|
},
|
|
}
|
|
|
|
CLEAR_FLAGS :: distinct bit_set[CLEAR_FLAG; u32]
|
|
CLEAR_FLAG :: enum u32 {
|
|
DEPTH = 0,
|
|
STENCIL = 1,
|
|
}
|
|
|
|
FENCE_FLAGS :: distinct bit_set[FENCE_FLAG; u32]
|
|
FENCE_FLAG :: enum u32 {
|
|
SHARED = 0,
|
|
SHARED_CROSS_ADAPTER = 1,
|
|
NON_MONITORED = 2,
|
|
}
|
|
|
|
DESCRIPTOR_HEAP_TYPE :: enum i32 {
|
|
CBV_SRV_UAV = 0,
|
|
SAMPLER = 1,
|
|
RTV = 2,
|
|
DSV = 3,
|
|
}
|
|
|
|
DESCRIPTOR_HEAP_FLAGS :: distinct bit_set[DESCRIPTOR_HEAP_FLAG; u32]
|
|
DESCRIPTOR_HEAP_FLAG :: enum u32 {
|
|
SHADER_VISIBLE = 0,
|
|
}
|
|
|
|
DESCRIPTOR_HEAP_DESC :: struct {
|
|
Type: DESCRIPTOR_HEAP_TYPE,
|
|
NumDescriptors: u32,
|
|
Flags: DESCRIPTOR_HEAP_FLAGS,
|
|
NodeMask: u32,
|
|
}
|
|
|
|
DESCRIPTOR_RANGE_TYPE :: enum i32 {
|
|
SRV = 0,
|
|
UAV = 1,
|
|
CBV = 2,
|
|
SAMPLER = 3,
|
|
}
|
|
|
|
DESCRIPTOR_RANGE :: struct {
|
|
RangeType: DESCRIPTOR_RANGE_TYPE,
|
|
NumDescriptors: u32,
|
|
BaseShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
OffsetInDescriptorsFromTableStart: u32,
|
|
}
|
|
|
|
ROOT_DESCRIPTOR_TABLE :: struct {
|
|
NumDescriptorRanges: u32,
|
|
pDescriptorRanges: ^DESCRIPTOR_RANGE,
|
|
}
|
|
|
|
ROOT_CONSTANTS :: struct {
|
|
ShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
Num32BitValues: u32,
|
|
}
|
|
|
|
ROOT_DESCRIPTOR :: struct {
|
|
ShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
}
|
|
|
|
SHADER_VISIBILITY :: enum i32 {
|
|
ALL = 0,
|
|
VERTEX = 1,
|
|
HULL = 2,
|
|
DOMAIN = 3,
|
|
GEOMETRY = 4,
|
|
PIXEL = 5,
|
|
AMPLIFICATION = 6,
|
|
MESH = 7,
|
|
}
|
|
|
|
ROOT_PARAMETER_TYPE :: enum i32 {
|
|
DESCRIPTOR_TABLE = 0,
|
|
_32BIT_CONSTANTS = 1,
|
|
CBV = 2,
|
|
SRV = 3,
|
|
UAV = 4,
|
|
}
|
|
|
|
ROOT_PARAMETER :: struct {
|
|
ParameterType: ROOT_PARAMETER_TYPE,
|
|
using _: struct #raw_union {
|
|
DescriptorTable: ROOT_DESCRIPTOR_TABLE,
|
|
Constants: ROOT_CONSTANTS,
|
|
Descriptor: ROOT_DESCRIPTOR,
|
|
},
|
|
ShaderVisibility: SHADER_VISIBILITY,
|
|
}
|
|
|
|
ROOT_SIGNATURE_FLAGS :: distinct bit_set[ROOT_SIGNATURE_FLAG; u32]
|
|
ROOT_SIGNATURE_FLAG :: enum u32 {
|
|
ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0,
|
|
DENY_VERTEX_SHADER_ROOT_ACCESS = 1,
|
|
DENY_HULL_SHADER_ROOT_ACCESS = 2,
|
|
DENY_DOMAIN_SHADER_ROOT_ACCESS = 3,
|
|
DENY_GEOMETRY_SHADER_ROOT_ACCESS = 4,
|
|
DENY_PIXEL_SHADER_ROOT_ACCESS = 5,
|
|
ALLOW_STREAM_OUTPUT = 6,
|
|
LOCAL_ROOT_SIGNATURE = 7,
|
|
DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 8,
|
|
DENY_MESH_SHADER_ROOT_ACCESS = 9,
|
|
CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 10,
|
|
SAMPLER_HEAP_DIRECTLY_INDEXED = 11,
|
|
}
|
|
|
|
STATIC_BORDER_COLOR :: enum i32 {
|
|
TRANSPARENT_BLACK = 0,
|
|
OPAQUE_BLACK = 1,
|
|
OPAQUE_WHITE = 2,
|
|
}
|
|
|
|
STATIC_SAMPLER_DESC :: struct {
|
|
Filter: FILTER,
|
|
AddressU: TEXTURE_ADDRESS_MODE,
|
|
AddressV: TEXTURE_ADDRESS_MODE,
|
|
AddressW: TEXTURE_ADDRESS_MODE,
|
|
MipLODBias: f32,
|
|
MaxAnisotropy: u32,
|
|
ComparisonFunc: COMPARISON_FUNC,
|
|
BorderColor: STATIC_BORDER_COLOR,
|
|
MinLOD: f32,
|
|
MaxLOD: f32,
|
|
ShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
ShaderVisibility: SHADER_VISIBILITY,
|
|
}
|
|
|
|
ROOT_SIGNATURE_DESC :: struct {
|
|
NumParameters: u32,
|
|
pParameters: ^ROOT_PARAMETER,
|
|
NumStaticSamplers: u32,
|
|
pStaticSamplers: ^STATIC_SAMPLER_DESC,
|
|
Flags: ROOT_SIGNATURE_FLAGS,
|
|
}
|
|
|
|
DESCRIPTOR_RANGE_FLAGS :: distinct bit_set[DESCRIPTOR_RANGE_FLAG; u32]
|
|
DESCRIPTOR_RANGE_FLAG :: enum u32 {
|
|
DESCRIPTORS_VOLATILE = 0,
|
|
DATA_VOLATILE = 1,
|
|
DATA_STATIC_WHILE_SET_AT_EXECUTE = 2,
|
|
DATA_STATIC = 3,
|
|
DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 16,
|
|
}
|
|
|
|
DESCRIPTOR_RANGE1 :: struct {
|
|
RangeType: DESCRIPTOR_RANGE_TYPE,
|
|
NumDescriptors: u32,
|
|
BaseShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
Flags: DESCRIPTOR_RANGE_FLAGS,
|
|
OffsetInDescriptorsFromTableStart: u32,
|
|
}
|
|
|
|
ROOT_DESCRIPTOR_TABLE1 :: struct {
|
|
NumDescriptorRanges: u32,
|
|
pDescriptorRanges: ^DESCRIPTOR_RANGE1,
|
|
}
|
|
|
|
ROOT_DESCRIPTOR_FLAGS :: distinct bit_set[ROOT_DESCRIPTOR_FLAG; u32]
|
|
ROOT_DESCRIPTOR_FLAG :: enum u32 {
|
|
DATA_VOLATILE = 2,
|
|
DATA_STATIC_WHILE_SET_AT_EXECUTE = 3,
|
|
DATA_STATIC = 4,
|
|
}
|
|
|
|
ROOT_DESCRIPTOR1 :: struct {
|
|
ShaderRegister: u32,
|
|
RegisterSpace: u32,
|
|
Flags: ROOT_DESCRIPTOR_FLAGS,
|
|
}
|
|
|
|
ROOT_PARAMETER1 :: struct {
|
|
ParameterType: ROOT_PARAMETER_TYPE,
|
|
using _: struct #raw_union {
|
|
DescriptorTable: ROOT_DESCRIPTOR_TABLE1,
|
|
Constants: ROOT_CONSTANTS,
|
|
Descriptor: ROOT_DESCRIPTOR1,
|
|
},
|
|
ShaderVisibility: SHADER_VISIBILITY,
|
|
}
|
|
|
|
ROOT_SIGNATURE_DESC1 :: struct {
|
|
NumParameters: u32,
|
|
pParameters: ^ROOT_PARAMETER1,
|
|
NumStaticSamplers: u32,
|
|
pStaticSamplers: ^STATIC_SAMPLER_DESC,
|
|
Flags: ROOT_SIGNATURE_FLAGS,
|
|
}
|
|
|
|
VERSIONED_ROOT_SIGNATURE_DESC :: struct {
|
|
Version: ROOT_SIGNATURE_VERSION,
|
|
using _: struct #raw_union {
|
|
Desc_1_0: ROOT_SIGNATURE_DESC,
|
|
Desc_1_1: ROOT_SIGNATURE_DESC1,
|
|
},
|
|
}
|
|
|
|
|
|
IRootSignatureDeserializer_UUID_STRING :: "34AB647B-3CC8-46AC-841B-C0965645C046"
|
|
IRootSignatureDeserializer_UUID := &IID{0x34AB647B, 0x3CC8, 0x46AC, {0x84, 0x1B, 0xC0, 0x96, 0x56, 0x45, 0xC0, 0x46}}
|
|
IRootSignatureDeserializer :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12rootsignaturedeserializer_vtable: ^IRootSignatureDeserializer_VTable,
|
|
}
|
|
IRootSignatureDeserializer_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetRootSignatureDesc: proc "system" (this: ^IRootSignatureDeserializer) -> ^ROOT_SIGNATURE_DESC,
|
|
}
|
|
|
|
|
|
IVersionedRootSignatureDeserializer_UUID_STRING :: "7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0"
|
|
IVersionedRootSignatureDeserializer_UUID := &IID{0x7F91CE67, 0x090C, 0x4BB7, {0xB7, 0x8E, 0xED, 0x8F, 0xF2, 0xE3, 0x1D, 0xA0}}
|
|
IVersionedRootSignatureDeserializer :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12versionedrootsignaturedeserializer_vtable: ^IVersionedRootSignatureDeserializer_VTable,
|
|
}
|
|
IVersionedRootSignatureDeserializer_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetRootSignatureDescAtVersion: proc "system" (this: ^IVersionedRootSignatureDeserializer, convertToVersion: ROOT_SIGNATURE_VERSION, ppDesc: ^^VERSIONED_ROOT_SIGNATURE_DESC) -> HRESULT,
|
|
GetUnconvertedRootSignatureDesc: proc "system" (this: ^IVersionedRootSignatureDeserializer) -> ^VERSIONED_ROOT_SIGNATURE_DESC,
|
|
}
|
|
|
|
PFN_SERIALIZE_ROOT_SIGNATURE :: #type proc "c" (a0: ^ROOT_SIGNATURE_DESC, a1: ROOT_SIGNATURE_VERSION, a2: ^^IBlob, a3: ^^IBlob) -> HRESULT
|
|
PFN_CREATE_ROOT_SIGNATURE_DESERIALIZER :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: ^IID, a3: ^rawptr) -> HRESULT
|
|
PFN_SERIALIZE_VERSIONED_ROOT_SIGNATURE :: #type proc "c" (a0: ^VERSIONED_ROOT_SIGNATURE_DESC, a1: ^^IBlob, a2: ^^IBlob) -> HRESULT
|
|
PFN_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: ^IID, a3: ^rawptr) -> HRESULT
|
|
|
|
|
|
CPU_DESCRIPTOR_HANDLE :: struct {
|
|
ptr: SIZE_T,
|
|
}
|
|
|
|
GPU_DESCRIPTOR_HANDLE :: struct {
|
|
ptr: u64,
|
|
}
|
|
|
|
DISCARD_REGION :: struct {
|
|
NumRects: u32,
|
|
pRects: ^RECT,
|
|
FirstSubresource: u32,
|
|
NumSubresources: u32,
|
|
}
|
|
|
|
QUERY_HEAP_TYPE :: enum i32 {
|
|
OCCLUSION = 0,
|
|
TIMESTAMP = 1,
|
|
PIPELINE_STATISTICS = 2,
|
|
SO_STATISTICS = 3,
|
|
VIDEO_DECODE_STATISTICS = 4,
|
|
COPY_QUEUE_TIMESTAMP = 5,
|
|
PIPELINE_STATISTICS1 = 7,
|
|
}
|
|
|
|
QUERY_HEAP_DESC :: struct {
|
|
Type: QUERY_HEAP_TYPE,
|
|
Count: u32,
|
|
NodeMask: u32,
|
|
}
|
|
|
|
QUERY_TYPE :: enum i32 {
|
|
OCCLUSION = 0,
|
|
BINARY_OCCLUSION = 1,
|
|
TIMESTAMP = 2,
|
|
PIPELINE_STATISTICS = 3,
|
|
SO_STATISTICS_STREAM0 = 4,
|
|
SO_STATISTICS_STREAM1 = 5,
|
|
SO_STATISTICS_STREAM2 = 6,
|
|
SO_STATISTICS_STREAM3 = 7,
|
|
VIDEO_DECODE_STATISTICS = 8,
|
|
PIPELINE_STATISTICS1 = 10,
|
|
}
|
|
|
|
PREDICATION_OP :: enum i32 {
|
|
EQUAL_ZERO = 0,
|
|
NOT_EQUAL_ZERO = 1,
|
|
}
|
|
|
|
QUERY_DATA_PIPELINE_STATISTICS :: struct {
|
|
IAVertices: u64,
|
|
IAPrimitives: u64,
|
|
VSInvocations: u64,
|
|
GSInvocations: u64,
|
|
GSPrimitives: u64,
|
|
CInvocations: u64,
|
|
CPrimitives: u64,
|
|
PSInvocations: u64,
|
|
HSInvocations: u64,
|
|
DSInvocations: u64,
|
|
CSInvocations: u64,
|
|
}
|
|
|
|
QUERY_DATA_PIPELINE_STATISTICS1 :: struct {
|
|
IAVertices: u64,
|
|
IAPrimitives: u64,
|
|
VSInvocations: u64,
|
|
GSInvocations: u64,
|
|
GSPrimitives: u64,
|
|
CInvocations: u64,
|
|
CPrimitives: u64,
|
|
PSInvocations: u64,
|
|
HSInvocations: u64,
|
|
DSInvocations: u64,
|
|
CSInvocations: u64,
|
|
ASInvocations: u64,
|
|
MSInvocations: u64,
|
|
MSPrimitives: u64,
|
|
}
|
|
|
|
QUERY_DATA_SO_STATISTICS :: struct {
|
|
NumPrimitivesWritten: u64,
|
|
PrimitivesStorageNeeded: u64,
|
|
}
|
|
|
|
STREAM_OUTPUT_BUFFER_VIEW :: struct {
|
|
BufferLocation: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u64,
|
|
BufferFilledSizeLocation: GPU_VIRTUAL_ADDRESS,
|
|
}
|
|
|
|
DRAW_ARGUMENTS :: struct {
|
|
VertexCountPerInstance: u32,
|
|
InstanceCount: u32,
|
|
StartVertexLocation: u32,
|
|
StartInstanceLocation: u32,
|
|
}
|
|
|
|
DRAW_INDEXED_ARGUMENTS :: struct {
|
|
IndexCountPerInstance: u32,
|
|
InstanceCount: u32,
|
|
StartIndexLocation: u32,
|
|
BaseVertexLocation: i32,
|
|
StartInstanceLocation: u32,
|
|
}
|
|
|
|
DISPATCH_ARGUMENTS :: struct {
|
|
ThreadGroupCountX: u32,
|
|
ThreadGroupCountY: u32,
|
|
ThreadGroupCountZ: u32,
|
|
}
|
|
|
|
VERTEX_BUFFER_VIEW :: struct {
|
|
BufferLocation: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u32,
|
|
StrideInBytes: u32,
|
|
}
|
|
|
|
INDEX_BUFFER_VIEW :: struct {
|
|
BufferLocation: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u32,
|
|
Format: dxgi.FORMAT,
|
|
}
|
|
|
|
INDIRECT_ARGUMENT_TYPE :: enum i32 {
|
|
DRAW = 0,
|
|
DRAW_INDEXED = 1,
|
|
DISPATCH = 2,
|
|
VERTEX_BUFFER_VIEW = 3,
|
|
INDEX_BUFFER_VIEW = 4,
|
|
CONSTANT = 5,
|
|
CONSTANT_BUFFER_VIEW = 6,
|
|
SHADER_RESOURCE_VIEW = 7,
|
|
UNORDERED_ACCESS_VIEW = 8,
|
|
DISPATCH_RAYS = 9,
|
|
DISPATCH_MESH = 10,
|
|
}
|
|
|
|
INDIRECT_ARGUMENT_DESC :: struct {
|
|
Type: INDIRECT_ARGUMENT_TYPE,
|
|
using _: struct #raw_union {
|
|
VertexBuffer: struct {
|
|
Slot: u32,
|
|
},
|
|
Constant: struct {
|
|
RootParameterIndex: u32,
|
|
DestOffsetIn32BitValues: u32,
|
|
Num32BitValuesToSet: u32,
|
|
},
|
|
ConstantBufferView: struct {
|
|
RootParameterIndex: u32,
|
|
},
|
|
ShaderResourceView: struct {
|
|
RootParameterIndex: u32,
|
|
},
|
|
UnorderedAccessView: struct {
|
|
RootParameterIndex: u32,
|
|
},
|
|
},
|
|
}
|
|
|
|
COMMAND_SIGNATURE_DESC :: struct {
|
|
ByteStride: u32,
|
|
NumArgumentDescs: u32,
|
|
pArgumentDescs: ^INDIRECT_ARGUMENT_DESC,
|
|
NodeMask: u32,
|
|
}
|
|
|
|
|
|
IPageable_UUID_STRING :: "63ee58fb-1268-4835-86da-f008ce62f0d6"
|
|
IPageable_UUID := &IID{0x63ee58fb, 0x1268, 0x4835, {0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6}}
|
|
IPageable :: struct {
|
|
using id3d12devicechild: IDeviceChild,
|
|
}
|
|
|
|
|
|
IHeap_UUID_STRING :: "6b3b2502-6e51-45b3-90ee-9884265e8df3"
|
|
IHeap_UUID := &IID{0x6b3b2502, 0x6e51, 0x45b3, {0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3}}
|
|
IHeap :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12heap_vtable: ^IHeap_VTable,
|
|
}
|
|
IHeap_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetDesc: proc "system" (this: ^IHeap, pRetValue: ^HEAP_DESC) -> ^HEAP_DESC,
|
|
}
|
|
|
|
|
|
IResource_UUID_STRING :: "696442be-a72e-4059-bc79-5b5c98040fad"
|
|
IResource_UUID := &IID{0x696442be, 0xa72e, 0x4059, {0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad}}
|
|
IResource :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12resource_vtable: ^IResource_VTable,
|
|
}
|
|
IResource_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
Map: proc "system" (this: ^IResource, Subresource: u32, pReadRange: ^RANGE, ppData: ^rawptr) -> HRESULT,
|
|
Unmap: proc "system" (this: ^IResource, Subresource: u32, pWrittenRange: ^RANGE),
|
|
GetDesc: proc "system" (this: ^IResource, pRetValue: ^RESOURCE_DESC) -> ^RESOURCE_DESC,
|
|
GetGPUVirtualAddress: proc "system" (this: ^IResource) -> GPU_VIRTUAL_ADDRESS,
|
|
WriteToSubresource: proc "system" (this: ^IResource, DstSubresource: u32, pDstBox: ^BOX, pSrcData: rawptr, SrcRowPitch: u32, SrcDepthPitch: u32) -> HRESULT,
|
|
ReadFromSubresource: proc "system" (this: ^IResource, pDstData: rawptr, DstRowPitch: u32, DstDepthPitch: u32, SrcSubresource: u32, pSrcBox: ^BOX) -> HRESULT,
|
|
GetHeapProperties: proc "system" (this: ^IResource, pHeapProperties: ^HEAP_PROPERTIES, pHeapFlags: ^HEAP_FLAGS) -> HRESULT,
|
|
}
|
|
|
|
|
|
ICommandAllocator_UUID_STRING :: "6102dee4-af59-4b09-b999-b44d73f09b24"
|
|
ICommandAllocator_UUID := &IID{0x6102dee4, 0xaf59, 0x4b09, {0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24}}
|
|
ICommandAllocator :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12commandallocator_vtable: ^ICommandAllocator_VTable,
|
|
}
|
|
ICommandAllocator_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
Reset: proc "system" (this: ^ICommandAllocator) -> HRESULT,
|
|
}
|
|
|
|
|
|
IFence_UUID_STRING :: "0a753dcf-c4d8-4b91-adf6-be5a60d95a76"
|
|
IFence_UUID := &IID {0x0a753dcf, 0xc4d8, 0x4b91, {0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76}}
|
|
IFence :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12fence_vtable: ^IFence_VTable,
|
|
}
|
|
IFence_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetCompletedValue: proc "system" (this: ^IFence) -> u64,
|
|
SetEventOnCompletion: proc "system" (this: ^IFence, Value: u64, hEvent: HANDLE) -> HRESULT,
|
|
Signal: proc "system" (this: ^IFence, Value: u64) -> HRESULT,
|
|
}
|
|
|
|
|
|
IFence1_UUID_STRING :: "433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a"
|
|
IFence1_UUID := &IID{0x433685fe, 0xe22b, 0x4ca0, {0xa8, 0xdb, 0xb5, 0xb4, 0xf4, 0xdd, 0x0e, 0x4a}}
|
|
IFence1 :: struct #raw_union {
|
|
#subtype id3d12fence: IFence,
|
|
using id3d12fence1_vtable: ^IFence1_VTable,
|
|
}
|
|
IFence1_VTable :: struct {
|
|
using id3d12fence_vtable: IFence_VTable,
|
|
GetCreationFlags: proc "system" (this: ^IFence1) -> FENCE_FLAGS,
|
|
}
|
|
|
|
|
|
IPipelineState_UUID_STRING :: "765a30f3-f624-4c6f-a828-ace948622445"
|
|
IPipelineState_UUID := &IID{0x765a30f3, 0xf624, 0x4c6f, {0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45}}
|
|
IPipelineState :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12pipelinestate_vtable: ^IPipelineState_VTable,
|
|
}
|
|
IPipelineState_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetCachedBlob: proc "system" (this: ^IPipelineState, ppBlob: ^^IBlob) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDescriptorHeap_UUID_STRING :: "8efb471d-616c-4f49-90f7-127bb763fa51"
|
|
IDescriptorHeap_UUID := &IID{0x8efb471d, 0x616c, 0x4f49, { 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51}}
|
|
IDescriptorHeap :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12descriptorheap_vtable: ^IDescriptorHeap_VTable,
|
|
}
|
|
IDescriptorHeap_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetDesc: proc "system" (this: ^IDescriptorHeap, desc: ^DESCRIPTOR_HEAP_DESC),
|
|
GetCPUDescriptorHandleForHeapStart: proc "system" (this: ^IDescriptorHeap, handle: ^CPU_DESCRIPTOR_HANDLE),
|
|
GetGPUDescriptorHandleForHeapStart: proc "system" (this: ^IDescriptorHeap, handle: ^GPU_DESCRIPTOR_HANDLE),
|
|
}
|
|
|
|
IQueryHeap_UUID_STRING :: "0d9658ae-ed45-469e-a61d-970ec583cab4"
|
|
IQueryHeap_UUID := &IID{0x0d9658ae, 0xed45, 0x469e, {0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4}}
|
|
IQueryHeap :: struct {
|
|
using id3d12pageable: IPageable,
|
|
}
|
|
|
|
|
|
ICommandSignature_UUID_STRING :: "c36a797c-ec80-4f0a-8985-a7b2475082d1"
|
|
ICommandSignature_UUID := &IID{0xc36a797c, 0xec80, 0x4f0a, {0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1}}
|
|
ICommandSignature :: struct {
|
|
using id3d12pageable: IPageable,
|
|
}
|
|
|
|
|
|
ICommandList_UUID_STRING :: "7116d91c-e7e4-47ce-b8c6-ec8168f437e5"
|
|
ICommandList_UUID := &IID {0x7116d91c, 0xe7e4, 0x47ce, {0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5}}
|
|
ICommandList :: struct #raw_union {
|
|
#subtype id3d12devicechild: IDeviceChild,
|
|
using id3d12commandlist_vtable: ^ICommandList_VTable,
|
|
}
|
|
ICommandList_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetType: proc "system" (this: ^ICommandList) -> COMMAND_LIST_TYPE,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList_UUID_STRING :: "5b160d0f-ac1b-4185-8ba8-b3ae42a5a455"
|
|
IGraphicsCommandList_UUID := &IID{0x5b160d0f, 0xac1b, 0x4185, {0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55}}
|
|
IGraphicsCommandList :: struct #raw_union {
|
|
#subtype id3d12commandlist: ICommandList,
|
|
using id3d12graphicscommandlist_vtable: ^IGraphicsCommandList_VTable,
|
|
}
|
|
IGraphicsCommandList_VTable :: struct {
|
|
using id3d12commandlist_vtable: ICommandList_VTable,
|
|
Close: proc "system" (this: ^IGraphicsCommandList) -> HRESULT,
|
|
Reset: proc "system" (this: ^IGraphicsCommandList, pAllocator: ^ICommandAllocator, pInitialState: ^IPipelineState) -> HRESULT,
|
|
ClearState: proc "system" (this: ^IGraphicsCommandList, pPipelineState: ^IPipelineState),
|
|
DrawInstanced: proc "system" (this: ^IGraphicsCommandList, VertexCountPerInstance: u32, InstanceCount: u32, StartVertexLocation: u32, StartInstanceLocation: u32),
|
|
DrawIndexedInstanced: proc "system" (this: ^IGraphicsCommandList, IndexCountPerInstance: u32, InstanceCount: u32, StartIndexLocation: u32, BaseVertexLocation: i32, StartInstanceLocation: u32),
|
|
Dispatch: proc "system" (this: ^IGraphicsCommandList, ThreadGroupCountX: u32, ThreadGroupCountY: u32, ThreadGroupCountZ: u32),
|
|
CopyBufferRegion: proc "system" (this: ^IGraphicsCommandList, pDstBuffer: ^IResource, DstOffset: u64, pSrcBuffer: ^IResource, SrcOffset: u64, NumBytes: u64),
|
|
CopyTextureRegion: proc "system" (this: ^IGraphicsCommandList, pDst: ^TEXTURE_COPY_LOCATION, DstX: u32, DstY: u32, DstZ: u32, pSrc: ^TEXTURE_COPY_LOCATION, pSrcBox: ^BOX),
|
|
CopyResource: proc "system" (this: ^IGraphicsCommandList, pDstResource: ^IResource, pSrcResource: ^IResource),
|
|
CopyTiles: proc "system" (this: ^IGraphicsCommandList, pTiledResource: ^IResource, pTileRegionStartCoordinate: ^TILED_RESOURCE_COORDINATE, pTileRegionSize: ^TILE_REGION_SIZE, pBuffer: ^IResource, BufferStartOffsetInBytes: u64, Flags: TILE_COPY_FLAGS),
|
|
ResolveSubresource: proc "system" (this: ^IGraphicsCommandList, pDstResource: ^IResource, DstSubresource: u32, pSrcResource: ^IResource, SrcSubresource: u32, Format: dxgi.FORMAT),
|
|
IASetPrimitiveTopology: proc "system" (this: ^IGraphicsCommandList, PrimitiveTopology: PRIMITIVE_TOPOLOGY),
|
|
RSSetViewports: proc "system" (this: ^IGraphicsCommandList, NumViewports: u32, pViewports: [^]VIEWPORT),
|
|
RSSetScissorRects: proc "system" (this: ^IGraphicsCommandList, NumRects: u32, pRects: [^]RECT),
|
|
OMSetBlendFactor: proc "system" (this: ^IGraphicsCommandList, BlendFactor: ^[4]f32),
|
|
OMSetStencilRef: proc "system" (this: ^IGraphicsCommandList, StencilRef: u32),
|
|
SetPipelineState: proc "system" (this: ^IGraphicsCommandList, pPipelineState: ^IPipelineState),
|
|
ResourceBarrier: proc "system" (this: ^IGraphicsCommandList, NumBarriers: u32, pBarriers: [^]RESOURCE_BARRIER),
|
|
ExecuteBundle: proc "system" (this: ^IGraphicsCommandList, pCommandList: ^IGraphicsCommandList),
|
|
SetDescriptorHeaps: proc "system" (this: ^IGraphicsCommandList, NumDescriptorHeaps: u32, ppDescriptorHeaps: [^]^IDescriptorHeap),
|
|
SetComputeRootSignature: proc "system" (this: ^IGraphicsCommandList, pRootSignature: ^IRootSignature),
|
|
SetGraphicsRootSignature: proc "system" (this: ^IGraphicsCommandList, pRootSignature: ^IRootSignature),
|
|
SetComputeRootDescriptorTable: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BaseDescriptor: GPU_DESCRIPTOR_HANDLE),
|
|
SetGraphicsRootDescriptorTable: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BaseDescriptor: GPU_DESCRIPTOR_HANDLE),
|
|
SetComputeRoot32BitConstant: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, SrcData: u32, DestOffsetIn32BitValues: u32),
|
|
SetGraphicsRoot32BitConstant: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, SrcData: u32, DestOffsetIn32BitValues: u32),
|
|
SetComputeRoot32BitConstants: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, Num32BitValuesToSet: u32, pSrcData: rawptr, DestOffsetIn32BitValues: u32),
|
|
SetGraphicsRoot32BitConstants: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, Num32BitValuesToSet: u32, pSrcData: rawptr, DestOffsetIn32BitValues: u32),
|
|
SetComputeRootConstantBufferView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
SetGraphicsRootConstantBufferView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
SetComputeRootShaderResourceView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
SetGraphicsRootShaderResourceView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
SetComputeRootUnorderedAccessView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
SetGraphicsRootUnorderedAccessView: proc "system" (this: ^IGraphicsCommandList, RootParameterIndex: u32, BufferLocation: GPU_VIRTUAL_ADDRESS),
|
|
IASetIndexBuffer: proc "system" (this: ^IGraphicsCommandList, pView: ^INDEX_BUFFER_VIEW),
|
|
IASetVertexBuffers: proc "system" (this: ^IGraphicsCommandList, StartSlot: u32, NumViews: u32, pViews: [^]VERTEX_BUFFER_VIEW),
|
|
SOSetTargets: proc "system" (this: ^IGraphicsCommandList, StartSlot: u32, NumViews: u32, pViews: [^]STREAM_OUTPUT_BUFFER_VIEW),
|
|
OMSetRenderTargets: proc "system" (this: ^IGraphicsCommandList, NumRenderTargetDescriptors: u32, pRenderTargetDescriptors: [^]CPU_DESCRIPTOR_HANDLE, RTsSingleHandleToDescriptorRange: BOOL, pDepthStencilDescriptor: ^CPU_DESCRIPTOR_HANDLE),
|
|
ClearDepthStencilView: proc "system" (this: ^IGraphicsCommandList, DepthStencilView: CPU_DESCRIPTOR_HANDLE, ClearFlags: CLEAR_FLAGS, Depth: f32, Stencil: u8, NumRects: u32, pRects: [^]RECT),
|
|
ClearRenderTargetView: proc "system" (this: ^IGraphicsCommandList, RenderTargetView: CPU_DESCRIPTOR_HANDLE, ColorRGBA: ^[4]f32, NumRects: u32, pRects: [^]RECT),
|
|
ClearUnorderedAccessViewUint: proc "system" (this: ^IGraphicsCommandList, ViewGPUHandleInCurrentHeap: GPU_DESCRIPTOR_HANDLE, ViewCPUHandle: CPU_DESCRIPTOR_HANDLE, pResource: ^IResource, Values: ^[4]u32, NumRects: u32, pRects: [^]RECT),
|
|
ClearUnorderedAccessViewFloat: proc "system" (this: ^IGraphicsCommandList, ViewGPUHandleInCurrentHeap: GPU_DESCRIPTOR_HANDLE, ViewCPUHandle: CPU_DESCRIPTOR_HANDLE, pResource: ^IResource, Values: ^[4]f32, NumRects: u32, pRects: [^]RECT),
|
|
DiscardResource: proc "system" (this: ^IGraphicsCommandList, pResource: ^IResource, pRegion: ^DISCARD_REGION),
|
|
BeginQuery: proc "system" (this: ^IGraphicsCommandList, pQueryHeap: ^IQueryHeap, Type: QUERY_TYPE, Index: u32),
|
|
EndQuery: proc "system" (this: ^IGraphicsCommandList, pQueryHeap: ^IQueryHeap, Type: QUERY_TYPE, Index: u32),
|
|
ResolveQueryData: proc "system" (this: ^IGraphicsCommandList, pQueryHeap: ^IQueryHeap, Type: QUERY_TYPE, StartIndex: u32, NumQueries: u32, pDestinationBuffer: ^IResource, AlignedDestinationBufferOffset: u64),
|
|
SetPredication: proc "system" (this: ^IGraphicsCommandList, pBuffer: ^IResource, AlignedBufferOffset: u64, Operation: PREDICATION_OP),
|
|
SetMarker: proc "system" (this: ^IGraphicsCommandList, Metadata: u32, pData: rawptr, Size: u32),
|
|
BeginEvent: proc "system" (this: ^IGraphicsCommandList, Metadata: u32, pData: rawptr, Size: u32),
|
|
EndEvent: proc "system" (this: ^IGraphicsCommandList),
|
|
ExecuteIndirect: proc "system" (this: ^IGraphicsCommandList, pCommandSignature: ^ICommandSignature, MaxCommandCount: u32, pArgumentBuffer: ^IResource, ArgumentBufferOffset: u64, pCountBuffer: ^IResource, CountBufferOffset: u64),
|
|
}
|
|
|
|
|
|
IGraphicsCommandList1_UUID_STRING :: "553103fb-1fe7-4557-bb38-946d7d0e7ca7"
|
|
IGraphicsCommandList1_UUID := &IID{0x553103fb, 0x1fe7, 0x4557, {0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7}}
|
|
IGraphicsCommandList1 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist: IGraphicsCommandList,
|
|
using id3d12graphicscommandlist1_vtable: ^IGraphicsCommandList1_VTable,
|
|
}
|
|
IGraphicsCommandList1_VTable :: struct {
|
|
using id3d12graphicscommandlist_vtable: IGraphicsCommandList_VTable,
|
|
AtomicCopyBufferUINT: proc "system" (this: ^IGraphicsCommandList1, pDstBuffer: ^IResource, DstOffset: u64, pSrcBuffer: ^IResource, SrcOffset: u64, Dependencies: u32, ppDependentResources: [^]^IResource, pDependentSubresourceRanges: [^]SUBRESOURCE_RANGE_UINT64),
|
|
AtomicCopyBufferUINT64: proc "system" (this: ^IGraphicsCommandList1, pDstBuffer: ^IResource, DstOffset: u64, pSrcBuffer: ^IResource, SrcOffset: u64, Dependencies: u32, ppDependentResources: [^]^IResource, pDependentSubresourceRanges: [^]SUBRESOURCE_RANGE_UINT64),
|
|
OMSetDepthBounds: proc "system" (this: ^IGraphicsCommandList1, Min: f32, Max: f32),
|
|
SetSamplePositions: proc "system" (this: ^IGraphicsCommandList1, NumSamplesPerPixel: u32, NumPixels: u32, pSamplePositions: [^]SAMPLE_POSITION),
|
|
ResolveSubresourceRegion: proc "system" (this: ^IGraphicsCommandList1, pDstResource: ^IResource, DstSubresource: u32, DstX: u32, DstY: u32, pSrcResource: ^IResource, SrcSubresource: u32, pSrcRect: ^RECT, Format: dxgi.FORMAT, ResolveMode: RESOLVE_MODE),
|
|
SetViewInstanceMask: proc "system" (this: ^IGraphicsCommandList1, Mask: u32),
|
|
}
|
|
|
|
WRITEBUFFERIMMEDIATE_PARAMETER :: struct {
|
|
Dest: GPU_VIRTUAL_ADDRESS,
|
|
Value: u32,
|
|
}
|
|
|
|
WRITEBUFFERIMMEDIATE_MODE :: enum i32 {
|
|
DEFAULT = 0,
|
|
MARKER_IN = 1,
|
|
MARKER_OUT = 2,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList2_UUID_STRING :: "38C3E585-FF17-412C-9150-4FC6F9D72A28"
|
|
IGraphicsCommandList2_UUID := &IID{0x38C3E585, 0xFF17, 0x412C, {0x91, 0x50, 0x4F, 0xC6, 0xF9, 0xD7, 0x2A, 0x28}}
|
|
IGraphicsCommandList2 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist1: IGraphicsCommandList1,
|
|
using id3d12graphicscommandlist2_vtable: ^IGraphicsCommandList2_VTable,
|
|
}
|
|
IGraphicsCommandList2_VTable :: struct {
|
|
using id3d12graphicscommandlist1_vtable: IGraphicsCommandList1_VTable,
|
|
WriteBufferImmediate: proc "system" (this: ^IGraphicsCommandList2, Count: u32, pParams: [^]WRITEBUFFERIMMEDIATE_PARAMETER, pModes: [^]WRITEBUFFERIMMEDIATE_MODE),
|
|
}
|
|
|
|
|
|
ICommandQueue_UUID_STRING :: "0ec870a6-5d7e-4c22-8cfc-5baae07616ed"
|
|
ICommandQueue_UUID := &IID{0x0ec870a6, 0x5d7e, 0x4c22, { 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed}}
|
|
ICommandQueue :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12commandqueue_vtable: ^ICommandQueue_VTable,
|
|
}
|
|
ICommandQueue_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
UpdateTileMappings: proc "system" (this: ^ICommandQueue, pResource: ^IResource, NumResourceRegions: u32, pResourceRegionStartCoordinates: [^]TILED_RESOURCE_COORDINATE, pResourceRegionSizes: [^]TILE_REGION_SIZE, pHeap: ^IHeap, NumRanges: u32, pRangeFlags: [^]TILE_RANGE_FLAGS, pHeapRangeStartOffsets: [^]u32, pRangeTileCounts: [^]u32, Flags: TILE_MAPPING_FLAGS),
|
|
CopyTileMappings: proc "system" (this: ^ICommandQueue, pDstResource: ^IResource, pDstRegionStartCoordinate: ^TILED_RESOURCE_COORDINATE, pSrcResource: ^IResource, pSrcRegionStartCoordinate: ^TILED_RESOURCE_COORDINATE, pRegionSize: ^TILE_REGION_SIZE, Flags: TILE_MAPPING_FLAGS),
|
|
ExecuteCommandLists: proc "system" (this: ^ICommandQueue, NumCommandLists: u32, ppCommandLists: [^]^ICommandList),
|
|
SetMarker: proc "system" (this: ^ICommandQueue, Metadata: u32, pData: rawptr, Size: u32),
|
|
BeginEvent: proc "system" (this: ^ICommandQueue, Metadata: u32, pData: rawptr, Size: u32),
|
|
EndEvent: proc "system" (this: ^ICommandQueue),
|
|
Signal: proc "system" (this: ^ICommandQueue, pFence: ^IFence, Value: u64) -> HRESULT,
|
|
Wait: proc "system" (this: ^ICommandQueue, pFence: ^IFence, Value: u64) -> HRESULT,
|
|
GetTimestampFrequency: proc "system" (this: ^ICommandQueue, pFrequency: ^u64) -> HRESULT,
|
|
GetClockCalibration: proc "system" (this: ^ICommandQueue, pGpuTimestamp: ^u64, pCpuTimestamp: ^u64) -> HRESULT,
|
|
GetDesc: proc "system" (this: ^ICommandQueue, pRetVal: ^COMMAND_QUEUE_DESC) -> ^COMMAND_QUEUE_DESC,
|
|
}
|
|
|
|
|
|
IDevice_UUID_STRING :: "189819f1-1db6-4b57-be54-1821339b85f7"
|
|
IDevice_UUID := &IID{0x189819f1, 0x1db6, 0x4b57, { 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7}}
|
|
IDevice :: struct #raw_union {
|
|
#subtype id3d12object: IObject,
|
|
using id3d12device_vtable: ^IDevice_VTable,
|
|
}
|
|
IDevice_VTable :: struct {
|
|
using id3d12object_vtable: IObject_VTable,
|
|
GetNodeCount: proc "system" (this: ^IDevice) -> u32,
|
|
CreateCommandQueue: proc "system" (this: ^IDevice, pDesc: ^COMMAND_QUEUE_DESC, riid: ^IID, ppCommandQueue: ^rawptr) -> HRESULT,
|
|
CreateCommandAllocator: proc "system" (this: ^IDevice, type: COMMAND_LIST_TYPE, riid: ^IID, ppCommandAllocator: ^rawptr) -> HRESULT,
|
|
CreateGraphicsPipelineState: proc "system" (this: ^IDevice, pDesc: ^GRAPHICS_PIPELINE_STATE_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
CreateComputePipelineState: proc "system" (this: ^IDevice, pDesc: ^COMPUTE_PIPELINE_STATE_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
CreateCommandList: proc "system" (this: ^IDevice, nodeMask: u32, type: COMMAND_LIST_TYPE, pCommandAllocator: ^ICommandAllocator, pInitialState: ^IPipelineState, riid: ^IID, ppCommandList: ^rawptr) -> HRESULT,
|
|
CheckFeatureSupport: proc "system" (this: ^IDevice, Feature: FEATURE, pFeatureSupportData: rawptr, FeatureSupportDataSize: u32) -> HRESULT,
|
|
CreateDescriptorHeap: proc "system" (this: ^IDevice, pDescriptorHeapDesc: ^DESCRIPTOR_HEAP_DESC, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
GetDescriptorHandleIncrementSize: proc "system" (this: ^IDevice, DescriptorHeapType: DESCRIPTOR_HEAP_TYPE) -> u32,
|
|
CreateRootSignature: proc "system" (this: ^IDevice, nodeMask: u32, pBlobWithRootSignature: rawptr, blobLengthInBytes: SIZE_T, riid: ^IID, ppvRootSignature: ^rawptr) -> HRESULT,
|
|
CreateConstantBufferView: proc "system" (this: ^IDevice, pDesc: ^CONSTANT_BUFFER_VIEW_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CreateShaderResourceView: proc "system" (this: ^IDevice, pResource: ^IResource, pDesc: ^SHADER_RESOURCE_VIEW_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CreateUnorderedAccessView: proc "system" (this: ^IDevice, pResource: ^IResource, pCounterResource: ^IResource, pDesc: ^UNORDERED_ACCESS_VIEW_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CreateRenderTargetView: proc "system" (this: ^IDevice, pResource: ^IResource, pDesc: ^RENDER_TARGET_VIEW_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CreateDepthStencilView: proc "system" (this: ^IDevice, pResource: ^IResource, pDesc: ^DEPTH_STENCIL_VIEW_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CreateSampler: proc "system" (this: ^IDevice, pDesc: ^SAMPLER_DESC, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
CopyDescriptors: proc "system" (this: ^IDevice, NumDestDescriptorRanges: u32, pDestDescriptorRangeStarts: [^]CPU_DESCRIPTOR_HANDLE, pDestDescriptorRangeSizes: [^]u32, NumSrcDescriptorRanges: u32, pSrcDescriptorRangeStarts: [^]CPU_DESCRIPTOR_HANDLE, pSrcDescriptorRangeSizes: [^]u32, DescriptorHeapsType: DESCRIPTOR_HEAP_TYPE),
|
|
CopyDescriptorsSimple: proc "system" (this: ^IDevice, NumDescriptors: u32, DestDescriptorRangeStart: CPU_DESCRIPTOR_HANDLE, SrcDescriptorRangeStart: CPU_DESCRIPTOR_HANDLE, DescriptorHeapsType: DESCRIPTOR_HEAP_TYPE),
|
|
GetResourceAllocationInfo: proc "system" (this: ^IDevice, RetVal: ^RESOURCE_ALLOCATION_INFO, visibleMask: u32, numResourceDescs: u32, pResourceDescs: [^]RESOURCE_DESC),
|
|
GetCustomHeapProperties: proc "system" (this: ^IDevice, nodeMask: u32, heapType: HEAP_TYPE) -> HEAP_PROPERTIES,
|
|
CreateCommittedResource: proc "system" (this: ^IDevice, pHeapProperties: ^HEAP_PROPERTIES, HeapFlags: HEAP_FLAGS, pDesc: ^RESOURCE_DESC, InitialResourceState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, riidResource: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreateHeap: proc "system" (this: ^IDevice, pDesc: ^HEAP_DESC, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
CreatePlacedResource: proc "system" (this: ^IDevice, pHeap: ^IHeap, HeapOffset: u64, pDesc: ^RESOURCE_DESC, InitialState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, riid: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreateReservedResource: proc "system" (this: ^IDevice, pDesc: ^RESOURCE_DESC, InitialState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, riid: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreateSharedHandle: proc "system" (this: ^IDevice, pObject: ^IDeviceChild, pAttributes: ^win32.SECURITY_ATTRIBUTES, Access: u32, Name: LPCWSTR, pHandle: ^HANDLE) -> HRESULT,
|
|
OpenSharedHandle: proc "system" (this: ^IDevice, NTHandle: HANDLE, riid: ^IID, ppvObj: ^rawptr) -> HRESULT,
|
|
OpenSharedHandleByName: proc "system" (this: ^IDevice, Name: LPCWSTR, Access: u32, pNTHandle: ^HANDLE) -> HRESULT,
|
|
MakeResident: proc "system" (this: ^IDevice, NumObjects: u32, ppObjects: [^]^IPageable) -> HRESULT,
|
|
Evict: proc "system" (this: ^IDevice, NumObjects: u32, ppObjects: [^]^IPageable) -> HRESULT,
|
|
CreateFence: proc "system" (this: ^IDevice, InitialValue: u64, Flags: FENCE_FLAGS, riid: ^IID, ppFence: ^rawptr) -> HRESULT,
|
|
GetDeviceRemovedReason: proc "system" (this: ^IDevice) -> HRESULT,
|
|
GetCopyableFootprints: proc "system" (this: ^IDevice, pResourceDesc: ^RESOURCE_DESC, FirstSubresource: u32, NumSubresources: u32, BaseOffset: u64, pLayouts: [^]PLACED_SUBRESOURCE_FOOTPRINT, pNumRows: [^]u32, pRowSizeInBytes: [^]u64, pTotalBytes: ^u64),
|
|
CreateQueryHeap: proc "system" (this: ^IDevice, pDesc: ^QUERY_HEAP_DESC, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
SetStablePowerState: proc "system" (this: ^IDevice, Enable: BOOL) -> HRESULT,
|
|
CreateCommandSignature: proc "system" (this: ^IDevice, pDesc: ^COMMAND_SIGNATURE_DESC, pRootSignature: ^IRootSignature, riid: ^IID, ppvCommandSignature: ^rawptr) -> HRESULT,
|
|
GetResourceTiling: proc "system" (this: ^IDevice, pTiledResource: ^IResource, pNumTilesForEntireResource: ^u32, pPackedMipDesc: ^PACKED_MIP_INFO, pStandardTileShapeForNonPackedMips: ^TILE_SHAPE, pNumSubresourceTilings: ^u32, FirstSubresourceTilingToGet: u32, pSubresourceTilingsForNonPackedMips: ^SUBRESOURCE_TILING),
|
|
GetAdapterLuid: proc "system" (this: ^IDevice) -> LUID,
|
|
}
|
|
|
|
|
|
IPipelineLibrary_UUID_STRING :: "c64226a8-9201-46af-b4cc-53fb9ff7414f"
|
|
IPipelineLibrary_UUID := &IID{0xc64226a8, 0x9201, 0x46af, {0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f}}
|
|
IPipelineLibrary :: struct #raw_union {
|
|
#subtype id3d12devicechild: IDeviceChild,
|
|
using id3d12pipelinelibrary_vtable: ^IPipelineLibrary_VTable,
|
|
}
|
|
IPipelineLibrary_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
StorePipeline: proc "system" (this: ^IPipelineLibrary, pName: LPCWSTR, pPipeline: ^IPipelineState) -> HRESULT,
|
|
LoadGraphicsPipeline: proc "system" (this: ^IPipelineLibrary, pName: LPCWSTR, pDesc: ^GRAPHICS_PIPELINE_STATE_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
LoadComputePipeline: proc "system" (this: ^IPipelineLibrary, pName: LPCWSTR, pDesc: ^COMPUTE_PIPELINE_STATE_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
GetSerializedSize: proc "system" (this: ^IPipelineLibrary) -> SIZE_T,
|
|
Serialize: proc "system" (this: ^IPipelineLibrary, pData: rawptr, DataSizeInBytes: SIZE_T) -> HRESULT,
|
|
}
|
|
|
|
|
|
IPipelineLibrary1_UUID_STRING :: "80eabf42-2568-4e5e-bd82-c37f86961dc3"
|
|
IPipelineLibrary1_UUID := &IID{0x80eabf42, 0x2568, 0x4e5e, {0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3}}
|
|
IPipelineLibrary1 :: struct #raw_union {
|
|
#subtype id3d12pipelinelibrary: IPipelineLibrary,
|
|
using id3d12pipelinelibrary1_vtable: ^IPipelineLibrary1_VTable,
|
|
}
|
|
IPipelineLibrary1_VTable :: struct {
|
|
using id3d12pipelinelibrary_vtable: IPipelineLibrary_VTable,
|
|
LoadPipeline: proc "system" (this: ^IPipelineLibrary1, pName: LPCWSTR, pDesc: ^PIPELINE_STATE_STREAM_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
MULTIPLE_FENCE_WAIT_FLAGS :: distinct bit_set[MULTIPLE_FENCE_WAIT_FLAG; u32]
|
|
MULTIPLE_FENCE_WAIT_FLAG :: enum u32 {
|
|
ANY = 0,
|
|
}
|
|
MULTIPLE_FENCE_WAIT_FLAG_NONE :: MULTIPLE_FENCE_WAIT_FLAGS{}
|
|
MULTIPLE_FENCE_WAIT_FLAG_ANY :: MULTIPLE_FENCE_WAIT_FLAGS{.ANY}
|
|
MULTIPLE_FENCE_WAIT_FLAG_ALL :: MULTIPLE_FENCE_WAIT_FLAGS{}
|
|
|
|
RESIDENCY_PRIORITY :: enum i32 {
|
|
MINIMUM = 671088640,
|
|
LOW = 1342177280,
|
|
NORMAL = 2013265920,
|
|
HIGH = -1610547200,
|
|
MAXIMUM = -939524096,
|
|
}
|
|
|
|
|
|
IDevice1_UUID_STRING :: "77acce80-638e-4e65-8895-c1f23386863e"
|
|
IDevice1_UUID := &IID{0x77acce80, 0x638e, 0x4e65, {0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e}}
|
|
IDevice1 :: struct #raw_union {
|
|
#subtype id3d12device: IDevice,
|
|
using id3d12device1_vtable: ^IDevice1_VTable,
|
|
}
|
|
IDevice1_VTable :: struct {
|
|
using id3d12device_vtable: IDevice_VTable,
|
|
CreatePipelineLibrary: proc "system" (this: ^IDevice1, pLibraryBlob: rawptr, BlobLength: SIZE_T, riid: ^IID, ppPipelineLibrary: ^rawptr) -> HRESULT,
|
|
SetEventOnMultipleFenceCompletion: proc "system" (this: ^IDevice1, ppFences: [^]^IFence, pFenceValues: [^]u64, NumFences: u32, Flags: MULTIPLE_FENCE_WAIT_FLAGS, hEvent: HANDLE) -> HRESULT,
|
|
SetResidencyPriority: proc "system" (this: ^IDevice1, NumObjects: u32, ppObjects: [^]^IPageable, pPriorities: [^]RESIDENCY_PRIORITY) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDevice2_UUID_STRING :: "30baa41e-b15b-475c-a0bb-1af5c5b64328"
|
|
IDevice2_UUID := &IID{0x30baa41e, 0xb15b, 0x475c, {0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28}}
|
|
IDevice2 :: struct #raw_union {
|
|
#subtype id3d12device1: IDevice1,
|
|
using id3d12device2_vtable: ^IDevice2_VTable,
|
|
}
|
|
IDevice2_VTable :: struct {
|
|
using id3d12device1_vtable: IDevice1_VTable,
|
|
CreatePipelineState: proc "system" (this: ^IDevice2, pDesc: ^PIPELINE_STATE_STREAM_DESC, riid: ^IID, ppPipelineState: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
RESIDENCY_FLAGS :: distinct bit_set[RESIDENCY_FLAG; u32]
|
|
RESIDENCY_FLAG :: enum u32 {
|
|
DENY_OVERBUDGET = 0,
|
|
}
|
|
|
|
|
|
IDevice3_UUID_STRING :: "81dadc15-2bad-4392-93c5-101345c4aa98"
|
|
IDevice3_UUID := &IID{0x81dadc15, 0x2bad, 0x4392, {0x93, 0xc5, 0x10, 0x13, 0x45, 0xc4, 0xaa, 0x98}}
|
|
IDevice3 :: struct #raw_union {
|
|
#subtype id3d12device2: IDevice2,
|
|
using id3d12device3_vtable: ^IDevice3_VTable,
|
|
}
|
|
IDevice3_VTable :: struct {
|
|
using id3d12device2_vtable: IDevice2_VTable,
|
|
OpenExistingHeapFromAddress: proc "system" (this: ^IDevice3, pAddress: rawptr, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
OpenExistingHeapFromFileMapping: proc "system" (this: ^IDevice3, hFileMapping: HANDLE, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
EnqueueMakeResident: proc "system" (this: ^IDevice3, Flags: RESIDENCY_FLAGS, NumObjects: u32, ppObjects: [^]^IPageable, pFenceToSignal: ^IFence, FenceValueToSignal: u64) -> HRESULT,
|
|
}
|
|
|
|
COMMAND_LIST_FLAGS :: distinct bit_set[COMMAND_LIST_FLAG; u32]
|
|
COMMAND_LIST_FLAG :: enum u32 {
|
|
}
|
|
|
|
COMMAND_POOL_FLAGS :: distinct bit_set[COMMAND_POOL_FLAG; u32]
|
|
COMMAND_POOL_FLAG :: enum u32 {
|
|
}
|
|
|
|
COMMAND_RECORDER_FLAGS :: distinct bit_set[COMMAND_RECORDER_FLAG; u32]
|
|
COMMAND_RECORDER_FLAG :: enum u32 {
|
|
}
|
|
|
|
PROTECTED_SESSION_STATUS :: enum i32 {
|
|
OK = 0,
|
|
INVALID = 1,
|
|
}
|
|
|
|
|
|
IProtectedSession_UUID_STRING :: "A1533D18-0AC1-4084-85B9-89A96116806B"
|
|
IProtectedSession_UUID := &IID{0xA1533D18, 0x0AC1, 0x4084, {0x85, 0xB9, 0x89, 0xA9, 0x61, 0x16, 0x80, 0x6B}}
|
|
IProtectedSession :: struct #raw_union {
|
|
#subtype id3d12devicechild: IDeviceChild,
|
|
using id3d12protectedsession_vtable: ^IProtectedSession_VTable,
|
|
}
|
|
IProtectedSession_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetStatusFence: proc "system" (this: ^IProtectedSession, riid: ^IID, ppFence: ^rawptr) -> HRESULT,
|
|
GetSessionStatus: proc "system" (this: ^IProtectedSession) -> PROTECTED_SESSION_STATUS,
|
|
}
|
|
|
|
PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS :: distinct bit_set[PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG; u32]
|
|
PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG :: enum u32 {
|
|
SUPPORTED = 0,
|
|
}
|
|
|
|
FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT :: struct {
|
|
NodeIndex: u32,
|
|
Support: PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS,
|
|
}
|
|
|
|
PROTECTED_RESOURCE_SESSION_FLAGS :: distinct bit_set[PROTECTED_RESOURCE_SESSION_FLAG; u32]
|
|
PROTECTED_RESOURCE_SESSION_FLAG :: enum u32 {
|
|
}
|
|
|
|
PROTECTED_RESOURCE_SESSION_DESC :: struct {
|
|
NodeMask: u32,
|
|
Flags: PROTECTED_RESOURCE_SESSION_FLAGS,
|
|
}
|
|
|
|
|
|
IProtectedResourceSession_UUID_STRING :: "6CD696F4-F289-40CC-8091-5A6C0A099C3D"
|
|
IProtectedResourceSession_UUID := &IID{0x6CD696F4, 0xF289, 0x40CC, {0x80, 0x91, 0x5A, 0x6C, 0x0A, 0x09, 0x9C, 0x3D}}
|
|
IProtectedResourceSession :: struct #raw_union {
|
|
#subtype id3d12protectedsession: IProtectedSession,
|
|
using id3d12protectedresourcesession_vtable: ^IProtectedResourceSession_VTable,
|
|
}
|
|
IProtectedResourceSession_VTable :: struct {
|
|
using id3d12protectedsession_vtable: IProtectedSession_VTable,
|
|
GetDesc: proc "system" (this: ^IProtectedResourceSession, pRetVal: ^PROTECTED_RESOURCE_SESSION_DESC) -> ^PROTECTED_RESOURCE_SESSION_DESC,
|
|
}
|
|
|
|
|
|
IDevice4_UUID_STRING :: "e865df17-a9ee-46f9-a463-3098315aa2e5"
|
|
IDevice4_UUID := &IID{0xe865df17, 0xa9ee, 0x46f9, {0xa4, 0x63, 0x30, 0x98, 0x31, 0x5a, 0xa2, 0xe5}}
|
|
IDevice4 :: struct #raw_union {
|
|
#subtype id3d12device3: IDevice3,
|
|
using id3d12device4_vtable: ^IDevice4_VTable,
|
|
}
|
|
IDevice4_VTable :: struct {
|
|
using id3d12device3_vtable: IDevice3_VTable,
|
|
CreateCommandList1: proc "system" (this: ^IDevice4, nodeMask: u32, type: COMMAND_LIST_TYPE, flags: COMMAND_LIST_FLAGS, riid: ^IID, ppCommandList: ^rawptr) -> HRESULT,
|
|
CreateProtectedResourceSession: proc "system" (this: ^IDevice4, pDesc: ^PROTECTED_RESOURCE_SESSION_DESC, riid: ^IID, ppSession: ^rawptr) -> HRESULT,
|
|
CreateCommittedResource1: proc "system" (this: ^IDevice4, pHeapProperties: ^HEAP_PROPERTIES, HeapFlags: HEAP_FLAGS, pDesc: ^RESOURCE_DESC, InitialResourceState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, pProtectedSession: ^IProtectedResourceSession, riidResource: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreateHeap1: proc "system" (this: ^IDevice4, pDesc: ^HEAP_DESC, pProtectedSession: ^IProtectedResourceSession, riid: ^IID, ppvHeap: ^rawptr) -> HRESULT,
|
|
CreateReservedResource1: proc "system" (this: ^IDevice4, pDesc: ^RESOURCE_DESC, InitialState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, pProtectedSession: ^IProtectedResourceSession, riid: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
GetResourceAllocationInfo1: proc "system" (this: ^IDevice4, RetVal: ^RESOURCE_ALLOCATION_INFO, visibleMask: u32, numResourceDescs: u32, pResourceDescs: [^]RESOURCE_DESC, pResourceAllocationInfo1: ^RESOURCE_ALLOCATION_INFO1),
|
|
}
|
|
|
|
LIFETIME_STATE :: enum i32 {
|
|
IN_USE = 0,
|
|
NOT_IN_USE = 1,
|
|
}
|
|
|
|
|
|
ILifetimeOwner_UUID_STRING :: "e667af9f-cd56-4f46-83ce-032e595d70a8"
|
|
ILifetimeOwner_UUID := &IID{0xe667af9f, 0xcd56, 0x4f46, {0x83, 0xce, 0x03, 0x2e, 0x59, 0x5d, 0x70, 0xa8}}
|
|
ILifetimeOwner :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12lifetimeowner_vtable: ^ILifetimeOwner_VTable,
|
|
}
|
|
ILifetimeOwner_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
LifetimeStateUpdated: proc "system" (this: ^ILifetimeOwner, NewState: LIFETIME_STATE),
|
|
}
|
|
|
|
|
|
ISwapChainAssistant_UUID_STRING :: "f1df64b6-57fd-49cd-8807-c0eb88b45c8f"
|
|
ISwapChainAssistant_UUID := &IID{0xf1df64b6, 0x57fd, 0x49cd, {0x88, 0x07, 0xc0, 0xeb, 0x88, 0xb4, 0x5c, 0x8f}}
|
|
ISwapChainAssistant :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12swapchainassistant_vtable: ^ISwapChainAssistant_VTable,
|
|
}
|
|
ISwapChainAssistant_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetLUID: proc "system" (this: ^ISwapChainAssistant) -> LUID,
|
|
GetSwapChainObject: proc "system" (this: ^ISwapChainAssistant, riid: ^IID, ppv: ^rawptr) -> HRESULT,
|
|
GetCurrentResourceAndCommandQueue: proc "system" (this: ^ISwapChainAssistant, riidResource: ^IID, ppvResource: ^rawptr, riidQueue: ^IID, ppvQueue: ^rawptr) -> HRESULT,
|
|
InsertImplicitSync: proc "system" (this: ^ISwapChainAssistant) -> HRESULT,
|
|
}
|
|
|
|
|
|
ILifetimeTracker_UUID_STRING :: "3fd03d36-4eb1-424a-a582-494ecb8ba813"
|
|
ILifetimeTracker_UUID := &IID{0x3fd03d36, 0x4eb1, 0x424a, {0xa5, 0x82, 0x49, 0x4e, 0xcb, 0x8b, 0xa8, 0x13}}
|
|
ILifetimeTracker :: struct #raw_union {
|
|
#subtype id3d12devicechild: IDeviceChild,
|
|
using id3d12lifetimetracker_vtable: ^ILifetimeTracker_VTable,
|
|
}
|
|
ILifetimeTracker_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
DestroyOwnedObject: proc "system" (this: ^ILifetimeTracker, pObject: ^IDeviceChild) -> HRESULT,
|
|
}
|
|
|
|
META_COMMAND_PARAMETER_TYPE :: enum i32 {
|
|
FLOAT = 0,
|
|
UINT64 = 1,
|
|
GPU_VIRTUAL_ADDRESS = 2,
|
|
CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
|
|
GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4,
|
|
}
|
|
|
|
META_COMMAND_PARAMETER_FLAGS :: distinct bit_set[META_COMMAND_PARAMETER_FLAG; u32]
|
|
META_COMMAND_PARAMETER_FLAG :: enum u32 {
|
|
INPUT = 0,
|
|
OUTPUT = 1,
|
|
}
|
|
|
|
META_COMMAND_PARAMETER_STAGE :: enum i32 {
|
|
CREATION = 0,
|
|
INITIALIZATION = 1,
|
|
EXECUTION = 2,
|
|
}
|
|
|
|
META_COMMAND_PARAMETER_DESC :: struct {
|
|
Name: LPCWSTR,
|
|
Type: META_COMMAND_PARAMETER_TYPE,
|
|
Flags: META_COMMAND_PARAMETER_FLAGS,
|
|
RequiredResourceState: RESOURCE_STATES,
|
|
StructureOffset: u32,
|
|
}
|
|
|
|
GRAPHICS_STATES :: enum i32 {
|
|
NONE = 0,
|
|
IA_VERTEX_BUFFERS = 1,
|
|
IA_INDEX_BUFFER = 2,
|
|
IA_PRIMITIVE_TOPOLOGY = 4,
|
|
DESCRIPTOR_HEAP = 8,
|
|
GRAPHICS_ROOT_SIGNATURE = 16,
|
|
COMPUTE_ROOT_SIGNATURE = 32,
|
|
RS_VIEWPORTS = 64,
|
|
RS_SCISSOR_RECTS = 128,
|
|
PREDICATION = 256,
|
|
OM_RENDER_TARGETS = 512,
|
|
OM_STENCIL_REF = 1024,
|
|
OM_BLEND_FACTOR = 2048,
|
|
PIPELINE_STATE = 4096,
|
|
SO_TARGETS = 8192,
|
|
OM_DEPTH_BOUNDS = 16384,
|
|
SAMPLE_POSITIONS = 32768,
|
|
VIEW_INSTANCE_MASK = 65536,
|
|
}
|
|
|
|
META_COMMAND_DESC :: struct {
|
|
Id: GUID,
|
|
Name: LPCWSTR,
|
|
InitializationDirtyState: GRAPHICS_STATES,
|
|
ExecutionDirtyState: GRAPHICS_STATES,
|
|
}
|
|
|
|
|
|
IStateObject_UUID_STRING :: "47016943-fca8-4594-93ea-af258b55346d"
|
|
IStateObject_UUID := &IID{0x47016943, 0xfca8, 0x4594, {0x93, 0xea, 0xaf, 0x25, 0x8b, 0x55, 0x34, 0x6d}}
|
|
IStateObject :: struct #raw_union {
|
|
using id3d12pageable: IPageable,
|
|
}
|
|
|
|
|
|
IStateObjectProperties_UUID_STRING :: "de5fa827-9bf9-4f26-89ff-d7f56fde3860"
|
|
IStateObjectProperties_IID := &IID{0xde5fa827, 0x9bf9, 0x4f26, {0x89, 0xff, 0xd7, 0xf5, 0x6f, 0xde, 0x38, 0x60}}
|
|
IStateObjectProperties :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12stateobjectproperties_vtable: ^IStateObjectProperties_VTable,
|
|
}
|
|
IStateObjectProperties_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetShaderIdentifier: proc "system" (this: ^IStateObjectProperties, pExportName: LPCWSTR) -> rawptr,
|
|
GetShaderStackSize: proc "system" (this: ^IStateObjectProperties, pExportName: LPCWSTR) -> u64,
|
|
GetPipelineStackSize: proc "system" (this: ^IStateObjectProperties) -> u64,
|
|
SetPipelineStackSize: proc "system" (this: ^IStateObjectProperties, PipelineStackSizeInBytes: u64),
|
|
}
|
|
|
|
STATE_SUBOBJECT_TYPE :: enum i32 {
|
|
STATE_OBJECT_CONFIG = 0,
|
|
GLOBAL_ROOT_SIGNATURE = 1,
|
|
LOCAL_ROOT_SIGNATURE = 2,
|
|
NODE_MASK = 3,
|
|
DXIL_LIBRARY = 5,
|
|
EXISTING_COLLECTION = 6,
|
|
SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
|
|
DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
|
|
RAYTRACING_SHADER_CONFIG = 9,
|
|
RAYTRACING_PIPELINE_CONFIG = 10,
|
|
HIT_GROUP = 11,
|
|
RAYTRACING_PIPELINE_CONFIG1 = 12,
|
|
MAX_VALID = 13,
|
|
}
|
|
|
|
STATE_SUBOBJECT :: struct {
|
|
Type: STATE_SUBOBJECT_TYPE,
|
|
pDesc: rawptr,
|
|
}
|
|
|
|
STATE_OBJECT_FLAGS :: distinct bit_set[STATE_OBJECT_FLAG; u32]
|
|
STATE_OBJECT_FLAG :: enum u32 {
|
|
ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0,
|
|
ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 1,
|
|
ALLOW_STATE_OBJECT_ADDITIONS = 2,
|
|
}
|
|
|
|
STATE_OBJECT_CONFIG :: struct {
|
|
Flags: STATE_OBJECT_FLAGS,
|
|
}
|
|
|
|
GLOBAL_ROOT_SIGNATURE :: struct {
|
|
pGlobalRootSignature: ^IRootSignature,
|
|
}
|
|
|
|
LOCAL_ROOT_SIGNATURE :: struct {
|
|
pLocalRootSignature: ^IRootSignature,
|
|
}
|
|
|
|
NODE_MASK :: struct {
|
|
NodeMask: u32,
|
|
}
|
|
|
|
EXPORT_FLAGS :: distinct bit_set[EXPORT_FLAG; u32]
|
|
EXPORT_FLAG :: enum u32 {
|
|
}
|
|
|
|
EXPORT_DESC :: struct {
|
|
Name: LPCWSTR,
|
|
ExportToRename: LPCWSTR,
|
|
Flags: EXPORT_FLAGS,
|
|
}
|
|
|
|
DXIL_LIBRARY_DESC :: struct {
|
|
DXILLibrary: SHADER_BYTECODE,
|
|
NumExports: u32,
|
|
pExports: ^EXPORT_DESC,
|
|
}
|
|
|
|
EXISTING_COLLECTION_DESC :: struct {
|
|
pExistingCollection: ^IStateObject,
|
|
NumExports: u32,
|
|
pExports: ^EXPORT_DESC,
|
|
}
|
|
|
|
SUBOBJECT_TO_EXPORTS_ASSOCIATION :: struct {
|
|
pSubobjectToAssociate: ^STATE_SUBOBJECT,
|
|
NumExports: u32,
|
|
pExports: [^]LPCWSTR `fmt:"v,NumExports"`,
|
|
}
|
|
|
|
DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION :: struct {
|
|
SubobjectToAssociate: LPCWSTR,
|
|
NumExports: u32,
|
|
pExports: [^]LPCWSTR `fmt:"v,NumExports"`,
|
|
}
|
|
|
|
HIT_GROUP_TYPE :: enum i32 {
|
|
TRIANGLES = 0,
|
|
PROCEDURAL_PRIMITIVE = 1,
|
|
}
|
|
|
|
HIT_GROUP_DESC :: struct {
|
|
HitGroupExport: LPCWSTR,
|
|
Type: HIT_GROUP_TYPE,
|
|
AnyHitShaderImport: LPCWSTR,
|
|
ClosestHitShaderImport: LPCWSTR,
|
|
IntersectionShaderImport: LPCWSTR,
|
|
}
|
|
|
|
RAYTRACING_SHADER_CONFIG :: struct {
|
|
MaxPayloadSizeInBytes: u32,
|
|
MaxAttributeSizeInBytes: u32,
|
|
}
|
|
|
|
RAYTRACING_PIPELINE_CONFIG :: struct {
|
|
MaxTraceRecursionDepth: u32,
|
|
}
|
|
|
|
RAYTRACING_PIPELINE_FLAGS :: distinct bit_set[RAYTRACING_PIPELINE_FLAG; u32]
|
|
RAYTRACING_PIPELINE_FLAG :: enum u32 {
|
|
SKIP_TRIANGLES = 8,
|
|
SKIP_PROCEDURAL_PRIMITIVES = 9,
|
|
}
|
|
|
|
RAYTRACING_PIPELINE_CONFIG1 :: struct {
|
|
MaxTraceRecursionDepth: u32,
|
|
Flags: RAYTRACING_PIPELINE_FLAGS,
|
|
}
|
|
|
|
STATE_OBJECT_TYPE :: enum i32 {
|
|
COLLECTION = 0,
|
|
RAYTRACING_PIPELINE = 3,
|
|
}
|
|
|
|
STATE_OBJECT_DESC :: struct {
|
|
Type: STATE_OBJECT_TYPE,
|
|
NumSubobjects: u32,
|
|
pSubobjects: ^STATE_SUBOBJECT,
|
|
}
|
|
|
|
RAYTRACING_GEOMETRY_FLAGS :: distinct bit_set[RAYTRACING_GEOMETRY_FLAG; u32]
|
|
RAYTRACING_GEOMETRY_FLAG :: enum u32 {
|
|
OPAQUE = 0,
|
|
NO_DUPLICATE_ANYHIT_INVOCATION = 1,
|
|
}
|
|
|
|
RAYTRACING_GEOMETRY_TYPE :: enum i32 {
|
|
TRIANGLES = 0,
|
|
PROCEDURAL_PRIMITIVE_AABBS = 1,
|
|
}
|
|
|
|
RAYTRACING_INSTANCE_FLAGS :: distinct bit_set[RAYTRACING_INSTANCE_FLAG; u32]
|
|
RAYTRACING_INSTANCE_FLAG :: enum u32 {
|
|
TRIANGLE_CULL_DISABLE = 0,
|
|
TRIANGLE_FRONT_COUNTERCLOCKWISE = 1,
|
|
FORCE_OPAQUE = 2,
|
|
FORCE_NON_OPAQUE = 3,
|
|
}
|
|
|
|
GPU_VIRTUAL_ADDRESS_AND_STRIDE :: struct {
|
|
StartAddress: GPU_VIRTUAL_ADDRESS,
|
|
StrideInBytes: u64,
|
|
}
|
|
|
|
GPU_VIRTUAL_ADDRESS_RANGE :: struct {
|
|
StartAddress: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u64,
|
|
}
|
|
|
|
GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE :: struct {
|
|
StartAddress: GPU_VIRTUAL_ADDRESS,
|
|
SizeInBytes: u64,
|
|
StrideInBytes: u64,
|
|
}
|
|
|
|
RAYTRACING_GEOMETRY_TRIANGLES_DESC :: struct {
|
|
Transform3x4: GPU_VIRTUAL_ADDRESS,
|
|
IndexFormat: dxgi.FORMAT,
|
|
VertexFormat: dxgi.FORMAT,
|
|
IndexCount: u32,
|
|
VertexCount: u32,
|
|
IndexBuffer: GPU_VIRTUAL_ADDRESS,
|
|
VertexBuffer: GPU_VIRTUAL_ADDRESS_AND_STRIDE,
|
|
}
|
|
|
|
RAYTRACING_AABB :: struct {
|
|
MinX: f32,
|
|
MinY: f32,
|
|
MinZ: f32,
|
|
MaxX: f32,
|
|
MaxY: f32,
|
|
MaxZ: f32,
|
|
}
|
|
|
|
RAYTRACING_GEOMETRY_AABBS_DESC :: struct {
|
|
AABBCount: u64,
|
|
AABBs: GPU_VIRTUAL_ADDRESS_AND_STRIDE,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS :: distinct bit_set[RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG; u32]
|
|
RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG :: enum u32 {
|
|
ALLOW_UPDATE = 0,
|
|
ALLOW_COMPACTION = 1,
|
|
PREFER_FAST_TRACE = 2,
|
|
PREFER_FAST_BUILD = 3,
|
|
MINIMIZE_MEMORY = 4,
|
|
PERFORM_UPDATE = 5,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE :: enum i32 {
|
|
CLONE = 0,
|
|
COMPACT = 1,
|
|
VISUALIZATION_DECODE_FOR_TOOLS = 2,
|
|
SERIALIZE = 3,
|
|
DESERIALIZE = 4,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_TYPE :: enum i32 {
|
|
TOP_LEVEL = 0,
|
|
BOTTOM_LEVEL = 1,
|
|
}
|
|
|
|
ELEMENTS_LAYOUT :: enum i32 {
|
|
ARRAY = 0,
|
|
ARRAY_OF_POINTERS = 1,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE :: enum i32 {
|
|
COMPACTED_SIZE = 0,
|
|
TOOLS_VISUALIZATION = 1,
|
|
SERIALIZATION = 2,
|
|
CURRENT_SIZE = 3,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC :: struct {
|
|
DestBuffer: GPU_VIRTUAL_ADDRESS,
|
|
InfoType: RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC :: struct {
|
|
CompactedSizeInBytes: u64,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC :: struct {
|
|
DecodedSizeInBytes: u64,
|
|
}
|
|
|
|
BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER :: struct {
|
|
Type: RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
|
|
NumDescs: u32,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC :: struct {
|
|
SerializedSizeInBytes: u64,
|
|
NumBottomLevelAccelerationStructurePointers: u64,
|
|
}
|
|
|
|
SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER :: struct {
|
|
DriverOpaqueGUID: GUID,
|
|
DriverOpaqueVersioningData: [16]u8,
|
|
}
|
|
|
|
SERIALIZED_DATA_TYPE :: enum i32 {
|
|
RAYTRACING_ACCELERATION_STRUCTURE = 0,
|
|
APPLICATION_SPECIFIC_DRIVER_STATE = 1,
|
|
}
|
|
|
|
DRIVER_MATCHING_IDENTIFIER_STATUS :: enum i32 {
|
|
COMPATIBLE_WITH_DEVICE = 0,
|
|
UNSUPPORTED_TYPE = 1,
|
|
UNRECOGNIZED = 2,
|
|
INCOMPATIBLE_VERSION = 3,
|
|
INCOMPATIBLE_TYPE = 4,
|
|
}
|
|
|
|
SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER :: struct {
|
|
DriverMatchingIdentifier: SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER,
|
|
SerializedSizeInBytesIncludingHeader: u64,
|
|
DeserializedSizeInBytes: u64,
|
|
NumBottomLevelAccelerationStructurePointersAfterHeader: u64,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC :: struct {
|
|
CurrentSizeInBytes: u64,
|
|
}
|
|
|
|
RAYTRACING_INSTANCE_DESC :: struct {
|
|
Transform: [3][4]f32,
|
|
InstanceID: u32,
|
|
InstanceContributionToHitGroupIndex: u32,
|
|
AccelerationStructure: GPU_VIRTUAL_ADDRESS,
|
|
}
|
|
|
|
RAYTRACING_GEOMETRY_DESC :: struct {
|
|
Type: RAYTRACING_GEOMETRY_TYPE,
|
|
Flags: RAYTRACING_GEOMETRY_FLAGS,
|
|
using _: struct #raw_union {
|
|
Triangles: RAYTRACING_GEOMETRY_TRIANGLES_DESC,
|
|
AABBs: RAYTRACING_GEOMETRY_AABBS_DESC,
|
|
},
|
|
}
|
|
|
|
BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS :: struct {
|
|
Type: RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
|
|
Flags: RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS,
|
|
NumDescs: u32,
|
|
DescsLayout: ELEMENTS_LAYOUT,
|
|
using _: struct #raw_union {
|
|
InstanceDescs: GPU_VIRTUAL_ADDRESS,
|
|
pGeometryDescs: ^RAYTRACING_GEOMETRY_DESC,
|
|
ppGeometryDescs: [^]^RAYTRACING_GEOMETRY_DESC,
|
|
},
|
|
}
|
|
|
|
BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC :: struct {
|
|
DestAccelerationStructureData: GPU_VIRTUAL_ADDRESS,
|
|
Inputs: BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS,
|
|
SourceAccelerationStructureData: GPU_VIRTUAL_ADDRESS,
|
|
ScratchAccelerationStructureData: GPU_VIRTUAL_ADDRESS,
|
|
}
|
|
|
|
RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO :: struct {
|
|
ResultDataMaxSizeInBytes: u64,
|
|
ScratchDataSizeInBytes: u64,
|
|
UpdateScratchDataSizeInBytes: u64,
|
|
}
|
|
|
|
RAY_FLAGS :: distinct bit_set[RAY_FLAG; u32]
|
|
RAY_FLAG :: enum u32 {
|
|
FORCE_OPAQUE = 0,
|
|
FORCE_NON_OPAQUE = 1,
|
|
ACCEPT_FIRST_HIT_AND_END_SEARCH = 2,
|
|
SKIP_CLOSEST_HIT_SHADER = 3,
|
|
CULL_BACK_FACING_TRIANGLES = 4,
|
|
CULL_FRONT_FACING_TRIANGLES = 5,
|
|
CULL_OPAQUE = 6,
|
|
CULL_NON_OPAQUE = 7,
|
|
SKIP_TRIANGLES = 8,
|
|
SKIP_PROCEDURAL_PRIMITIVES = 9,
|
|
}
|
|
|
|
HIT_KIND :: enum i32 {
|
|
TRIANGLE_FRONT_FACE = 254,
|
|
TRIANGLE_BACK_FACE = 255,
|
|
}
|
|
|
|
|
|
IDevice5_UUID_STRING :: "8b4f173b-2fea-4b80-8f58-4307191ab95d"
|
|
IDevice5_UUID := &IID{0x8b4f173b, 0x2fea, 0x4b80, {0x8f, 0x58, 0x43, 0x07, 0x19, 0x1a, 0xb9, 0x5d}}
|
|
IDevice5 :: struct #raw_union {
|
|
#subtype id3d12device4: IDevice4,
|
|
using id3d12device5_vtable: ^IDevice5_VTable,
|
|
}
|
|
IDevice5_VTable :: struct {
|
|
using id3d12device4_vtable: IDevice4_VTable,
|
|
CreateLifetimeTracker: proc "system" (this: ^IDevice5, pOwner: ^ILifetimeOwner, riid: ^IID, ppvTracker: ^rawptr) -> HRESULT,
|
|
RemoveDevice: proc "system" (this: ^IDevice5),
|
|
EnumerateMetaCommands: proc "system" (this: ^IDevice5, pNumMetaCommands: ^u32, pDescs: [^]META_COMMAND_DESC) -> HRESULT,
|
|
EnumerateMetaCommandParameters: proc "system" (this: ^IDevice5, CommandId: ^GUID, Stage: META_COMMAND_PARAMETER_STAGE, pTotalStructureSizeInBytes: ^u32, pParameterCount: ^u32, pParameterDescs: [^]META_COMMAND_PARAMETER_DESC) -> HRESULT,
|
|
CreateMetaCommand: proc "system" (this: ^IDevice5, CommandId: ^GUID, NodeMask: u32, pCreationParametersData: rawptr, CreationParametersDataSizeInBytes: SIZE_T, riid: ^IID, ppMetaCommand: ^rawptr) -> HRESULT,
|
|
CreateStateObject: proc "system" (this: ^IDevice5, pDesc: ^STATE_OBJECT_DESC, riid: ^IID, ppStateObject: ^rawptr) -> HRESULT,
|
|
GetRaytracingAccelerationStructurePrebuildInfo: proc "system" (this: ^IDevice5, pDesc: ^BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pInfo: ^RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO),
|
|
CheckDriverMatchingIdentifier: proc "system" (this: ^IDevice5, SerializedDataType: SERIALIZED_DATA_TYPE, pIdentifierToCheck: ^SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> DRIVER_MATCHING_IDENTIFIER_STATUS,
|
|
}
|
|
|
|
AUTO_BREADCRUMB_OP :: enum i32 {
|
|
SETMARKER = 0,
|
|
BEGINEVENT = 1,
|
|
ENDEVENT = 2,
|
|
DRAWINSTANCED = 3,
|
|
DRAWINDEXEDINSTANCED = 4,
|
|
EXECUTEINDIRECT = 5,
|
|
DISPATCH = 6,
|
|
COPYBUFFERREGION = 7,
|
|
COPYTEXTUREREGION = 8,
|
|
COPYRESOURCE = 9,
|
|
COPYTILES = 10,
|
|
RESOLVESUBRESOURCE = 11,
|
|
CLEARRENDERTARGETVIEW = 12,
|
|
CLEARUNORDEREDACCESSVIEW = 13,
|
|
CLEARDEPTHSTENCILVIEW = 14,
|
|
RESOURCEBARRIER = 15,
|
|
EXECUTEBUNDLE = 16,
|
|
PRESENT = 17,
|
|
RESOLVEQUERYDATA = 18,
|
|
BEGINSUBMISSION = 19,
|
|
ENDSUBMISSION = 20,
|
|
DECODEFRAME = 21,
|
|
PROCESSFRAMES = 22,
|
|
ATOMICCOPYBUFFERUINT = 23,
|
|
ATOMICCOPYBUFFERUINT64 = 24,
|
|
RESOLVESUBRESOURCEREGION = 25,
|
|
WRITEBUFFERIMMEDIATE = 26,
|
|
DECODEFRAME1 = 27,
|
|
SETPROTECTEDRESOURCESESSION = 28,
|
|
DECODEFRAME2 = 29,
|
|
PROCESSFRAMES1 = 30,
|
|
BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
|
|
EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
|
|
COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
|
|
DISPATCHRAYS = 34,
|
|
INITIALIZEMETACOMMAND = 35,
|
|
EXECUTEMETACOMMAND = 36,
|
|
ESTIMATEMOTION = 37,
|
|
RESOLVEMOTIONVECTORHEAP = 38,
|
|
SETPIPELINESTATE1 = 39,
|
|
INITIALIZEEXTENSIONCOMMAND = 40,
|
|
EXECUTEEXTENSIONCOMMAND = 41,
|
|
DISPATCHMESH = 42,
|
|
ENCODEFRAME = 43,
|
|
RESOLVEENCODEROUTPUTMETADATA = 44,
|
|
}
|
|
|
|
AUTO_BREADCRUMB_NODE :: struct {
|
|
pCommandListDebugNameA: cstring,
|
|
pCommandListDebugNameW: LPCWSTR,
|
|
pCommandQueueDebugNameA: cstring,
|
|
pCommandQueueDebugNameW: LPCWSTR,
|
|
pCommandList: ^IGraphicsCommandList,
|
|
pCommandQueue: ^ICommandQueue,
|
|
BreadcrumbCount: u32,
|
|
pLastBreadcrumbValue: ^u32,
|
|
pCommandHistory: ^AUTO_BREADCRUMB_OP,
|
|
pNext: ^AUTO_BREADCRUMB_NODE,
|
|
}
|
|
|
|
DRED_BREADCRUMB_CONTEXT :: struct {
|
|
BreadcrumbIndex: u32,
|
|
pContextString: LPCWSTR,
|
|
}
|
|
|
|
AUTO_BREADCRUMB_NODE1 :: struct {
|
|
pCommandListDebugNameA: cstring,
|
|
pCommandListDebugNameW: LPCWSTR,
|
|
pCommandQueueDebugNameA: cstring,
|
|
pCommandQueueDebugNameW: LPCWSTR,
|
|
pCommandList: ^IGraphicsCommandList,
|
|
pCommandQueue: ^ICommandQueue,
|
|
BreadcrumbCount: u32,
|
|
pLastBreadcrumbValue: ^u32,
|
|
pCommandHistory: ^AUTO_BREADCRUMB_OP,
|
|
pNext: ^AUTO_BREADCRUMB_NODE1,
|
|
BreadcrumbContextsCount: u32,
|
|
pBreadcrumbContexts: ^DRED_BREADCRUMB_CONTEXT,
|
|
}
|
|
|
|
DRED_VERSION :: enum i32 {
|
|
_1_0 = 1,
|
|
_1_1 = 2,
|
|
_1_2 = 3,
|
|
_1_3 = 4,
|
|
}
|
|
|
|
DRED_FLAGS :: distinct bit_set[DRED_FLAG; u32]
|
|
DRED_FLAG :: enum u32 {
|
|
FORCE_ENABLE = 0,
|
|
DISABLE_AUTOBREADCRUMBS = 1,
|
|
}
|
|
|
|
DRED_ENABLEMENT :: enum i32 {
|
|
SYSTEM_CONTROLLED = 0,
|
|
FORCED_OFF = 1,
|
|
FORCED_ON = 2,
|
|
}
|
|
|
|
DEVICE_REMOVED_EXTENDED_DATA :: struct {
|
|
Flags: DRED_FLAGS,
|
|
pHeadAutoBreadcrumbNode: ^AUTO_BREADCRUMB_NODE,
|
|
}
|
|
|
|
DRED_ALLOCATION_TYPE :: enum i32 {
|
|
COMMAND_QUEUE = 19,
|
|
COMMAND_ALLOCATOR = 20,
|
|
PIPELINE_STATE = 21,
|
|
COMMAND_LIST = 22,
|
|
FENCE = 23,
|
|
DESCRIPTOR_HEAP = 24,
|
|
HEAP = 25,
|
|
QUERY_HEAP = 27,
|
|
COMMAND_SIGNATURE = 28,
|
|
PIPELINE_LIBRARY = 29,
|
|
VIDEO_DECODER = 30,
|
|
VIDEO_PROCESSOR = 32,
|
|
RESOURCE = 34,
|
|
PASS = 35,
|
|
CRYPTOSESSION = 36,
|
|
CRYPTOSESSIONPOLICY = 37,
|
|
PROTECTEDRESOURCESESSION = 38,
|
|
VIDEO_DECODER_HEAP = 39,
|
|
COMMAND_POOL = 40,
|
|
COMMAND_RECORDER = 41,
|
|
STATE_OBJECT = 42,
|
|
METACOMMAND = 43,
|
|
SCHEDULINGGROUP = 44,
|
|
VIDEO_MOTION_ESTIMATOR = 45,
|
|
VIDEO_MOTION_VECTOR_HEAP = 46,
|
|
VIDEO_EXTENSION_COMMAND = 47,
|
|
VIDEO_ENCODER = 48,
|
|
VIDEO_ENCODER_HEAP = 49,
|
|
INVALID = -1,
|
|
}
|
|
|
|
DRED_ALLOCATION_NODE :: struct {
|
|
ObjectNameA: cstring,
|
|
ObjectNameW: cstring16,
|
|
AllocationType: DRED_ALLOCATION_TYPE,
|
|
pNext: ^DRED_ALLOCATION_NODE,
|
|
}
|
|
|
|
DRED_ALLOCATION_NODE1 :: struct {
|
|
ObjectNameA: cstring,
|
|
ObjectNameW: cstring16,
|
|
AllocationType: DRED_ALLOCATION_TYPE,
|
|
pNext: ^DRED_ALLOCATION_NODE1,
|
|
pObject: ^IUnknown,
|
|
}
|
|
|
|
DRED_AUTO_BREADCRUMBS_OUTPUT :: struct {
|
|
pHeadAutoBreadcrumbNode: ^AUTO_BREADCRUMB_NODE,
|
|
}
|
|
|
|
DRED_AUTO_BREADCRUMBS_OUTPUT1 :: struct {
|
|
pHeadAutoBreadcrumbNode: ^AUTO_BREADCRUMB_NODE1,
|
|
}
|
|
|
|
DRED_PAGE_FAULT_OUTPUT :: struct {
|
|
PageFaultVA: GPU_VIRTUAL_ADDRESS,
|
|
pHeadExistingAllocationNode: ^DRED_ALLOCATION_NODE,
|
|
pHeadRecentFreedAllocationNode: ^DRED_ALLOCATION_NODE,
|
|
}
|
|
|
|
DRED_PAGE_FAULT_OUTPUT1 :: struct {
|
|
PageFaultVA: GPU_VIRTUAL_ADDRESS,
|
|
pHeadExistingAllocationNode: ^DRED_ALLOCATION_NODE1,
|
|
pHeadRecentFreedAllocationNode: ^DRED_ALLOCATION_NODE1,
|
|
}
|
|
|
|
DRED_PAGE_FAULT_FLAGS :: distinct bit_set[DRED_PAGE_FAULT_FLAG; u32]
|
|
DRED_PAGE_FAULT_FLAG :: enum u32 {
|
|
}
|
|
|
|
DRED_DEVICE_STATE :: enum i32 {
|
|
UNKNOWN = 0,
|
|
HUNG = 3,
|
|
FAULT = 6,
|
|
PAGEFAULT = 7,
|
|
}
|
|
|
|
DRED_PAGE_FAULT_OUTPUT2 :: struct {
|
|
PageFaultVA: GPU_VIRTUAL_ADDRESS,
|
|
pHeadExistingAllocationNode: ^DRED_ALLOCATION_NODE1,
|
|
pHeadRecentFreedAllocationNode: ^DRED_ALLOCATION_NODE1,
|
|
PageFaultFlags: DRED_PAGE_FAULT_FLAGS,
|
|
}
|
|
|
|
DEVICE_REMOVED_EXTENDED_DATA1 :: struct {
|
|
DeviceRemovedReason: HRESULT,
|
|
AutoBreadcrumbsOutput: DRED_AUTO_BREADCRUMBS_OUTPUT,
|
|
PageFaultOutput: DRED_PAGE_FAULT_OUTPUT,
|
|
}
|
|
|
|
DEVICE_REMOVED_EXTENDED_DATA2 :: struct {
|
|
DeviceRemovedReason: HRESULT,
|
|
AutoBreadcrumbsOutput: DRED_AUTO_BREADCRUMBS_OUTPUT1,
|
|
PageFaultOutput: DRED_PAGE_FAULT_OUTPUT1,
|
|
}
|
|
|
|
DEVICE_REMOVED_EXTENDED_DATA3 :: struct {
|
|
DeviceRemovedReason: HRESULT,
|
|
AutoBreadcrumbsOutput: DRED_AUTO_BREADCRUMBS_OUTPUT1,
|
|
PageFaultOutput: DRED_PAGE_FAULT_OUTPUT2,
|
|
DeviceState: DRED_DEVICE_STATE,
|
|
}
|
|
|
|
VERSIONED_DEVICE_REMOVED_EXTENDED_DATA :: struct {
|
|
Version: DRED_VERSION,
|
|
using _: struct #raw_union {
|
|
Dred_1_0: DEVICE_REMOVED_EXTENDED_DATA,
|
|
Dred_1_1: DEVICE_REMOVED_EXTENDED_DATA1,
|
|
Dred_1_2: DEVICE_REMOVED_EXTENDED_DATA2,
|
|
Dred_1_3: DEVICE_REMOVED_EXTENDED_DATA3,
|
|
},
|
|
}
|
|
|
|
|
|
IDeviceRemovedExtendedDataSettings_UUID_STRING :: "82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63"
|
|
IDeviceRemovedExtendedDataSettings_UUID := &IID{0x82BC481C, 0x6B9B, 0x4030, {0xAE, 0xDB, 0x7E, 0xE3, 0xD1, 0xDF, 0x1E, 0x63}}
|
|
IDeviceRemovedExtendedDataSettings :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12deviceremovedextendeddatasettings_vtable: ^IDeviceRemovedExtendedDataSettings_VTable,
|
|
}
|
|
IDeviceRemovedExtendedDataSettings_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetAutoBreadcrumbsEnablement: proc "system" (this: ^IDeviceRemovedExtendedDataSettings, Enablement: DRED_ENABLEMENT),
|
|
SetPageFaultEnablement: proc "system" (this: ^IDeviceRemovedExtendedDataSettings, Enablement: DRED_ENABLEMENT),
|
|
SetWatsonDumpEnablement: proc "system" (this: ^IDeviceRemovedExtendedDataSettings, Enablement: DRED_ENABLEMENT),
|
|
}
|
|
|
|
|
|
IDeviceRemovedExtendedDataSettings1_UUID_STRING :: "DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B"
|
|
IDeviceRemovedExtendedDataSettings1_UUID := &IID{0xDBD5AE51, 0x3317, 0x4F0A, {0xAD, 0xF9, 0x1D, 0x7C, 0xED, 0xCA, 0xAE, 0x0B}}
|
|
IDeviceRemovedExtendedDataSettings1 :: struct #raw_union {
|
|
#subtype id3d12deviceremovedextendeddatasettings: IDeviceRemovedExtendedDataSettings,
|
|
using id3d12deviceremovedextendeddatasettings1_vtable: ^IDeviceRemovedExtendedDataSettings1_VTable,
|
|
}
|
|
IDeviceRemovedExtendedDataSettings1_VTable :: struct {
|
|
using id3d12deviceremovedextendeddatasettings_vtable: IDeviceRemovedExtendedDataSettings_VTable,
|
|
SetBreadcrumbContextEnablement: proc "system" (this: ^IDeviceRemovedExtendedDataSettings1, Enablement: DRED_ENABLEMENT),
|
|
}
|
|
|
|
|
|
IDeviceRemovedExtendedData_UUID_STRING :: "98931D33-5AE8-4791-AA3C-1A73A2934E71"
|
|
IDeviceRemovedExtendedData_UUID := &IID{0x98931D33, 0x5AE8, 0x4791, {0xAA, 0x3C, 0x1A, 0x73, 0xA2, 0x93, 0x4E, 0x71}}
|
|
IDeviceRemovedExtendedData :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12deviceremovedextendeddata_vtable: ^IDeviceRemovedExtendedData_VTable,
|
|
}
|
|
IDeviceRemovedExtendedData_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetAutoBreadcrumbsOutput: proc "system" (this: ^IDeviceRemovedExtendedData, pOutput: ^DRED_AUTO_BREADCRUMBS_OUTPUT) -> HRESULT,
|
|
GetPageFaultAllocationOutput: proc "system" (this: ^IDeviceRemovedExtendedData, pOutput: ^DRED_PAGE_FAULT_OUTPUT) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDeviceRemovedExtendedData1_UUID_STRING :: "9727A022-CF1D-4DDA-9EBA-EFFA653FC506"
|
|
IDeviceRemovedExtendedData1_UUID := &IID{0x9727A022, 0xCF1D, 0x4DDA, {0x9E, 0xBA, 0xEF, 0xFA, 0x65, 0x3F, 0xC5, 0x06}}
|
|
IDeviceRemovedExtendedData1 :: struct #raw_union {
|
|
#subtype id3d12deviceremovedextendeddata: IDeviceRemovedExtendedData,
|
|
using id3d12deviceremovedextendeddata1_vtable: ^IDeviceRemovedExtendedData1_VTable,
|
|
}
|
|
IDeviceRemovedExtendedData1_VTable :: struct {
|
|
using id3d12deviceremovedextendeddata_vtable: IDeviceRemovedExtendedData_VTable,
|
|
GetAutoBreadcrumbsOutput1: proc "system" (this: ^IDeviceRemovedExtendedData1, pOutput: ^DRED_AUTO_BREADCRUMBS_OUTPUT1) -> HRESULT,
|
|
GetPageFaultAllocationOutput1: proc "system" (this: ^IDeviceRemovedExtendedData1, pOutput: ^DRED_PAGE_FAULT_OUTPUT1) -> HRESULT,
|
|
}
|
|
|
|
IDeviceRemovedExtendedData2_UUID_STRING :: "67FC5816-E4CA-4915-BF18-42541272DA54"
|
|
IDeviceRemovedExtendedData2_UUID := &IID{0x67FC5816, 0xE4CA, 0x4915, {0xBF, 0x18, 0x42, 0x54, 0x12, 0x72, 0xDA, 0x54}}
|
|
IDeviceRemovedExtendedData2 :: struct #raw_union {
|
|
#subtype id3d12deviceremovedextendeddata1: IDeviceRemovedExtendedData1,
|
|
using id3d12deviceremovedextendeddata2_vtable: ^IDeviceRemovedExtendedData2_VTable,
|
|
}
|
|
IDeviceRemovedExtendedData2_VTable :: struct {
|
|
using id3d12deviceremovedextendeddata1_vtable: IDeviceRemovedExtendedData1_VTable,
|
|
GetPageFaultAllocationOutput2: proc "system" (this: ^IDeviceRemovedExtendedData2, pOutput: ^DRED_PAGE_FAULT_OUTPUT2) -> HRESULT,
|
|
GetDeviceState: proc "system" (this: ^IDeviceRemovedExtendedData2) -> DRED_DEVICE_STATE,
|
|
}
|
|
|
|
BACKGROUND_PROCESSING_MODE :: enum i32 {
|
|
ALLOWED = 0,
|
|
ALLOW_INTRUSIVE_MEASUREMENTS = 1,
|
|
DISABLE_BACKGROUND_WORK = 2,
|
|
DISABLE_PROFILING_BY_SYSTEM = 3,
|
|
}
|
|
|
|
MEASUREMENTS_ACTION :: enum i32 {
|
|
KEEP_ALL = 0,
|
|
COMMIT_RESULTS = 1,
|
|
COMMIT_RESULTS_HIGH_PRIORITY = 2,
|
|
DISCARD_PREVIOUS = 3,
|
|
}
|
|
|
|
|
|
IDevice6_UUID_STRING :: "c70b221b-40e4-4a17-89af-025a0727a6dc"
|
|
IDevice6_UUID := &IID{0xc70b221b, 0x40e4, 0x4a17, {0x89, 0xaf, 0x02, 0x5a, 0x07, 0x27, 0xa6, 0xdc}}
|
|
IDevice6 :: struct #raw_union {
|
|
#subtype id3d12device5: IDevice5,
|
|
using id3d12device6_vtable: ^IDevice6_VTable,
|
|
}
|
|
IDevice6_VTable :: struct {
|
|
using id3d12device5_vtable: IDevice5_VTable,
|
|
SetBackgroundProcessingMode: proc "system" (this: ^IDevice6, Mode: BACKGROUND_PROCESSING_MODE, MeasurementsAction: MEASUREMENTS_ACTION, hEventToSignalUponCompletion: HANDLE, pbFurtherMeasurementsDesired: ^BOOL) -> HRESULT,
|
|
}
|
|
|
|
FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT :: struct {
|
|
NodeIndex: u32,
|
|
Count: u32,
|
|
}
|
|
|
|
FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES :: struct {
|
|
NodeIndex: u32,
|
|
Count: u32,
|
|
pTypes: ^GUID,
|
|
}
|
|
|
|
PROTECTED_RESOURCE_SESSION_DESC1 :: struct {
|
|
NodeMask: u32,
|
|
Flags: PROTECTED_RESOURCE_SESSION_FLAGS,
|
|
ProtectionType: GUID,
|
|
}
|
|
|
|
|
|
IProtectedResourceSession1_UUID_STRING :: "D6F12DD6-76FB-406E-8961-4296EEFC0409"
|
|
IProtectedResourceSession1_UUID := &IID{0xD6F12DD6, 0x76FB, 0x406E, {0x89, 0x61, 0x42, 0x96, 0xEE, 0xFC, 0x04, 0x09}}
|
|
IProtectedResourceSession1 :: struct #raw_union {
|
|
#subtype id3d12protectedresourcesession: IProtectedResourceSession,
|
|
using id3d12protectedresourcesession1_vtable: ^IProtectedResourceSession1_VTable,
|
|
}
|
|
IProtectedResourceSession1_VTable :: struct {
|
|
using id3d12protectedresourcesession_vtable: IProtectedResourceSession_VTable,
|
|
GetDesc1: proc "system" (this: ^IProtectedResourceSession1, pRetVal: ^PROTECTED_RESOURCE_SESSION_DESC1) -> ^PROTECTED_RESOURCE_SESSION_DESC1,
|
|
}
|
|
|
|
|
|
IDevice7_UUID_STRING :: "5c014b53-68a1-4b9b-8bd1-dd6046b9358b"
|
|
IDevice7_UUID := &IID{0x5c014b53, 0x68a1, 0x4b9b, {0x8b, 0xd1, 0xdd, 0x60, 0x46, 0xb9, 0x35, 0x8b}}
|
|
IDevice7 :: struct #raw_union {
|
|
#subtype id3d12device6: IDevice6,
|
|
using id3d12device7_vtable: ^IDevice7_VTable,
|
|
}
|
|
IDevice7_VTable :: struct {
|
|
using id3d12device6_vtable: IDevice6_VTable,
|
|
AddToStateObject: proc "system" (this: ^IDevice7, pAddition: ^STATE_OBJECT_DESC, pStateObjectToGrowFrom: ^IStateObject, riid: ^IID, ppNewStateObject: ^rawptr) -> HRESULT,
|
|
CreateProtectedResourceSession1: proc "system" (this: ^IDevice7, pDesc: ^PROTECTED_RESOURCE_SESSION_DESC1, riid: ^IID, ppSession: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDevice8_UUID_STRING :: "9218E6BB-F944-4F7E-A75C-B1B2C7B701F3"
|
|
IDevice8_UUID := &IID{0x9218E6BB, 0xF944, 0x4F7E, {0xA7, 0x5C, 0xB1, 0xB2, 0xC7, 0xB7, 0x01, 0xF3}}
|
|
IDevice8 :: struct #raw_union {
|
|
#subtype id3d12device7: IDevice7,
|
|
using id3d12device8_vtable: ^IDevice8_VTable,
|
|
}
|
|
IDevice8_VTable :: struct {
|
|
using id3d12device7_vtable: IDevice7_VTable,
|
|
GetResourceAllocationInfo2: proc "system" (this: ^IDevice8, RetVal: ^RESOURCE_ALLOCATION_INFO, visibleMask: u32, numResourceDescs: u32, pResourceDescs: [^]RESOURCE_DESC1, pResourceAllocationInfo1: ^RESOURCE_ALLOCATION_INFO1),
|
|
CreateCommittedResource2: proc "system" (this: ^IDevice8, pHeapProperties: ^HEAP_PROPERTIES, HeapFlags: HEAP_FLAGS, pDesc: ^RESOURCE_DESC1, InitialResourceState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, pProtectedSession: ^IProtectedResourceSession, riidResource: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreatePlacedResource1: proc "system" (this: ^IDevice8, pHeap: ^IHeap, HeapOffset: u64, pDesc: ^RESOURCE_DESC1, InitialState: RESOURCE_STATES, pOptimizedClearValue: ^CLEAR_VALUE, riid: ^IID, ppvResource: ^rawptr) -> HRESULT,
|
|
CreateSamplerFeedbackUnorderedAccessView: proc "system" (this: ^IDevice8, pTargetedResource: ^IResource, pFeedbackResource: ^IResource, DestDescriptor: CPU_DESCRIPTOR_HANDLE),
|
|
GetCopyableFootprints1: proc "system" (this: ^IDevice8, pResourceDesc: ^RESOURCE_DESC1, FirstSubresource: u32, NumSubresources: u32, BaseOffset: u64, pLayouts: [^]PLACED_SUBRESOURCE_FOOTPRINT, pNumRows: ^u32, pRowSizeInBytes: ^u64, pTotalBytes: ^u64),
|
|
}
|
|
|
|
|
|
IResource1_UUID_STRING :: "9D5E227A-4430-4161-88B3-3ECA6BB16E19"
|
|
IResource1_UUID := &IID{0x9D5E227A, 0x4430, 0x4161, {0x88, 0xB3, 0x3E, 0xCA, 0x6B, 0xB1, 0x6E, 0x19}}
|
|
IResource1 :: struct #raw_union {
|
|
#subtype id3d12resource: IResource,
|
|
using id3d12resource1_vtable: ^IResource1_VTable,
|
|
}
|
|
IResource1_VTable :: struct {
|
|
using id3d12resource_vtable: IResource_VTable,
|
|
GetProtectedResourceSession: proc "system" (this: ^IResource1, riid: ^IID, ppProtectedSession: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
|
|
IResource2_UUID_STRING :: "BE36EC3B-EA85-4AEB-A45A-E9D76404A495"
|
|
IResource2_UUID := &IID{0xBE36EC3B, 0xEA85, 0x4AEB, {0xA4, 0x5A, 0xE9, 0xD7, 0x64, 0x04, 0xA4, 0x95}}
|
|
IResource2 :: struct #raw_union {
|
|
#subtype id3d12resource1: IResource1,
|
|
using id3d12resource2_vtable: ^IResource2_VTable,
|
|
}
|
|
IResource2_VTable :: struct {
|
|
using id3d12resource1_vtable: IResource1_VTable,
|
|
GetDesc1: proc "system" (this: ^IResource2, pRetVal: ^RESOURCE_DESC1) -> ^RESOURCE_DESC1,
|
|
}
|
|
|
|
|
|
IHeap1_UUID_STRING :: "572F7389-2168-49E3-9693-D6DF5871BF6D"
|
|
IHeap1_UUID := &IID{0x572F7389, 0x2168, 0x49E3, {0x96, 0x93, 0xD6, 0xDF, 0x58, 0x71, 0xBF, 0x6D}}
|
|
IHeap1 :: struct #raw_union {
|
|
#subtype id3d12heap: IHeap,
|
|
using id3d12heap1_vtable: ^IHeap1_VTable,
|
|
}
|
|
IHeap1_VTable :: struct {
|
|
using id3d12heap_vtable: IHeap_VTable,
|
|
GetProtectedResourceSession: proc "system" (this: ^IHeap1, riid: ^IID, ppProtectedSession: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList3_UUID_STRING :: "6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D"
|
|
IGraphicsCommandList3_UUID := &IID{0x6FDA83A7, 0xB84C, 0x4E38, {0x9A, 0xC8, 0xC7, 0xBD, 0x22, 0x01, 0x6B, 0x3D}}
|
|
IGraphicsCommandList3 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist2: IGraphicsCommandList2,
|
|
using id3d12graphicscommandlist3_vtable: ^IGraphicsCommandList3_VTable,
|
|
}
|
|
IGraphicsCommandList3_VTable :: struct {
|
|
using id3d12graphicscommandlist2_vtable: IGraphicsCommandList2_VTable,
|
|
SetProtectedResourceSession: proc "system" (this: ^IGraphicsCommandList3, pProtectedResourceSession: ^IProtectedResourceSession),
|
|
}
|
|
|
|
RENDER_PASS_BEGINNING_ACCESS_TYPE :: enum i32 {
|
|
DISCARD = 0,
|
|
PRESERVE = 1,
|
|
CLEAR = 2,
|
|
NO_ACCESS = 3,
|
|
}
|
|
|
|
RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS :: struct {
|
|
ClearValue: CLEAR_VALUE,
|
|
}
|
|
|
|
RENDER_PASS_BEGINNING_ACCESS :: struct {
|
|
Type: RENDER_PASS_BEGINNING_ACCESS_TYPE,
|
|
using _: struct #raw_union {
|
|
Clear: RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS,
|
|
},
|
|
}
|
|
|
|
RENDER_PASS_ENDING_ACCESS_TYPE :: enum i32 {
|
|
DISCARD = 0,
|
|
PRESERVE = 1,
|
|
RESOLVE = 2,
|
|
NO_ACCESS = 3,
|
|
}
|
|
|
|
RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS :: struct {
|
|
SrcSubresource: u32,
|
|
DstSubresource: u32,
|
|
DstX: u32,
|
|
DstY: u32,
|
|
SrcRect: RECT,
|
|
}
|
|
|
|
RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS :: struct {
|
|
pSrcResource: ^IResource,
|
|
pDstResource: ^IResource,
|
|
SubresourceCount: u32,
|
|
pSubresourceParameters: [^]RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS `fmt:"v,SubresourceCount"`,
|
|
Format: dxgi.FORMAT,
|
|
ResolveMode: RESOLVE_MODE,
|
|
PreserveResolveSource: BOOL,
|
|
}
|
|
|
|
RENDER_PASS_ENDING_ACCESS :: struct {
|
|
Type: RENDER_PASS_ENDING_ACCESS_TYPE,
|
|
using _: struct #raw_union {
|
|
Resolve: RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS,
|
|
},
|
|
}
|
|
|
|
RENDER_PASS_RENDER_TARGET_DESC :: struct {
|
|
cpuDescriptor: CPU_DESCRIPTOR_HANDLE,
|
|
BeginningAccess: RENDER_PASS_BEGINNING_ACCESS,
|
|
EndingAccess: RENDER_PASS_ENDING_ACCESS,
|
|
}
|
|
|
|
RENDER_PASS_DEPTH_STENCIL_DESC :: struct {
|
|
cpuDescriptor: CPU_DESCRIPTOR_HANDLE,
|
|
DepthBeginningAccess: RENDER_PASS_BEGINNING_ACCESS,
|
|
StencilBeginningAccess: RENDER_PASS_BEGINNING_ACCESS,
|
|
DepthEndingAccess: RENDER_PASS_ENDING_ACCESS,
|
|
StencilEndingAccess: RENDER_PASS_ENDING_ACCESS,
|
|
}
|
|
|
|
RENDER_PASS_FLAGS :: distinct bit_set[RENDER_PASS_FLAG; u32]
|
|
RENDER_PASS_FLAG :: enum u32 {
|
|
ALLOW_UAV_WRITES = 0,
|
|
SUSPENDING_PASS = 1,
|
|
RESUMING_PASS = 2,
|
|
}
|
|
|
|
|
|
IMetaCommand_UUID_STRING :: "DBB84C27-36CE-4FC9-B801-F048C46AC570"
|
|
IMetaCommand_UUID := &IID{0xDBB84C27, 0x36CE, 0x4FC9, {0xB8, 0x01, 0xF0, 0x48, 0xC4, 0x6A, 0xC5, 0x70}}
|
|
IMetaCommand :: struct #raw_union {
|
|
#subtype id3d12pageable: IPageable,
|
|
using id3d12metacommand_vtable: ^IMetaCommand_VTable,
|
|
}
|
|
IMetaCommand_VTable :: struct {
|
|
using id3d12devicechild_vtable: IDeviceChild_VTable,
|
|
GetRequiredParameterResourceSize: proc "system" (this: ^IMetaCommand, Stage: META_COMMAND_PARAMETER_STAGE, ParameterIndex: u32) -> u64,
|
|
}
|
|
|
|
DISPATCH_RAYS_DESC :: struct {
|
|
RayGenerationShaderRecord: GPU_VIRTUAL_ADDRESS_RANGE,
|
|
MissShaderTable: GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
|
|
HitGroupTable: GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
|
|
CallableShaderTable: GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
|
|
Width: u32,
|
|
Height: u32,
|
|
Depth: u32,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList4_UUID_STRING :: "8754318e-d3a9-4541-98cf-645b50dc4874"
|
|
IGraphicsCommandList4_UUID := &IID{0x8754318e, 0xd3a9, 0x4541, {0x98, 0xcf, 0x64, 0x5b, 0x50, 0xdc, 0x48, 0x74}}
|
|
IGraphicsCommandList4 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist3: IGraphicsCommandList3,
|
|
using id3d12graphicscommandlist4_vtable: ^IGraphicsCommandList4_VTable,
|
|
}
|
|
IGraphicsCommandList4_VTable :: struct {
|
|
using id3d12graphicscommandlist3_vtable: IGraphicsCommandList3_VTable,
|
|
BeginRenderPass: proc "system" (this: ^IGraphicsCommandList4, NumRenderTargets: u32, pRenderTargets: [^]RENDER_PASS_RENDER_TARGET_DESC, pDepthStencil: ^RENDER_PASS_DEPTH_STENCIL_DESC, Flags: RENDER_PASS_FLAGS),
|
|
EndRenderPass: proc "system" (this: ^IGraphicsCommandList4),
|
|
InitializeMetaCommand: proc "system" (this: ^IGraphicsCommandList4, pMetaCommand: ^IMetaCommand, pInitializationParametersData: rawptr, InitializationParametersDataSizeInBytes: SIZE_T),
|
|
ExecuteMetaCommand: proc "system" (this: ^IGraphicsCommandList4, pMetaCommand: ^IMetaCommand, pExecutionParametersData: rawptr, ExecutionParametersDataSizeInBytes: SIZE_T),
|
|
BuildRaytracingAccelerationStructure: proc "system" (this: ^IGraphicsCommandList4, pDesc: ^BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, NumPostbuildInfoDescs: u32, pPostbuildInfoDescs: [^]RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC),
|
|
EmitRaytracingAccelerationStructurePostbuildInfo: proc "system" (this: ^IGraphicsCommandList4, pDesc: ^RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, NumSourceAccelerationStructures: u32, pSourceAccelerationStructureData: ^GPU_VIRTUAL_ADDRESS),
|
|
CopyRaytracingAccelerationStructure: proc "system" (this: ^IGraphicsCommandList4, DestAccelerationStructureData: GPU_VIRTUAL_ADDRESS, SourceAccelerationStructureData: GPU_VIRTUAL_ADDRESS, Mode: RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE),
|
|
SetPipelineState1: proc "system" (this: ^IGraphicsCommandList4, pStateObject: ^IStateObject),
|
|
DispatchRays: proc "system" (this: ^IGraphicsCommandList4, pDesc: ^DISPATCH_RAYS_DESC),
|
|
}
|
|
|
|
|
|
SHADER_CACHE_MODE :: enum i32 {
|
|
MEMORY = 0,
|
|
DISK = 1,
|
|
}
|
|
|
|
SHADER_CACHE_FLAGS :: distinct bit_set[SHADER_CACHE_FLAG; u32]
|
|
SHADER_CACHE_FLAG :: enum u32 {
|
|
DRIVER_VERSIONED = 0,
|
|
USE_WORKING_DIR = 1,
|
|
}
|
|
|
|
SHADER_CACHE_SESSION_DESC :: struct {
|
|
Identifier: GUID,
|
|
Mode: SHADER_CACHE_MODE,
|
|
Flags: SHADER_CACHE_FLAGS,
|
|
MaximumInMemoryCacheSizeBytes: u32,
|
|
MaximumInMemoryCacheEntries: u32,
|
|
MaximumValueFileSizeBytes: u32,
|
|
Version: u64,
|
|
}
|
|
|
|
IShaderCacheSession_UUID_STRING :: "28E2495D-0F64-4AE4-A6EC-129255DC49A8"
|
|
IShaderCacheSession_UUID := &IID{0x28E2495D, 0x0F64, 0x4AE4, {0xA6, 0xEC, 0x12, 0x92, 0x55, 0xDC, 0x49, 0xA8}}
|
|
IShaderCacheSession :: struct #raw_union {
|
|
#subtype idevicechild: IDeviceChild,
|
|
using id3d12shadercachesession_vtable: ^IShaderCacheSession_VTable,
|
|
}
|
|
IShaderCacheSession_VTable :: struct {
|
|
using idevicechild_vtable: IDeviceChild_VTable,
|
|
FindValue: proc "system" (this: ^IShaderCacheSession, pKey: rawptr, KeySize: u32, pValue: rawptr, pValueSize: ^u32) -> HRESULT,
|
|
StoreValue: proc "system" (this: ^IShaderCacheSession, pKey: rawptr, KeySize: u32, pValue: rawptr, ValueSize: u32) -> HRESULT,
|
|
SetDeleteOnDestroy: proc "system" (this: ^IShaderCacheSession),
|
|
GetDesc: proc "system" (this: ^IShaderCacheSession, pRetValue: ^SHADER_CACHE_SESSION_DESC) -> ^SHADER_CACHE_SESSION_DESC,
|
|
}
|
|
|
|
|
|
SHADER_CACHE_KIND_FLAGS :: distinct bit_set[SHADER_CACHE_KIND_FLAG; u32]
|
|
SHADER_CACHE_KIND_FLAG :: enum u32 {
|
|
IMPLICIT_D3D_CACHE_FOR_DRIVER = 0,
|
|
IMPLICIT_D3D_CONVERSIONS = 1,
|
|
IMPLICIT_DRIVER_MANAGED = 2,
|
|
APPLICATION_MANAGED = 3,
|
|
}
|
|
|
|
SHADER_CACHE_CONTROL_FLAGS :: distinct bit_set[SHADER_CACHE_CONTROL_FLAG; u32]
|
|
SHADER_CACHE_CONTROL_FLAG :: enum u32 {
|
|
DISABLE = 0,
|
|
ENABLE = 1,
|
|
CLEAR = 2,
|
|
}
|
|
|
|
IDevice9_UUID_STRING :: "4C80E962-F032-4F60-BC9E-EBC2CFA1D83C"
|
|
IDevice9_UUID := &IID{0x4C80E962, 0xF032, 0x4F60, {0xBC, 0x9E, 0xEB, 0xC2, 0xCF, 0xA1, 0xD8, 0x3C}}
|
|
IDevice9 :: struct #raw_union {
|
|
#subtype id3d12device8: IDevice8,
|
|
using id3d12device9_vtable: ^IDevice9_VTable,
|
|
}
|
|
IDevice9_VTable :: struct {
|
|
using id3d12device8_vtable: IDevice8_VTable,
|
|
CreateShaderCacheSession: proc "system" (this: ^IDevice9, pDesc: ^SHADER_CACHE_SESSION_DESC , riid: ^IID, ppvSession: ^rawptr) -> HRESULT,
|
|
ShaderCacheControl: proc "system" (this: ^IDevice9, Kinds: SHADER_CACHE_KIND_FLAGS, Control: SHADER_CACHE_CONTROL_FLAGS) -> HRESULT,
|
|
CreateCommandQueue1: proc "system" (this: ^IDevice9, pDesc: ^COMMAND_QUEUE_DESC, CreatorID: ^IID, riid: ^IID, ppCommandQueue: ^rawptr) -> HRESULT,
|
|
}
|
|
|
|
|
|
ITools_UUID_STRING :: "7071e1f0-e84b-4b33-974f-12fa49de65c5"
|
|
ITools_UUID := &IID{0x7071e1f0, 0xe84b, 0x4b33, {0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5}}
|
|
ITools :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12tools_vtable: ^ITools_VTable,
|
|
}
|
|
ITools_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
EnableShaderInstrumentation: proc "system" (this: ^ITools, bEnable: BOOL),
|
|
ShaderInstrumentationEnabled: proc "system" (this: ^ITools) -> BOOL,
|
|
}
|
|
|
|
SUBRESOURCE_DATA :: struct {
|
|
pData: rawptr,
|
|
RowPitch: i64,
|
|
SlicePitch: i64,
|
|
}
|
|
|
|
MEMCPY_DEST :: struct {
|
|
pData: rawptr,
|
|
RowPitch: SIZE_T,
|
|
SlicePitch: SIZE_T,
|
|
}
|
|
|
|
|
|
IDebug_UUID_STRING :: "344488b7-6846-474b-b989-f027448245e0"
|
|
IDebug_UUID := &IID{0x344488b7, 0x6846, 0x474b, {0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0}}
|
|
IDebug :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debug_vtable: ^IDebug_VTable,
|
|
}
|
|
IDebug_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
EnableDebugLayer: proc "system" (this: ^IDebug),
|
|
}
|
|
|
|
GPU_BASED_VALIDATION_FLAGS :: distinct bit_set[GPU_BASED_VALIDATION_FLAG; u32]
|
|
GPU_BASED_VALIDATION_FLAG :: enum u32 {
|
|
DISABLE_STATE_TRACKING = 0,
|
|
}
|
|
|
|
|
|
IDebug1_UUID_STRING :: "affaa4ca-63fe-4d8e-b8ad-159000af4304"
|
|
IDebug1_UUID := &IID{0xaffaa4ca, 0x63fe, 0x4d8e, {0xb8, 0xad, 0x15, 0x90, 0x00, 0xaf, 0x43, 0x04}}
|
|
IDebug1 :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debug1_vtable: ^IDebug1_VTable,
|
|
}
|
|
IDebug1_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
EnableDebugLayer: proc "system" (this: ^IDebug1),
|
|
SetEnableGPUBasedValidation: proc "system" (this: ^IDebug1, Enable: BOOL),
|
|
SetEnableSynchronizedCommandQueueValidation: proc "system" (this: ^IDebug1, Enable: BOOL),
|
|
}
|
|
|
|
|
|
IDebug2_UUID :: "93a665c4-a3b2-4e5d-b692-a26ae14e3374"
|
|
IDebug2 :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debug2_vtable: ^IDebug2_VTable,
|
|
}
|
|
IDebug2_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetGPUBasedValidationFlags: proc "system" (this: ^IDebug2, Flags: GPU_BASED_VALIDATION_FLAGS),
|
|
}
|
|
|
|
|
|
IDebug3_UUID_STRING :: "5cf4e58f-f671-4ff1-a542-3686e3d153d1"
|
|
IDebug3_UUID := &IID{0x5cf4e58f, 0xf671, 0x4ff1, {0xa5, 0x42, 0x36, 0x86, 0xe3, 0xd1, 0x53, 0xd1}}
|
|
IDebug3 :: struct #raw_union {
|
|
#subtype id3d12debug: IDebug,
|
|
using id3d12debug3_vtable: ^IDebug3_VTable,
|
|
}
|
|
IDebug3_VTable :: struct {
|
|
using id3d12debug_vtable: IDebug_VTable,
|
|
SetEnableGPUBasedValidation: proc "system" (this: ^IDebug3, Enable: BOOL),
|
|
SetEnableSynchronizedCommandQueueValidation: proc "system" (this: ^IDebug3, Enable: BOOL),
|
|
SetGPUBasedValidationFlags: proc "system" (this: ^IDebug3, Flags: GPU_BASED_VALIDATION_FLAGS),
|
|
}
|
|
|
|
|
|
IDebug4_UUID_STRING :: "014B816E-9EC5-4A2F-A845-FFBE441CE13A"
|
|
IDebug4_UUID := &IID{0x014B816E, 0x9EC5, 0x4A2F, {0xA8, 0x45, 0xFF, 0xBE, 0x44, 0x1C, 0xE1, 0x3A}}
|
|
IDebug4 :: struct #raw_union {
|
|
#subtype id3d12debug3: IDebug3,
|
|
using id3d12debug4_vtable: ^IDebug4_VTable,
|
|
}
|
|
IDebug4_VTable :: struct {
|
|
using id3d12debug3_vtable: IDebug3_VTable,
|
|
DisableDebugLayer: proc "system" (this: ^IDebug4),
|
|
}
|
|
|
|
|
|
IDebug5_UUID_STRING :: "548D6B12-09FA-40E0-9069-5DCD589A52C9"
|
|
IDebug5_UUID := &IID{0x548D6B12, 0x09FA, 0x40E0, {0x90, 0x69, 0x5D, 0xCD, 0x58, 0x9A, 0x52, 0xC9}}
|
|
IDebug5 :: struct #raw_union {
|
|
#subtype id3d12debug4: IDebug4,
|
|
using id3d12debug5_vtable: ^IDebug5_VTable,
|
|
}
|
|
IDebug5_VTable :: struct {
|
|
using id3d12debug4_vtable: IDebug4_VTable,
|
|
SetEnableAutoName: proc "system" (this: ^IDebug5, Enable: BOOL),
|
|
}
|
|
|
|
RLDO_FLAGS :: distinct bit_set[RLDO_FLAG; u32]
|
|
RLDO_FLAG :: enum u32 {
|
|
SUMMARY = 0,
|
|
DETAIL = 1,
|
|
IGNORE_INTERNAL = 2,
|
|
}
|
|
|
|
DEBUG_DEVICE_PARAMETER_TYPE :: enum i32 {
|
|
FEATURE_FLAGS = 0,
|
|
GPU_BASED_VALIDATION_SETTINGS = 1,
|
|
GPU_SLOWDOWN_PERFORMANCE_FACTOR = 2,
|
|
}
|
|
|
|
DEBUG_FEATURE :: distinct bit_set[DEBUG_FEATURE_FLAG; u32]
|
|
DEBUG_FEATURE_FLAG :: enum i32 {
|
|
ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0,
|
|
CONSERVATIVE_RESOURCE_STATE_TRACKING = 1,
|
|
DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 2,
|
|
EMULATE_WINDOWS7 = 3,
|
|
}
|
|
|
|
GPU_BASED_VALIDATION_SHADER_PATCH_MODE :: enum i32 {
|
|
NONE = 0,
|
|
STATE_TRACKING_ONLY = 1,
|
|
UNGUARDED_VALIDATION = 2,
|
|
GUARDED_VALIDATION = 3,
|
|
NUM_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = 4,
|
|
}
|
|
|
|
GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS :: distinct bit_set[GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG; u32]
|
|
GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG :: enum u32 {
|
|
FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0,
|
|
FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 1,
|
|
FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 2,
|
|
}
|
|
GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_VALID_MASK :: GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS{
|
|
.FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS,
|
|
.FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS,
|
|
.FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS,
|
|
}
|
|
|
|
DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS :: struct {
|
|
MaxMessagesPerCommandList: u32,
|
|
DefaultShaderPatchMode: GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
|
|
PipelineStateCreateFlags: GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS,
|
|
}
|
|
|
|
DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR :: struct {
|
|
SlowdownFactor: f32,
|
|
}
|
|
|
|
|
|
IDebugDevice1_UUID_STRING :: "a9b71770-d099-4a65-a698-3dee10020f88"
|
|
IDebugDevice1_UUID := &IID{0xa9b71770, 0xd099, 0x4a65, {0xa6, 0x98, 0x3d, 0xee, 0x10, 0x02, 0x0f, 0x88}}
|
|
IDebugDevice1 :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debugdevice1_vtable: ^IDebugDevice1_VTable,
|
|
}
|
|
IDebugDevice1_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetDebugParameter: proc "system" (this: ^IDebugDevice1, Type: DEBUG_DEVICE_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
GetDebugParameter: proc "system" (this: ^IDebugDevice1, Type: DEBUG_DEVICE_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
ReportLiveDeviceObjects: proc "system" (this: ^IDebugDevice1, Flags: RLDO_FLAGS) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDebugDevice_UUID_STRING :: "3febd6dd-4973-4787-8194-e45f9e28923e"
|
|
IDebugDevice_UUID := &IID{0x3febd6dd, 0x4973, 0x4787, {0x81, 0x94, 0xe4, 0x5f, 0x9e, 0x28, 0x92, 0x3e}}
|
|
IDebugDevice :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debugdevice_vtable: ^IDebugDevice_VTable,
|
|
}
|
|
IDebugDevice_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetFeatureMask: proc "system" (this: ^IDebugDevice, Mask: DEBUG_FEATURE) -> HRESULT,
|
|
GetFeatureMask: proc "system" (this: ^IDebugDevice) -> DEBUG_FEATURE,
|
|
ReportLiveDeviceObjects: proc "system" (this: ^IDebugDevice, Flags: RLDO_FLAGS) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDebugDevice2_UUID_STRING :: "60eccbc1-378d-4df1-894c-f8ac5ce4d7dd"
|
|
IDebugDevice2_UUID := &IID{0x60eccbc1, 0x378d, 0x4df1, {0x89, 0x4c, 0xf8, 0xac, 0x5c, 0xe4, 0xd7, 0xdd}}
|
|
IDebugDevice2 :: struct #raw_union {
|
|
#subtype id3d12debugdevice: IDebugDevice,
|
|
using id3d12debugdevice2_vtable: ^IDebugDevice2_VTable,
|
|
}
|
|
IDebugDevice2_VTable :: struct {
|
|
using id3d12debugdevice_vtable: IDebugDevice_VTable,
|
|
SetDebugParameter: proc "system" (this: ^IDebugDevice2, Type: DEBUG_DEVICE_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
GetDebugParameter: proc "system" (this: ^IDebugDevice2, Type: DEBUG_DEVICE_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDebugCommandQueue_UUID_STRING :: "09e0bf36-54ac-484f-8847-4baeeab6053a"
|
|
IDebugCommandQueue_UUID := &IID{0x09e0bf36, 0x54ac, 0x484f, {0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3a}}
|
|
IDebugCommandQueue :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debugcommandqueue_vtable: ^IDebugCommandQueue_VTable,
|
|
}
|
|
IDebugCommandQueue_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
AssertResourceState: proc "system" (this: ^IDebugCommandQueue, pResource: ^IResource, Subresource: u32, State: u32) -> BOOL,
|
|
}
|
|
|
|
DEBUG_COMMAND_LIST_PARAMETER_TYPE :: enum i32 {
|
|
DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = 0,
|
|
}
|
|
|
|
DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS :: struct {
|
|
ShaderPatchMode: GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
|
|
}
|
|
|
|
|
|
IDebugCommandList1_UUID_STRING :: "102ca951-311b-4b01-b11f-ecb83e061b37"
|
|
IDebugCommandList1_UUID := &IID{0x102ca951, 0x311b, 0x4b01, {0xb1, 0x1f, 0xec, 0xb8, 0x3e, 0x06, 0x1b, 0x37}}
|
|
IDebugCommandList1 :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debugcommandlist1_vtable: ^IDebugCommandList1_VTable,
|
|
}
|
|
IDebugCommandList1_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
AssertResourceState: proc "system" (this: ^IDebugCommandList1, pResource: ^IResource, Subresource: u32, State: u32) -> BOOL,
|
|
SetDebugParameter: proc "system" (this: ^IDebugCommandList1, Type: DEBUG_COMMAND_LIST_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
GetDebugParameter: proc "system" (this: ^IDebugCommandList1, Type: DEBUG_COMMAND_LIST_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
}
|
|
|
|
|
|
IDebugCommandList_UUID_STRING :: "09e0bf36-54ac-484f-8847-4baeeab6053f"
|
|
IDebugCommandList_UUID := &IID{0x09e0bf36, 0x54ac, 0x484f, {0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3f}}
|
|
IDebugCommandList :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12debugcommandlist_vtable: ^IDebugCommandList_VTable,
|
|
}
|
|
IDebugCommandList_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
AssertResourceState: proc "system" (this: ^IDebugCommandList, pResource: ^IResource, Subresource: u32, State: u32) -> BOOL,
|
|
SetFeatureMask: proc "system" (this: ^IDebugCommandList, Mask: DEBUG_FEATURE) -> HRESULT,
|
|
GetFeatureMask: proc "system" (this: ^IDebugCommandList) -> DEBUG_FEATURE,
|
|
}
|
|
|
|
|
|
IDebugCommandList2_UUID_STRING :: "aeb575cf-4e06-48be-ba3b-c450fc96652e"
|
|
IDebugCommandList2_UUID := &IID{0xaeb575cf, 0x4e06, 0x48be, {0xba, 0x3b, 0xc4, 0x50, 0xfc, 0x96, 0x65, 0x2e}}
|
|
IDebugCommandList2 :: struct #raw_union {
|
|
#subtype id3d12debugcommandlist: IDebugCommandList,
|
|
using id3d12debugcommandlist2_vtable: ^IDebugCommandList2_VTable,
|
|
}
|
|
IDebugCommandList2_VTable :: struct {
|
|
using id3d12debugcommandlist_vtable: IDebugCommandList_VTable,
|
|
SetDebugParameter: proc "system" (this: ^IDebugCommandList2, Type: DEBUG_COMMAND_LIST_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
GetDebugParameter: proc "system" (this: ^IDebugCommandList2, Type: DEBUG_COMMAND_LIST_PARAMETER_TYPE, pData: rawptr, DataSize: u32) -> HRESULT,
|
|
}
|
|
|
|
|
|
ISharingContract_UUID_STRING :: "0adf7d52-929c-4e61-addb-ffed30de66ef"
|
|
ISharingContract_UUID := &IID{0x0adf7d52, 0x929c, 0x4e61, {0xad, 0xdb, 0xff, 0xed, 0x30, 0xde, 0x66, 0xef}}
|
|
ISharingContract :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12sharingcontract_vtable: ^ISharingContract_VTable,
|
|
}
|
|
ISharingContract_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
Present: proc "system" (this: ^ISharingContract, pResource: ^IResource, Subresource: u32, window: HWND),
|
|
SharedFenceSignal: proc "system" (this: ^ISharingContract, pFence: ^IFence, FenceValue: u64),
|
|
BeginCapturableWork: proc "system" (this: ^ISharingContract, guid: ^GUID),
|
|
EndCapturableWork: proc "system" (this: ^ISharingContract, guid: ^GUID),
|
|
}
|
|
|
|
MESSAGE_CATEGORY :: enum i32 {
|
|
APPLICATION_DEFINED = 0,
|
|
MISCELLANEOUS = 1,
|
|
INITIALIZATION = 2,
|
|
CLEANUP = 3,
|
|
COMPILATION = 4,
|
|
STATE_CREATION = 5,
|
|
STATE_SETTING = 6,
|
|
STATE_GETTING = 7,
|
|
RESOURCE_MANIPULATION = 8,
|
|
EXECUTION = 9,
|
|
SHADER = 10,
|
|
}
|
|
|
|
MESSAGE_SEVERITY :: enum i32 {
|
|
CORRUPTION = 0,
|
|
ERROR = 1,
|
|
WARNING = 2,
|
|
INFO = 3,
|
|
MESSAGE = 4,
|
|
}
|
|
|
|
MESSAGE_ID :: enum i32 {
|
|
UNKNOWN = 0,
|
|
STRING_FROM_APPLICATION = 1,
|
|
CORRUPTED_THIS = 2,
|
|
CORRUPTED_PARAMETER1 = 3,
|
|
CORRUPTED_PARAMETER2 = 4,
|
|
CORRUPTED_PARAMETER3 = 5,
|
|
CORRUPTED_PARAMETER4 = 6,
|
|
CORRUPTED_PARAMETER5 = 7,
|
|
CORRUPTED_PARAMETER6 = 8,
|
|
CORRUPTED_PARAMETER7 = 9,
|
|
CORRUPTED_PARAMETER8 = 10,
|
|
CORRUPTED_PARAMETER9 = 11,
|
|
CORRUPTED_PARAMETER10 = 12,
|
|
CORRUPTED_PARAMETER11 = 13,
|
|
CORRUPTED_PARAMETER12 = 14,
|
|
CORRUPTED_PARAMETER13 = 15,
|
|
CORRUPTED_PARAMETER14 = 16,
|
|
CORRUPTED_PARAMETER15 = 17,
|
|
CORRUPTED_MULTITHREADING = 18,
|
|
MESSAGE_REPORTING_OUTOFMEMORY = 19,
|
|
GETPRIVATEDATA_MOREDATA = 20,
|
|
SETPRIVATEDATA_INVALIDFREEDATA = 21,
|
|
SETPRIVATEDATA_CHANGINGPARAMS = 24,
|
|
SETPRIVATEDATA_OUTOFMEMORY = 25,
|
|
CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26,
|
|
CREATESHADERRESOURCEVIEW_INVALIDDESC = 27,
|
|
CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28,
|
|
CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29,
|
|
CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30,
|
|
CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31,
|
|
CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32,
|
|
CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35,
|
|
CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36,
|
|
CREATERENDERTARGETVIEW_INVALIDDESC = 37,
|
|
CREATERENDERTARGETVIEW_INVALIDFORMAT = 38,
|
|
CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39,
|
|
CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40,
|
|
CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41,
|
|
CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42,
|
|
CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45,
|
|
CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46,
|
|
CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47,
|
|
CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48,
|
|
CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49,
|
|
CREATEINPUTLAYOUT_OUTOFMEMORY = 52,
|
|
CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53,
|
|
CREATEINPUTLAYOUT_INVALIDFORMAT = 54,
|
|
CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55,
|
|
CREATEINPUTLAYOUT_INVALIDSLOT = 56,
|
|
CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57,
|
|
CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58,
|
|
CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59,
|
|
CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60,
|
|
CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61,
|
|
CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62,
|
|
CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63,
|
|
CREATEINPUTLAYOUT_NULLSEMANTIC = 64,
|
|
CREATEINPUTLAYOUT_MISSINGELEMENT = 65,
|
|
CREATEVERTEXSHADER_OUTOFMEMORY = 66,
|
|
CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67,
|
|
CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68,
|
|
CREATEGEOMETRYSHADER_OUTOFMEMORY = 69,
|
|
CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70,
|
|
CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91,
|
|
CREATEPIXELSHADER_OUTOFMEMORY = 92,
|
|
CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93,
|
|
CREATEPIXELSHADER_INVALIDSHADERTYPE = 94,
|
|
CREATERASTERIZERSTATE_INVALIDFILLMODE = 95,
|
|
CREATERASTERIZERSTATE_INVALIDCULLMODE = 96,
|
|
CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97,
|
|
CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108,
|
|
CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109,
|
|
CREATEBLENDSTATE_INVALIDSRCBLEND = 111,
|
|
CREATEBLENDSTATE_INVALIDDESTBLEND = 112,
|
|
CREATEBLENDSTATE_INVALIDBLENDOP = 113,
|
|
CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114,
|
|
CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115,
|
|
CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116,
|
|
CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117,
|
|
CLEARDEPTHSTENCILVIEW_INVALID = 135,
|
|
COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200,
|
|
COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201,
|
|
COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202,
|
|
COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209,
|
|
COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210,
|
|
COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211,
|
|
COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212,
|
|
COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213,
|
|
COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219,
|
|
COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221,
|
|
COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222,
|
|
DEVICE_REMOVAL_PROCESS_AT_FAULT = 232,
|
|
DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233,
|
|
DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234,
|
|
CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240,
|
|
CREATEINPUTLAYOUT_TYPE_MISMATCH = 245,
|
|
CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253,
|
|
LIVE_OBJECT_SUMMARY = 255,
|
|
LIVE_DEVICE = 274,
|
|
LIVE_SWAPCHAIN = 275,
|
|
CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276,
|
|
CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277,
|
|
CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280,
|
|
CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286,
|
|
CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287,
|
|
CREATEHULLSHADER_OUTOFMEMORY = 289,
|
|
CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290,
|
|
CREATEHULLSHADER_INVALIDSHADERTYPE = 291,
|
|
CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292,
|
|
CREATEDOMAINSHADER_OUTOFMEMORY = 294,
|
|
CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295,
|
|
CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296,
|
|
CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297,
|
|
RESOURCE_UNMAP_NOTMAPPED = 310,
|
|
DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318,
|
|
CREATECOMPUTESHADER_OUTOFMEMORY = 321,
|
|
CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322,
|
|
CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323,
|
|
DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331,
|
|
DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332,
|
|
DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333,
|
|
DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334,
|
|
DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335,
|
|
DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336,
|
|
DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345,
|
|
CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346,
|
|
CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354,
|
|
CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401,
|
|
CREATEBLENDSTATE_INVALIDLOGICOPS = 403,
|
|
DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410,
|
|
DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412,
|
|
DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414,
|
|
DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416,
|
|
DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418,
|
|
DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420,
|
|
DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422,
|
|
DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425,
|
|
DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426,
|
|
DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427,
|
|
DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428,
|
|
DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429,
|
|
DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430,
|
|
DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431,
|
|
DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447,
|
|
DEVICE_CLEARVIEW_EMPTYRECT = 448,
|
|
UPDATETILEMAPPINGS_INVALID_PARAMETER = 493,
|
|
COPYTILEMAPPINGS_INVALID_PARAMETER = 494,
|
|
CREATEDEVICE_INVALIDARGS = 506,
|
|
CREATEDEVICE_WARNING = 507,
|
|
RESOURCE_BARRIER_INVALID_TYPE = 519,
|
|
RESOURCE_BARRIER_NULL_POINTER = 520,
|
|
RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521,
|
|
RESOURCE_BARRIER_RESERVED_BITS = 522,
|
|
RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523,
|
|
RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524,
|
|
RESOURCE_BARRIER_MATCHING_STATES = 525,
|
|
RESOURCE_BARRIER_INVALID_COMBINATION = 526,
|
|
RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527,
|
|
RESOURCE_BARRIER_INVALID_RESOURCE = 528,
|
|
RESOURCE_BARRIER_SAMPLE_COUNT = 529,
|
|
RESOURCE_BARRIER_INVALID_FLAGS = 530,
|
|
RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531,
|
|
RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532,
|
|
RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533,
|
|
RESOURCE_BARRIER_UNMATCHED_END = 534,
|
|
RESOURCE_BARRIER_UNMATCHED_BEGIN = 535,
|
|
RESOURCE_BARRIER_INVALID_FLAG = 536,
|
|
RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537,
|
|
INVALID_SUBRESOURCE_STATE = 538,
|
|
COMMAND_ALLOCATOR_CONTENTION = 540,
|
|
COMMAND_ALLOCATOR_RESET = 541,
|
|
COMMAND_ALLOCATOR_RESET_BUNDLE = 542,
|
|
COMMAND_ALLOCATOR_CANNOT_RESET = 543,
|
|
COMMAND_LIST_OPEN = 544,
|
|
INVALID_BUNDLE_API = 546,
|
|
COMMAND_LIST_CLOSED = 547,
|
|
WRONG_COMMAND_ALLOCATOR_TYPE = 549,
|
|
COMMAND_ALLOCATOR_SYNC = 552,
|
|
COMMAND_LIST_SYNC = 553,
|
|
SET_DESCRIPTOR_HEAP_INVALID = 554,
|
|
CREATE_COMMANDQUEUE = 557,
|
|
CREATE_COMMANDALLOCATOR = 558,
|
|
CREATE_PIPELINESTATE = 559,
|
|
CREATE_COMMANDLIST12 = 560,
|
|
CREATE_RESOURCE = 562,
|
|
CREATE_DESCRIPTORHEAP = 563,
|
|
CREATE_ROOTSIGNATURE = 564,
|
|
CREATE_LIBRARY = 565,
|
|
CREATE_HEAP = 566,
|
|
CREATE_MONITOREDFENCE = 567,
|
|
CREATE_QUERYHEAP = 568,
|
|
CREATE_COMMANDSIGNATURE = 569,
|
|
LIVE_COMMANDQUEUE = 570,
|
|
LIVE_COMMANDALLOCATOR = 571,
|
|
LIVE_PIPELINESTATE = 572,
|
|
LIVE_COMMANDLIST12 = 573,
|
|
LIVE_RESOURCE = 575,
|
|
LIVE_DESCRIPTORHEAP = 576,
|
|
LIVE_ROOTSIGNATURE = 577,
|
|
LIVE_LIBRARY = 578,
|
|
LIVE_HEAP = 579,
|
|
LIVE_MONITOREDFENCE = 580,
|
|
LIVE_QUERYHEAP = 581,
|
|
LIVE_COMMANDSIGNATURE = 582,
|
|
DESTROY_COMMANDQUEUE = 583,
|
|
DESTROY_COMMANDALLOCATOR = 584,
|
|
DESTROY_PIPELINESTATE = 585,
|
|
DESTROY_COMMANDLIST12 = 586,
|
|
DESTROY_RESOURCE = 588,
|
|
DESTROY_DESCRIPTORHEAP = 589,
|
|
DESTROY_ROOTSIGNATURE = 590,
|
|
DESTROY_LIBRARY = 591,
|
|
DESTROY_HEAP = 592,
|
|
DESTROY_MONITOREDFENCE = 593,
|
|
DESTROY_QUERYHEAP = 594,
|
|
DESTROY_COMMANDSIGNATURE = 595,
|
|
CREATERESOURCE_INVALIDDIMENSIONS = 597,
|
|
CREATERESOURCE_INVALIDMISCFLAGS = 599,
|
|
CREATERESOURCE_INVALIDARG_RETURN = 602,
|
|
CREATERESOURCE_OUTOFMEMORY_RETURN = 603,
|
|
CREATERESOURCE_INVALIDDESC = 604,
|
|
POSSIBLY_INVALID_SUBRESOURCE_STATE = 607,
|
|
INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608,
|
|
POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609,
|
|
BUNDLE_PIPELINE_STATE_MISMATCH = 610,
|
|
PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611,
|
|
RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613,
|
|
RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614,
|
|
DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615,
|
|
DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616,
|
|
CREATESHADER_INVALIDBYTECODE = 622,
|
|
CREATEHEAP_NULLDESC = 623,
|
|
CREATEHEAP_INVALIDSIZE = 624,
|
|
CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625,
|
|
CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626,
|
|
CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627,
|
|
CREATEHEAP_INVALIDPROPERTIES = 628,
|
|
CREATEHEAP_INVALIDALIGNMENT = 629,
|
|
CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630,
|
|
CREATEHEAP_INVALIDMISCFLAGS = 631,
|
|
CREATEHEAP_INVALIDARG_RETURN = 632,
|
|
CREATEHEAP_OUTOFMEMORY_RETURN = 633,
|
|
CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634,
|
|
CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635,
|
|
CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636,
|
|
CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637,
|
|
CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638,
|
|
CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639,
|
|
CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640,
|
|
CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641,
|
|
CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642,
|
|
GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643,
|
|
GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644,
|
|
CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645,
|
|
INVALID_DESCRIPTOR_HANDLE = 646,
|
|
CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647,
|
|
CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649,
|
|
CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650,
|
|
CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652,
|
|
COPY_DESCRIPTORS_INVALID_RANGES = 653,
|
|
COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654,
|
|
CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656,
|
|
CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657,
|
|
CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666,
|
|
CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667,
|
|
CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668,
|
|
CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669,
|
|
CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674,
|
|
CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675,
|
|
CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676,
|
|
CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677,
|
|
CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678,
|
|
CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679,
|
|
CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680,
|
|
CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681,
|
|
CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682,
|
|
CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684,
|
|
CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685,
|
|
CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686,
|
|
CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687,
|
|
CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688,
|
|
CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689,
|
|
CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690,
|
|
CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691,
|
|
EXECUTE_BUNDLE_OPEN_BUNDLE = 692,
|
|
EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693,
|
|
EXECUTE_BUNDLE_TYPE = 694,
|
|
DRAW_EMPTY_SCISSOR_RECTANGLE = 695,
|
|
CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696,
|
|
CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697,
|
|
CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698,
|
|
CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699,
|
|
CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700,
|
|
CREATERESOURCEANDHEAP_NULLHEAP = 701,
|
|
GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702,
|
|
MAKERESIDENT_NULLOBJECTARRAY = 703,
|
|
EVICT_NULLOBJECTARRAY = 705,
|
|
SET_DESCRIPTOR_TABLE_INVALID = 708,
|
|
SET_ROOT_CONSTANT_INVALID = 709,
|
|
SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710,
|
|
SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711,
|
|
SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712,
|
|
SET_VERTEX_BUFFERS_INVALID_DESC = 713,
|
|
SET_INDEX_BUFFER_INVALID_DESC = 715,
|
|
SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717,
|
|
CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718,
|
|
CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719,
|
|
CREATERESOURCE_INVALIDDIMENSIONALITY = 720,
|
|
CREATERESOURCE_INVALIDALIGNMENT = 721,
|
|
CREATERESOURCE_INVALIDMIPLEVELS = 722,
|
|
CREATERESOURCE_INVALIDSAMPLEDESC = 723,
|
|
CREATERESOURCE_INVALIDLAYOUT = 724,
|
|
SET_INDEX_BUFFER_INVALID = 725,
|
|
SET_VERTEX_BUFFERS_INVALID = 726,
|
|
SET_STREAM_OUTPUT_BUFFERS_INVALID = 727,
|
|
SET_RENDER_TARGETS_INVALID = 728,
|
|
CREATEQUERY_HEAP_INVALID_PARAMETERS = 729,
|
|
BEGIN_END_QUERY_INVALID_PARAMETERS = 731,
|
|
CLOSE_COMMAND_LIST_OPEN_QUERY = 732,
|
|
RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733,
|
|
SET_PREDICATION_INVALID_PARAMETERS = 734,
|
|
TIMESTAMPS_NOT_SUPPORTED = 735,
|
|
CREATERESOURCE_UNRECOGNIZEDFORMAT = 737,
|
|
CREATERESOURCE_INVALIDFORMAT = 738,
|
|
GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739,
|
|
GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740,
|
|
GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739,
|
|
GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740,
|
|
RESOURCE_BARRIER_INVALID_HEAP = 741,
|
|
CREATE_SAMPLER_INVALID = 742,
|
|
CREATECOMMANDSIGNATURE_INVALID = 743,
|
|
EXECUTE_INDIRECT_INVALID_PARAMETERS = 744,
|
|
GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745,
|
|
CREATERESOURCE_INVALIDCLEARVALUE = 815,
|
|
CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816,
|
|
CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817,
|
|
CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818,
|
|
CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820,
|
|
CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821,
|
|
MAP_INVALIDHEAP = 822,
|
|
UNMAP_INVALIDHEAP = 823,
|
|
MAP_INVALIDRESOURCE = 824,
|
|
UNMAP_INVALIDRESOURCE = 825,
|
|
MAP_INVALIDSUBRESOURCE = 826,
|
|
UNMAP_INVALIDSUBRESOURCE = 827,
|
|
MAP_INVALIDRANGE = 828,
|
|
UNMAP_INVALIDRANGE = 829,
|
|
MAP_INVALIDDATAPOINTER = 832,
|
|
MAP_INVALIDARG_RETURN = 833,
|
|
MAP_OUTOFMEMORY_RETURN = 834,
|
|
EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835,
|
|
EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836,
|
|
EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837,
|
|
EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838,
|
|
COPYBUFFERREGION_NULLDST = 839,
|
|
COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840,
|
|
COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841,
|
|
COPYBUFFERREGION_NULLSRC = 842,
|
|
COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843,
|
|
COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844,
|
|
COPYBUFFERREGION_INVALIDCOPYFLAGS = 845,
|
|
COPYTEXTUREREGION_NULLDST = 846,
|
|
COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847,
|
|
COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848,
|
|
COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849,
|
|
COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850,
|
|
COPYTEXTUREREGION_INVALIDDSTOFFSET = 851,
|
|
COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852,
|
|
COPYTEXTUREREGION_INVALIDDSTFORMAT = 853,
|
|
COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854,
|
|
COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855,
|
|
COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856,
|
|
COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857,
|
|
COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858,
|
|
COPYTEXTUREREGION_NULLSRC = 859,
|
|
COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860,
|
|
COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861,
|
|
COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862,
|
|
COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863,
|
|
COPYTEXTUREREGION_INVALIDSRCOFFSET = 864,
|
|
COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865,
|
|
COPYTEXTUREREGION_INVALIDSRCFORMAT = 866,
|
|
COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867,
|
|
COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868,
|
|
COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869,
|
|
COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870,
|
|
COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871,
|
|
COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872,
|
|
COPYTEXTUREREGION_INVALIDSRCBOX = 873,
|
|
COPYTEXTUREREGION_FORMATMISMATCH = 874,
|
|
COPYTEXTUREREGION_EMPTYBOX = 875,
|
|
COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876,
|
|
RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877,
|
|
RESOLVESUBRESOURCE_INVALID_FORMAT = 878,
|
|
RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879,
|
|
RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880,
|
|
CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881,
|
|
CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882,
|
|
CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883,
|
|
CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884,
|
|
CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885,
|
|
CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886,
|
|
CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887,
|
|
CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888,
|
|
WRITETOSUBRESOURCE_INVALIDHEAP = 889,
|
|
WRITETOSUBRESOURCE_INVALIDRESOURCE = 890,
|
|
WRITETOSUBRESOURCE_INVALIDBOX = 891,
|
|
WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892,
|
|
WRITETOSUBRESOURCE_EMPTYBOX = 893,
|
|
READFROMSUBRESOURCE_INVALIDHEAP = 894,
|
|
READFROMSUBRESOURCE_INVALIDRESOURCE = 895,
|
|
READFROMSUBRESOURCE_INVALIDBOX = 896,
|
|
READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897,
|
|
READFROMSUBRESOURCE_EMPTYBOX = 898,
|
|
TOO_MANY_NODES_SPECIFIED = 899,
|
|
INVALID_NODE_INDEX = 900,
|
|
GETHEAPPROPERTIES_INVALIDRESOURCE = 901,
|
|
NODE_MASK_MISMATCH = 902,
|
|
COMMAND_LIST_OUTOFMEMORY = 903,
|
|
COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904,
|
|
COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905,
|
|
COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906,
|
|
EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907,
|
|
COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908,
|
|
CREATE_QUEUE_INVALID_TYPE = 909,
|
|
CREATE_QUEUE_INVALID_FLAGS = 910,
|
|
CREATESHAREDRESOURCE_INVALIDFLAGS = 911,
|
|
CREATESHAREDRESOURCE_INVALIDFORMAT = 912,
|
|
CREATESHAREDHEAP_INVALIDFLAGS = 913,
|
|
REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914,
|
|
REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915,
|
|
REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916,
|
|
KEYEDMUTEX_INVALIDOBJECT = 917,
|
|
KEYEDMUTEX_INVALIDKEY = 918,
|
|
KEYEDMUTEX_WRONGSTATE = 919,
|
|
CREATE_QUEUE_INVALID_PRIORITY = 920,
|
|
OBJECT_DELETED_WHILE_STILL_IN_USE = 921,
|
|
CREATEPIPELINESTATE_INVALID_FLAGS = 922,
|
|
HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923,
|
|
COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924,
|
|
CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925,
|
|
HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926,
|
|
EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927,
|
|
UNMAP_RANGE_NOT_EMPTY = 929,
|
|
MAP_INVALID_NULLRANGE = 930,
|
|
UNMAP_INVALID_NULLRANGE = 931,
|
|
NO_GRAPHICS_API_SUPPORT = 932,
|
|
NO_COMPUTE_API_SUPPORT = 933,
|
|
RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934,
|
|
GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935,
|
|
GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936,
|
|
GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937,
|
|
GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938,
|
|
GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939,
|
|
GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940,
|
|
GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941,
|
|
GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942,
|
|
COPYRESOURCE_NULLDST = 943,
|
|
COPYRESOURCE_INVALIDDSTRESOURCE = 944,
|
|
COPYRESOURCE_NULLSRC = 945,
|
|
COPYRESOURCE_INVALIDSRCRESOURCE = 946,
|
|
RESOLVESUBRESOURCE_NULLDST = 947,
|
|
RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948,
|
|
RESOLVESUBRESOURCE_NULLSRC = 949,
|
|
RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950,
|
|
PIPELINE_STATE_TYPE_MISMATCH = 951,
|
|
COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952,
|
|
COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953,
|
|
RESOURCE_BARRIER_ZERO_BARRIERS = 954,
|
|
BEGIN_END_EVENT_MISMATCH = 955,
|
|
RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956,
|
|
RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957,
|
|
GPU_BASED_VALIDATION_INVALID_RESOURCE = 958,
|
|
USE_OF_ZERO_REFCOUNT_OBJECT = 959,
|
|
OBJECT_EVICTED_WHILE_STILL_IN_USE = 960,
|
|
GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961,
|
|
CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962,
|
|
CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963,
|
|
CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964,
|
|
CREATEPIPELINELIBRARY_UNSUPPORTED = 965,
|
|
CREATE_PIPELINELIBRARY = 966,
|
|
LIVE_PIPELINELIBRARY = 967,
|
|
DESTROY_PIPELINELIBRARY = 968,
|
|
STOREPIPELINE_NONAME = 969,
|
|
STOREPIPELINE_DUPLICATENAME = 970,
|
|
LOADPIPELINE_NAMENOTFOUND = 971,
|
|
LOADPIPELINE_INVALIDDESC = 972,
|
|
PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973,
|
|
CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974,
|
|
SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975,
|
|
CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976,
|
|
CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977,
|
|
CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978,
|
|
CREATE_VIDEODECODECOMMANDLIST = 979,
|
|
CREATE_VIDEODECODER = 980,
|
|
CREATE_VIDEODECODESTREAM = 981,
|
|
LIVE_VIDEODECODECOMMANDLIST = 982,
|
|
LIVE_VIDEODECODER = 983,
|
|
LIVE_VIDEODECODESTREAM = 984,
|
|
DESTROY_VIDEODECODECOMMANDLIST = 985,
|
|
DESTROY_VIDEODECODER = 986,
|
|
DESTROY_VIDEODECODESTREAM = 987,
|
|
DECODE_FRAME_INVALID_PARAMETERS = 988,
|
|
DEPRECATED_API = 989,
|
|
RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990,
|
|
COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991,
|
|
COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992,
|
|
COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993,
|
|
COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994,
|
|
DISCARD_INVALID_SUBRESOURCE_RANGE = 995,
|
|
DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996,
|
|
DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997,
|
|
COPY_ON_SAME_SUBRESOURCE = 998,
|
|
SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999,
|
|
GPU_BASED_VALIDATION_UNSUPPORTED = 1000,
|
|
STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001,
|
|
DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002,
|
|
DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003,
|
|
EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004,
|
|
GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005,
|
|
GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006,
|
|
CREATE_FENCE_INVALID_FLAGS = 1007,
|
|
RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008,
|
|
SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009,
|
|
CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013,
|
|
BEGIN_EVENT = 1014,
|
|
END_EVENT = 1015,
|
|
CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016,
|
|
CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017,
|
|
CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018,
|
|
CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019,
|
|
CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020,
|
|
CREATEPIPELINESTATE_INVALID_STREAM = 1021,
|
|
CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022,
|
|
COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023,
|
|
CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024,
|
|
CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025,
|
|
ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026,
|
|
ATOMICCOPYBUFFER_NULL_DST = 1027,
|
|
ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028,
|
|
ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029,
|
|
ATOMICCOPYBUFFER_NULL_SRC = 1030,
|
|
ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031,
|
|
ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032,
|
|
ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033,
|
|
ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034,
|
|
ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035,
|
|
ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036,
|
|
ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037,
|
|
ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038,
|
|
ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039,
|
|
ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040,
|
|
DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041,
|
|
DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042,
|
|
SETDEPTHBOUNDS_INVALIDARGS = 1043,
|
|
GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044,
|
|
COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045,
|
|
CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046,
|
|
OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047,
|
|
PROGRAMMABLE_MSAA_UNSUPPORTED = 1048,
|
|
SETSAMPLEPOSITIONS_INVALIDARGS = 1049,
|
|
RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050,
|
|
CREATE_VIDEODECODECOMMANDQUEUE = 1051,
|
|
CREATE_VIDEOPROCESSCOMMANDLIST = 1052,
|
|
CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053,
|
|
LIVE_VIDEODECODECOMMANDQUEUE = 1054,
|
|
LIVE_VIDEOPROCESSCOMMANDLIST = 1055,
|
|
LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056,
|
|
DESTROY_VIDEODECODECOMMANDQUEUE = 1057,
|
|
DESTROY_VIDEOPROCESSCOMMANDLIST = 1058,
|
|
DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059,
|
|
CREATE_VIDEOPROCESSOR = 1060,
|
|
CREATE_VIDEOPROCESSSTREAM = 1061,
|
|
LIVE_VIDEOPROCESSOR = 1062,
|
|
LIVE_VIDEOPROCESSSTREAM = 1063,
|
|
DESTROY_VIDEOPROCESSOR = 1064,
|
|
DESTROY_VIDEOPROCESSSTREAM = 1065,
|
|
PROCESS_FRAME_INVALID_PARAMETERS = 1066,
|
|
COPY_INVALIDLAYOUT = 1067,
|
|
CREATE_CRYPTO_SESSION = 1068,
|
|
CREATE_CRYPTO_SESSION_POLICY = 1069,
|
|
CREATE_PROTECTED_RESOURCE_SESSION = 1070,
|
|
LIVE_CRYPTO_SESSION = 1071,
|
|
LIVE_CRYPTO_SESSION_POLICY = 1072,
|
|
LIVE_PROTECTED_RESOURCE_SESSION = 1073,
|
|
DESTROY_CRYPTO_SESSION = 1074,
|
|
DESTROY_CRYPTO_SESSION_POLICY = 1075,
|
|
DESTROY_PROTECTED_RESOURCE_SESSION = 1076,
|
|
PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077,
|
|
FENCE_INVALIDOPERATION = 1078,
|
|
CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079,
|
|
SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080,
|
|
SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081,
|
|
SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082,
|
|
CREATE_VIDEODECODERHEAP = 1083,
|
|
LIVE_VIDEODECODERHEAP = 1084,
|
|
DESTROY_VIDEODECODERHEAP = 1085,
|
|
OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086,
|
|
OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087,
|
|
OPENEXISTINGHEAP_INVALIDADDRESS = 1088,
|
|
OPENEXISTINGHEAP_INVALIDHANDLE = 1089,
|
|
WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090,
|
|
WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091,
|
|
WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092,
|
|
WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093,
|
|
SETVIEWINSTANCEMASK_INVALIDARGS = 1094,
|
|
VIEW_INSTANCING_UNSUPPORTED = 1095,
|
|
VIEW_INSTANCING_INVALIDARGS = 1096,
|
|
COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097,
|
|
COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098,
|
|
CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099,
|
|
CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100,
|
|
VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101,
|
|
CREATE_VIDEO_DECODER_UNSUPPORTED = 1102,
|
|
CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103,
|
|
CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104,
|
|
CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105,
|
|
NO_VIDEO_API_SUPPORT = 1106,
|
|
VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107,
|
|
CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108,
|
|
VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109,
|
|
VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110,
|
|
ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111,
|
|
OPENEXISTINGHEAP_UNSUPPORTED = 1112,
|
|
VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113,
|
|
VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114,
|
|
CREATE_COMMANDRECORDER = 1115,
|
|
LIVE_COMMANDRECORDER = 1116,
|
|
DESTROY_COMMANDRECORDER = 1117,
|
|
CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118,
|
|
CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119,
|
|
CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120,
|
|
CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121,
|
|
CREATE_COMMANDPOOL = 1122,
|
|
LIVE_COMMANDPOOL = 1123,
|
|
DESTROY_COMMANDPOOL = 1124,
|
|
CREATE_COMMAND_POOL_INVALID_FLAGS = 1125,
|
|
CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126,
|
|
COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127,
|
|
COMMAND_RECORDER_CONTENTION = 1128,
|
|
COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129,
|
|
COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130,
|
|
CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131,
|
|
CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132,
|
|
CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133,
|
|
CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134,
|
|
COMMAND_POOL_SYNC = 1135,
|
|
EVICT_UNDERFLOW = 1136,
|
|
CREATE_META_COMMAND = 1137,
|
|
LIVE_META_COMMAND = 1138,
|
|
DESTROY_META_COMMAND = 1139,
|
|
COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140,
|
|
COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141,
|
|
ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142,
|
|
ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143,
|
|
CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144,
|
|
CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145,
|
|
CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146,
|
|
CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147,
|
|
CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148,
|
|
CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149,
|
|
CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150,
|
|
CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151,
|
|
CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152,
|
|
CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153,
|
|
UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154,
|
|
CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155,
|
|
CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156,
|
|
COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157,
|
|
BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158,
|
|
EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159,
|
|
COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160,
|
|
DISPATCH_RAYS_INVALID = 1161,
|
|
GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162,
|
|
CREATE_LIFETIMETRACKER = 1163,
|
|
LIVE_LIFETIMETRACKER = 1164,
|
|
DESTROY_LIFETIMETRACKER = 1165,
|
|
DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166,
|
|
CREATE_TRACKEDWORKLOAD = 1167,
|
|
LIVE_TRACKEDWORKLOAD = 1168,
|
|
DESTROY_TRACKEDWORKLOAD = 1169,
|
|
RENDER_PASS_ERROR = 1170,
|
|
META_COMMAND_ID_INVALID = 1171,
|
|
META_COMMAND_UNSUPPORTED_PARAMS = 1172,
|
|
META_COMMAND_FAILED_ENUMERATION = 1173,
|
|
META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174,
|
|
UNINITIALIZED_META_COMMAND = 1175,
|
|
META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176,
|
|
CREATE_VIDEOENCODECOMMANDLIST = 1177,
|
|
LIVE_VIDEOENCODECOMMANDLIST = 1178,
|
|
DESTROY_VIDEOENCODECOMMANDLIST = 1179,
|
|
CREATE_VIDEOENCODECOMMANDQUEUE = 1180,
|
|
LIVE_VIDEOENCODECOMMANDQUEUE = 1181,
|
|
DESTROY_VIDEOENCODECOMMANDQUEUE = 1182,
|
|
CREATE_VIDEOMOTIONESTIMATOR = 1183,
|
|
LIVE_VIDEOMOTIONESTIMATOR = 1184,
|
|
DESTROY_VIDEOMOTIONESTIMATOR = 1185,
|
|
CREATE_VIDEOMOTIONVECTORHEAP = 1186,
|
|
LIVE_VIDEOMOTIONVECTORHEAP = 1187,
|
|
DESTROY_VIDEOMOTIONVECTORHEAP = 1188,
|
|
MULTIPLE_TRACKED_WORKLOADS = 1189,
|
|
MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190,
|
|
OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191,
|
|
CANNOT_ADD_TRACKED_WORKLOAD = 1192,
|
|
INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193,
|
|
CREATE_STATE_OBJECT_ERROR = 1194,
|
|
GET_SHADER_IDENTIFIER_ERROR = 1195,
|
|
GET_SHADER_STACK_SIZE_ERROR = 1196,
|
|
GET_PIPELINE_STACK_SIZE_ERROR = 1197,
|
|
SET_PIPELINE_STACK_SIZE_ERROR = 1198,
|
|
GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199,
|
|
CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200,
|
|
CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201,
|
|
RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202,
|
|
RENDER_PASS_DISALLOWED_API_CALLED = 1203,
|
|
RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204,
|
|
RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205,
|
|
RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206,
|
|
RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207,
|
|
RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208,
|
|
RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209,
|
|
RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210,
|
|
TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211,
|
|
TRACKED_WORKLOAD_NOT_SUPPORTED = 1212,
|
|
RENDER_PASS_MISMATCHING_NO_ACCESS = 1213,
|
|
RENDER_PASS_UNSUPPORTED_RESOLVE = 1214,
|
|
CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215,
|
|
WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216,
|
|
WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217,
|
|
VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218,
|
|
VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219,
|
|
ESTIMATE_MOTION_INVALID_ARGUMENT = 1220,
|
|
RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221,
|
|
GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222,
|
|
SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223,
|
|
CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224,
|
|
CREATE_VIDEOEXTENSIONCOMMAND = 1225,
|
|
LIVE_VIDEOEXTENSIONCOMMAND = 1226,
|
|
DESTROY_VIDEOEXTENSIONCOMMAND = 1227,
|
|
INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228,
|
|
VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229,
|
|
CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230,
|
|
VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231,
|
|
GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232,
|
|
RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233,
|
|
RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234,
|
|
RSSETSHADING_RATE_INVALID_COMBINER = 1235,
|
|
RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236,
|
|
RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237,
|
|
SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238,
|
|
SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239,
|
|
SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240,
|
|
SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241,
|
|
SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242,
|
|
NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243,
|
|
CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244,
|
|
CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245,
|
|
ADD_TO_STATE_OBJECT_ERROR = 1246,
|
|
CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247,
|
|
CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248,
|
|
CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249,
|
|
CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250,
|
|
CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251,
|
|
NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252,
|
|
CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253,
|
|
EMPTY_DISPATCH = 1254,
|
|
RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255,
|
|
SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256,
|
|
SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257,
|
|
SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258,
|
|
SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259,
|
|
SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260,
|
|
SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261,
|
|
SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262,
|
|
SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263,
|
|
SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264,
|
|
CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265,
|
|
CREATEMESHSHADER_OUTOFMEMORY = 1266,
|
|
CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267,
|
|
RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268,
|
|
RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269,
|
|
RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270,
|
|
SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271,
|
|
CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272,
|
|
CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273,
|
|
VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274,
|
|
MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275,
|
|
CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276,
|
|
CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277,
|
|
CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278,
|
|
CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279,
|
|
MESSAGES_END = 1280,
|
|
}
|
|
|
|
MESSAGE :: struct {
|
|
Category: MESSAGE_CATEGORY,
|
|
Severity: MESSAGE_SEVERITY,
|
|
ID: MESSAGE_ID,
|
|
pDescription: cstring,
|
|
DescriptionByteLength: SIZE_T,
|
|
}
|
|
|
|
INFO_QUEUE_FILTER_DESC :: struct {
|
|
NumCategories: u32,
|
|
pCategoryList: ^MESSAGE_CATEGORY,
|
|
NumSeverities: u32,
|
|
pSeverityList: ^MESSAGE_SEVERITY,
|
|
NumIDs: u32,
|
|
pIDList: ^MESSAGE_ID,
|
|
}
|
|
|
|
INFO_QUEUE_FILTER :: struct {
|
|
AllowList: INFO_QUEUE_FILTER_DESC,
|
|
DenyList: INFO_QUEUE_FILTER_DESC,
|
|
}
|
|
|
|
|
|
IInfoQueue_UUID_STRING :: "0742a90b-c387-483f-b946-30a7e4e61458"
|
|
IInfoQueue_UUID := &IID{0x0742a90b, 0xc387, 0x483f, {0xb9, 0x46, 0x30, 0xa7, 0xe4, 0xe6, 0x14, 0x58}}
|
|
IInfoQueue :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12infoqueue_vtable: ^IInfoQueue_VTable,
|
|
}
|
|
IInfoQueue_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetMessageCountLimit: proc "system" (this: ^IInfoQueue, MessageCountLimit: u64) -> HRESULT,
|
|
ClearStoredMessages: proc "system" (this: ^IInfoQueue),
|
|
GetMessageA: proc "system" (this: ^IInfoQueue, MessageIndex: u64, pMessage: ^MESSAGE, pMessageByteLength: ^SIZE_T) -> HRESULT,
|
|
GetNumMessagesAllowedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
|
GetNumMessagesDeniedByStorageFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
|
GetNumStoredMessages: proc "system" (this: ^IInfoQueue) -> u64,
|
|
GetNumStoredMessagesAllowedByRetrievalFilter: proc "system" (this: ^IInfoQueue) -> u64,
|
|
GetNumMessagesDiscardedByMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
|
GetMessageCountLimit: proc "system" (this: ^IInfoQueue) -> u64,
|
|
AddStorageFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
GetStorageFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
|
ClearStorageFilter: proc "system" (this: ^IInfoQueue),
|
|
PushEmptyStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
PushCopyOfStorageFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
PushStorageFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
PopStorageFilter: proc "system" (this: ^IInfoQueue),
|
|
GetStorageFilterStackSize: proc "system" (this: ^IInfoQueue) -> u32,
|
|
AddRetrievalFilterEntries: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
GetRetrievalFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^SIZE_T) -> HRESULT,
|
|
ClearRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
|
PushEmptyRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
PushCopyOfRetrievalFilter: proc "system" (this: ^IInfoQueue) -> HRESULT,
|
|
PushRetrievalFilter: proc "system" (this: ^IInfoQueue, pFilter: ^INFO_QUEUE_FILTER) -> HRESULT,
|
|
PopRetrievalFilter: proc "system" (this: ^IInfoQueue),
|
|
GetRetrievalFilterStackSize: proc "system" (this: ^IInfoQueue) -> u32,
|
|
AddMessage: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, Severity: MESSAGE_SEVERITY, ID: MESSAGE_ID, pDescription: LPCSTR) -> HRESULT,
|
|
AddApplicationMessage: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, pDescription: LPCSTR) -> HRESULT,
|
|
SetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY, bEnable: BOOL) -> HRESULT,
|
|
SetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY, bEnable: BOOL) -> HRESULT,
|
|
SetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID, bEnable: BOOL) -> HRESULT,
|
|
GetBreakOnCategory: proc "system" (this: ^IInfoQueue, Category: MESSAGE_CATEGORY) -> BOOL,
|
|
GetBreakOnSeverity: proc "system" (this: ^IInfoQueue, Severity: MESSAGE_SEVERITY) -> BOOL,
|
|
GetBreakOnID: proc "system" (this: ^IInfoQueue, ID: MESSAGE_ID) -> BOOL,
|
|
SetMuteDebugOutput: proc "system" (this: ^IInfoQueue, bMute: BOOL),
|
|
GetMuteDebugOutput: proc "system" (this: ^IInfoQueue) -> BOOL,
|
|
}
|
|
|
|
MESSAGE_CALLBACK_FLAGS :: distinct bit_set[MESSAGE_CALLBACK_FLAG; u32]
|
|
MESSAGE_CALLBACK_FLAG :: enum {
|
|
IGNORE_FILTERS = 0,
|
|
}
|
|
|
|
PFN_MESSAGE_CALLBACK :: #type proc "c" (Category: MESSAGE_CATEGORY, Severity: MESSAGE_SEVERITY, ID: MESSAGE_ID, pDescription: LPCSTR, pContext: rawptr)
|
|
|
|
IInfoQueue1_UUID_STRING :: "2852dd88-b484-4c0c-b6b1-67168500e600"
|
|
IInfoQueue1_UUID := &IID{0x2852dd88, 0xb484, 0x4c0c, {0xb6, 0xb1, 0x67, 0x16, 0x85, 0x00, 0xe6, 0x00}}
|
|
IInfoQueue1 :: struct #raw_union {
|
|
#subtype iinfo_queue: IInfoQueue,
|
|
using idxgiinfoqueue1_vtable: ^IInfoQueue1_VTable,
|
|
}
|
|
IInfoQueue1_VTable :: struct {
|
|
using idxgiinfoqueue_vtable: IInfoQueue_VTable,
|
|
RegisterMessageCallback: proc "system" (this: ^IInfoQueue1, CallbackFunc: PFN_MESSAGE_CALLBACK, CallbackFilterFlags: MESSAGE_CALLBACK_FLAGS, pContext: rawptr, pCallbackCookie: ^u32) -> HRESULT,
|
|
UnregisterMessageCallback: proc "system" (this: ^IInfoQueue1, pCallbackCookie: u32) -> HRESULT,
|
|
}
|
|
|
|
|
|
ISDKConfiguration_UUID_STRING :: "E9EB5314-33AA-42B2-A718-D77F58B1F1C7"
|
|
ISDKConfiguration_UUID := &IID{0xE9EB5314, 0x33AA, 0x42B2, {0xA7, 0x18, 0xD7, 0x7F, 0x58, 0xB1, 0xF1, 0xC7}}
|
|
ISDKConfiguration :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12sdkconfiguration_vtable: ^ISDKConfiguration_VTable,
|
|
}
|
|
ISDKConfiguration_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
SetSDKVersion: proc "system" (this: ^ISDKConfiguration, SDKVersion: u32, SDKPath: LPCSTR) -> HRESULT,
|
|
}
|
|
|
|
|
|
PFN_CREATE_DEVICE :: #type proc "c" (a0: ^IUnknown, a1: FEATURE_LEVEL, a2: ^IID, a3: ^rawptr) -> HRESULT
|
|
PFN_GET_DEBUG_INTERFACE :: #type proc "c" (a0: ^IID, a1: ^rawptr) -> HRESULT
|
|
|
|
AXIS_SHADING_RATE :: enum i32 {
|
|
_1X = 0,
|
|
_2X = 1,
|
|
_4X = 2,
|
|
}
|
|
|
|
SHADING_RATE :: enum i32 {
|
|
_1X1 = 0,
|
|
_1X2 = 1,
|
|
_2X1 = 4,
|
|
_2X2 = 5,
|
|
_2X4 = 6,
|
|
_4X2 = 9,
|
|
_4X4 = 10,
|
|
}
|
|
|
|
SHADING_RATE_COMBINER :: enum i32 {
|
|
PASSTHROUGH = 0,
|
|
OVERRIDE = 1,
|
|
MIN = 2,
|
|
MAX = 3,
|
|
SUM = 4,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList5_UUID_STRING :: "55050859-4024-474c-87f5-6472eaee44ea"
|
|
IGraphicsCommandList5_UUID := &IID{0x55050859, 0x4024, 0x474c, {0x87, 0xf5, 0x64, 0x72, 0xea, 0xee, 0x44, 0xea}}
|
|
IGraphicsCommandList5 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist4: IGraphicsCommandList4,
|
|
using id3d12graphicscommandlist5_vtable: ^IGraphicsCommandList5_VTable,
|
|
}
|
|
IGraphicsCommandList5_VTable :: struct {
|
|
using id3d12graphicscommandlist4_vtable: IGraphicsCommandList4_VTable,
|
|
RSSetShadingRate: proc "system" (this: ^IGraphicsCommandList5, baseShadingRate: SHADING_RATE, combiners: ^SHADING_RATE_COMBINER),
|
|
RSSetShadingRateImage: proc "system" (this: ^IGraphicsCommandList5, shadingRateImage: ^IResource),
|
|
}
|
|
|
|
DISPATCH_MESH_ARGUMENTS :: struct {
|
|
ThreadGroupCountX: u32,
|
|
ThreadGroupCountY: u32,
|
|
ThreadGroupCountZ: u32,
|
|
}
|
|
|
|
|
|
IGraphicsCommandList6_UUID_STRING :: "c3827890-e548-4cfa-96cf-5689a9370f80"
|
|
IGraphicsCommandList6_UUID := &IID{0xc3827890, 0xe548, 0x4cfa, {0x96, 0xcf, 0x56, 0x89, 0xa9, 0x37, 0x0f, 0x80}}
|
|
IGraphicsCommandList6 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist5: IGraphicsCommandList5,
|
|
using id3d12graphicscommandlist6_vtable: ^IGraphicsCommandList6_VTable,
|
|
}
|
|
IGraphicsCommandList6_VTable :: struct {
|
|
using id3d12graphicscommandlist5_vtable: IGraphicsCommandList5_VTable,
|
|
DispatchMesh: proc "system" (this: ^IGraphicsCommandList6, ThreadGroupCountX: u32, ThreadGroupCountY: u32, ThreadGroupCountZ: u32),
|
|
}
|
|
|
|
|
|
BARRIER_LAYOUT :: enum u32 {
|
|
UNDEFINED = 0xffffffff,
|
|
COMMON = 0,
|
|
PRESENT = 0,
|
|
GENERIC_READ = 1,
|
|
RENDER_TARGET = 2,
|
|
UNORDERED_ACCESS = 3,
|
|
DEPTH_STENCIL_WRITE = 4,
|
|
DEPTH_STENCIL_READ = 5,
|
|
SHADER_RESOURCE = 6,
|
|
COPY_SOURCE = 7,
|
|
COPY_DEST = 8,
|
|
RESOLVE_SOURCE = 9,
|
|
RESOLVE_DEST = 10,
|
|
SHADING_RATE_SOURCE = 11,
|
|
VIDEO_DECODE_READ = 12,
|
|
VIDEO_DECODE_WRITE = 13,
|
|
VIDEO_PROCESS_READ = 14,
|
|
VIDEO_PROCESS_WRITE = 15,
|
|
VIDEO_ENCODE_READ = 16,
|
|
VIDEO_ENCODE_WRITE = 17,
|
|
DIRECT_QUEUE_COMMON = 18,
|
|
DIRECT_QUEUE_GENERIC_READ = 19,
|
|
DIRECT_QUEUE_UNORDERED_ACCESS = 20,
|
|
DIRECT_QUEUE_SHADER_RESOURCE = 21,
|
|
DIRECT_QUEUE_COPY_SOURCE = 22,
|
|
DIRECT_QUEUE_COPY_DEST = 23,
|
|
COMPUTE_QUEUE_COMMON = 24,
|
|
COMPUTE_QUEUE_GENERIC_READ = 25,
|
|
COMPUTE_QUEUE_UNORDERED_ACCESS = 26,
|
|
COMPUTE_QUEUE_SHADER_RESOURCE = 27,
|
|
COMPUTE_QUEUE_COPY_SOURCE = 28,
|
|
COMPUTE_QUEUE_COPY_DEST = 29,
|
|
DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31,
|
|
}
|
|
|
|
BARRIER_SYNC_FLAG :: enum u32 {
|
|
ALL = 0, // 0x1
|
|
DRAW = 1, // 0x2
|
|
INDEX_INPUT = 2, // 0x4
|
|
VERTEX_SHADING = 3, // 0x8
|
|
PIXEL_SHADING = 4, // 0x10
|
|
DEPTH_STENCIL = 5, // 0x20
|
|
RENDER_TARGET = 6, // 0x40
|
|
COMPUTE_SHADING = 7, // 0x80
|
|
RAYTRACING = 8, // 0x100
|
|
COPY = 9, // 0x200
|
|
RESOLVE = 10, // 0x400
|
|
EXECUTE_INDIRECT = 11, // 0x800
|
|
PREDICATION = 11, // 0x800
|
|
ALL_SHADING = 12, // 0x1000
|
|
NON_PIXEL_SHADING = 13, // 0x2000
|
|
EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 14, // 0x4000
|
|
CLEAR_UNORDERED_ACCESS_VIEW = 15, // 0x8000
|
|
VIDEO_DECODE = 20, // 0x100000
|
|
VIDEO_PROCESS = 21, // 0x200000
|
|
VIDEO_ENCODE = 22, // 0x400000
|
|
BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 23, // 0x800000
|
|
COPY_RAYTRACING_ACCELERATION_STRUCTURE = 24, // 0x1000000
|
|
SPLIT = 31, // 0x80000000
|
|
}
|
|
|
|
BARRIER_SYNC_FLAGS :: bit_set[BARRIER_SYNC_FLAG; u32]
|
|
|
|
BARRIER_ACCESS_FLAG :: enum u32 {
|
|
VERTEX_BUFFER = 0, // 0x1
|
|
CONSTANT_BUFFER = 1, // 0x2
|
|
INDEX_BUFFER = 2, // 0x4
|
|
RENDER_TARGET = 3, // 0x8
|
|
UNORDERED_ACCESS = 4, // 0x10
|
|
DEPTH_STENCIL_WRITE = 5, // 0x20
|
|
DEPTH_STENCIL_READ = 6, // 0x40
|
|
SHADER_RESOURCE = 7, // 0x80
|
|
STREAM_OUTPUT = 8, // 0x100
|
|
INDIRECT_ARGUMENT = 9, // 0x200
|
|
PREDICATION = 9, // 0x200
|
|
COPY_DEST = 10, // 0x400
|
|
COPY_SOURCE = 11, // 0x800
|
|
RESOLVE_DEST = 12, // 0x1000
|
|
RESOLVE_SOURCE = 13, // 0x2000
|
|
RAYTRACING_ACCELERATION_STRUCTURE_READ = 14, // 0x4000
|
|
RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 15, // 0x8000
|
|
SHADING_RATE_SOURCE = 16, // 0x10000
|
|
VIDEO_DECODE_READ = 17, // 0x20000
|
|
VIDEO_DECODE_WRITE = 18, // 0x40000
|
|
VIDEO_PROCESS_READ = 19, // 0x80000
|
|
VIDEO_PROCESS_WRITE = 20, // 0x100000
|
|
VIDEO_ENCODE_READ = 21, // 0x200000
|
|
VIDEO_ENCODE_WRITE = 22, // 0x400000
|
|
NO_ACCESS = 31, // 0x80000000
|
|
}
|
|
|
|
BARRIER_ACCESS_FLAGS :: bit_set[BARRIER_ACCESS_FLAG; u32]
|
|
|
|
BARRIER_TYPE :: enum i32 {
|
|
GLOBAL,
|
|
TEXTURE,
|
|
BUFFER,
|
|
}
|
|
|
|
TEXTURE_BARRIER_FLAGS :: enum i32 {
|
|
NONE = 0x0,
|
|
DISCARD = 0x1,
|
|
}
|
|
|
|
BARRIER_SUBRESOURCE_RANGE :: struct {
|
|
IndexOrFirstMipLevel: u32,
|
|
NumMipLevels: u32,
|
|
FirstArraySlice: u32,
|
|
NumArraySlices: u32,
|
|
FirstPlane: u32,
|
|
NumPlanes: u32,
|
|
}
|
|
|
|
GLOBAL_BARRIER :: struct {
|
|
SyncBefore: BARRIER_SYNC_FLAGS,
|
|
SyncAfter: BARRIER_SYNC_FLAGS,
|
|
AccessBefore: BARRIER_ACCESS_FLAGS,
|
|
AccessAfter: BARRIER_ACCESS_FLAGS,
|
|
}
|
|
|
|
TEXTURE_BARRIER :: struct {
|
|
SyncBefore: BARRIER_SYNC_FLAGS,
|
|
SyncAfter: BARRIER_SYNC_FLAGS,
|
|
AccessBefore: BARRIER_ACCESS_FLAGS,
|
|
AccessAfter: BARRIER_ACCESS_FLAGS,
|
|
LayoutBefore: BARRIER_LAYOUT,
|
|
LayoutAfter: BARRIER_LAYOUT,
|
|
pResource: ^IResource,
|
|
Subresources: BARRIER_SUBRESOURCE_RANGE,
|
|
Flags: TEXTURE_BARRIER_FLAGS,
|
|
}
|
|
|
|
BUFFER_BARRIER :: struct {
|
|
SyncBefore: BARRIER_SYNC_FLAGS,
|
|
SyncAfter: BARRIER_SYNC_FLAGS,
|
|
AccessBefore: BARRIER_ACCESS_FLAGS,
|
|
AccessAfter: BARRIER_ACCESS_FLAGS,
|
|
pRessource: ^IResource,
|
|
Offset: u64,
|
|
Size: u64,
|
|
}
|
|
|
|
BARRIER_GROUP :: struct {
|
|
Type: BARRIER_TYPE,
|
|
NumBarriers: u32,
|
|
using _: struct #raw_union {
|
|
pGlobalBarriers: [^]GLOBAL_BARRIER `raw_union_tag:"Type=GLOBAL"`,
|
|
pTextureBarriers: [^]TEXTURE_BARRIER `raw_union_tag:"Type=TEXTURE"`,
|
|
pBufferBarriers: [^]BUFFER_BARRIER `raw_union_tag:"Type=BARRIER"`,
|
|
},
|
|
}
|
|
|
|
|
|
IGraphicsCommandList7_UUID_STRING :: "dd171223-8b61-4769-90e3-160ccde4e2c1"
|
|
IGraphicsCommandList7_UUID := &IID{0xdd171223, 0x8b61, 0x4769, {0x90, 0xe3, 0x16, 0x0c, 0xcd, 0xe4, 0xe2, 0xc1}}
|
|
IGraphicsCommandList7 :: struct #raw_union {
|
|
#subtype id3d12graphicscommandlist6: IGraphicsCommandList6,
|
|
using id3d12graphicscommandlist7_vtable: ^IGraphicsCommandList7_VTable,
|
|
}
|
|
IGraphicsCommandList7_VTable :: struct {
|
|
using id3d12graphicscommandlist6_vtable: IGraphicsCommandList6_VTable,
|
|
Barrier: proc "system" (this: ^IGraphicsCommandList7, NumBarrierGroups: u32, pBarrierGroups: [^]BARRIER_GROUP),
|
|
}
|
|
|
|
|
|
SHADER_VERSION_TYPE :: enum u32 {
|
|
PIXEL_SHADER = 0,
|
|
VERTEX_SHADER = 1,
|
|
GEOMETRY_SHADER = 2,
|
|
|
|
HULL_SHADER = 3,
|
|
DOMAIN_SHADER = 4,
|
|
COMPUTE_SHADER = 5,
|
|
|
|
LIBRARY = 6,
|
|
|
|
RAY_GENERATION_SHADER = 7,
|
|
INTERSECTION_SHADER = 8,
|
|
ANY_HIT_SHADER = 9,
|
|
CLOSEST_HIT_SHADER = 10,
|
|
MISS_SHADER = 11,
|
|
CALLABLE_SHADER = 12,
|
|
|
|
MESH_SHADER = 13,
|
|
AMPLIFICATION_SHADER = 14,
|
|
|
|
RESERVED0 = 0xFFF0,
|
|
}
|
|
|
|
shver_get_type :: proc "contextless" (version: u32) -> SHADER_VERSION_TYPE {
|
|
return SHADER_VERSION_TYPE((version >> 16) & 0xffff)
|
|
}
|
|
|
|
shver_get_major :: proc "contextless" (version: u32) -> u8 {
|
|
return u8((version >> 4) & 0xf)
|
|
}
|
|
|
|
shver_get_minor :: proc "contextless" (version: u32) -> u8 {
|
|
return u8((version >> 0) & 0xf)
|
|
}
|
|
|
|
SIGNATURE_PARAMETER_DESC :: struct {
|
|
SemanticName: LPCSTR,
|
|
SemanticIndex: u32,
|
|
Register: u32,
|
|
SystemValueType: NAME,
|
|
ComponentType: REGISTER_COMPONENT_TYPE,
|
|
Mask: u8,
|
|
|
|
ReadWriteMask: u8,
|
|
|
|
Stream: u32,
|
|
MinPrecision: MIN_PRECISION,
|
|
}
|
|
|
|
SHADER_BUFFER_DESC :: struct {
|
|
Name: LPCSTR,
|
|
Type: CBUFFER_TYPE,
|
|
Variables: u32,
|
|
Size: u32,
|
|
uFlags: u32,
|
|
}
|
|
|
|
SHADER_VARIABLE_DESC :: struct {
|
|
Name: LPCSTR,
|
|
StartOffset: u32,
|
|
Size: u32,
|
|
uFlags: u32,
|
|
DefaultValue: rawptr,
|
|
StartTexture: u32,
|
|
TextureSize: u32,
|
|
StartSampler: u32,
|
|
SamplerSize: u32,
|
|
}
|
|
|
|
SHADER_TYPE_DESC :: struct {
|
|
Class: SHADER_VARIABLE_CLASS,
|
|
Type: SHADER_VARIABLE_TYPE,
|
|
Rows: u32,
|
|
Columns: u32,
|
|
Elements: u32,
|
|
Members: u32,
|
|
Offset: u32,
|
|
Name: LPCSTR,
|
|
}
|
|
|
|
SHADER_DESC :: struct {
|
|
Version: u32,
|
|
Creator: LPCSTR,
|
|
Flags: u32,
|
|
|
|
ConstantBuffers: u32,
|
|
BoundResources: u32,
|
|
InputParameters: u32,
|
|
OutputParameters: u32,
|
|
|
|
InstructionCount: u32,
|
|
TempRegisterCount: u32,
|
|
TempArrayCount: u32,
|
|
DefCount: u32,
|
|
DclCount: u32,
|
|
TextureNormalInstructions: u32,
|
|
TextureLoadInstructions: u32,
|
|
TextureCompInstructions: u32,
|
|
TextureBiasInstructions: u32,
|
|
TextureGradientInstructions: u32,
|
|
FloatInstructionCount: u32,
|
|
IntInstructionCount: u32,
|
|
UintInstructionCount: u32,
|
|
StaticFlowControlCount: u32,
|
|
DynamicFlowControlCount: u32,
|
|
MacroInstructionCount: u32,
|
|
ArrayInstructionCount: u32,
|
|
CutInstructionCount: u32,
|
|
EmitInstructionCount: u32,
|
|
GSOutputTopology: PRIMITIVE_TOPOLOGY,
|
|
GSMaxOutputVertexCount: u32,
|
|
InputPrimitive: PRIMITIVE,
|
|
PatchConstantParameters: u32,
|
|
cGSInstanceCount: u32,
|
|
cControlPoints: u32,
|
|
HSOutputPrimitive: TESSELLATOR_OUTPUT_PRIMITIVE,
|
|
HSPartitioning: TESSELLATOR_PARTITIONING,
|
|
TessellatorDomain: TESSELLATOR_DOMAIN,
|
|
|
|
cBarrierInstructions: u32,
|
|
cInterlockedInstructions: u32,
|
|
cTextureStoreInstructions: u32,
|
|
}
|
|
|
|
SHADER_INPUT_BIND_DESC :: struct {
|
|
Name: LPCSTR,
|
|
Type: SHADER_INPUT_TYPE,
|
|
BindPoint: u32,
|
|
BindCount: u32,
|
|
|
|
uFlags: u32,
|
|
ReturnType: RESOURCE_RETURN_TYPE,
|
|
Dimension: SRV_DIMENSION,
|
|
NumSamples: u32,
|
|
Space: u32,
|
|
uID: u32,
|
|
}
|
|
|
|
SHADER_REQUIRES_FLAGS :: distinct bit_set[SHADER_REQUIRES; u64]
|
|
SHADER_REQUIRES :: enum u64 {
|
|
DOUBLES = 0,
|
|
EARLY_DEPTH_STENCIL = 1,
|
|
UAVS_AT_EVERY_STAGE = 2,
|
|
_64_UAVS = 3,
|
|
MINIMUM_PRECISION = 4,
|
|
_11_1_DOUBLE_EXTENSIONS = 5,
|
|
_11_1_SHADER_EXTENSIONS = 6,
|
|
LEVEL_9_COMPARISON_FILTERING = 7,
|
|
TILED_RESOURCES = 8,
|
|
STENCIL_REF = 9,
|
|
INNER_COVERAGE = 10,
|
|
TYPED_UAV_LOAD_ADDITIONAL_FORMATS = 11,
|
|
ROVS = 12,
|
|
VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER = 13,
|
|
WAVE_OPS = 14,
|
|
INT64_OPS = 15,
|
|
VIEW_ID = 16,
|
|
BARYCENTRICS = 17,
|
|
NATIVE_16BIT_OPS = 18,
|
|
SHADING_RATE = 19,
|
|
RAYTRACING_TIER_1_1 = 20,
|
|
SAMPLER_FEEDBACK = 21,
|
|
ATOMIC_INT64_ON_TYPED_RESOURCE = 22,
|
|
ATOMIC_INT64_ON_GROUP_SHARED = 23,
|
|
DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS = 24,
|
|
RESOURCE_DESCRIPTOR_HEAP_INDEXING = 25,
|
|
SAMPLER_DESCRIPTOR_HEAP_INDEXING = 26,
|
|
WAVE_MMA = 27,
|
|
ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE = 28,
|
|
}
|
|
|
|
LIBRARY_DESC :: struct {
|
|
Creator: LPCSTR,
|
|
Flags: u32,
|
|
FunctionCount: u32,
|
|
}
|
|
|
|
FUNCTION_DESC :: struct {
|
|
Version: u32,
|
|
Creator: LPCSTR,
|
|
Flags: u32,
|
|
|
|
ConstantBuffers: u32,
|
|
BoundResources: u32,
|
|
|
|
InstructionCount: u32,
|
|
TempRegisterCount: u32,
|
|
TempArrayCount: u32,
|
|
DefCount: u32,
|
|
DclCount: u32,
|
|
TextureNormalInstructions: u32,
|
|
TextureLoadInstructions: u32,
|
|
TextureCompInstructions: u32,
|
|
TextureBiasInstructions: u32,
|
|
TextureGradientInstructions: u32,
|
|
FloatInstructionCount: u32,
|
|
IntInstructionCount: u32,
|
|
UintInstructionCount: u32,
|
|
StaticFlowControlCount: u32,
|
|
DynamicFlowControlCount: u32,
|
|
MacroInstructionCount: u32,
|
|
ArrayInstructionCount: u32,
|
|
MovInstructionCount: u32,
|
|
MovcInstructionCount: u32,
|
|
ConversionInstructionCount: u32,
|
|
BitwiseInstructionCount: u32,
|
|
MinFeatureLevel: FEATURE_LEVEL,
|
|
RequiredFeatureFlags: u64,
|
|
|
|
Name: LPCSTR,
|
|
FunctionParameterCount: i32,
|
|
HasReturn: BOOL,
|
|
Has10Level9VertexShader: BOOL,
|
|
Has10Level9PixelShader: BOOL,
|
|
}
|
|
|
|
PARAMETER_DESC :: struct {
|
|
Name: LPCSTR,
|
|
SemanticName: LPCSTR,
|
|
Type: SHADER_VARIABLE_TYPE,
|
|
Class: SHADER_VARIABLE_CLASS,
|
|
Rows: u32,
|
|
Columns: u32,
|
|
InterpolationMode: INTERPOLATION_MODE,
|
|
Flags: PARAMETER_FLAGS,
|
|
|
|
FirstInRegister: u32,
|
|
FirstInComponent: u32,
|
|
FirstOutRegister: u32,
|
|
FirstOutComponent: u32,
|
|
}
|
|
|
|
IShaderReflectionType_UUID_STRING :: "E913C351-783D-48CA-A1D1-4F306284AD56"
|
|
IShaderReflectionType_UUID := &IID{0xE913C351, 0x783D, 0x48CA, {0xA1, 0xD1, 0x4F, 0x30, 0x62, 0x84, 0xAD, 0x56}}
|
|
IShaderReflectionType :: struct {
|
|
using id3d12shaderreflectiontype_vtable: ^IShaderReflectionType_VTable,
|
|
}
|
|
IShaderReflectionType_VTable :: struct {
|
|
GetDesc: proc "system" (this: ^IShaderReflectionType, pDesc: ^SHADER_TYPE_DESC) -> HRESULT,
|
|
GetMemberTypeByIndex: proc "system" (this: ^IShaderReflectionType, Index: u32) -> ^IShaderReflectionType,
|
|
GetMemberTypeByName: proc "system" (this: ^IShaderReflectionType, Name: LPCSTR) -> ^IShaderReflectionType,
|
|
GetMemberTypeName: proc "system" (this: ^IShaderReflectionType, Index: u32) -> LPCSTR,
|
|
IsEqual: proc "system" (this: ^IShaderReflectionType, pType: ^IShaderReflectionType) -> HRESULT,
|
|
GetSubType: proc "system" (this: ^IShaderReflectionType) -> ^IShaderReflectionType,
|
|
GetBaseClass: proc "system" (this: ^IShaderReflectionType) -> ^IShaderReflectionType,
|
|
GetNumInterfaces: proc "system" (this: ^IShaderReflectionType) -> u32,
|
|
GetInterfaceByIndex: proc "system" (this: ^IShaderReflectionType, uIndex: u32) -> ^IShaderReflectionType,
|
|
IsOfType: proc "system" (this: ^IShaderReflectionType, pType: ^IShaderReflectionType) -> HRESULT,
|
|
ImplementsInterface: proc "system" (this: ^IShaderReflectionType, pBase: ^IShaderReflectionType) -> HRESULT,
|
|
}
|
|
|
|
IShaderReflectionVariable_UUID_STRING :: "8337A8A6-A216-444A-B2F4-314733A73AEA"
|
|
IShaderReflectionVariable_UUID := &IID{0x8337A8A6, 0xA216, 0x444A, {0xB2, 0xF4, 0x31, 0x47, 0x33, 0xA7, 0x3A, 0xEA}}
|
|
IShaderReflectionVariable :: struct {
|
|
using id3d12shaderreflectionvariable_vtable: ^IShaderReflectionVariable_VTable,
|
|
}
|
|
IShaderReflectionVariable_VTable :: struct {
|
|
GetDesc: proc "system" (this: ^IShaderReflectionVariable, pDesc: ^SHADER_VARIABLE_DESC) -> HRESULT,
|
|
GetType: proc "system" (this: ^IShaderReflectionVariable) -> ^IShaderReflectionType,
|
|
GetBuffer: proc "system" (this: ^IShaderReflectionVariable) -> ^IShaderReflectionConstantBuffer,
|
|
GetInterfaceSlot: proc "system" (this: ^IShaderReflectionVariable, uArrayIndex: u32) -> u32,
|
|
}
|
|
|
|
IShaderReflectionConstantBuffer_UUID_STRING :: "C59598B4-48B3-4869-B9B1-B1618B14A8B7"
|
|
IShaderReflectionConstantBuffer_UUID := &IID{0xC59598B4, 0x48B3, 0x4869, {0xB9, 0xB1, 0xB1, 0x61, 0x8B, 0x14, 0xA8, 0xB7}}
|
|
IShaderReflectionConstantBuffer :: struct {
|
|
using id3d12shaderreflectionconstantbuffer_vtable: ^IShaderReflectionConstantBuffer_VTable,
|
|
}
|
|
IShaderReflectionConstantBuffer_VTable :: struct {
|
|
GetDesc: proc "system" (this: ^IShaderReflectionConstantBuffer, pDesc: ^SHADER_BUFFER_DESC) -> HRESULT,
|
|
GetVariableByIndex: proc "system" (this: ^IShaderReflectionConstantBuffer, Index: u32) -> ^IShaderReflectionVariable,
|
|
GetVariableByName: proc "system" (this: ^IShaderReflectionConstantBuffer, Name: LPCSTR) -> ^IShaderReflectionVariable,
|
|
}
|
|
|
|
IShaderReflection_UUID_STRING :: "5A58797D-A72C-478D-8BA2-EFC6B0EFE88E"
|
|
IShaderReflection_UUID := &IID{0x5A58797D, 0xA72C, 0x478D, {0x8B, 0xA2, 0xEF, 0xC6, 0xB0, 0xEF, 0xE8, 0x8E}}
|
|
IShaderReflection :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12shaderreflection_vtable: ^IShaderReflection_VTable,
|
|
}
|
|
IShaderReflection_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetDesc: proc "system" (this: ^IShaderReflection, pDesc: ^SHADER_DESC) -> HRESULT,
|
|
GetConstantBufferByIndex: proc "system" (this: ^IShaderReflection, Index: u32) -> ^IShaderReflectionConstantBuffer,
|
|
GetConstantBufferByName: proc "system" (this: ^IShaderReflection, Name: LPCSTR) -> ^IShaderReflectionConstantBuffer,
|
|
GetResourceBindingDesc: proc "system" (this: ^IShaderReflection, ResourceIndex: u32, pDesc: ^SHADER_INPUT_BIND_DESC) -> HRESULT,
|
|
GetInputParameterDesc: proc "system" (this: ^IShaderReflection, ParameterIndex: u32, pDesc: ^SIGNATURE_PARAMETER_DESC) -> HRESULT,
|
|
GetOutputParameterDesc: proc "system" (this: ^IShaderReflection, ParameterIndex: u32, pDesc: ^SIGNATURE_PARAMETER_DESC) -> HRESULT,
|
|
GetPatchConstantParameterDesc: proc "system" (this: ^IShaderReflection, ParameterIndex: u32, pDesc: ^SIGNATURE_PARAMETER_DESC) -> HRESULT,
|
|
GetVariableByName: proc "system" (this: ^IShaderReflection, Name: LPCSTR) -> ^IShaderReflectionVariable,
|
|
GetResourceBindingDescByName: proc "system" (this: ^IShaderReflection, Name: LPCSTR, pDesc: ^SHADER_INPUT_BIND_DESC) -> HRESULT,
|
|
GetMovInstructionCount: proc "system" (this: ^IShaderReflection) -> u32,
|
|
GetMovcInstructionCount: proc "system" (this: ^IShaderReflection) -> u32,
|
|
GetConversionInstructionCount: proc "system" (this: ^IShaderReflection) -> u32,
|
|
GetBitwiseInstructionCount: proc "system" (this: ^IShaderReflection) -> u32,
|
|
GetGSInputPrimitive: proc "system" (this: ^IShaderReflection) -> PRIMITIVE,
|
|
IsSampleFrequencyShader: proc "system" (this: ^IShaderReflection) -> BOOL,
|
|
GetNumInterfaceSlots: proc "system" (this: ^IShaderReflection) -> u32,
|
|
GetMinFeatureLevel: proc "system" (this: ^IShaderReflection, pLevel: ^FEATURE_LEVEL) -> HRESULT,
|
|
GetThreadGroupSize: proc "system" (this: ^IShaderReflection, pSizeX: ^u32, pSizeY: ^u32, pSizeZ: ^u32) -> u32,
|
|
GetRequiresFlags: proc "system" (this: ^IShaderReflection) -> SHADER_REQUIRES_FLAGS,
|
|
}
|
|
|
|
ILibraryReflection_UUID_STRING :: "8E349D19-54DB-4A56-9DC9-119D87BDB804"
|
|
ILibraryReflection_UUID := &IID{0x8E349D19, 0x54DB, 0x4A56, {0x9D, 0xC9, 0x11, 0x9D, 0x87, 0xBD, 0xB8, 0x04}}
|
|
ILibraryReflection :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12libraryreflection_vtable: ^ILibraryReflection_VTable,
|
|
}
|
|
ILibraryReflection_VTable :: struct {
|
|
using iunknown_vtable: IUnknown_VTable,
|
|
GetDesc: proc "system" (this: ^ILibraryReflection, pDesc: ^LIBRARY_DESC) -> HRESULT,
|
|
GetFunctionByIndex: proc "system" (this: ^ILibraryReflection, FunctionIndex: i32) -> ^IFunctionReflection,
|
|
}
|
|
|
|
IFunctionReflection_UUID_STRING :: "1108795C-2772-4BA9-B2A8-D464DC7E2799"
|
|
IFunctionReflection_UUID := &IID{0x1108795C, 0x2772, 0x4BA9, {0xB2, 0xA8, 0xD4, 0x64, 0xDC, 0x7E, 0x27, 0x99}}
|
|
IFunctionReflection :: struct {
|
|
using id3d12functionreflection_vtable: ^IFunctionReflection_VTable,
|
|
}
|
|
IFunctionReflection_VTable :: struct {
|
|
GetDesc: proc "system" (this: ^IFunctionReflection, pDesc: ^FUNCTION_DESC) -> HRESULT,
|
|
GetConstantBufferByIndex: proc "system" (this: ^IFunctionReflection, BufferIndex: u32) -> ^IShaderReflectionConstantBuffer,
|
|
GetConstantBufferByName: proc "system" (this: ^IFunctionReflection, Name: LPCSTR) -> ^IShaderReflectionConstantBuffer,
|
|
GetResourceBindingDesc: proc "system" (this: ^IFunctionReflection, ResourceIndex: u32, pDesc: ^SHADER_INPUT_BIND_DESC) -> HRESULT,
|
|
GetVariableByName: proc "system" (this: ^IFunctionReflection, Name: LPCSTR) -> ^IShaderReflectionVariable,
|
|
GetResourceBindingDescByName: proc "system" (this: ^IFunctionReflection, Name: LPCSTR, pDesc: ^SHADER_INPUT_BIND_DESC) -> HRESULT,
|
|
GetFunctionParameter: proc "system" (this: ^IFunctionReflection, ParameterIndex: i32) -> ^IFunctionParameterReflection,
|
|
}
|
|
|
|
IFunctionParameterReflection_UUID_STRING :: "EC25F42D-7006-4F2B-B33E-02CC3375733F"
|
|
IFunctionParameterReflection_UUID := &IID{0xEC25F42D, 0x7006, 0x4F2B, {0xB3, 0x3E, 0x2, 0xCC, 0x33, 0x75, 0x73, 0x3F}}
|
|
IFunctionParameterReflection :: struct {
|
|
using id3d12functionparameterreflection_vtable: ^IFunctionParameterReflection_VTable,
|
|
}
|
|
IFunctionParameterReflection_VTable :: struct {
|
|
GetDesc: proc "system" (this: ^IFunctionParameterReflection, pDesc: ^PARAMETER_DESC) -> HRESULT,
|
|
}
|