Add d3d12shader missing types and UUID's

This commit is contained in:
Hyp-X
2023-02-24 09:39:54 +01:00
parent 7801582819
commit 0dc166e594

View File

@@ -4928,16 +4928,40 @@ IGraphicsCommandList6_VTable :: struct {
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 {
@@ -4984,6 +5008,7 @@ SHADER_TYPE_DESC :: struct {
Offset: u32,
Name: cstring,
}
SHADER_DESC :: struct {
Version: u32,
Creator: cstring,
@@ -5042,6 +5067,39 @@ SHADER_INPUT_BIND_DESC :: struct {
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: cstring,
Flags: u32,
@@ -5103,8 +5161,10 @@ PARAMETER_DESC :: struct {
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 vtable: ^IShaderReflectionType_VTable,
using id3d12shaderreflectiontype_vtable: ^IShaderReflectionType_VTable,
}
IShaderReflectionType_VTable :: struct {
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,
}
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 vtable: ^IShaderReflectionVariable_VTable,
using id3d12shaderreflectionvariable_vtable: ^IShaderReflectionVariable_VTable,
}
IShaderReflectionVariable_VTable :: struct {
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,
}
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 vtable: ^IShaderReflectionConstantBuffer_VTable,
using id3d12shaderreflectionconstantbuffer_vtable: ^IShaderReflectionConstantBuffer_VTable,
}
IShaderReflectionConstantBuffer_VTable :: struct {
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,
}
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,
@@ -5163,9 +5229,11 @@ IShaderReflection_VTable :: struct {
GetNumInterfaceSlots: proc "stdcall" (this: ^IShaderReflection) -> u32,
GetMinFeatureLevel: proc "stdcall" (this: ^IShaderReflection, pLevel: ^FEATURE_LEVEL) -> HRESULT,
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 {
#subtype iunknown: IUnknown,
using id3d12libraryreflection_vtable: ^ILibraryReflection_VTable,
@@ -5176,8 +5244,10 @@ ILibraryReflection_VTable :: struct {
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 {
vtable: ^IFunctionReflection_VTable,
using id3d12functionreflection_vtable: ^IFunctionReflection_VTable,
}
IFunctionReflection_VTable :: struct {
GetDesc: proc "stdcall" (this: ^IFunctionReflection, pDesc: ^FUNCTION_DESC) -> HRESULT,
@@ -5189,8 +5259,10 @@ IFunctionReflection_VTable :: struct {
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 {
vtable: ^IFunctionParameterReflection_VTable,
using id3d12functionparameterreflection_vtable: ^IFunctionParameterReflection_VTable,
}
IFunctionParameterReflection_VTable :: struct {
GetDesc: proc "stdcall" (this: ^IFunctionParameterReflection, pDesc: ^PARAMETER_DESC) -> HRESULT,