|
@@ -4928,16 +4928,40 @@ IGraphicsCommandList6_VTable :: struct {
|
|
DispatchMesh: proc "stdcall" (this: ^IGraphicsCommandList6, ThreadGroupCountX: u32, ThreadGroupCountY: u32, ThreadGroupCountZ: u32),
|
|
DispatchMesh: proc "stdcall" (this: ^IGraphicsCommandList6, ThreadGroupCountX: u32, ThreadGroupCountY: u32, ThreadGroupCountZ: u32),
|
|
}
|
|
}
|
|
|
|
|
|
-SHADER_VERSION_TYPE :: enum i32 {
|
|
|
|
- PIXEL_SHADER = 0,
|
|
|
|
- VERTEX_SHADER = 1,
|
|
|
|
- GEOMETRY_SHADER = 2,
|
|
|
|
|
|
+SHADER_VERSION_TYPE :: enum u32 {
|
|
|
|
+ PIXEL_SHADER = 0,
|
|
|
|
+ VERTEX_SHADER = 1,
|
|
|
|
+ GEOMETRY_SHADER = 2,
|
|
|
|
|
|
- HULL_SHADER = 3,
|
|
|
|
- DOMAIN_SHADER = 4,
|
|
|
|
- COMPUTE_SHADER = 5,
|
|
|
|
|
|
+ HULL_SHADER = 3,
|
|
|
|
+ DOMAIN_SHADER = 4,
|
|
|
|
+ COMPUTE_SHADER = 5,
|
|
|
|
|
|
- RESERVED0 = 65520,
|
|
|
|
|
|
+ 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 {
|
|
SIGNATURE_PARAMETER_DESC :: struct {
|
|
@@ -4984,6 +5008,7 @@ SHADER_TYPE_DESC :: struct {
|
|
Offset: u32,
|
|
Offset: u32,
|
|
Name: cstring,
|
|
Name: cstring,
|
|
}
|
|
}
|
|
|
|
+
|
|
SHADER_DESC :: struct {
|
|
SHADER_DESC :: struct {
|
|
Version: u32,
|
|
Version: u32,
|
|
Creator: cstring,
|
|
Creator: cstring,
|
|
@@ -5042,6 +5067,39 @@ SHADER_INPUT_BIND_DESC :: struct {
|
|
uID: 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 {
|
|
LIBRARY_DESC :: struct {
|
|
Creator: cstring,
|
|
Creator: cstring,
|
|
Flags: u32,
|
|
Flags: u32,
|
|
@@ -5103,8 +5161,10 @@ PARAMETER_DESC :: struct {
|
|
FirstOutComponent: 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 {
|
|
IShaderReflectionType :: struct {
|
|
- using vtable: ^IShaderReflectionType_VTable,
|
|
|
|
|
|
+ using id3d12shaderreflectiontype_vtable: ^IShaderReflectionType_VTable,
|
|
}
|
|
}
|
|
IShaderReflectionType_VTable :: struct {
|
|
IShaderReflectionType_VTable :: struct {
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionType, pDesc: ^SHADER_TYPE_DESC) -> HRESULT,
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionType, pDesc: ^SHADER_TYPE_DESC) -> HRESULT,
|
|
@@ -5120,8 +5180,10 @@ IShaderReflectionType_VTable :: struct {
|
|
ImplementsInterface: proc "stdcall" (this: ^IShaderReflectionType, pBase: ^IShaderReflectionType) -> HRESULT,
|
|
ImplementsInterface: proc "stdcall" (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 {
|
|
IShaderReflectionVariable :: struct {
|
|
- using vtable: ^IShaderReflectionVariable_VTable,
|
|
|
|
|
|
+ using id3d12shaderreflectionvariable_vtable: ^IShaderReflectionVariable_VTable,
|
|
}
|
|
}
|
|
IShaderReflectionVariable_VTable :: struct {
|
|
IShaderReflectionVariable_VTable :: struct {
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionVariable, pDesc: ^SHADER_VARIABLE_DESC) -> HRESULT,
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionVariable, pDesc: ^SHADER_VARIABLE_DESC) -> HRESULT,
|
|
@@ -5130,8 +5192,10 @@ IShaderReflectionVariable_VTable :: struct {
|
|
GetInterfaceSlot: proc "stdcall" (this: ^IShaderReflectionVariable, uArrayIndex: u32) -> u32,
|
|
GetInterfaceSlot: proc "stdcall" (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 {
|
|
IShaderReflectionConstantBuffer :: struct {
|
|
- using vtable: ^IShaderReflectionConstantBuffer_VTable,
|
|
|
|
|
|
+ using id3d12shaderreflectionconstantbuffer_vtable: ^IShaderReflectionConstantBuffer_VTable,
|
|
}
|
|
}
|
|
IShaderReflectionConstantBuffer_VTable :: struct {
|
|
IShaderReflectionConstantBuffer_VTable :: struct {
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionConstantBuffer, pDesc: ^SHADER_BUFFER_DESC) -> HRESULT,
|
|
GetDesc: proc "stdcall" (this: ^IShaderReflectionConstantBuffer, pDesc: ^SHADER_BUFFER_DESC) -> HRESULT,
|
|
@@ -5139,6 +5203,8 @@ IShaderReflectionConstantBuffer_VTable :: struct {
|
|
GetVariableByName: proc "stdcall" (this: ^IShaderReflectionConstantBuffer, Name: cstring) -> ^IShaderReflectionVariable,
|
|
GetVariableByName: proc "stdcall" (this: ^IShaderReflectionConstantBuffer, Name: cstring) -> ^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 {
|
|
IShaderReflection :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12shaderreflection_vtable: ^IShaderReflection_VTable,
|
|
using id3d12shaderreflection_vtable: ^IShaderReflection_VTable,
|
|
@@ -5163,9 +5229,11 @@ IShaderReflection_VTable :: struct {
|
|
GetNumInterfaceSlots: proc "stdcall" (this: ^IShaderReflection) -> u32,
|
|
GetNumInterfaceSlots: proc "stdcall" (this: ^IShaderReflection) -> u32,
|
|
GetMinFeatureLevel: proc "stdcall" (this: ^IShaderReflection, pLevel: ^FEATURE_LEVEL) -> HRESULT,
|
|
GetMinFeatureLevel: proc "stdcall" (this: ^IShaderReflection, pLevel: ^FEATURE_LEVEL) -> HRESULT,
|
|
GetThreadGroupSize: proc "stdcall" (this: ^IShaderReflection, pSizeX: ^u32, pSizeY: ^u32, pSizeZ: ^u32) -> u32,
|
|
GetThreadGroupSize: proc "stdcall" (this: ^IShaderReflection, pSizeX: ^u32, pSizeY: ^u32, pSizeZ: ^u32) -> u32,
|
|
- GetRequiresFlags: proc "stdcall" (this: ^IShaderReflection) -> u64,
|
|
|
|
|
|
+ GetRequiresFlags: proc "stdcall" (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 {
|
|
ILibraryReflection :: struct #raw_union {
|
|
#subtype iunknown: IUnknown,
|
|
#subtype iunknown: IUnknown,
|
|
using id3d12libraryreflection_vtable: ^ILibraryReflection_VTable,
|
|
using id3d12libraryreflection_vtable: ^ILibraryReflection_VTable,
|
|
@@ -5176,8 +5244,10 @@ ILibraryReflection_VTable :: struct {
|
|
GetFunctionByIndex: proc "stdcall" (this: ^ILibraryReflection, FunctionIndex: i32) -> ^IFunctionReflection,
|
|
GetFunctionByIndex: proc "stdcall" (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 {
|
|
IFunctionReflection :: struct {
|
|
- vtable: ^IFunctionReflection_VTable,
|
|
|
|
|
|
+ using id3d12functionreflection_vtable: ^IFunctionReflection_VTable,
|
|
}
|
|
}
|
|
IFunctionReflection_VTable :: struct {
|
|
IFunctionReflection_VTable :: struct {
|
|
GetDesc: proc "stdcall" (this: ^IFunctionReflection, pDesc: ^FUNCTION_DESC) -> HRESULT,
|
|
GetDesc: proc "stdcall" (this: ^IFunctionReflection, pDesc: ^FUNCTION_DESC) -> HRESULT,
|
|
@@ -5189,8 +5259,10 @@ IFunctionReflection_VTable :: struct {
|
|
GetFunctionParameter: proc "stdcall" (this: ^IFunctionReflection, ParameterIndex: i32) -> ^IFunctionParameterReflection,
|
|
GetFunctionParameter: proc "stdcall" (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 {
|
|
IFunctionParameterReflection :: struct {
|
|
- vtable: ^IFunctionParameterReflection_VTable,
|
|
|
|
|
|
+ using id3d12functionparameterreflection_vtable: ^IFunctionParameterReflection_VTable,
|
|
}
|
|
}
|
|
IFunctionParameterReflection_VTable :: struct {
|
|
IFunctionParameterReflection_VTable :: struct {
|
|
GetDesc: proc "stdcall" (this: ^IFunctionParameterReflection, pDesc: ^PARAMETER_DESC) -> HRESULT,
|
|
GetDesc: proc "stdcall" (this: ^IFunctionParameterReflection, pDesc: ^PARAMETER_DESC) -> HRESULT,
|