using System;

// namespace Graphics.Direct3D12
namespace Win32
{
	extension Win32
	{
		// --- Constants ---
		
		public const uint32 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES = 4096;
		public const uint32 D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING = 5768;
		public const uint32 D3D12_16BIT_INDEX_STRIP_CUT_VALUE = 65535;
		public const uint32 D3D12_32BIT_INDEX_STRIP_CUT_VALUE = 4294967295;
		public const uint32 D3D12_8BIT_INDEX_STRIP_CUT_VALUE = 255;
		public const uint32 D3D12_APPEND_ALIGNED_ELEMENT = 4294967295;
		public const uint32 D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9;
		public const uint32 D3D12_CLIP_OR_CULL_DISTANCE_COUNT = 8;
		public const uint32 D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64;
		public const uint32 D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
		public const uint32 D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128;
		public const uint32 D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128;
		public const uint32 D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16;
		public const uint32 D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT = 16;
		public const uint32 D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32;
		public const uint32 D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_COMMONSHADER_TEMP_REGISTER_COUNT = 4096;
		public const uint32 D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3;
		public const uint32 D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3;
		public const uint32 D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10;
		public const int32 D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10;
		public const int32 D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8;
		public const uint32 D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7;
		public const uint32 D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256;
		public const uint32 D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256;
		public const uint32 D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64;
		public const uint32 D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240;
		public const uint32 D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68;
		public const uint32 D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224;
		public const uint32 D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72;
		public const uint32 D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208;
		public const uint32 D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76;
		public const uint32 D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192;
		public const uint32 D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84;
		public const uint32 D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176;
		public const uint32 D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92;
		public const uint32 D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160;
		public const uint32 D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100;
		public const uint32 D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144;
		public const uint32 D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112;
		public const uint32 D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128;
		public const uint32 D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128;
		public const uint32 D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112;
		public const uint32 D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144;
		public const uint32 D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96;
		public const uint32 D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168;
		public const uint32 D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80;
		public const uint32 D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204;
		public const uint32 D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64;
		public const uint32 D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256;
		public const uint32 D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48;
		public const uint32 D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340;
		public const uint32 D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32;
		public const uint32 D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512;
		public const uint32 D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16;
		public const uint32 D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768;
		public const uint32 D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1;
		public const uint32 D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256;
		public const uint32 D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768;
		public const uint32 D3D12_CS_4_X_THREAD_GROUP_MAX_X = 768;
		public const uint32 D3D12_CS_4_X_THREAD_GROUP_MAX_Y = 768;
		public const uint32 D3D12_CS_4_X_UAV_REGISTER_COUNT = 1;
		public const uint32 D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535;
		public const uint32 D3D12_CS_TGSM_REGISTER_COUNT = 8192;
		public const uint32 D3D12_CS_TGSM_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS = 3;
		public const uint32 D3D12_CS_THREADGROUPID_REGISTER_COUNT = 1;
		public const uint32 D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1;
		public const uint32 D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3;
		public const uint32 D3D12_CS_THREADIDINGROUP_REGISTER_COUNT = 1;
		public const uint32 D3D12_CS_THREADID_REGISTER_COMPONENTS = 3;
		public const uint32 D3D12_CS_THREADID_REGISTER_COUNT = 1;
		public const uint32 D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024;
		public const uint32 D3D12_CS_THREAD_GROUP_MAX_X = 1024;
		public const uint32 D3D12_CS_THREAD_GROUP_MAX_Y = 1024;
		public const uint32 D3D12_CS_THREAD_GROUP_MAX_Z = 64;
		public const uint32 D3D12_CS_THREAD_GROUP_MIN_X = 1;
		public const uint32 D3D12_CS_THREAD_GROUP_MIN_Y = 1;
		public const uint32 D3D12_CS_THREAD_GROUP_MIN_Z = 1;
		public const uint32 D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384;
		public const float D3D12_DEFAULT_BLEND_FACTOR_ALPHA = 1f;
		public const float D3D12_DEFAULT_BLEND_FACTOR_BLUE = 1f;
		public const float D3D12_DEFAULT_BLEND_FACTOR_GREEN = 1f;
		public const float D3D12_DEFAULT_BLEND_FACTOR_RED = 1f;
		public const float D3D12_DEFAULT_BORDER_COLOR_COMPONENT = 0f;
		public const int32 D3D12_DEFAULT_DEPTH_BIAS = 0;
		public const float D3D12_DEFAULT_DEPTH_BIAS_CLAMP = 0f;
		public const uint32 D3D12_DEFAULT_MAX_ANISOTROPY = 16;
		public const float D3D12_DEFAULT_MIP_LOD_BIAS = 0f;
		public const uint32 D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304;
		public const uint32 D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
		public const uint32 D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
		public const uint32 D3D12_DEFAULT_SAMPLE_MASK = 4294967295;
		public const uint32 D3D12_DEFAULT_SCISSOR_ENDX = 0;
		public const uint32 D3D12_DEFAULT_SCISSOR_ENDY = 0;
		public const uint32 D3D12_DEFAULT_SCISSOR_STARTX = 0;
		public const uint32 D3D12_DEFAULT_SCISSOR_STARTY = 0;
		public const float D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0f;
		public const uint32 D3D12_DEFAULT_STENCIL_READ_MASK = 255;
		public const uint32 D3D12_DEFAULT_STENCIL_REFERENCE = 0;
		public const uint32 D3D12_DEFAULT_STENCIL_WRITE_MASK = 255;
		public const uint32 D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
		public const uint32 D3D12_DEFAULT_VIEWPORT_HEIGHT = 0;
		public const float D3D12_DEFAULT_VIEWPORT_MAX_DEPTH = 0f;
		public const float D3D12_DEFAULT_VIEWPORT_MIN_DEPTH = 0f;
		public const uint32 D3D12_DEFAULT_VIEWPORT_TOPLEFTX = 0;
		public const uint32 D3D12_DEFAULT_VIEWPORT_TOPLEFTY = 0;
		public const uint32 D3D12_DEFAULT_VIEWPORT_WIDTH = 0;
		public const uint32 D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 4294967295;
		public const uint32 D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END = 4294967287;
		public const uint32 D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START = 4294967280;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3;
		public const uint32 D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1;
		public const uint32 D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_DS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_DS_OUTPUT_REGISTER_COUNT = 32;
		public const double D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6;
		public const float D3D12_FLOAT32_MAX = 3.4028235e+38f;
		public const float D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
		public const float D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f;
		public const float D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1f;
		public const float D3D12_FLOAT_TO_SRGB_OFFSET = 0.055f;
		public const float D3D12_FLOAT_TO_SRGB_SCALE_1 = 12.92f;
		public const float D3D12_FLOAT_TO_SRGB_SCALE_2 = 1.055f;
		public const float D3D12_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f;
		public const float D3D12_FTOI_INSTRUCTION_MAX_INPUT = 2147483600.0f;
		public const float D3D12_FTOI_INSTRUCTION_MIN_INPUT = -2147483600.0f;
		public const float D3D12_FTOU_INSTRUCTION_MAX_INPUT = 4294967300.0f;
		public const float D3D12_FTOU_INSTRUCTION_MIN_INPUT = 0f;
		public const uint32 D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2;
		public const uint32 D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS = 1;
		public const uint32 D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1;
		public const uint32 D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_GS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_GS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_GS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_GS_INPUT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_GS_INPUT_REGISTER_VERTICES = 32;
		public const uint32 D3D12_GS_MAX_INSTANCE_COUNT = 32;
		public const uint32 D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024;
		public const uint32 D3D12_GS_OUTPUT_ELEMENTS = 32;
		public const uint32 D3D12_GS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_GS_OUTPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 4294967295;
		public const uint32 D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 4294967295;
		public const float D3D12_HS_MAXTESSFACTOR_LOWER_BOUND = 1f;
		public const float D3D12_HS_MAXTESSFACTOR_UPPER_BOUND = 64f;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS = 128;
		public const uint32 D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0;
		public const uint32 D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0;
		public const uint32 D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0;
		public const uint32 D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1;
		public const uint32 D3D12_IA_INSTANCE_ID_BIT_COUNT = 32;
		public const uint32 D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32;
		public const uint32 D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32;
		public const uint32 D3D12_IA_PRIMITIVE_ID_BIT_COUNT = 32;
		public const uint32 D3D12_IA_VERTEX_ID_BIT_COUNT = 32;
		public const uint32 D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
		public const uint32 D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
		public const uint32 D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
		public const uint32 D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 4294967295;
		public const uint32 D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 4294967295;
		public const uint32 D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 4294967295;
		public const uint32 D3D12_KEEP_UNORDERED_ACCESS_VIEWS = 4294967295;
		public const float D3D12_LINEAR_GAMMA = 1f;
		public const uint32 D3D12_MAJOR_VERSION = 12;
		public const float D3D12_MAX_BORDER_COLOR_COMPONENT = 1f;
		public const float D3D12_MAX_DEPTH = 1f;
		public const uint32 D3D12_MAX_LIVE_STATIC_SAMPLERS = 2032;
		public const uint32 D3D12_MAX_MAXANISOTROPY = 16;
		public const uint32 D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
		public const float D3D12_MAX_POSITION_VALUE = 3.4028236e+34f;
		public const uint32 D3D12_MAX_ROOT_COST = 64;
		public const uint32 D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 = 1000000;
		public const uint32 D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 = 1000000;
		public const uint32 D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE = 2048;
		public const uint32 D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17;
		public const uint32 D3D12_MAX_VIEW_INSTANCE_COUNT = 4;
		public const uint32 D3D12_MINOR_VERSION = 0;
		public const float D3D12_MIN_BORDER_COLOR_COMPONENT = 0f;
		public const float D3D12_MIN_DEPTH = 0f;
		public const uint32 D3D12_MIN_MAXANISOTROPY = 0;
		public const float D3D12_MIP_LOD_BIAS_MAX = 15.99f;
		public const float D3D12_MIP_LOD_BIAS_MIN = -16f;
		public const uint32 D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT = 8;
		public const uint32 D3D12_MIP_LOD_RANGE_BIT_COUNT = 8;
		public const float D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f;
		public const uint32 D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0;
		public const uint32 D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 4294967295;
		public const uint32 D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 4294967288;
		public const uint32 D3D12_PACKED_TILE = 4294967295;
		public const uint32 D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15;
		public const uint32 D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16;
		public const uint32 D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_PS_CS_UAV_REGISTER_COUNT = 8;
		public const uint32 D3D12_PS_CS_UAV_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D12_PS_CS_UAV_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_PS_FRONTFACING_DEFAULT_VALUE = 4294967295;
		public const uint32 D3D12_PS_FRONTFACING_FALSE_VALUE = 0;
		public const uint32 D3D12_PS_FRONTFACING_TRUE_VALUE = 4294967295;
		public const uint32 D3D12_PS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_PS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_PS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_PS_INPUT_REGISTER_READ_PORTS = 1;
		public const float D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0f;
		public const uint32 D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1;
		public const uint32 D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1;
		public const uint32 D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_PS_OUTPUT_MASK_REGISTER_COUNT = 1;
		public const uint32 D3D12_PS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_PS_OUTPUT_REGISTER_COUNT = 8;
		public const float D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f;
		public const uint32 D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16;
		public const uint32 D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT = 8;
		public const uint32 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT = 256;
		public const uint32 D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT = 16;
		public const uint32 D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES = 32;
		public const uint32 D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH = 31;
		public const uint32 D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 16777216;
		public const uint32 D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE = 16777216;
		public const uint32 D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 536870912;
		public const uint32 D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS = 1073741824;
		public const uint32 D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE = 4096;
		public const uint32 D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT = 32;
		public const uint32 D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT = 64;
		public const uint32 D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT = 16;
		public const uint32 D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096;
		public const uint32 D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
		public const uint32 D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
		public const uint32 D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096;
		public const uint32 D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32;
		public const uint32 D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32;
		public const uint32 D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384;
		public const uint32 D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
		public const uint32 D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
		public const uint32 D3D12_REQ_MAXANISOTROPY = 16;
		public const uint32 D3D12_REQ_MIP_LEVELS = 15;
		public const uint32 D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
		public const uint32 D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096;
		public const uint32 D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384;
		public const uint32 D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128;
		public const float D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = 0.25f;
		public const uint32 D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048;
		public const uint32 D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20;
		public const uint32 D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096;
		public const uint32 D3D12_REQ_SUBRESOURCES = 30720;
		public const uint32 D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
		public const uint32 D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384;
		public const uint32 D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048;
		public const uint32 D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384;
		public const uint32 D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
		public const uint32 D3D12_REQ_TEXTURECUBE_DIMENSION = 16384;
		public const uint32 D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
		public const uint32 D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 4294967295;
		public const uint32 D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT = 2;
		public const uint32 D3D12_SDK_VERSION = 5;
		public const uint32 D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES = 32;
		public const uint32 D3D12_SHADER_MAJOR_VERSION = 5;
		public const uint32 D3D12_SHADER_MAX_INSTANCES = 65535;
		public const uint32 D3D12_SHADER_MAX_INTERFACES = 253;
		public const uint32 D3D12_SHADER_MAX_INTERFACE_CALL_SITES = 4096;
		public const uint32 D3D12_SHADER_MAX_TYPES = 65535;
		public const uint32 D3D12_SHADER_MINOR_VERSION = 1;
		public const uint32 D3D12_SHIFT_INSTRUCTION_PAD_VALUE = 0;
		public const uint32 D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
		public const uint32 D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
		public const uint32 D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
		public const uint32 D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096;
		public const uint32 D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
		public const uint32 D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512;
		public const uint32 D3D12_SO_BUFFER_SLOT_COUNT = 4;
		public const uint32 D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 4294967295;
		public const uint32 D3D12_SO_NO_RASTERIZED_STREAM = 4294967295;
		public const uint32 D3D12_SO_OUTPUT_COMPONENT_COUNT = 128;
		public const uint32 D3D12_SO_STREAM_COUNT = 4;
		public const uint32 D3D12_SPEC_DATE_DAY = 14;
		public const uint32 D3D12_SPEC_DATE_MONTH = 11;
		public const uint32 D3D12_SPEC_DATE_YEAR = 2014;
		public const double D3D12_SPEC_VERSION = 1.16;
		public const float D3D12_SRGB_GAMMA = 2.2f;
		public const float D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f;
		public const float D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f;
		public const float D3D12_SRGB_TO_FLOAT_EXPONENT = 2.4f;
		public const float D3D12_SRGB_TO_FLOAT_OFFSET = 0.055f;
		public const float D3D12_SRGB_TO_FLOAT_THRESHOLD = 0.04045f;
		public const float D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f;
		public const uint32 D3D12_STANDARD_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64;
		public const uint32 D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
		public const uint32 D3D12_STANDARD_PIXEL_COMPONENT_COUNT = 128;
		public const uint32 D3D12_STANDARD_PIXEL_ELEMENT_COUNT = 32;
		public const uint32 D3D12_STANDARD_VECTOR_SIZE = 4;
		public const uint32 D3D12_STANDARD_VERTEX_ELEMENT_COUNT = 32;
		public const uint32 D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64;
		public const uint32 D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
		public const uint32 D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8;
		public const uint32 D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END = 4294967295;
		public const uint32 D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START = 4294967280;
		public const uint32 D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64;
		public const uint32 D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64;
		public const uint32 D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63;
		public const uint32 D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64;
		public const uint32 D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2;
		public const uint32 D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1;
		public const uint32 D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1;
		public const uint32 D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16;
		public const uint32 D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256;
		public const uint32 D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
		public const uint32 D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 65536;
		public const uint32 D3D12_TRACKED_WORKLOAD_MAX_INSTANCES = 32;
		public const uint32 D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096;
		public const uint32 D3D12_UAV_SLOT_COUNT = 64;
		public const uint32 D3D12_UNBOUND_MEMORY_ACCESS_RESULT = 0;
		public const uint32 D3D12_VIDEO_DECODE_MAX_ARGUMENTS = 10;
		public const uint32 D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS = 4;
		public const uint32 D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT = 256;
		public const uint32 D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT = 256;
		public const uint32 D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN = 4294967295;
		public const uint32 D3D12_VIDEO_PROCESS_MAX_FILTERS = 32;
		public const uint32 D3D12_VIDEO_PROCESS_STEREO_VIEWS = 2;
		public const uint32 D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
		public const uint32 D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
		public const uint32 D3D12_VIEWPORT_BOUNDS_MAX = 32767;
		public const int32 D3D12_VIEWPORT_BOUNDS_MIN = -32768;
		public const uint32 D3D12_VS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_VS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_VS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D12_VS_INPUT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D12_VS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D12_VS_OUTPUT_REGISTER_COUNT = 32;
		public const uint32 D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10;
		public const uint32 D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25;
		public const uint32 D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25;
		public const uint32 D3D12_SHADER_COMPONENT_MAPPING_MASK = 7;
		public const uint32 D3D12_SHADER_COMPONENT_MAPPING_SHIFT = 3;
		public const uint32 D3D12_FILTER_REDUCTION_TYPE_MASK = 3;
		public const uint32 D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7;
		public const uint32 D3D12_FILTER_TYPE_MASK = 3;
		public const uint32 D3D12_MIN_FILTER_SHIFT = 4;
		public const uint32 D3D12_MAG_FILTER_SHIFT = 2;
		public const uint32 D3D12_MIP_FILTER_SHIFT = 0;
		public const uint32 D3D12_ANISOTROPIC_FILTERING_BIT = 64;
		public const uint32 LUID_DEFINED = 1;
		public const Guid D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED = .(0x62b0084e, 0xc70e, 0x4daa, 0xa1, 0x09, 0x30, 0xff, 0x8d, 0x5a, 0x04, 0x82);
		public const Guid CLSID_D3D12Debug = .(0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
		public const Guid CLSID_D3D12Tools = .(0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
		public const Guid CLSID_D3D12DeviceRemovedExtendedData = .(0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
		public const Guid CLSID_D3D12SDKConfiguration = .(0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
		public const uint32 D3D12_SHADING_RATE_X_AXIS_SHIFT = 2;
		public const uint32 D3D12_SHADING_RATE_VALID_MASK = 3;
		public const Guid WKPDID_D3DAutoDebugObjectNameW = .(0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd);
		public const Guid DXGI_DEBUG_D3D12 = .(0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);
		public const uint32 D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT = 1024;
		public const uint32 D3D_SHADER_REQUIRES_STENCIL_REF = 512;
		public const uint32 D3D_SHADER_REQUIRES_INNER_COVERAGE = 1024;
		public const uint32 D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS = 2048;
		public const uint32 D3D_SHADER_REQUIRES_ROVS = 4096;
		public const uint32 D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER = 8192;
		public const uint32 D3D_SHADER_REQUIRES_WAVE_OPS = 16384;
		public const uint32 D3D_SHADER_REQUIRES_INT64_OPS = 32768;
		public const uint32 D3D_SHADER_REQUIRES_VIEW_ID = 65536;
		public const uint32 D3D_SHADER_REQUIRES_BARYCENTRICS = 131072;
		public const uint32 D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS = 262144;
		public const uint32 D3D_SHADER_REQUIRES_SHADING_RATE = 524288;
		public const uint32 D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1 = 1048576;
		public const uint32 D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK = 2097152;
		public const uint32 D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE = 4194304;
		public const uint32 D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED = 8388608;
		public const uint32 D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS = 16777216;
		public const uint32 D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING = 33554432;
		public const uint32 D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING = 67108864;
		public const uint32 D3D_SHADER_REQUIRES_WAVE_MMA = 134217728;
		public const uint32 D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE = 268435456;
		public const Guid D3D12ExperimentalShaderModels = .(0x76f5573e, 0xf13a, 0x40f5, 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f);
		public const Guid D3D12TiledResourceTier4 = .(0xc9c4725f, 0xa81a, 0x4f56, 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb);
		public const Guid D3D12MetaCommand = .(0xc734c97e, 0x8077, 0x48c8, 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77);
		
		// --- Enums ---
		
		public enum D3D12_COMMAND_LIST_TYPE : int32
		{
			DIRECT = 0,
			BUNDLE = 1,
			COMPUTE = 2,
			COPY = 3,
			VIDEO_DECODE = 4,
			VIDEO_PROCESS = 5,
			VIDEO_ENCODE = 6,
		}
		public enum D3D12_COMMAND_QUEUE_FLAGS : uint32
		{
			NONE = 0,
			DISABLE_GPU_TIMEOUT = 1,
		}
		public enum D3D12_COMMAND_QUEUE_PRIORITY : int32
		{
			NORMAL = 0,
			HIGH = 100,
			GLOBAL_REALTIME = 10000,
		}
		public enum D3D12_PRIMITIVE_TOPOLOGY_TYPE : int32
		{
			UNDEFINED = 0,
			POINT = 1,
			LINE = 2,
			TRIANGLE = 3,
			PATCH = 4,
		}
		public enum D3D12_INPUT_CLASSIFICATION : int32
		{
			VERTEX_DATA = 0,
			INSTANCE_DATA = 1,
		}
		public enum D3D12_FILL_MODE : int32
		{
			WIREFRAME = 2,
			SOLID = 3,
		}
		public enum D3D12_CULL_MODE : int32
		{
			NONE = 1,
			FRONT = 2,
			BACK = 3,
		}
		public enum D3D12_COMPARISON_FUNC : int32
		{
			NEVER = 1,
			LESS = 2,
			EQUAL = 3,
			LESS_EQUAL = 4,
			GREATER = 5,
			NOT_EQUAL = 6,
			GREATER_EQUAL = 7,
			ALWAYS = 8,
		}
		public enum D3D12_DEPTH_WRITE_MASK : int32
		{
			ZERO = 0,
			ALL = 1,
		}
		public enum D3D12_STENCIL_OP : int32
		{
			KEEP = 1,
			ZERO = 2,
			REPLACE = 3,
			INCR_SAT = 4,
			DECR_SAT = 5,
			INVERT = 6,
			INCR = 7,
			DECR = 8,
		}
		public enum D3D12_BLEND : int32
		{
			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,
		}
		public enum D3D12_BLEND_OP : int32
		{
			ADD = 1,
			SUBTRACT = 2,
			REV_SUBTRACT = 3,
			MIN = 4,
			MAX = 5,
		}
		public enum D3D12_COLOR_WRITE_ENABLE : int32
		{
			RED = 1,
			GREEN = 2,
			BLUE = 4,
			ALPHA = 8,
			ALL = 15,
		}
		public enum D3D12_LOGIC_OP : int32
		{
			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,
		}
		public enum D3D12_CONSERVATIVE_RASTERIZATION_MODE : int32
		{
			OFF = 0,
			ON = 1,
		}
		public enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE : int32
		{
			DISABLED = 0,
			_0xFFFF = 1,
			_0xFFFFFFFF = 2,
		}
		public enum D3D12_PIPELINE_STATE_FLAGS : uint32
		{
			NONE = 0,
			TOOL_DEBUG = 1,
		}
		public enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE : int32
		{
			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,
		}
		public enum D3D12_FEATURE : int32
		{
			D3D12_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,
			D3D12_OPTIONS1 = 8,
			PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
			ROOT_SIGNATURE = 12,
			ARCHITECTURE1 = 16,
			D3D12_OPTIONS2 = 18,
			SHADER_CACHE = 19,
			COMMAND_QUEUE_PRIORITY = 20,
			D3D12_OPTIONS3 = 21,
			EXISTING_HEAPS = 22,
			D3D12_OPTIONS4 = 23,
			SERIALIZATION = 24,
			CROSS_NODE = 25,
			D3D12_OPTIONS5 = 27,
			DISPLAYABLE = 28,
			D3D12_OPTIONS6 = 30,
			QUERY_META_COMMAND = 31,
			D3D12_OPTIONS7 = 32,
			PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
			PROTECTED_RESOURCE_SESSION_TYPES = 34,
			D3D12_OPTIONS8 = 36,
			D3D12_OPTIONS9 = 37,
			D3D12_OPTIONS10 = 39,
			D3D12_OPTIONS11 = 40,
		}
		public enum D3D12_SHADER_MIN_PRECISION_SUPPORT : uint32
		{
			NONE = 0,
			_10_BIT = 1,
			_16_BIT = 2,
		}
		public enum D3D12_TILED_RESOURCES_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 1,
			_2 = 2,
			_3 = 3,
			_4 = 4,
		}
		public enum D3D12_RESOURCE_BINDING_TIER : int32
		{
			_1 = 1,
			_2 = 2,
			_3 = 3,
		}
		public enum D3D12_CONSERVATIVE_RASTERIZATION_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 1,
			_2 = 2,
			_3 = 3,
		}
		public enum D3D12_FORMAT_SUPPORT1 : uint32
		{
			NONE = 0,
			BUFFER = 1,
			IA_VERTEX_BUFFER = 2,
			IA_INDEX_BUFFER = 4,
			SO_BUFFER = 8,
			TEXTURE1D = 16,
			TEXTURE2D = 32,
			TEXTURE3D = 64,
			TEXTURECUBE = 128,
			SHADER_LOAD = 256,
			SHADER_SAMPLE = 512,
			SHADER_SAMPLE_COMPARISON = 1024,
			SHADER_SAMPLE_MONO_TEXT = 2048,
			MIP = 4096,
			RENDER_TARGET = 16384,
			BLENDABLE = 32768,
			DEPTH_STENCIL = 65536,
			MULTISAMPLE_RESOLVE = 262144,
			DISPLAY = 524288,
			CAST_WITHIN_BIT_LAYOUT = 1048576,
			MULTISAMPLE_RENDERTARGET = 2097152,
			MULTISAMPLE_LOAD = 4194304,
			SHADER_GATHER = 8388608,
			BACK_BUFFER_CAST = 16777216,
			TYPED_UNORDERED_ACCESS_VIEW = 33554432,
			SHADER_GATHER_COMPARISON = 67108864,
			DECODER_OUTPUT = 134217728,
			VIDEO_PROCESSOR_OUTPUT = 268435456,
			VIDEO_PROCESSOR_INPUT = 536870912,
			VIDEO_ENCODER = 1073741824,
		}
		public enum D3D12_FORMAT_SUPPORT2 : uint32
		{
			NONE = 0,
			UAV_ATOMIC_ADD = 1,
			UAV_ATOMIC_BITWISE_OPS = 2,
			UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 4,
			UAV_ATOMIC_EXCHANGE = 8,
			UAV_ATOMIC_SIGNED_MIN_OR_MAX = 16,
			UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 32,
			UAV_TYPED_LOAD = 64,
			UAV_TYPED_STORE = 128,
			OUTPUT_MERGER_LOGIC_OP = 256,
			TILED = 512,
			MULTIPLANE_OVERLAY = 16384,
			SAMPLER_FEEDBACK = 32768,
		}
		public enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS : uint32
		{
			NONE = 0,
			TILED_RESOURCE = 1,
		}
		public enum D3D12_CROSS_NODE_SHARING_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1_EMULATED = 1,
			_1 = 2,
			_2 = 3,
			_3 = 4,
		}
		public enum D3D12_RESOURCE_HEAP_TIER : int32
		{
			_1 = 1,
			_2 = 2,
		}
		public enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 1,
			_2 = 2,
		}
		public enum D3D12_VIEW_INSTANCING_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 1,
			_2 = 2,
			_3 = 3,
		}
		[AllowDuplicates]
		public enum D3D_ROOT_SIGNATURE_VERSION : int32
		{
			_1 = 1,
			_1_0 = 1,
			_1_1 = 2,
		}
		public enum D3D_SHADER_MODEL : int32
		{
			_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,
		}
		public enum D3D12_SHADER_CACHE_SUPPORT_FLAGS : uint32
		{
			NONE = 0,
			SINGLE_PSO = 1,
			LIBRARY = 2,
			AUTOMATIC_INPROC_CACHE = 4,
			AUTOMATIC_DISK_CACHE = 8,
			DRIVER_MANAGED_CACHE = 16,
			SHADER_CONTROL_CLEAR = 32,
			SHADER_SESSION_DELETE = 64,
		}
		public enum D3D12_COMMAND_LIST_SUPPORT_FLAGS : uint32
		{
			NONE = 0,
			DIRECT = 1,
			BUNDLE = 2,
			COMPUTE = 4,
			COPY = 8,
			VIDEO_DECODE = 16,
			VIDEO_PROCESS = 32,
			VIDEO_ENCODE = 64,
		}
		public enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER : int32
		{
			_0 = 0,
			_1 = 1,
			_2 = 2,
		}
		public enum D3D12_HEAP_SERIALIZATION_TIER : int32
		{
			_0 = 0,
			_10 = 10,
		}
		public enum D3D12_RENDER_PASS_TIER : int32
		{
			_0 = 0,
			_1 = 1,
			_2 = 2,
		}
		public enum D3D12_RAYTRACING_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1_0 = 10,
			_1_1 = 11,
		}
		public enum D3D12_VARIABLE_SHADING_RATE_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 1,
			_2 = 2,
		}
		public enum D3D12_MESH_SHADER_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1 = 10,
		}
		public enum D3D12_SAMPLER_FEEDBACK_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_0_9 = 90,
			_1_0 = 100,
		}
		public enum D3D12_WAVE_MMA_TIER : int32
		{
			NOT_SUPPORTED = 0,
			_1_0 = 10,
		}
		public enum D3D12_HEAP_TYPE : int32
		{
			DEFAULT = 1,
			UPLOAD = 2,
			READBACK = 3,
			CUSTOM = 4,
		}
		public enum D3D12_CPU_PAGE_PROPERTY : int32
		{
			UNKNOWN = 0,
			NOT_AVAILABLE = 1,
			WRITE_COMBINE = 2,
			WRITE_BACK = 3,
		}
		public enum D3D12_MEMORY_POOL : int32
		{
			UNKNOWN = 0,
			L0 = 1,
			L1 = 2,
		}
		[AllowDuplicates]
		public enum D3D12_HEAP_FLAGS : uint32
		{
			NONE = 0,
			SHARED = 1,
			DENY_BUFFERS = 4,
			ALLOW_DISPLAY = 8,
			SHARED_CROSS_ADAPTER = 32,
			DENY_RT_DS_TEXTURES = 64,
			DENY_NON_RT_DS_TEXTURES = 128,
			HARDWARE_PROTECTED = 256,
			ALLOW_WRITE_WATCH = 512,
			ALLOW_SHADER_ATOMICS = 1024,
			CREATE_NOT_RESIDENT = 2048,
			CREATE_NOT_ZEROED = 4096,
			ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
			ALLOW_ONLY_BUFFERS = 192,
			ALLOW_ONLY_NON_RT_DS_TEXTURES = 68,
			ALLOW_ONLY_RT_DS_TEXTURES = 132,
		}
		public enum D3D12_RESOURCE_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE2D = 3,
			TEXTURE3D = 4,
		}
		public enum D3D12_TEXTURE_LAYOUT : int32
		{
			UNKNOWN = 0,
			ROW_MAJOR = 1,
			_64KB_UNDEFINED_SWIZZLE = 2,
			_64KB_STANDARD_SWIZZLE = 3,
		}
		public enum D3D12_RESOURCE_FLAGS : uint32
		{
			NONE = 0,
			ALLOW_RENDER_TARGET = 1,
			ALLOW_DEPTH_STENCIL = 2,
			ALLOW_UNORDERED_ACCESS = 4,
			DENY_SHADER_RESOURCE = 8,
			ALLOW_CROSS_ADAPTER = 16,
			ALLOW_SIMULTANEOUS_ACCESS = 32,
			VIDEO_DECODE_REFERENCE_ONLY = 64,
			VIDEO_ENCODE_REFERENCE_ONLY = 128,
		}
		public enum D3D12_TILE_RANGE_FLAGS : int32
		{
			NONE = 0,
			NULL = 1,
			SKIP = 2,
			REUSE_SINGLE_TILE = 4,
		}
		public enum D3D12_TILE_MAPPING_FLAGS : uint32
		{
			NONE = 0,
			NO_HAZARD = 1,
		}
		public enum D3D12_TILE_COPY_FLAGS : uint32
		{
			NONE = 0,
			NO_HAZARD = 1,
			LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 2,
			SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 4,
		}
		[AllowDuplicates]
		public enum D3D12_RESOURCE_STATES : uint32
		{
			COMMON = 0,
			VERTEX_AND_CONSTANT_BUFFER = 1,
			INDEX_BUFFER = 2,
			RENDER_TARGET = 4,
			UNORDERED_ACCESS = 8,
			DEPTH_WRITE = 16,
			DEPTH_READ = 32,
			NON_PIXEL_SHADER_RESOURCE = 64,
			PIXEL_SHADER_RESOURCE = 128,
			STREAM_OUT = 256,
			INDIRECT_ARGUMENT = 512,
			COPY_DEST = 1024,
			COPY_SOURCE = 2048,
			RESOLVE_DEST = 4096,
			RESOLVE_SOURCE = 8192,
			RAYTRACING_ACCELERATION_STRUCTURE = 4194304,
			SHADING_RATE_SOURCE = 16777216,
			GENERIC_READ = 2755,
			ALL_SHADER_RESOURCE = 192,
			PRESENT = 0,
			PREDICATION = 512,
			VIDEO_DECODE_READ = 65536,
			VIDEO_DECODE_WRITE = 131072,
			VIDEO_PROCESS_READ = 262144,
			VIDEO_PROCESS_WRITE = 524288,
			VIDEO_ENCODE_READ = 2097152,
			VIDEO_ENCODE_WRITE = 8388608,
		}
		public enum D3D12_RESOURCE_BARRIER_TYPE : int32
		{
			TRANSITION = 0,
			ALIASING = 1,
			UAV = 2,
		}
		public enum D3D12_RESOURCE_BARRIER_FLAGS : uint32
		{
			NONE = 0,
			BEGIN_ONLY = 1,
			END_ONLY = 2,
		}
		public enum D3D12_TEXTURE_COPY_TYPE : int32
		{
			SUBRESOURCE_INDEX = 0,
			PLACED_FOOTPRINT = 1,
		}
		public enum D3D12_RESOLVE_MODE : int32
		{
			DECOMPRESS = 0,
			MIN = 1,
			MAX = 2,
			AVERAGE = 3,
			ENCODE_SAMPLER_FEEDBACK = 4,
			DECODE_SAMPLER_FEEDBACK = 5,
		}
		public enum D3D12_VIEW_INSTANCING_FLAGS : uint32
		{
			NONE = 0,
			ENABLE_VIEW_INSTANCE_MASKING = 1,
		}
		public enum D3D12_SHADER_COMPONENT_MAPPING : int32
		{
			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,
		}
		public enum D3D12_BUFFER_SRV_FLAGS : uint32
		{
			NONE = 0,
			RAW = 1,
		}
		public enum D3D12_SRV_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE1DARRAY = 3,
			TEXTURE2D = 4,
			TEXTURE2DARRAY = 5,
			TEXTURE2DMS = 6,
			TEXTURE2DMSARRAY = 7,
			TEXTURE3D = 8,
			TEXTURECUBE = 9,
			TEXTURECUBEARRAY = 10,
			RAYTRACING_ACCELERATION_STRUCTURE = 11,
		}
		public enum D3D12_FILTER : int32
		{
			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,
		}
		public enum D3D12_FILTER_TYPE : int32
		{
			POINT = 0,
			LINEAR = 1,
		}
		public enum D3D12_FILTER_REDUCTION_TYPE : int32
		{
			STANDARD = 0,
			COMPARISON = 1,
			MINIMUM = 2,
			MAXIMUM = 3,
		}
		public enum D3D12_TEXTURE_ADDRESS_MODE : int32
		{
			WRAP = 1,
			MIRROR = 2,
			CLAMP = 3,
			BORDER = 4,
			MIRROR_ONCE = 5,
		}
		public enum D3D12_BUFFER_UAV_FLAGS : uint32
		{
			NONE = 0,
			RAW = 1,
		}
		public enum D3D12_UAV_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE1DARRAY = 3,
			TEXTURE2D = 4,
			TEXTURE2DARRAY = 5,
			TEXTURE3D = 8,
		}
		public enum D3D12_RTV_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE1DARRAY = 3,
			TEXTURE2D = 4,
			TEXTURE2DARRAY = 5,
			TEXTURE2DMS = 6,
			TEXTURE2DMSARRAY = 7,
			TEXTURE3D = 8,
		}
		public enum D3D12_DSV_FLAGS : uint32
		{
			NONE = 0,
			READ_ONLY_DEPTH = 1,
			READ_ONLY_STENCIL = 2,
		}
		public enum D3D12_DSV_DIMENSION : int32
		{
			UNKNOWN = 0,
			TEXTURE1D = 1,
			TEXTURE1DARRAY = 2,
			TEXTURE2D = 3,
			TEXTURE2DARRAY = 4,
			TEXTURE2DMS = 5,
			TEXTURE2DMSARRAY = 6,
		}
		public enum D3D12_CLEAR_FLAGS : uint32
		{
			DEPTH = 1,
			STENCIL = 2,
		}
		public enum D3D12_FENCE_FLAGS : uint32
		{
			NONE = 0,
			SHARED = 1,
			SHARED_CROSS_ADAPTER = 2,
			NON_MONITORED = 4,
		}
		public enum D3D12_DESCRIPTOR_HEAP_TYPE : int32
		{
			CBV_SRV_UAV = 0,
			SAMPLER = 1,
			RTV = 2,
			DSV = 3,
			NUM_TYPES = 4,
		}
		public enum D3D12_DESCRIPTOR_HEAP_FLAGS : uint32
		{
			NONE = 0,
			SHADER_VISIBLE = 1,
		}
		public enum D3D12_DESCRIPTOR_RANGE_TYPE : int32
		{
			SRV = 0,
			UAV = 1,
			CBV = 2,
			SAMPLER = 3,
		}
		public enum D3D12_SHADER_VISIBILITY : int32
		{
			ALL = 0,
			VERTEX = 1,
			HULL = 2,
			DOMAIN = 3,
			GEOMETRY = 4,
			PIXEL = 5,
			AMPLIFICATION = 6,
			MESH = 7,
		}
		public enum D3D12_ROOT_PARAMETER_TYPE : int32
		{
			DESCRIPTOR_TABLE = 0,
			_32BIT_CONSTANTS = 1,
			CBV = 2,
			SRV = 3,
			UAV = 4,
		}
		public enum D3D12_ROOT_SIGNATURE_FLAGS : uint32
		{
			NONE = 0,
			ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 1,
			DENY_VERTEX_SHADER_ROOT_ACCESS = 2,
			DENY_HULL_SHADER_ROOT_ACCESS = 4,
			DENY_DOMAIN_SHADER_ROOT_ACCESS = 8,
			DENY_GEOMETRY_SHADER_ROOT_ACCESS = 16,
			DENY_PIXEL_SHADER_ROOT_ACCESS = 32,
			ALLOW_STREAM_OUTPUT = 64,
			LOCAL_ROOT_SIGNATURE = 128,
			DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 256,
			DENY_MESH_SHADER_ROOT_ACCESS = 512,
			CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 1024,
			SAMPLER_HEAP_DIRECTLY_INDEXED = 2048,
		}
		public enum D3D12_STATIC_BORDER_COLOR : int32
		{
			TRANSPARENT_BLACK = 0,
			OPAQUE_BLACK = 1,
			OPAQUE_WHITE = 2,
		}
		public enum D3D12_DESCRIPTOR_RANGE_FLAGS : uint32
		{
			NONE = 0,
			DESCRIPTORS_VOLATILE = 1,
			DATA_VOLATILE = 2,
			DATA_STATIC_WHILE_SET_AT_EXECUTE = 4,
			DATA_STATIC = 8,
			DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 65536,
		}
		public enum D3D12_ROOT_DESCRIPTOR_FLAGS : uint32
		{
			NONE = 0,
			DATA_VOLATILE = 2,
			DATA_STATIC_WHILE_SET_AT_EXECUTE = 4,
			DATA_STATIC = 8,
		}
		public enum D3D12_QUERY_HEAP_TYPE : int32
		{
			OCCLUSION = 0,
			TIMESTAMP = 1,
			PIPELINE_STATISTICS = 2,
			SO_STATISTICS = 3,
			VIDEO_DECODE_STATISTICS = 4,
			COPY_QUEUE_TIMESTAMP = 5,
			PIPELINE_STATISTICS1 = 7,
		}
		public enum D3D12_QUERY_TYPE : int32
		{
			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,
		}
		public enum D3D12_PREDICATION_OP : int32
		{
			EQUAL_ZERO = 0,
			NOT_EQUAL_ZERO = 1,
		}
		public enum D3D12_INDIRECT_ARGUMENT_TYPE : int32
		{
			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,
		}
		public enum D3D12_WRITEBUFFERIMMEDIATE_MODE : int32
		{
			DEFAULT = 0,
			MARKER_IN = 1,
			MARKER_OUT = 2,
		}
		[AllowDuplicates]
		public enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS : uint32
		{
			NONE = 0,
			ANY = 1,
			ALL = 0,
		}
		public enum D3D12_RESIDENCY_PRIORITY : int32
		{
			MINIMUM = 671088640,
			LOW = 1342177280,
			NORMAL = 2013265920,
			HIGH = -1610547200,
			MAXIMUM = -939524096,
		}
		public enum D3D12_RESIDENCY_FLAGS : uint32
		{
			NONE = 0,
			DENY_OVERBUDGET = 1,
		}
		public enum D3D12_COMMAND_LIST_FLAGS : uint32
		{
			FLAG_NONE = 0,
		}
		public enum D3D12_COMMAND_POOL_FLAGS : uint32
		{
			FLAG_NONE = 0,
		}
		public enum D3D12_COMMAND_RECORDER_FLAGS : uint32
		{
			FLAG_NONE = 0,
		}
		public enum D3D12_PROTECTED_SESSION_STATUS : int32
		{
			OK = 0,
			INVALID = 1,
		}
		public enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS : uint32
		{
			NONE = 0,
			SUPPORTED = 1,
		}
		public enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS : uint32
		{
			FLAG_NONE = 0,
		}
		public enum D3D12_LIFETIME_STATE : int32
		{
			IN_USE = 0,
			NOT_IN_USE = 1,
		}
		public enum D3D12_META_COMMAND_PARAMETER_TYPE : int32
		{
			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,
		}
		public enum D3D12_META_COMMAND_PARAMETER_FLAGS : uint32
		{
			INPUT = 1,
			OUTPUT = 2,
		}
		public enum D3D12_META_COMMAND_PARAMETER_STAGE : int32
		{
			CREATION = 0,
			INITIALIZATION = 1,
			EXECUTION = 2,
		}
		public enum D3D12_GRAPHICS_STATES : uint32
		{
			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,
		}
		public enum D3D12_STATE_SUBOBJECT_TYPE : int32
		{
			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,
		}
		public enum D3D12_STATE_OBJECT_FLAGS : uint32
		{
			NONE = 0,
			ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 1,
			ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 2,
			ALLOW_STATE_OBJECT_ADDITIONS = 4,
		}
		public enum D3D12_EXPORT_FLAGS : uint32
		{
			FLAG_NONE = 0,
		}
		public enum D3D12_HIT_GROUP_TYPE : int32
		{
			TRIANGLES = 0,
			PROCEDURAL_PRIMITIVE = 1,
		}
		public enum D3D12_RAYTRACING_PIPELINE_FLAGS : uint32
		{
			NONE = 0,
			SKIP_TRIANGLES = 256,
			SKIP_PROCEDURAL_PRIMITIVES = 512,
		}
		public enum D3D12_STATE_OBJECT_TYPE : int32
		{
			COLLECTION = 0,
			RAYTRACING_PIPELINE = 3,
		}
		public enum D3D12_RAYTRACING_GEOMETRY_FLAGS : uint32
		{
			NONE = 0,
			OPAQUE = 1,
			NO_DUPLICATE_ANYHIT_INVOCATION = 2,
		}
		public enum D3D12_RAYTRACING_GEOMETRY_TYPE : int32
		{
			TRIANGLES = 0,
			PROCEDURAL_PRIMITIVE_AABBS = 1,
		}
		public enum D3D12_RAYTRACING_INSTANCE_FLAGS : uint32
		{
			NONE = 0,
			TRIANGLE_CULL_DISABLE = 1,
			TRIANGLE_FRONT_COUNTERCLOCKWISE = 2,
			FORCE_OPAQUE = 4,
			FORCE_NON_OPAQUE = 8,
		}
		public enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS : uint32
		{
			NONE = 0,
			ALLOW_UPDATE = 1,
			ALLOW_COMPACTION = 2,
			PREFER_FAST_TRACE = 4,
			PREFER_FAST_BUILD = 8,
			MINIMIZE_MEMORY = 16,
			PERFORM_UPDATE = 32,
		}
		public enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE : int32
		{
			CLONE = 0,
			COMPACT = 1,
			VISUALIZATION_DECODE_FOR_TOOLS = 2,
			SERIALIZE = 3,
			DESERIALIZE = 4,
		}
		public enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE : int32
		{
			TOP_LEVEL = 0,
			BOTTOM_LEVEL = 1,
		}
		public enum D3D12_ELEMENTS_LAYOUT : int32
		{
			ARRAY = 0,
			ARRAY_OF_POINTERS = 1,
		}
		public enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE : int32
		{
			COMPACTED_SIZE = 0,
			TOOLS_VISUALIZATION = 1,
			SERIALIZATION = 2,
			CURRENT_SIZE = 3,
		}
		public enum D3D12_SERIALIZED_DATA_TYPE : int32
		{
			RAYTRACING_ACCELERATION_STRUCTURE = 0,
		}
		public enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS : int32
		{
			COMPATIBLE_WITH_DEVICE = 0,
			UNSUPPORTED_TYPE = 1,
			UNRECOGNIZED = 2,
			INCOMPATIBLE_VERSION = 3,
			INCOMPATIBLE_TYPE = 4,
		}
		public enum D3D12_RAY_FLAGS : uint32
		{
			NONE = 0,
			FORCE_OPAQUE = 1,
			FORCE_NON_OPAQUE = 2,
			ACCEPT_FIRST_HIT_AND_END_SEARCH = 4,
			SKIP_CLOSEST_HIT_SHADER = 8,
			CULL_BACK_FACING_TRIANGLES = 16,
			CULL_FRONT_FACING_TRIANGLES = 32,
			CULL_OPAQUE = 64,
			CULL_NON_OPAQUE = 128,
			SKIP_TRIANGLES = 256,
			SKIP_PROCEDURAL_PRIMITIVES = 512,
		}
		public enum D3D12_HIT_KIND : int32
		{
			FRONT_FACE = 254,
			BACK_FACE = 255,
		}
		public enum D3D12_AUTO_BREADCRUMB_OP : int32
		{
			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,
		}
		public enum D3D12_DRED_VERSION : int32
		{
			_0 = 1,
			_1 = 2,
			_2 = 3,
			_3 = 4,
		}
		public enum D3D12_DRED_FLAGS : uint32
		{
			NONE = 0,
			FORCE_ENABLE = 1,
			DISABLE_AUTOBREADCRUMBS = 2,
		}
		public enum D3D12_DRED_ENABLEMENT : int32
		{
			SYSTEM_CONTROLLED = 0,
			FORCED_OFF = 1,
			FORCED_ON = 2,
		}
		public enum D3D12_DRED_ALLOCATION_TYPE : int32
		{
			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,
		}
		public enum D3D12_DRED_PAGE_FAULT_FLAGS : uint32
		{
			FLAGS_NONE = 0,
		}
		public enum D3D12_DRED_DEVICE_STATE : int32
		{
			UNKNOWN = 0,
			HUNG = 3,
			FAULT = 6,
			PAGEFAULT = 7,
		}
		public enum D3D12_BACKGROUND_PROCESSING_MODE : int32
		{
			ALLOWED = 0,
			ALLOW_INTRUSIVE_MEASUREMENTS = 1,
			DISABLE_BACKGROUND_WORK = 2,
			DISABLE_PROFILING_BY_SYSTEM = 3,
		}
		public enum D3D12_MEASUREMENTS_ACTION : int32
		{
			KEEP_ALL = 0,
			COMMIT_RESULTS = 1,
			COMMIT_RESULTS_HIGH_PRIORITY = 2,
			DISCARD_PREVIOUS = 3,
		}
		public enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE : int32
		{
			DISCARD = 0,
			PRESERVE = 1,
			CLEAR = 2,
			NO_ACCESS = 3,
		}
		public enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE : int32
		{
			DISCARD = 0,
			PRESERVE = 1,
			RESOLVE = 2,
			NO_ACCESS = 3,
		}
		public enum D3D12_RENDER_PASS_FLAGS : uint32
		{
			NONE = 0,
			ALLOW_UAV_WRITES = 1,
			SUSPENDING_PASS = 2,
			RESUMING_PASS = 4,
		}
		public enum D3D12_SHADER_CACHE_MODE : int32
		{
			MEMORY = 0,
			DISK = 1,
		}
		public enum D3D12_SHADER_CACHE_FLAGS : uint32
		{
			NONE = 0,
			DRIVER_VERSIONED = 1,
			USE_WORKING_DIR = 2,
		}
		public enum D3D12_SHADER_CACHE_KIND_FLAGS : uint32
		{
			IMPLICIT_D3D_CACHE_FOR_DRIVER = 1,
			IMPLICIT_D3D_CONVERSIONS = 2,
			IMPLICIT_DRIVER_MANAGED = 4,
			APPLICATION_MANAGED = 8,
		}
		public enum D3D12_SHADER_CACHE_CONTROL_FLAGS : uint32
		{
			DISABLE = 1,
			ENABLE = 2,
			CLEAR = 4,
		}
		public enum D3D12_GPU_BASED_VALIDATION_FLAGS : int32
		{
			NONE = 0,
			DISABLE_STATE_TRACKING = 1,
		}
		public enum D3D12_RLDO_FLAGS : int32
		{
			NONE = 0,
			SUMMARY = 1,
			DETAIL = 2,
			IGNORE_INTERNAL = 4,
		}
		public enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE : int32
		{
			FEATURE_FLAGS = 0,
			GPU_BASED_VALIDATION_SETTINGS = 1,
			GPU_SLOWDOWN_PERFORMANCE_FACTOR = 2,
		}
		public enum D3D12_DEBUG_FEATURE : int32
		{
			NONE = 0,
			ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 1,
			CONSERVATIVE_RESOURCE_STATE_TRACKING = 2,
			DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 4,
			EMULATE_WINDOWS7 = 8,
		}
		public enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE : int32
		{
			D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0,
			D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = 1,
			D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = 2,
			D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = 3,
			NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = 4,
		}
		public enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS : int32
		{
			FLAG_NONE = 0,
			FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 1,
			FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 2,
			FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 4,
			FLAGS_VALID_MASK = 7,
		}
		public enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE : int32
		{
			GPU_BASED_VALIDATION_SETTINGS = 0,
		}
		public enum D3D12_MESSAGE_CATEGORY : int32
		{
			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,
		}
		public enum D3D12_MESSAGE_SEVERITY : int32
		{
			CORRUPTION = 0,
			ERROR = 1,
			WARNING = 2,
			INFO = 3,
			MESSAGE = 4,
		}
		[AllowDuplicates]
		public enum D3D12_MESSAGE_ID : int32
		{
			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,
			CREATE_SHADERCACHESESSION = 1280,
			LIVE_SHADERCACHESESSION = 1281,
			DESTROY_SHADERCACHESESSION = 1282,
			CREATESHADERCACHESESSION_INVALIDARGS = 1283,
			CREATESHADERCACHESESSION_DISABLED = 1284,
			CREATESHADERCACHESESSION_ALREADYOPEN = 1285,
			SHADERCACHECONTROL_DEVELOPERMODE = 1286,
			SHADERCACHECONTROL_INVALIDFLAGS = 1287,
			SHADERCACHECONTROL_STATEALREADYSET = 1288,
			SHADERCACHECONTROL_IGNOREDFLAG = 1289,
			SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290,
			SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291,
			SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292,
			SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293,
			SHADERCACHESESSION_CORRUPT = 1294,
			SHADERCACHESESSION_DISABLED = 1295,
			OVERSIZED_DISPATCH = 1296,
			CREATE_VIDEOENCODER = 1297,
			LIVE_VIDEOENCODER = 1298,
			DESTROY_VIDEOENCODER = 1299,
			CREATE_VIDEOENCODERHEAP = 1300,
			LIVE_VIDEOENCODERHEAP = 1301,
			DESTROY_VIDEOENCODERHEAP = 1302,
			COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303,
			COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304,
			ENCODE_FRAME_INVALID_PARAMETERS = 1305,
			ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306,
			RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307,
			RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308,
			CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309,
			CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310,
			CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311,
			CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312,
			CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313,
			CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314,
			DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315,
			CREATEBLENDSTATE_BLENDOP_WARNING = 1316,
			CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317,
			WRITE_COMBINE_PERFORMANCE_WARNING = 1318,
			RESOLVE_QUERY_INVALID_QUERY_STATE = 1319,
			SETPRIVATEDATA_NO_ACCESS = 1320,
			COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321,
			GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322,
			CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323,
			VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324,
			SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325,
			SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326,
			SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327,
			D3D12_MESSAGES_END = 1328,
		}
		public enum D3D12_MESSAGE_CALLBACK_FLAGS : int32
		{
			FLAG_NONE = 0,
			IGNORE_FILTERS = 1,
		}
		public enum D3D12_AXIS_SHADING_RATE : int32
		{
			_1X = 0,
			_2X = 1,
			_4X = 2,
		}
		public enum D3D12_SHADING_RATE : int32
		{
			_1X1 = 0,
			_1X2 = 1,
			_2X1 = 4,
			_2X2 = 5,
			_2X4 = 6,
			_4X2 = 9,
			_4X4 = 10,
		}
		public enum D3D12_SHADING_RATE_COMBINER : int32
		{
			PASSTHROUGH = 0,
			OVERRIDE = 1,
			MIN = 2,
			MAX = 3,
			SUM = 4,
		}
		public enum D3D12_SHADER_VERSION_TYPE : int32
		{
			PIXEL_SHADER = 0,
			VERTEX_SHADER = 1,
			GEOMETRY_SHADER = 2,
			HULL_SHADER = 3,
			DOMAIN_SHADER = 4,
			COMPUTE_SHADER = 5,
			RESERVED0 = 65520,
		}
		
		// --- Function Pointers ---
		
		public function HRESULT PFN_D3D12_SERIALIZE_ROOT_SIGNATURE(in D3D12_ROOT_SIGNATURE_DESC pRootSignature, D3D_ROOT_SIGNATURE_VERSION Version, out ID3DBlob* ppBlob, ID3DBlob** ppErrorBlob);
		public function HRESULT PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER(void* pSrcData, uint SrcDataSizeInBytes, in Guid pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer);
		public function HRESULT PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE(in D3D12_VERSIONED_ROOT_SIGNATURE_DESC pRootSignature, out ID3DBlob* ppBlob, ID3DBlob** ppErrorBlob);
		public function HRESULT PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER(void* pSrcData, uint SrcDataSizeInBytes, in Guid pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer);
		public function void D3D12MessageFunc(D3D12_MESSAGE_CATEGORY Category, D3D12_MESSAGE_SEVERITY Severity, D3D12_MESSAGE_ID ID, PSTR pDescription, void* pContext);
		public function HRESULT PFN_D3D12_CREATE_DEVICE(IUnknown* param0, D3D_FEATURE_LEVEL param1, in Guid param2, void** param3);
		public function HRESULT PFN_D3D12_GET_DEBUG_INTERFACE(in Guid param0, void** param1);
		public function HRESULT PFN_D3D12_GET_INTERFACE(in Guid param0, in Guid param1, void** param2);
		
		// --- Structs ---
		
		[CRepr]
		public struct D3D12_COMMAND_QUEUE_DESC
		{
			public D3D12_COMMAND_LIST_TYPE Type;
			public int32 Priority;
			public D3D12_COMMAND_QUEUE_FLAGS Flags;
			public uint32 NodeMask;
		}
		[CRepr]
		public struct D3D12_INPUT_ELEMENT_DESC
		{
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public DXGI_FORMAT Format;
			public uint32 InputSlot;
			public uint32 AlignedByteOffset;
			public D3D12_INPUT_CLASSIFICATION InputSlotClass;
			public uint32 InstanceDataStepRate;
		}
		[CRepr]
		public struct D3D12_SO_DECLARATION_ENTRY
		{
			public uint32 Stream;
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public uint8 StartComponent;
			public uint8 ComponentCount;
			public uint8 OutputSlot;
		}
		[CRepr]
		public struct D3D12_VIEWPORT
		{
			public float TopLeftX;
			public float TopLeftY;
			public float Width;
			public float Height;
			public float MinDepth;
			public float MaxDepth;
		}
		[CRepr]
		public struct D3D12_BOX
		{
			public uint32 left;
			public uint32 top;
			public uint32 front;
			public uint32 right;
			public uint32 bottom;
			public uint32 back;
		}
		[CRepr]
		public struct D3D12_DEPTH_STENCILOP_DESC
		{
			public D3D12_STENCIL_OP StencilFailOp;
			public D3D12_STENCIL_OP StencilDepthFailOp;
			public D3D12_STENCIL_OP StencilPassOp;
			public D3D12_COMPARISON_FUNC StencilFunc;
		}
		[CRepr]
		public struct D3D12_DEPTH_STENCIL_DESC
		{
			public BOOL DepthEnable;
			public D3D12_DEPTH_WRITE_MASK DepthWriteMask;
			public D3D12_COMPARISON_FUNC DepthFunc;
			public BOOL StencilEnable;
			public uint8 StencilReadMask;
			public uint8 StencilWriteMask;
			public D3D12_DEPTH_STENCILOP_DESC FrontFace;
			public D3D12_DEPTH_STENCILOP_DESC BackFace;
		}
		[CRepr]
		public struct D3D12_DEPTH_STENCIL_DESC1
		{
			public BOOL DepthEnable;
			public D3D12_DEPTH_WRITE_MASK DepthWriteMask;
			public D3D12_COMPARISON_FUNC DepthFunc;
			public BOOL StencilEnable;
			public uint8 StencilReadMask;
			public uint8 StencilWriteMask;
			public D3D12_DEPTH_STENCILOP_DESC FrontFace;
			public D3D12_DEPTH_STENCILOP_DESC BackFace;
			public BOOL DepthBoundsTestEnable;
		}
		[CRepr]
		public struct D3D12_RENDER_TARGET_BLEND_DESC
		{
			public BOOL BlendEnable;
			public BOOL LogicOpEnable;
			public D3D12_BLEND SrcBlend;
			public D3D12_BLEND DestBlend;
			public D3D12_BLEND_OP BlendOp;
			public D3D12_BLEND SrcBlendAlpha;
			public D3D12_BLEND DestBlendAlpha;
			public D3D12_BLEND_OP BlendOpAlpha;
			public D3D12_LOGIC_OP LogicOp;
			public uint8 RenderTargetWriteMask;
		}
		[CRepr]
		public struct D3D12_BLEND_DESC
		{
			public BOOL AlphaToCoverageEnable;
			public BOOL IndependentBlendEnable;
			public D3D12_RENDER_TARGET_BLEND_DESC[8] RenderTarget;
		}
		[CRepr]
		public struct D3D12_RASTERIZER_DESC
		{
			public D3D12_FILL_MODE FillMode;
			public D3D12_CULL_MODE CullMode;
			public BOOL FrontCounterClockwise;
			public int32 DepthBias;
			public float DepthBiasClamp;
			public float SlopeScaledDepthBias;
			public BOOL DepthClipEnable;
			public BOOL MultisampleEnable;
			public BOOL AntialiasedLineEnable;
			public uint32 ForcedSampleCount;
			public D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
		}
		[CRepr]
		public struct D3D12_SHADER_BYTECODE
		{
			public void* pShaderBytecode;
			public uint BytecodeLength;
		}
		[CRepr]
		public struct D3D12_STREAM_OUTPUT_DESC
		{
			public D3D12_SO_DECLARATION_ENTRY* pSODeclaration;
			public uint32 NumEntries;
			public uint32* pBufferStrides;
			public uint32 NumStrides;
			public uint32 RasterizedStream;
		}
		[CRepr]
		public struct D3D12_INPUT_LAYOUT_DESC
		{
			public D3D12_INPUT_ELEMENT_DESC* pInputElementDescs;
			public uint32 NumElements;
		}
		[CRepr]
		public struct D3D12_CACHED_PIPELINE_STATE
		{
			public void* pCachedBlob;
			public uint CachedBlobSizeInBytes;
		}
		[CRepr]
		public struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
		{
			public ID3D12RootSignature* pRootSignature;
			public D3D12_SHADER_BYTECODE VS;
			public D3D12_SHADER_BYTECODE PS;
			public D3D12_SHADER_BYTECODE DS;
			public D3D12_SHADER_BYTECODE HS;
			public D3D12_SHADER_BYTECODE GS;
			public D3D12_STREAM_OUTPUT_DESC StreamOutput;
			public D3D12_BLEND_DESC BlendState;
			public uint32 SampleMask;
			public D3D12_RASTERIZER_DESC RasterizerState;
			public D3D12_DEPTH_STENCIL_DESC DepthStencilState;
			public D3D12_INPUT_LAYOUT_DESC InputLayout;
			public D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
			public D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
			public uint32 NumRenderTargets;
			public DXGI_FORMAT[8] RTVFormats;
			public DXGI_FORMAT DSVFormat;
			public DXGI_SAMPLE_DESC SampleDesc;
			public uint32 NodeMask;
			public D3D12_CACHED_PIPELINE_STATE CachedPSO;
			public D3D12_PIPELINE_STATE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_COMPUTE_PIPELINE_STATE_DESC
		{
			public ID3D12RootSignature* pRootSignature;
			public D3D12_SHADER_BYTECODE CS;
			public uint32 NodeMask;
			public D3D12_CACHED_PIPELINE_STATE CachedPSO;
			public D3D12_PIPELINE_STATE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_RT_FORMAT_ARRAY
		{
			public DXGI_FORMAT[8] RTFormats;
			public uint32 NumRenderTargets;
		}
		[CRepr]
		public struct D3D12_PIPELINE_STATE_STREAM_DESC
		{
			public uint SizeInBytes;
			public void* pPipelineStateSubobjectStream;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS
		{
			public BOOL DoublePrecisionFloatShaderOps;
			public BOOL OutputMergerLogicOp;
			public D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
			public D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
			public D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
			public BOOL PSSpecifiedStencilRefSupported;
			public BOOL TypedUAVLoadAdditionalFormats;
			public BOOL ROVsSupported;
			public D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
			public uint32 MaxGPUVirtualAddressBitsPerResource;
			public BOOL StandardSwizzle64KBSupported;
			public D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
			public BOOL CrossAdapterRowMajorTextureSupported;
			public BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
			public D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
		{
			public BOOL WaveOps;
			public uint32 WaveLaneCountMin;
			public uint32 WaveLaneCountMax;
			public uint32 TotalLaneCount;
			public BOOL ExpandedComputeResourceStates;
			public BOOL Int64ShaderOps;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
		{
			public BOOL DepthBoundsTestSupported;
			public D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
		{
			public D3D_ROOT_SIGNATURE_VERSION HighestVersion;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_ARCHITECTURE
		{
			public uint32 NodeIndex;
			public BOOL TileBasedRenderer;
			public BOOL UMA;
			public BOOL CacheCoherentUMA;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_ARCHITECTURE1
		{
			public uint32 NodeIndex;
			public BOOL TileBasedRenderer;
			public BOOL UMA;
			public BOOL CacheCoherentUMA;
			public BOOL IsolatedMMU;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_FEATURE_LEVELS
		{
			public uint32 NumFeatureLevels;
			public D3D_FEATURE_LEVEL* pFeatureLevelsRequested;
			public D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_SHADER_MODEL
		{
			public D3D_SHADER_MODEL HighestShaderModel;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
		{
			public DXGI_FORMAT Format;
			public D3D12_FORMAT_SUPPORT1 Support1;
			public D3D12_FORMAT_SUPPORT2 Support2;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
		{
			public DXGI_FORMAT Format;
			public uint32 SampleCount;
			public D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
			public uint32 NumQualityLevels;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_FORMAT_INFO
		{
			public DXGI_FORMAT Format;
			public uint8 PlaneCount;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
		{
			public uint32 MaxGPUVirtualAddressBitsPerResource;
			public uint32 MaxGPUVirtualAddressBitsPerProcess;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_SHADER_CACHE
		{
			public D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
		{
			public D3D12_COMMAND_LIST_TYPE CommandListType;
			public uint32 Priority;
			public BOOL PriorityForTypeIsSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
		{
			public BOOL CopyQueueTimestampQueriesSupported;
			public BOOL CastingFullyTypedFormatSupported;
			public D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
			public D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
			public BOOL BarycentricsSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_EXISTING_HEAPS
		{
			public BOOL Supported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_DISPLAYABLE
		{
			public BOOL DisplayableTexture;
			public D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
		{
			public BOOL MSAA64KBAlignedTextureSupported;
			public D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
			public BOOL Native16BitShaderOpsSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_SERIALIZATION
		{
			public uint32 NodeIndex;
			public D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_CROSS_NODE
		{
			public D3D12_CROSS_NODE_SHARING_TIER SharingTier;
			public BOOL AtomicShaderInstructions;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
		{
			public BOOL SRVOnlyTiledResourceTier3;
			public D3D12_RENDER_PASS_TIER RenderPassesTier;
			public D3D12_RAYTRACING_TIER RaytracingTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
		{
			public BOOL AdditionalShadingRatesSupported;
			public BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
			public D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
			public uint32 ShadingRateImageTileSize;
			public BOOL BackgroundProcessingSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
		{
			public D3D12_MESH_SHADER_TIER MeshShaderTier;
			public D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
		{
			public Guid CommandId;
			public uint32 NodeMask;
			public void* pQueryInputData;
			public uint QueryInputDataSizeInBytes;
			public void* pQueryOutputData;
			public uint QueryOutputDataSizeInBytes;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
		{
			public BOOL UnalignedBlockTexturesSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
		{
			public BOOL MeshShaderPipelineStatsSupported;
			public BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
			public BOOL AtomicInt64OnTypedResourceSupported;
			public BOOL AtomicInt64OnGroupSharedSupported;
			public BOOL DerivativesInMeshAndAmplificationShadersSupported;
			public D3D12_WAVE_MMA_TIER WaveMMATier;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
		{
			public BOOL VariableRateShadingSumCombinerSupported;
			public BOOL MeshShaderPerPrimitiveShadingRateSupported;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
		{
			public BOOL AtomicInt64OnDescriptorHeapResourceSupported;
		}
		[CRepr]
		public struct D3D12_RESOURCE_ALLOCATION_INFO
		{
			public uint64 SizeInBytes;
			public uint64 Alignment;
		}
		[CRepr]
		public struct D3D12_RESOURCE_ALLOCATION_INFO1
		{
			public uint64 Offset;
			public uint64 Alignment;
			public uint64 SizeInBytes;
		}
		[CRepr]
		public struct D3D12_HEAP_PROPERTIES
		{
			public D3D12_HEAP_TYPE Type;
			public D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
			public D3D12_MEMORY_POOL MemoryPoolPreference;
			public uint32 CreationNodeMask;
			public uint32 VisibleNodeMask;
		}
		[CRepr]
		public struct D3D12_HEAP_DESC
		{
			public uint64 SizeInBytes;
			public D3D12_HEAP_PROPERTIES Properties;
			public uint64 Alignment;
			public D3D12_HEAP_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_MIP_REGION
		{
			public uint32 Width;
			public uint32 Height;
			public uint32 Depth;
		}
		[CRepr]
		public struct D3D12_RESOURCE_DESC
		{
			public D3D12_RESOURCE_DIMENSION Dimension;
			public uint64 Alignment;
			public uint64 Width;
			public uint32 Height;
			public uint16 DepthOrArraySize;
			public uint16 MipLevels;
			public DXGI_FORMAT Format;
			public DXGI_SAMPLE_DESC SampleDesc;
			public D3D12_TEXTURE_LAYOUT Layout;
			public D3D12_RESOURCE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_RESOURCE_DESC1
		{
			public D3D12_RESOURCE_DIMENSION Dimension;
			public uint64 Alignment;
			public uint64 Width;
			public uint32 Height;
			public uint16 DepthOrArraySize;
			public uint16 MipLevels;
			public DXGI_FORMAT Format;
			public DXGI_SAMPLE_DESC SampleDesc;
			public D3D12_TEXTURE_LAYOUT Layout;
			public D3D12_RESOURCE_FLAGS Flags;
			public D3D12_MIP_REGION SamplerFeedbackMipRegion;
		}
		[CRepr]
		public struct D3D12_DEPTH_STENCIL_VALUE
		{
			public float Depth;
			public uint8 Stencil;
		}
		[CRepr]
		public struct D3D12_CLEAR_VALUE
		{
			public DXGI_FORMAT Format;
			public _Anonymous_e__Union Anonymous;
			
			public float[4] Color { get => Anonymous.Color; set mut => Anonymous.Color = value; }
			public D3D12_DEPTH_STENCIL_VALUE DepthStencil { get => Anonymous.DepthStencil; set mut => Anonymous.DepthStencil = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public float[4] Color;
				public D3D12_DEPTH_STENCIL_VALUE DepthStencil;
			}
		}
		[CRepr]
		public struct D3D12_RANGE
		{
			public uint Begin;
			public uint End;
		}
		[CRepr]
		public struct D3D12_RANGE_UINT64
		{
			public uint64 Begin;
			public uint64 End;
		}
		[CRepr]
		public struct D3D12_SUBRESOURCE_RANGE_UINT64
		{
			public uint32 Subresource;
			public D3D12_RANGE_UINT64 Range;
		}
		[CRepr]
		public struct D3D12_SUBRESOURCE_INFO
		{
			public uint64 Offset;
			public uint32 RowPitch;
			public uint32 DepthPitch;
		}
		[CRepr]
		public struct D3D12_TILED_RESOURCE_COORDINATE
		{
			public uint32 X;
			public uint32 Y;
			public uint32 Z;
			public uint32 Subresource;
		}
		[CRepr]
		public struct D3D12_TILE_REGION_SIZE
		{
			public uint32 NumTiles;
			public BOOL UseBox;
			public uint32 Width;
			public uint16 Height;
			public uint16 Depth;
		}
		[CRepr]
		public struct D3D12_SUBRESOURCE_TILING
		{
			public uint32 WidthInTiles;
			public uint16 HeightInTiles;
			public uint16 DepthInTiles;
			public uint32 StartTileIndexInOverallResource;
		}
		[CRepr]
		public struct D3D12_TILE_SHAPE
		{
			public uint32 WidthInTexels;
			public uint32 HeightInTexels;
			public uint32 DepthInTexels;
		}
		[CRepr]
		public struct D3D12_PACKED_MIP_INFO
		{
			public uint8 NumStandardMips;
			public uint8 NumPackedMips;
			public uint32 NumTilesForPackedMips;
			public uint32 StartTileIndexInOverallResource;
		}
		[CRepr]
		public struct D3D12_RESOURCE_TRANSITION_BARRIER
		{
			public ID3D12Resource* pResource;
			public uint32 Subresource;
			public D3D12_RESOURCE_STATES StateBefore;
			public D3D12_RESOURCE_STATES StateAfter;
		}
		[CRepr]
		public struct D3D12_RESOURCE_ALIASING_BARRIER
		{
			public ID3D12Resource* pResourceBefore;
			public ID3D12Resource* pResourceAfter;
		}
		[CRepr]
		public struct D3D12_RESOURCE_UAV_BARRIER
		{
			public ID3D12Resource* pResource;
		}
		[CRepr]
		public struct D3D12_RESOURCE_BARRIER
		{
			public D3D12_RESOURCE_BARRIER_TYPE Type;
			public D3D12_RESOURCE_BARRIER_FLAGS Flags;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_RESOURCE_TRANSITION_BARRIER Transition { get => Anonymous.Transition; set mut => Anonymous.Transition = value; }
			public D3D12_RESOURCE_ALIASING_BARRIER Aliasing { get => Anonymous.Aliasing; set mut => Anonymous.Aliasing = value; }
			public D3D12_RESOURCE_UAV_BARRIER UAV { get => Anonymous.UAV; set mut => Anonymous.UAV = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_RESOURCE_TRANSITION_BARRIER Transition;
				public D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
				public D3D12_RESOURCE_UAV_BARRIER UAV;
			}
		}
		[CRepr]
		public struct D3D12_SUBRESOURCE_FOOTPRINT
		{
			public DXGI_FORMAT Format;
			public uint32 Width;
			public uint32 Height;
			public uint32 Depth;
			public uint32 RowPitch;
		}
		[CRepr]
		public struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
		{
			public uint64 Offset;
			public D3D12_SUBRESOURCE_FOOTPRINT Footprint;
		}
		[CRepr]
		public struct D3D12_TEXTURE_COPY_LOCATION
		{
			public ID3D12Resource* pResource;
			public D3D12_TEXTURE_COPY_TYPE Type;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint { get => Anonymous.PlacedFootprint; set mut => Anonymous.PlacedFootprint = value; }
			public uint32 SubresourceIndex { get => Anonymous.SubresourceIndex; set mut => Anonymous.SubresourceIndex = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
				public uint32 SubresourceIndex;
			}
		}
		[CRepr]
		public struct D3D12_SAMPLE_POSITION
		{
			public int8 X;
			public int8 Y;
		}
		[CRepr]
		public struct D3D12_VIEW_INSTANCE_LOCATION
		{
			public uint32 ViewportArrayIndex;
			public uint32 RenderTargetArrayIndex;
		}
		[CRepr]
		public struct D3D12_VIEW_INSTANCING_DESC
		{
			public uint32 ViewInstanceCount;
			public D3D12_VIEW_INSTANCE_LOCATION* pViewInstanceLocations;
			public D3D12_VIEW_INSTANCING_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_BUFFER_SRV
		{
			public uint64 FirstElement;
			public uint32 NumElements;
			public uint32 StructureByteStride;
			public D3D12_BUFFER_SRV_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_TEX1D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEX1D_ARRAY_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEX2D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 PlaneSlice;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEX2D_ARRAY_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
			public uint32 PlaneSlice;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEX3D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEXCUBE_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEXCUBE_ARRAY_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 First2DArrayFace;
			public uint32 NumCubes;
			public float ResourceMinLODClamp;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_SRV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_ARRAY_SRV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
		{
			public uint64 Location;
		}
		[CRepr]
		public struct D3D12_SHADER_RESOURCE_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D12_SRV_DIMENSION ViewDimension;
			public uint32 Shader4ComponentMapping;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_BUFFER_SRV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D12_TEX1D_SRV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D12_TEX1D_ARRAY_SRV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D12_TEX2D_SRV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D12_TEX2D_ARRAY_SRV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D12_TEX2DMS_SRV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			public D3D12_TEX3D_SRV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			public D3D12_TEXCUBE_SRV TextureCube { get => Anonymous.TextureCube; set mut => Anonymous.TextureCube = value; }
			public D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray { get => Anonymous.TextureCubeArray; set mut => Anonymous.TextureCubeArray = value; }
			public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure { get => Anonymous.RaytracingAccelerationStructure; set mut => Anonymous.RaytracingAccelerationStructure = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_BUFFER_SRV Buffer;
				public D3D12_TEX1D_SRV Texture1D;
				public D3D12_TEX1D_ARRAY_SRV Texture1DArray;
				public D3D12_TEX2D_SRV Texture2D;
				public D3D12_TEX2D_ARRAY_SRV Texture2DArray;
				public D3D12_TEX2DMS_SRV Texture2DMS;
				public D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
				public D3D12_TEX3D_SRV Texture3D;
				public D3D12_TEXCUBE_SRV TextureCube;
				public D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
				public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
			}
		}
		[CRepr]
		public struct D3D12_CONSTANT_BUFFER_VIEW_DESC
		{
			public uint64 BufferLocation;
			public uint32 SizeInBytes;
		}
		[CRepr]
		public struct D3D12_SAMPLER_DESC
		{
			public D3D12_FILTER Filter;
			public D3D12_TEXTURE_ADDRESS_MODE AddressU;
			public D3D12_TEXTURE_ADDRESS_MODE AddressV;
			public D3D12_TEXTURE_ADDRESS_MODE AddressW;
			public float MipLODBias;
			public uint32 MaxAnisotropy;
			public D3D12_COMPARISON_FUNC ComparisonFunc;
			public float[4] BorderColor;
			public float MinLOD;
			public float MaxLOD;
		}
		[CRepr]
		public struct D3D12_BUFFER_UAV
		{
			public uint64 FirstElement;
			public uint32 NumElements;
			public uint32 StructureByteStride;
			public uint64 CounterOffsetInBytes;
			public D3D12_BUFFER_UAV_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_TEX1D_UAV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D12_TEX1D_ARRAY_UAV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_TEX2D_UAV
		{
			public uint32 MipSlice;
			public uint32 PlaneSlice;
		}
		[CRepr]
		public struct D3D12_TEX2D_ARRAY_UAV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
			public uint32 PlaneSlice;
		}
		[CRepr]
		public struct D3D12_TEX3D_UAV
		{
			public uint32 MipSlice;
			public uint32 FirstWSlice;
			public uint32 WSize;
		}
		[CRepr]
		public struct D3D12_UNORDERED_ACCESS_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D12_UAV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_BUFFER_UAV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D12_TEX1D_UAV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D12_TEX1D_ARRAY_UAV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D12_TEX2D_UAV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D12_TEX2D_ARRAY_UAV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D12_TEX3D_UAV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_BUFFER_UAV Buffer;
				public D3D12_TEX1D_UAV Texture1D;
				public D3D12_TEX1D_ARRAY_UAV Texture1DArray;
				public D3D12_TEX2D_UAV Texture2D;
				public D3D12_TEX2D_ARRAY_UAV Texture2DArray;
				public D3D12_TEX3D_UAV Texture3D;
			}
		}
		[CRepr]
		public struct D3D12_BUFFER_RTV
		{
			public uint64 FirstElement;
			public uint32 NumElements;
		}
		[CRepr]
		public struct D3D12_TEX1D_RTV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D12_TEX1D_ARRAY_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_TEX2D_RTV
		{
			public uint32 MipSlice;
			public uint32 PlaneSlice;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_RTV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D12_TEX2D_ARRAY_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
			public uint32 PlaneSlice;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_ARRAY_RTV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_TEX3D_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstWSlice;
			public uint32 WSize;
		}
		[CRepr]
		public struct D3D12_RENDER_TARGET_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D12_RTV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_BUFFER_RTV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D12_TEX1D_RTV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D12_TEX1D_ARRAY_RTV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D12_TEX2D_RTV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D12_TEX2D_ARRAY_RTV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D12_TEX2DMS_RTV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			public D3D12_TEX3D_RTV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_BUFFER_RTV Buffer;
				public D3D12_TEX1D_RTV Texture1D;
				public D3D12_TEX1D_ARRAY_RTV Texture1DArray;
				public D3D12_TEX2D_RTV Texture2D;
				public D3D12_TEX2D_ARRAY_RTV Texture2DArray;
				public D3D12_TEX2DMS_RTV Texture2DMS;
				public D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
				public D3D12_TEX3D_RTV Texture3D;
			}
		}
		[CRepr]
		public struct D3D12_TEX1D_DSV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D12_TEX1D_ARRAY_DSV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_TEX2D_DSV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D12_TEX2D_ARRAY_DSV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_DSV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D12_TEX2DMS_ARRAY_DSV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D12_DEPTH_STENCIL_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D12_DSV_DIMENSION ViewDimension;
			public D3D12_DSV_FLAGS Flags;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_TEX1D_DSV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D12_TEX1D_ARRAY_DSV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D12_TEX2D_DSV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D12_TEX2D_ARRAY_DSV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D12_TEX2DMS_DSV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_TEX1D_DSV Texture1D;
				public D3D12_TEX1D_ARRAY_DSV Texture1DArray;
				public D3D12_TEX2D_DSV Texture2D;
				public D3D12_TEX2D_ARRAY_DSV Texture2DArray;
				public D3D12_TEX2DMS_DSV Texture2DMS;
				public D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
			}
		}
		[CRepr]
		public struct D3D12_DESCRIPTOR_HEAP_DESC
		{
			public D3D12_DESCRIPTOR_HEAP_TYPE Type;
			public uint32 NumDescriptors;
			public D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
			public uint32 NodeMask;
		}
		[CRepr]
		public struct D3D12_DESCRIPTOR_RANGE
		{
			public D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
			public uint32 NumDescriptors;
			public uint32 BaseShaderRegister;
			public uint32 RegisterSpace;
			public uint32 OffsetInDescriptorsFromTableStart;
		}
		[CRepr]
		public struct D3D12_ROOT_DESCRIPTOR_TABLE
		{
			public uint32 NumDescriptorRanges;
			public D3D12_DESCRIPTOR_RANGE* pDescriptorRanges;
		}
		[CRepr]
		public struct D3D12_ROOT_CONSTANTS
		{
			public uint32 ShaderRegister;
			public uint32 RegisterSpace;
			public uint32 Num32BitValues;
		}
		[CRepr]
		public struct D3D12_ROOT_DESCRIPTOR
		{
			public uint32 ShaderRegister;
			public uint32 RegisterSpace;
		}
		[CRepr]
		public struct D3D12_ROOT_PARAMETER
		{
			public D3D12_ROOT_PARAMETER_TYPE ParameterType;
			public _Anonymous_e__Union Anonymous;
			public D3D12_SHADER_VISIBILITY ShaderVisibility;
			
			public D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable { get => Anonymous.DescriptorTable; set mut => Anonymous.DescriptorTable = value; }
			public D3D12_ROOT_CONSTANTS Constants { get => Anonymous.Constants; set mut => Anonymous.Constants = value; }
			public D3D12_ROOT_DESCRIPTOR Descriptor { get => Anonymous.Descriptor; set mut => Anonymous.Descriptor = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
				public D3D12_ROOT_CONSTANTS Constants;
				public D3D12_ROOT_DESCRIPTOR Descriptor;
			}
		}
		[CRepr]
		public struct D3D12_STATIC_SAMPLER_DESC
		{
			public D3D12_FILTER Filter;
			public D3D12_TEXTURE_ADDRESS_MODE AddressU;
			public D3D12_TEXTURE_ADDRESS_MODE AddressV;
			public D3D12_TEXTURE_ADDRESS_MODE AddressW;
			public float MipLODBias;
			public uint32 MaxAnisotropy;
			public D3D12_COMPARISON_FUNC ComparisonFunc;
			public D3D12_STATIC_BORDER_COLOR BorderColor;
			public float MinLOD;
			public float MaxLOD;
			public uint32 ShaderRegister;
			public uint32 RegisterSpace;
			public D3D12_SHADER_VISIBILITY ShaderVisibility;
		}
		[CRepr]
		public struct D3D12_ROOT_SIGNATURE_DESC
		{
			public uint32 NumParameters;
			public D3D12_ROOT_PARAMETER* pParameters;
			public uint32 NumStaticSamplers;
			public D3D12_STATIC_SAMPLER_DESC* pStaticSamplers;
			public D3D12_ROOT_SIGNATURE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_DESCRIPTOR_RANGE1
		{
			public D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
			public uint32 NumDescriptors;
			public uint32 BaseShaderRegister;
			public uint32 RegisterSpace;
			public D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
			public uint32 OffsetInDescriptorsFromTableStart;
		}
		[CRepr]
		public struct D3D12_ROOT_DESCRIPTOR_TABLE1
		{
			public uint32 NumDescriptorRanges;
			public D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges;
		}
		[CRepr]
		public struct D3D12_ROOT_DESCRIPTOR1
		{
			public uint32 ShaderRegister;
			public uint32 RegisterSpace;
			public D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_ROOT_PARAMETER1
		{
			public D3D12_ROOT_PARAMETER_TYPE ParameterType;
			public _Anonymous_e__Union Anonymous;
			public D3D12_SHADER_VISIBILITY ShaderVisibility;
			
			public D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable { get => Anonymous.DescriptorTable; set mut => Anonymous.DescriptorTable = value; }
			public D3D12_ROOT_CONSTANTS Constants { get => Anonymous.Constants; set mut => Anonymous.Constants = value; }
			public D3D12_ROOT_DESCRIPTOR1 Descriptor { get => Anonymous.Descriptor; set mut => Anonymous.Descriptor = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
				public D3D12_ROOT_CONSTANTS Constants;
				public D3D12_ROOT_DESCRIPTOR1 Descriptor;
			}
		}
		[CRepr]
		public struct D3D12_ROOT_SIGNATURE_DESC1
		{
			public uint32 NumParameters;
			public D3D12_ROOT_PARAMETER1* pParameters;
			public uint32 NumStaticSamplers;
			public D3D12_STATIC_SAMPLER_DESC* pStaticSamplers;
			public D3D12_ROOT_SIGNATURE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
		{
			public D3D_ROOT_SIGNATURE_VERSION Version;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_ROOT_SIGNATURE_DESC Desc_1_0 { get => Anonymous.Desc_1_0; set mut => Anonymous.Desc_1_0 = value; }
			public D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1 { get => Anonymous.Desc_1_1; set mut => Anonymous.Desc_1_1 = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
				public D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
			}
		}
		[CRepr]
		public struct D3D12_CPU_DESCRIPTOR_HANDLE
		{
			public uint ptr;
		}
		[CRepr]
		public struct D3D12_GPU_DESCRIPTOR_HANDLE
		{
			public uint64 ptr;
		}
		[CRepr]
		public struct D3D12_DISCARD_REGION
		{
			public uint32 NumRects;
			public RECT* pRects;
			public uint32 FirstSubresource;
			public uint32 NumSubresources;
		}
		[CRepr]
		public struct D3D12_QUERY_HEAP_DESC
		{
			public D3D12_QUERY_HEAP_TYPE Type;
			public uint32 Count;
			public uint32 NodeMask;
		}
		[CRepr]
		public struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
		{
			public uint64 IAVertices;
			public uint64 IAPrimitives;
			public uint64 VSInvocations;
			public uint64 GSInvocations;
			public uint64 GSPrimitives;
			public uint64 CInvocations;
			public uint64 CPrimitives;
			public uint64 PSInvocations;
			public uint64 HSInvocations;
			public uint64 DSInvocations;
			public uint64 CSInvocations;
		}
		[CRepr]
		public struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
		{
			public uint64 IAVertices;
			public uint64 IAPrimitives;
			public uint64 VSInvocations;
			public uint64 GSInvocations;
			public uint64 GSPrimitives;
			public uint64 CInvocations;
			public uint64 CPrimitives;
			public uint64 PSInvocations;
			public uint64 HSInvocations;
			public uint64 DSInvocations;
			public uint64 CSInvocations;
			public uint64 ASInvocations;
			public uint64 MSInvocations;
			public uint64 MSPrimitives;
		}
		[CRepr]
		public struct D3D12_QUERY_DATA_SO_STATISTICS
		{
			public uint64 NumPrimitivesWritten;
			public uint64 PrimitivesStorageNeeded;
		}
		[CRepr]
		public struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
		{
			public uint64 BufferLocation;
			public uint64 SizeInBytes;
			public uint64 BufferFilledSizeLocation;
		}
		[CRepr]
		public struct D3D12_DRAW_ARGUMENTS
		{
			public uint32 VertexCountPerInstance;
			public uint32 InstanceCount;
			public uint32 StartVertexLocation;
			public uint32 StartInstanceLocation;
		}
		[CRepr]
		public struct D3D12_DRAW_INDEXED_ARGUMENTS
		{
			public uint32 IndexCountPerInstance;
			public uint32 InstanceCount;
			public uint32 StartIndexLocation;
			public int32 BaseVertexLocation;
			public uint32 StartInstanceLocation;
		}
		[CRepr]
		public struct D3D12_DISPATCH_ARGUMENTS
		{
			public uint32 ThreadGroupCountX;
			public uint32 ThreadGroupCountY;
			public uint32 ThreadGroupCountZ;
		}
		[CRepr]
		public struct D3D12_VERTEX_BUFFER_VIEW
		{
			public uint64 BufferLocation;
			public uint32 SizeInBytes;
			public uint32 StrideInBytes;
		}
		[CRepr]
		public struct D3D12_INDEX_BUFFER_VIEW
		{
			public uint64 BufferLocation;
			public uint32 SizeInBytes;
			public DXGI_FORMAT Format;
		}
		[CRepr]
		public struct D3D12_INDIRECT_ARGUMENT_DESC
		{
			public D3D12_INDIRECT_ARGUMENT_TYPE Type;
			public _Anonymous_e__Union Anonymous;
			
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public _VertexBuffer_e__Struct VertexBuffer;
				public _Constant_e__Struct Constant;
				public _ConstantBufferView_e__Struct ConstantBufferView;
				public _ShaderResourceView_e__Struct ShaderResourceView;
				public _UnorderedAccessView_e__Struct UnorderedAccessView;
				
				[CRepr]
				public struct _ShaderResourceView_e__Struct
				{
					public uint32 RootParameterIndex;
				}
				[CRepr]
				public struct _Constant_e__Struct
				{
					public uint32 RootParameterIndex;
					public uint32 DestOffsetIn32BitValues;
					public uint32 Num32BitValuesToSet;
				}
				[CRepr]
				public struct _UnorderedAccessView_e__Struct
				{
					public uint32 RootParameterIndex;
				}
				[CRepr]
				public struct _VertexBuffer_e__Struct
				{
					public uint32 Slot;
				}
				[CRepr]
				public struct _ConstantBufferView_e__Struct
				{
					public uint32 RootParameterIndex;
				}
			}
		}
		[CRepr]
		public struct D3D12_COMMAND_SIGNATURE_DESC
		{
			public uint32 ByteStride;
			public uint32 NumArgumentDescs;
			public D3D12_INDIRECT_ARGUMENT_DESC* pArgumentDescs;
			public uint32 NodeMask;
		}
		[CRepr]
		public struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
		{
			public uint64 Dest;
			public uint32 Value;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
		{
			public uint32 NodeIndex;
			public D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
		}
		[CRepr]
		public struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
		{
			public uint32 NodeMask;
			public D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_META_COMMAND_PARAMETER_DESC
		{
			public PWSTR Name;
			public D3D12_META_COMMAND_PARAMETER_TYPE Type;
			public D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
			public D3D12_RESOURCE_STATES RequiredResourceState;
			public uint32 StructureOffset;
		}
		[CRepr]
		public struct D3D12_META_COMMAND_DESC
		{
			public Guid Id;
			public PWSTR Name;
			public D3D12_GRAPHICS_STATES InitializationDirtyState;
			public D3D12_GRAPHICS_STATES ExecutionDirtyState;
		}
		[CRepr]
		public struct D3D12_STATE_SUBOBJECT
		{
			public D3D12_STATE_SUBOBJECT_TYPE Type;
			public void* pDesc;
		}
		[CRepr]
		public struct D3D12_STATE_OBJECT_CONFIG
		{
			public D3D12_STATE_OBJECT_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_GLOBAL_ROOT_SIGNATURE
		{
			public ID3D12RootSignature* pGlobalRootSignature;
		}
		[CRepr]
		public struct D3D12_LOCAL_ROOT_SIGNATURE
		{
			public ID3D12RootSignature* pLocalRootSignature;
		}
		[CRepr]
		public struct D3D12_NODE_MASK
		{
			public uint32 NodeMask;
		}
		[CRepr]
		public struct D3D12_EXPORT_DESC
		{
			public PWSTR Name;
			public PWSTR ExportToRename;
			public D3D12_EXPORT_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_DXIL_LIBRARY_DESC
		{
			public D3D12_SHADER_BYTECODE DXILLibrary;
			public uint32 NumExports;
			public D3D12_EXPORT_DESC* pExports;
		}
		[CRepr]
		public struct D3D12_EXISTING_COLLECTION_DESC
		{
			public ID3D12StateObject* pExistingCollection;
			public uint32 NumExports;
			public D3D12_EXPORT_DESC* pExports;
		}
		[CRepr]
		public struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
		{
			public D3D12_STATE_SUBOBJECT* pSubobjectToAssociate;
			public uint32 NumExports;
			public PWSTR* pExports;
		}
		[CRepr]
		public struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
		{
			public PWSTR SubobjectToAssociate;
			public uint32 NumExports;
			public PWSTR* pExports;
		}
		[CRepr]
		public struct D3D12_HIT_GROUP_DESC
		{
			public PWSTR HitGroupExport;
			public D3D12_HIT_GROUP_TYPE Type;
			public PWSTR AnyHitShaderImport;
			public PWSTR ClosestHitShaderImport;
			public PWSTR IntersectionShaderImport;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_SHADER_CONFIG
		{
			public uint32 MaxPayloadSizeInBytes;
			public uint32 MaxAttributeSizeInBytes;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_PIPELINE_CONFIG
		{
			public uint32 MaxTraceRecursionDepth;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_PIPELINE_CONFIG1
		{
			public uint32 MaxTraceRecursionDepth;
			public D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
		}
		[CRepr]
		public struct D3D12_STATE_OBJECT_DESC
		{
			public D3D12_STATE_OBJECT_TYPE Type;
			public uint32 NumSubobjects;
			public D3D12_STATE_SUBOBJECT* pSubobjects;
		}
		[CRepr]
		public struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
		{
			public uint64 StartAddress;
			public uint64 StrideInBytes;
		}
		[CRepr]
		public struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
		{
			public uint64 StartAddress;
			public uint64 SizeInBytes;
		}
		[CRepr]
		public struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
		{
			public uint64 StartAddress;
			public uint64 SizeInBytes;
			public uint64 StrideInBytes;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
		{
			public uint64 Transform3x4;
			public DXGI_FORMAT IndexFormat;
			public DXGI_FORMAT VertexFormat;
			public uint32 IndexCount;
			public uint32 VertexCount;
			public uint64 IndexBuffer;
			public D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_AABB
		{
			public float MinX;
			public float MinY;
			public float MinZ;
			public float MaxX;
			public float MaxY;
			public float MaxZ;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
		{
			public uint64 AABBCount;
			public D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
		{
			public uint64 DestBuffer;
			public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
		{
			public uint64 CompactedSizeInBytes;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
		{
			public uint64 DecodedSizeInBytes;
		}
		[CRepr]
		public struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
		{
			public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
			public uint32 NumDescs;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
		{
			public uint64 SerializedSizeInBytes;
			public uint64 NumBottomLevelAccelerationStructurePointers;
		}
		[CRepr]
		public struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
		{
			public Guid DriverOpaqueGUID;
			public uint8[16] DriverOpaqueVersioningData;
		}
		[CRepr]
		public struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
		{
			public D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
			public uint64 SerializedSizeInBytesIncludingHeader;
			public uint64 DeserializedSizeInBytes;
			public uint64 NumBottomLevelAccelerationStructurePointersAfterHeader;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
		{
			public uint64 CurrentSizeInBytes;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_INSTANCE_DESC
		{
			public float[12] Transform;
			public uint32 _bitfield1;
			public uint32 _bitfield2;
			public uint64 AccelerationStructure;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_GEOMETRY_DESC
		{
			public D3D12_RAYTRACING_GEOMETRY_TYPE Type;
			public D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles { get => Anonymous.Triangles; set mut => Anonymous.Triangles = value; }
			public D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs { get => Anonymous.AABBs; set mut => Anonymous.AABBs = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
				public D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
			}
		}
		[CRepr]
		public struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
		{
			public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
			public D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
			public uint32 NumDescs;
			public D3D12_ELEMENTS_LAYOUT DescsLayout;
			public _Anonymous_e__Union Anonymous;
			
			public uint64 InstanceDescs { get => Anonymous.InstanceDescs; set mut => Anonymous.InstanceDescs = value; }
			public D3D12_RAYTRACING_GEOMETRY_DESC* pGeometryDescs { get => Anonymous.pGeometryDescs; set mut => Anonymous.pGeometryDescs = value; }
			public D3D12_RAYTRACING_GEOMETRY_DESC** ppGeometryDescs { get => Anonymous.ppGeometryDescs; set mut => Anonymous.ppGeometryDescs = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public uint64 InstanceDescs;
				public D3D12_RAYTRACING_GEOMETRY_DESC* pGeometryDescs;
				public D3D12_RAYTRACING_GEOMETRY_DESC** ppGeometryDescs;
			}
		}
		[CRepr]
		public struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
		{
			public uint64 DestAccelerationStructureData;
			public D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
			public uint64 SourceAccelerationStructureData;
			public uint64 ScratchAccelerationStructureData;
		}
		[CRepr]
		public struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
		{
			public uint64 ResultDataMaxSizeInBytes;
			public uint64 ScratchDataSizeInBytes;
			public uint64 UpdateScratchDataSizeInBytes;
		}
		[CRepr]
		public struct D3D12_AUTO_BREADCRUMB_NODE
		{
			public uint8* pCommandListDebugNameA;
			public PWSTR pCommandListDebugNameW;
			public uint8* pCommandQueueDebugNameA;
			public PWSTR pCommandQueueDebugNameW;
			public ID3D12GraphicsCommandList* pCommandList;
			public ID3D12CommandQueue* pCommandQueue;
			public uint32 BreadcrumbCount;
			public uint32* pLastBreadcrumbValue;
			public D3D12_AUTO_BREADCRUMB_OP* pCommandHistory;
			public D3D12_AUTO_BREADCRUMB_NODE* pNext;
		}
		[CRepr]
		public struct D3D12_DRED_BREADCRUMB_CONTEXT
		{
			public uint32 BreadcrumbIndex;
			public PWSTR pContextString;
		}
		[CRepr]
		public struct D3D12_AUTO_BREADCRUMB_NODE1
		{
			public uint8* pCommandListDebugNameA;
			public PWSTR pCommandListDebugNameW;
			public uint8* pCommandQueueDebugNameA;
			public PWSTR pCommandQueueDebugNameW;
			public ID3D12GraphicsCommandList* pCommandList;
			public ID3D12CommandQueue* pCommandQueue;
			public uint32 BreadcrumbCount;
			public uint32* pLastBreadcrumbValue;
			public D3D12_AUTO_BREADCRUMB_OP* pCommandHistory;
			public D3D12_AUTO_BREADCRUMB_NODE1* pNext;
			public uint32 BreadcrumbContextsCount;
			public D3D12_DRED_BREADCRUMB_CONTEXT* pBreadcrumbContexts;
		}
		[CRepr]
		public struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
		{
			public D3D12_DRED_FLAGS Flags;
			public D3D12_AUTO_BREADCRUMB_NODE* pHeadAutoBreadcrumbNode;
		}
		[CRepr]
		public struct D3D12_DRED_ALLOCATION_NODE
		{
			public uint8* ObjectNameA;
			public PWSTR ObjectNameW;
			public D3D12_DRED_ALLOCATION_TYPE AllocationType;
			public D3D12_DRED_ALLOCATION_NODE* pNext;
		}
		[CRepr]
		public struct D3D12_DRED_ALLOCATION_NODE1
		{
			public uint8* ObjectNameA;
			public PWSTR ObjectNameW;
			public D3D12_DRED_ALLOCATION_TYPE AllocationType;
			public D3D12_DRED_ALLOCATION_NODE1* pNext;
			public IUnknown* pObject;
		}
		[CRepr]
		public struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
		{
			public D3D12_AUTO_BREADCRUMB_NODE* pHeadAutoBreadcrumbNode;
		}
		[CRepr]
		public struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
		{
			public D3D12_AUTO_BREADCRUMB_NODE1* pHeadAutoBreadcrumbNode;
		}
		[CRepr]
		public struct D3D12_DRED_PAGE_FAULT_OUTPUT
		{
			public uint64 PageFaultVA;
			public D3D12_DRED_ALLOCATION_NODE* pHeadExistingAllocationNode;
			public D3D12_DRED_ALLOCATION_NODE* pHeadRecentFreedAllocationNode;
		}
		[CRepr]
		public struct D3D12_DRED_PAGE_FAULT_OUTPUT1
		{
			public uint64 PageFaultVA;
			public D3D12_DRED_ALLOCATION_NODE1* pHeadExistingAllocationNode;
			public D3D12_DRED_ALLOCATION_NODE1* pHeadRecentFreedAllocationNode;
		}
		[CRepr]
		public struct D3D12_DRED_PAGE_FAULT_OUTPUT2
		{
			public uint64 PageFaultVA;
			public D3D12_DRED_ALLOCATION_NODE1* pHeadExistingAllocationNode;
			public D3D12_DRED_ALLOCATION_NODE1* pHeadRecentFreedAllocationNode;
			public D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
		}
		[CRepr]
		public struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
		{
			public HRESULT DeviceRemovedReason;
			public D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
			public D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
		}
		[CRepr]
		public struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
		{
			public HRESULT DeviceRemovedReason;
			public D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
			public D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
		}
		[CRepr]
		public struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
		{
			public HRESULT DeviceRemovedReason;
			public D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
			public D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
			public D3D12_DRED_DEVICE_STATE DeviceState;
		}
		[CRepr]
		public struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
		{
			public D3D12_DRED_VERSION Version;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0 { get => Anonymous.Dred_1_0; set mut => Anonymous.Dred_1_0 = value; }
			public D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1 { get => Anonymous.Dred_1_1; set mut => Anonymous.Dred_1_1 = value; }
			public D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2 { get => Anonymous.Dred_1_2; set mut => Anonymous.Dred_1_2 = value; }
			public D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3 { get => Anonymous.Dred_1_3; set mut => Anonymous.Dred_1_3 = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
				public D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
				public D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
				public D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
			}
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
		{
			public uint32 NodeIndex;
			public uint32 Count;
		}
		[CRepr]
		public struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
		{
			public uint32 NodeIndex;
			public uint32 Count;
			public Guid* pTypes;
		}
		[CRepr]
		public struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
		{
			public uint32 NodeMask;
			public D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
			public Guid ProtectionType;
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
		{
			public D3D12_CLEAR_VALUE ClearValue;
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_BEGINNING_ACCESS
		{
			public D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear { get => Anonymous.Clear; set mut => Anonymous.Clear = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
			}
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
		{
			public uint32 SrcSubresource;
			public uint32 DstSubresource;
			public uint32 DstX;
			public uint32 DstY;
			public RECT SrcRect;
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
		{
			public ID3D12Resource* pSrcResource;
			public ID3D12Resource* pDstResource;
			public uint32 SubresourceCount;
			public D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS* pSubresourceParameters;
			public DXGI_FORMAT Format;
			public D3D12_RESOLVE_MODE ResolveMode;
			public BOOL PreserveResolveSource;
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_ENDING_ACCESS
		{
			public D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
			public _Anonymous_e__Union Anonymous;
			
			public D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve { get => Anonymous.Resolve; set mut => Anonymous.Resolve = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
			}
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
		{
			public D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
			public D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
			public D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
		}
		[CRepr]
		public struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
		{
			public D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
			public D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
			public D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
			public D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
			public D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
		}
		[CRepr]
		public struct D3D12_DISPATCH_RAYS_DESC
		{
			public D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
			public D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
			public D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
			public D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
			public uint32 Width;
			public uint32 Height;
			public uint32 Depth;
		}
		[CRepr]
		public struct D3D12_SHADER_CACHE_SESSION_DESC
		{
			public Guid Identifier;
			public D3D12_SHADER_CACHE_MODE Mode;
			public D3D12_SHADER_CACHE_FLAGS Flags;
			public uint32 MaximumInMemoryCacheSizeBytes;
			public uint32 MaximumInMemoryCacheEntries;
			public uint32 MaximumValueFileSizeBytes;
			public uint64 Version;
		}
		[CRepr]
		public struct D3D12_SUBRESOURCE_DATA
		{
			public void* pData;
			public int RowPitch;
			public int SlicePitch;
		}
		[CRepr]
		public struct D3D12_MEMCPY_DEST
		{
			public void* pData;
			public uint RowPitch;
			public uint SlicePitch;
		}
		[CRepr]
		public struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS
		{
			public uint32 MaxMessagesPerCommandList;
			public D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode;
			public D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags;
		}
		[CRepr]
		public struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR
		{
			public float SlowdownFactor;
		}
		[CRepr]
		public struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS
		{
			public D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode;
		}
		[CRepr]
		public struct D3D12_MESSAGE
		{
			public D3D12_MESSAGE_CATEGORY Category;
			public D3D12_MESSAGE_SEVERITY Severity;
			public D3D12_MESSAGE_ID ID;
			public uint8* pDescription;
			public uint DescriptionByteLength;
		}
		[CRepr]
		public struct D3D12_INFO_QUEUE_FILTER_DESC
		{
			public uint32 NumCategories;
			public D3D12_MESSAGE_CATEGORY* pCategoryList;
			public uint32 NumSeverities;
			public D3D12_MESSAGE_SEVERITY* pSeverityList;
			public uint32 NumIDs;
			public D3D12_MESSAGE_ID* pIDList;
		}
		[CRepr]
		public struct D3D12_INFO_QUEUE_FILTER
		{
			public D3D12_INFO_QUEUE_FILTER_DESC AllowList;
			public D3D12_INFO_QUEUE_FILTER_DESC DenyList;
		}
		[CRepr]
		public struct D3D12_DISPATCH_MESH_ARGUMENTS
		{
			public uint32 ThreadGroupCountX;
			public uint32 ThreadGroupCountY;
			public uint32 ThreadGroupCountZ;
		}
		[CRepr]
		public struct D3D12_SIGNATURE_PARAMETER_DESC
		{
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public uint32 Register;
			public D3D_NAME SystemValueType;
			public D3D_REGISTER_COMPONENT_TYPE ComponentType;
			public uint8 Mask;
			public uint8 ReadWriteMask;
			public uint32 Stream;
			public D3D_MIN_PRECISION MinPrecision;
		}
		[CRepr]
		public struct D3D12_SHADER_BUFFER_DESC
		{
			public PSTR Name;
			public D3D_CBUFFER_TYPE Type;
			public uint32 Variables;
			public uint32 Size;
			public uint32 uFlags;
		}
		[CRepr]
		public struct D3D12_SHADER_VARIABLE_DESC
		{
			public PSTR Name;
			public uint32 StartOffset;
			public uint32 Size;
			public uint32 uFlags;
			public void* DefaultValue;
			public uint32 StartTexture;
			public uint32 TextureSize;
			public uint32 StartSampler;
			public uint32 SamplerSize;
		}
		[CRepr]
		public struct D3D12_SHADER_TYPE_DESC
		{
			public D3D_SHADER_VARIABLE_CLASS Class;
			public D3D_SHADER_VARIABLE_TYPE Type;
			public uint32 Rows;
			public uint32 Columns;
			public uint32 Elements;
			public uint32 Members;
			public uint32 Offset;
			public PSTR Name;
		}
		[CRepr]
		public struct D3D12_SHADER_DESC
		{
			public uint32 Version;
			public PSTR Creator;
			public uint32 Flags;
			public uint32 ConstantBuffers;
			public uint32 BoundResources;
			public uint32 InputParameters;
			public uint32 OutputParameters;
			public uint32 InstructionCount;
			public uint32 TempRegisterCount;
			public uint32 TempArrayCount;
			public uint32 DefCount;
			public uint32 DclCount;
			public uint32 TextureNormalInstructions;
			public uint32 TextureLoadInstructions;
			public uint32 TextureCompInstructions;
			public uint32 TextureBiasInstructions;
			public uint32 TextureGradientInstructions;
			public uint32 FloatInstructionCount;
			public uint32 IntInstructionCount;
			public uint32 UintInstructionCount;
			public uint32 StaticFlowControlCount;
			public uint32 DynamicFlowControlCount;
			public uint32 MacroInstructionCount;
			public uint32 ArrayInstructionCount;
			public uint32 CutInstructionCount;
			public uint32 EmitInstructionCount;
			public D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
			public uint32 GSMaxOutputVertexCount;
			public D3D_PRIMITIVE InputPrimitive;
			public uint32 PatchConstantParameters;
			public uint32 cGSInstanceCount;
			public uint32 cControlPoints;
			public D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
			public D3D_TESSELLATOR_PARTITIONING HSPartitioning;
			public D3D_TESSELLATOR_DOMAIN TessellatorDomain;
			public uint32 cBarrierInstructions;
			public uint32 cInterlockedInstructions;
			public uint32 cTextureStoreInstructions;
		}
		[CRepr]
		public struct D3D12_SHADER_INPUT_BIND_DESC
		{
			public PSTR Name;
			public D3D_SHADER_INPUT_TYPE Type;
			public uint32 BindPoint;
			public uint32 BindCount;
			public uint32 uFlags;
			public D3D_RESOURCE_RETURN_TYPE ReturnType;
			public D3D_SRV_DIMENSION Dimension;
			public uint32 NumSamples;
			public uint32 Space;
			public uint32 uID;
		}
		[CRepr]
		public struct D3D12_LIBRARY_DESC
		{
			public PSTR Creator;
			public uint32 Flags;
			public uint32 FunctionCount;
		}
		[CRepr]
		public struct D3D12_FUNCTION_DESC
		{
			public uint32 Version;
			public PSTR Creator;
			public uint32 Flags;
			public uint32 ConstantBuffers;
			public uint32 BoundResources;
			public uint32 InstructionCount;
			public uint32 TempRegisterCount;
			public uint32 TempArrayCount;
			public uint32 DefCount;
			public uint32 DclCount;
			public uint32 TextureNormalInstructions;
			public uint32 TextureLoadInstructions;
			public uint32 TextureCompInstructions;
			public uint32 TextureBiasInstructions;
			public uint32 TextureGradientInstructions;
			public uint32 FloatInstructionCount;
			public uint32 IntInstructionCount;
			public uint32 UintInstructionCount;
			public uint32 StaticFlowControlCount;
			public uint32 DynamicFlowControlCount;
			public uint32 MacroInstructionCount;
			public uint32 ArrayInstructionCount;
			public uint32 MovInstructionCount;
			public uint32 MovcInstructionCount;
			public uint32 ConversionInstructionCount;
			public uint32 BitwiseInstructionCount;
			public D3D_FEATURE_LEVEL MinFeatureLevel;
			public uint64 RequiredFeatureFlags;
			public PSTR Name;
			public int32 FunctionParameterCount;
			public BOOL HasReturn;
			public BOOL Has10Level9VertexShader;
			public BOOL Has10Level9PixelShader;
		}
		[CRepr]
		public struct D3D12_PARAMETER_DESC
		{
			public PSTR Name;
			public PSTR SemanticName;
			public D3D_SHADER_VARIABLE_TYPE Type;
			public D3D_SHADER_VARIABLE_CLASS Class;
			public uint32 Rows;
			public uint32 Columns;
			public D3D_INTERPOLATION_MODE InterpolationMode;
			public D3D_PARAMETER_FLAGS Flags;
			public uint32 FirstInRegister;
			public uint32 FirstInComponent;
			public uint32 FirstOutRegister;
			public uint32 FirstOutComponent;
		}
		
		// --- COM Interfaces ---
		
		[CRepr]
		public struct ID3D12Object : IUnknown
		{
			public const new Guid IID = .(0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetPrivateData(in Guid guid, out uint32 pDataSize, void* pData) mut => VT.GetPrivateData(ref this, guid, out pDataSize, pData);
			public HRESULT SetPrivateData(in Guid guid, uint32 DataSize, void* pData) mut => VT.SetPrivateData(ref this, guid, DataSize, pData);
			public HRESULT SetPrivateDataInterface(in Guid guid, IUnknown* pData) mut => VT.SetPrivateDataInterface(ref this, guid, pData);
			public HRESULT SetName(PWSTR Name) mut => VT.SetName(ref this, Name);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Object self, in Guid guid, out uint32 pDataSize, void* pData) GetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Object self, in Guid guid, uint32 DataSize, void* pData) SetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Object self, in Guid guid, IUnknown* pData) SetPrivateDataInterface;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Object self, PWSTR Name) SetName;
			}
		}
		[CRepr]
		public struct ID3D12DeviceChild : ID3D12Object
		{
			public const new Guid IID = .(0x905db94b, 0xa00c, 0x4140, 0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDevice(in Guid riid, void** ppvDevice) mut => VT.GetDevice(ref this, riid, ppvDevice);

			[CRepr]
			public struct VTable : ID3D12Object.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceChild self, in Guid riid, void** ppvDevice) GetDevice;
			}
		}
		[CRepr]
		public struct ID3D12RootSignature : ID3D12DeviceChild
		{
			public const new Guid IID = .(0xc54a6b66, 0x72df, 0x4ee8, 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D12RootSignatureDeserializer : IUnknown
		{
			public const new Guid IID = .(0x34ab647b, 0x3cc8, 0x46ac, 0x84, 0x1b, 0xc0, 0x96, 0x56, 0x45, 0xc0, 0x46);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_ROOT_SIGNATURE_DESC* GetRootSignatureDesc() mut => VT.GetRootSignatureDesc(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_ROOT_SIGNATURE_DESC*(ref ID3D12RootSignatureDeserializer self) GetRootSignatureDesc;
			}
		}
		[CRepr]
		public struct ID3D12VersionedRootSignatureDeserializer : IUnknown
		{
			public const new Guid IID = .(0x7f91ce67, 0x090c, 0x4bb7, 0xb7, 0x8e, 0xed, 0x8f, 0xf2, 0xe3, 0x1d, 0xa0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, out D3D12_VERSIONED_ROOT_SIGNATURE_DESC* ppDesc) mut => VT.GetRootSignatureDescAtVersion(ref this, convertToVersion, out ppDesc);
			public D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc() mut => VT.GetUnconvertedRootSignatureDesc(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12VersionedRootSignatureDeserializer self, D3D_ROOT_SIGNATURE_VERSION convertToVersion, out D3D12_VERSIONED_ROOT_SIGNATURE_DESC* ppDesc) GetRootSignatureDescAtVersion;
				public new function [CallingConvention(.Stdcall)] D3D12_VERSIONED_ROOT_SIGNATURE_DESC*(ref ID3D12VersionedRootSignatureDeserializer self) GetUnconvertedRootSignatureDesc;
			}
		}
		[CRepr]
		public struct ID3D12Pageable : ID3D12DeviceChild
		{
			public const new Guid IID = .(0x63ee58fb, 0x1268, 0x4835, 0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D12Heap : ID3D12Pageable
		{
			public const new Guid IID = .(0x6b3b2502, 0x6e51, 0x45b3, 0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_HEAP_DESC GetDesc() mut => VT.GetDesc(ref this);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_HEAP_DESC(ref ID3D12Heap self) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D12Resource : ID3D12Pageable
		{
			public const new Guid IID = .(0x696442be, 0xa72e, 0x4059, 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Map(uint32 Subresource, D3D12_RANGE* pReadRange, void** ppData) mut => VT.Map(ref this, Subresource, pReadRange, ppData);
			public void Unmap(uint32 Subresource, D3D12_RANGE* pWrittenRange) mut => VT.Unmap(ref this, Subresource, pWrittenRange);
			public D3D12_RESOURCE_DESC GetDesc() mut => VT.GetDesc(ref this);
			public uint64 GetGPUVirtualAddress() mut => VT.GetGPUVirtualAddress(ref this);
			public HRESULT WriteToSubresource(uint32 DstSubresource, D3D12_BOX* pDstBox, void* pSrcData, uint32 SrcRowPitch, uint32 SrcDepthPitch) mut => VT.WriteToSubresource(ref this, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch);
			public HRESULT ReadFromSubresource(void* pDstData, uint32 DstRowPitch, uint32 DstDepthPitch, uint32 SrcSubresource, D3D12_BOX* pSrcBox) mut => VT.ReadFromSubresource(ref this, pDstData, DstRowPitch, DstDepthPitch, SrcSubresource, pSrcBox);
			public HRESULT GetHeapProperties(D3D12_HEAP_PROPERTIES* pHeapProperties, D3D12_HEAP_FLAGS* pHeapFlags) mut => VT.GetHeapProperties(ref this, pHeapProperties, pHeapFlags);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Resource self, uint32 Subresource, D3D12_RANGE* pReadRange, void** ppData) Map;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Resource self, uint32 Subresource, D3D12_RANGE* pWrittenRange) Unmap;
				public new function [CallingConvention(.Stdcall)] D3D12_RESOURCE_DESC(ref ID3D12Resource self) GetDesc;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12Resource self) GetGPUVirtualAddress;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Resource self, uint32 DstSubresource, D3D12_BOX* pDstBox, void* pSrcData, uint32 SrcRowPitch, uint32 SrcDepthPitch) WriteToSubresource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Resource self, void* pDstData, uint32 DstRowPitch, uint32 DstDepthPitch, uint32 SrcSubresource, D3D12_BOX* pSrcBox) ReadFromSubresource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Resource self, D3D12_HEAP_PROPERTIES* pHeapProperties, D3D12_HEAP_FLAGS* pHeapFlags) GetHeapProperties;
			}
		}
		[CRepr]
		public struct ID3D12CommandAllocator : ID3D12Pageable
		{
			public const new Guid IID = .(0x6102dee4, 0xaf59, 0x4b09, 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Reset() mut => VT.Reset(ref this);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12CommandAllocator self) Reset;
			}
		}
		[CRepr]
		public struct ID3D12Fence : ID3D12Pageable
		{
			public const new Guid IID = .(0x0a753dcf, 0xc4d8, 0x4b91, 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76);
			
			public new VTable* VT { get => (.)vt; }
			
			public uint64 GetCompletedValue() mut => VT.GetCompletedValue(ref this);
			public HRESULT SetEventOnCompletion(uint64 Value, HANDLE hEvent) mut => VT.SetEventOnCompletion(ref this, Value, hEvent);
			public HRESULT Signal(uint64 Value) mut => VT.Signal(ref this, Value);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12Fence self) GetCompletedValue;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Fence self, uint64 Value, HANDLE hEvent) SetEventOnCompletion;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Fence self, uint64 Value) Signal;
			}
		}
		[CRepr]
		public struct ID3D12Fence1 : ID3D12Fence
		{
			public const new Guid IID = .(0x433685fe, 0xe22b, 0x4ca0, 0xa8, 0xdb, 0xb5, 0xb4, 0xf4, 0xdd, 0x0e, 0x4a);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_FENCE_FLAGS GetCreationFlags() mut => VT.GetCreationFlags(ref this);

			[CRepr]
			public struct VTable : ID3D12Fence.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_FENCE_FLAGS(ref ID3D12Fence1 self) GetCreationFlags;
			}
		}
		[CRepr]
		public struct ID3D12PipelineState : ID3D12Pageable
		{
			public const new Guid IID = .(0x765a30f3, 0xf624, 0x4c6f, 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetCachedBlob(out ID3DBlob* ppBlob) mut => VT.GetCachedBlob(ref this, out ppBlob);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineState self, out ID3DBlob* ppBlob) GetCachedBlob;
			}
		}
		[CRepr]
		public struct ID3D12DescriptorHeap : ID3D12Pageable
		{
			public const new Guid IID = .(0x8efb471d, 0x616c, 0x4f49, 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_DESCRIPTOR_HEAP_DESC GetDesc() mut => VT.GetDesc(ref this);
			public D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart() mut => VT.GetCPUDescriptorHandleForHeapStart(ref this);
			public D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart() mut => VT.GetGPUDescriptorHandleForHeapStart(ref this);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_DESCRIPTOR_HEAP_DESC(ref ID3D12DescriptorHeap self) GetDesc;
				public new function [CallingConvention(.Stdcall)] D3D12_CPU_DESCRIPTOR_HANDLE(ref ID3D12DescriptorHeap self) GetCPUDescriptorHandleForHeapStart;
				public new function [CallingConvention(.Stdcall)] D3D12_GPU_DESCRIPTOR_HANDLE(ref ID3D12DescriptorHeap self) GetGPUDescriptorHandleForHeapStart;
			}
		}
		[CRepr]
		public struct ID3D12QueryHeap : ID3D12Pageable
		{
			public const new Guid IID = .(0x0d9658ae, 0xed45, 0x469e, 0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D12Pageable.VTable {}
		}
		[CRepr]
		public struct ID3D12CommandSignature : ID3D12Pageable
		{
			public const new Guid IID = .(0xc36a797c, 0xec80, 0x4f0a, 0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D12Pageable.VTable {}
		}
		[CRepr]
		public struct ID3D12CommandList : ID3D12DeviceChild
		{
			public const new Guid IID = .(0x7116d91c, 0xe7e4, 0x47ce, 0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_COMMAND_LIST_TYPE ComGetType() mut => VT.ComGetType(ref this);

			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_COMMAND_LIST_TYPE(ref ID3D12CommandList self) ComGetType;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList : ID3D12CommandList
		{
			public const new Guid IID = .(0x5b160d0f, 0xac1b, 0x4185, 0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Close() mut => VT.Close(ref this);
			public HRESULT Reset(ref ID3D12CommandAllocator pAllocator, ID3D12PipelineState* pInitialState) mut => VT.Reset(ref this, ref pAllocator, pInitialState);
			public void ClearState(ID3D12PipelineState* pPipelineState) mut => VT.ClearState(ref this, pPipelineState);
			public void DrawInstanced(uint32 VertexCountPerInstance, uint32 InstanceCount, uint32 StartVertexLocation, uint32 StartInstanceLocation) mut => VT.DrawInstanced(ref this, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation);
			public void DrawIndexedInstanced(uint32 IndexCountPerInstance, uint32 InstanceCount, uint32 StartIndexLocation, int32 BaseVertexLocation, uint32 StartInstanceLocation) mut => VT.DrawIndexedInstanced(ref this, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation);
			public void Dispatch(uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) mut => VT.Dispatch(ref this, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ);
			public void CopyBufferRegion(ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint64 NumBytes) mut => VT.CopyBufferRegion(ref this, ref pDstBuffer, DstOffset, ref pSrcBuffer, SrcOffset, NumBytes);
			public void CopyTextureRegion(in D3D12_TEXTURE_COPY_LOCATION pDst, uint32 DstX, uint32 DstY, uint32 DstZ, in D3D12_TEXTURE_COPY_LOCATION pSrc, D3D12_BOX* pSrcBox) mut => VT.CopyTextureRegion(ref this, pDst, DstX, DstY, DstZ, pSrc, pSrcBox);
			public void CopyResource(ref ID3D12Resource pDstResource, ref ID3D12Resource pSrcResource) mut => VT.CopyResource(ref this, ref pDstResource, ref pSrcResource);
			public void CopyTiles(ref ID3D12Resource pTiledResource, in D3D12_TILED_RESOURCE_COORDINATE pTileRegionStartCoordinate, in D3D12_TILE_REGION_SIZE pTileRegionSize, ref ID3D12Resource pBuffer, uint64 BufferStartOffsetInBytes, D3D12_TILE_COPY_FLAGS Flags) mut => VT.CopyTiles(ref this, ref pTiledResource, pTileRegionStartCoordinate, pTileRegionSize, ref pBuffer, BufferStartOffsetInBytes, Flags);
			public void ResolveSubresource(ref ID3D12Resource pDstResource, uint32 DstSubresource, ref ID3D12Resource pSrcResource, uint32 SrcSubresource, DXGI_FORMAT Format) mut => VT.ResolveSubresource(ref this, ref pDstResource, DstSubresource, ref pSrcResource, SrcSubresource, Format);
			public void IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology) mut => VT.IASetPrimitiveTopology(ref this, PrimitiveTopology);
			public void RSSetViewports(uint32 NumViewports, D3D12_VIEWPORT* pViewports) mut => VT.RSSetViewports(ref this, NumViewports, pViewports);
			public void RSSetScissorRects(uint32 NumRects, RECT* pRects) mut => VT.RSSetScissorRects(ref this, NumRects, pRects);
			public void OMSetBlendFactor(float* BlendFactor) mut => VT.OMSetBlendFactor(ref this, BlendFactor);
			public void OMSetStencilRef(uint32 StencilRef) mut => VT.OMSetStencilRef(ref this, StencilRef);
			public void SetPipelineState(ref ID3D12PipelineState pPipelineState) mut => VT.SetPipelineState(ref this, ref pPipelineState);
			public void ResourceBarrier(uint32 NumBarriers, D3D12_RESOURCE_BARRIER* pBarriers) mut => VT.ResourceBarrier(ref this, NumBarriers, pBarriers);
			public void ExecuteBundle(ref ID3D12GraphicsCommandList pCommandList) mut => VT.ExecuteBundle(ref this, ref pCommandList);
			public void SetDescriptorHeaps(uint32 NumDescriptorHeaps, ID3D12DescriptorHeap** ppDescriptorHeaps) mut => VT.SetDescriptorHeaps(ref this, NumDescriptorHeaps, ppDescriptorHeaps);
			public void SetComputeRootSignature(ID3D12RootSignature* pRootSignature) mut => VT.SetComputeRootSignature(ref this, pRootSignature);
			public void SetGraphicsRootSignature(ID3D12RootSignature* pRootSignature) mut => VT.SetGraphicsRootSignature(ref this, pRootSignature);
			public void SetComputeRootDescriptorTable(uint32 RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) mut => VT.SetComputeRootDescriptorTable(ref this, RootParameterIndex, BaseDescriptor);
			public void SetGraphicsRootDescriptorTable(uint32 RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) mut => VT.SetGraphicsRootDescriptorTable(ref this, RootParameterIndex, BaseDescriptor);
			public void SetComputeRoot32BitConstant(uint32 RootParameterIndex, uint32 SrcData, uint32 DestOffsetIn32BitValues) mut => VT.SetComputeRoot32BitConstant(ref this, RootParameterIndex, SrcData, DestOffsetIn32BitValues);
			public void SetGraphicsRoot32BitConstant(uint32 RootParameterIndex, uint32 SrcData, uint32 DestOffsetIn32BitValues) mut => VT.SetGraphicsRoot32BitConstant(ref this, RootParameterIndex, SrcData, DestOffsetIn32BitValues);
			public void SetComputeRoot32BitConstants(uint32 RootParameterIndex, uint32 Num32BitValuesToSet, void* pSrcData, uint32 DestOffsetIn32BitValues) mut => VT.SetComputeRoot32BitConstants(ref this, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues);
			public void SetGraphicsRoot32BitConstants(uint32 RootParameterIndex, uint32 Num32BitValuesToSet, void* pSrcData, uint32 DestOffsetIn32BitValues) mut => VT.SetGraphicsRoot32BitConstants(ref this, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues);
			public void SetComputeRootConstantBufferView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetComputeRootConstantBufferView(ref this, RootParameterIndex, BufferLocation);
			public void SetGraphicsRootConstantBufferView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetGraphicsRootConstantBufferView(ref this, RootParameterIndex, BufferLocation);
			public void SetComputeRootShaderResourceView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetComputeRootShaderResourceView(ref this, RootParameterIndex, BufferLocation);
			public void SetGraphicsRootShaderResourceView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetGraphicsRootShaderResourceView(ref this, RootParameterIndex, BufferLocation);
			public void SetComputeRootUnorderedAccessView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetComputeRootUnorderedAccessView(ref this, RootParameterIndex, BufferLocation);
			public void SetGraphicsRootUnorderedAccessView(uint32 RootParameterIndex, uint64 BufferLocation) mut => VT.SetGraphicsRootUnorderedAccessView(ref this, RootParameterIndex, BufferLocation);
			public void IASetIndexBuffer(D3D12_INDEX_BUFFER_VIEW* pView) mut => VT.IASetIndexBuffer(ref this, pView);
			public void IASetVertexBuffers(uint32 StartSlot, uint32 NumViews, D3D12_VERTEX_BUFFER_VIEW* pViews) mut => VT.IASetVertexBuffers(ref this, StartSlot, NumViews, pViews);
			public void SOSetTargets(uint32 StartSlot, uint32 NumViews, D3D12_STREAM_OUTPUT_BUFFER_VIEW* pViews) mut => VT.SOSetTargets(ref this, StartSlot, NumViews, pViews);
			public void OMSetRenderTargets(uint32 NumRenderTargetDescriptors, D3D12_CPU_DESCRIPTOR_HANDLE* pRenderTargetDescriptors, BOOL RTsSingleHandleToDescriptorRange, D3D12_CPU_DESCRIPTOR_HANDLE* pDepthStencilDescriptor) mut => VT.OMSetRenderTargets(ref this, NumRenderTargetDescriptors, pRenderTargetDescriptors, RTsSingleHandleToDescriptorRange, pDepthStencilDescriptor);
			public void ClearDepthStencilView(D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, D3D12_CLEAR_FLAGS ClearFlags, float Depth, uint8 Stencil, uint32 NumRects, RECT* pRects) mut => VT.ClearDepthStencilView(ref this, DepthStencilView, ClearFlags, Depth, Stencil, NumRects, pRects);
			public void ClearRenderTargetView(D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, in float ColorRGBA, uint32 NumRects, RECT* pRects) mut => VT.ClearRenderTargetView(ref this, RenderTargetView, ColorRGBA, NumRects, pRects);
			public void ClearUnorderedAccessViewUint(D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ref ID3D12Resource pResource, in uint32 Values, uint32 NumRects, RECT* pRects) mut => VT.ClearUnorderedAccessViewUint(ref this, ViewGPUHandleInCurrentHeap, ViewCPUHandle, ref pResource, Values, NumRects, pRects);
			public void ClearUnorderedAccessViewFloat(D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ref ID3D12Resource pResource, in float Values, uint32 NumRects, RECT* pRects) mut => VT.ClearUnorderedAccessViewFloat(ref this, ViewGPUHandleInCurrentHeap, ViewCPUHandle, ref pResource, Values, NumRects, pRects);
			public void DiscardResource(ref ID3D12Resource pResource, D3D12_DISCARD_REGION* pRegion) mut => VT.DiscardResource(ref this, ref pResource, pRegion);
			public void BeginQuery(ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 Index) mut => VT.BeginQuery(ref this, ref pQueryHeap, Type, Index);
			public void EndQuery(ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 Index) mut => VT.EndQuery(ref this, ref pQueryHeap, Type, Index);
			public void ResolveQueryData(ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 StartIndex, uint32 NumQueries, ref ID3D12Resource pDestinationBuffer, uint64 AlignedDestinationBufferOffset) mut => VT.ResolveQueryData(ref this, ref pQueryHeap, Type, StartIndex, NumQueries, ref pDestinationBuffer, AlignedDestinationBufferOffset);
			public void SetPredication(ID3D12Resource* pBuffer, uint64 AlignedBufferOffset, D3D12_PREDICATION_OP Operation) mut => VT.SetPredication(ref this, pBuffer, AlignedBufferOffset, Operation);
			public void SetMarker(uint32 Metadata, void* pData, uint32 Size) mut => VT.SetMarker(ref this, Metadata, pData, Size);
			public void BeginEvent(uint32 Metadata, void* pData, uint32 Size) mut => VT.BeginEvent(ref this, Metadata, pData, Size);
			public void EndEvent() mut => VT.EndEvent(ref this);
			public void ExecuteIndirect(ref ID3D12CommandSignature pCommandSignature, uint32 MaxCommandCount, ref ID3D12Resource pArgumentBuffer, uint64 ArgumentBufferOffset, ID3D12Resource* pCountBuffer, uint64 CountBufferOffset) mut => VT.ExecuteIndirect(ref this, ref pCommandSignature, MaxCommandCount, ref pArgumentBuffer, ArgumentBufferOffset, pCountBuffer, CountBufferOffset);

			[CRepr]
			public struct VTable : ID3D12CommandList.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12GraphicsCommandList self) Close;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12GraphicsCommandList self, ref ID3D12CommandAllocator pAllocator, ID3D12PipelineState* pInitialState) Reset;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ID3D12PipelineState* pPipelineState) ClearState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 VertexCountPerInstance, uint32 InstanceCount, uint32 StartVertexLocation, uint32 StartInstanceLocation) DrawInstanced;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 IndexCountPerInstance, uint32 InstanceCount, uint32 StartIndexLocation, int32 BaseVertexLocation, uint32 StartInstanceLocation) DrawIndexedInstanced;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) Dispatch;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint64 NumBytes) CopyBufferRegion;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, in D3D12_TEXTURE_COPY_LOCATION pDst, uint32 DstX, uint32 DstY, uint32 DstZ, in D3D12_TEXTURE_COPY_LOCATION pSrc, D3D12_BOX* pSrcBox) CopyTextureRegion;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12Resource pDstResource, ref ID3D12Resource pSrcResource) CopyResource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12Resource pTiledResource, in D3D12_TILED_RESOURCE_COORDINATE pTileRegionStartCoordinate, in D3D12_TILE_REGION_SIZE pTileRegionSize, ref ID3D12Resource pBuffer, uint64 BufferStartOffsetInBytes, D3D12_TILE_COPY_FLAGS Flags) CopyTiles;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12Resource pDstResource, uint32 DstSubresource, ref ID3D12Resource pSrcResource, uint32 SrcSubresource, DXGI_FORMAT Format) ResolveSubresource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D_PRIMITIVE_TOPOLOGY PrimitiveTopology) IASetPrimitiveTopology;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 NumViewports, D3D12_VIEWPORT* pViewports) RSSetViewports;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 NumRects, RECT* pRects) RSSetScissorRects;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, float* BlendFactor) OMSetBlendFactor;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 StencilRef) OMSetStencilRef;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12PipelineState pPipelineState) SetPipelineState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 NumBarriers, D3D12_RESOURCE_BARRIER* pBarriers) ResourceBarrier;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12GraphicsCommandList pCommandList) ExecuteBundle;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 NumDescriptorHeaps, ID3D12DescriptorHeap** ppDescriptorHeaps) SetDescriptorHeaps;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ID3D12RootSignature* pRootSignature) SetComputeRootSignature;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ID3D12RootSignature* pRootSignature) SetGraphicsRootSignature;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) SetComputeRootDescriptorTable;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) SetGraphicsRootDescriptorTable;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint32 SrcData, uint32 DestOffsetIn32BitValues) SetComputeRoot32BitConstant;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint32 SrcData, uint32 DestOffsetIn32BitValues) SetGraphicsRoot32BitConstant;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint32 Num32BitValuesToSet, void* pSrcData, uint32 DestOffsetIn32BitValues) SetComputeRoot32BitConstants;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint32 Num32BitValuesToSet, void* pSrcData, uint32 DestOffsetIn32BitValues) SetGraphicsRoot32BitConstants;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetComputeRootConstantBufferView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetGraphicsRootConstantBufferView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetComputeRootShaderResourceView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetGraphicsRootShaderResourceView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetComputeRootUnorderedAccessView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 RootParameterIndex, uint64 BufferLocation) SetGraphicsRootUnorderedAccessView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D12_INDEX_BUFFER_VIEW* pView) IASetIndexBuffer;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 StartSlot, uint32 NumViews, D3D12_VERTEX_BUFFER_VIEW* pViews) IASetVertexBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 StartSlot, uint32 NumViews, D3D12_STREAM_OUTPUT_BUFFER_VIEW* pViews) SOSetTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 NumRenderTargetDescriptors, D3D12_CPU_DESCRIPTOR_HANDLE* pRenderTargetDescriptors, BOOL RTsSingleHandleToDescriptorRange, D3D12_CPU_DESCRIPTOR_HANDLE* pDepthStencilDescriptor) OMSetRenderTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, D3D12_CLEAR_FLAGS ClearFlags, float Depth, uint8 Stencil, uint32 NumRects, RECT* pRects) ClearDepthStencilView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, in float ColorRGBA, uint32 NumRects, RECT* pRects) ClearRenderTargetView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ref ID3D12Resource pResource, in uint32 Values, uint32 NumRects, RECT* pRects) ClearUnorderedAccessViewUint;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ref ID3D12Resource pResource, in float Values, uint32 NumRects, RECT* pRects) ClearUnorderedAccessViewFloat;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12Resource pResource, D3D12_DISCARD_REGION* pRegion) DiscardResource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 Index) BeginQuery;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 Index) EndQuery;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint32 StartIndex, uint32 NumQueries, ref ID3D12Resource pDestinationBuffer, uint64 AlignedDestinationBufferOffset) ResolveQueryData;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ID3D12Resource* pBuffer, uint64 AlignedBufferOffset, D3D12_PREDICATION_OP Operation) SetPredication;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 Metadata, void* pData, uint32 Size) SetMarker;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, uint32 Metadata, void* pData, uint32 Size) BeginEvent;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self) EndEvent;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList self, ref ID3D12CommandSignature pCommandSignature, uint32 MaxCommandCount, ref ID3D12Resource pArgumentBuffer, uint64 ArgumentBufferOffset, ID3D12Resource* pCountBuffer, uint64 CountBufferOffset) ExecuteIndirect;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList
		{
			public const new Guid IID = .(0x553103fb, 0x1fe7, 0x4557, 0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7);
			
			public new VTable* VT { get => (.)vt; }
			
			public void AtomicCopyBufferUINT(ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint32 Dependencies, ID3D12Resource** ppDependentResources, D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges) mut => VT.AtomicCopyBufferUINT(ref this, ref pDstBuffer, DstOffset, ref pSrcBuffer, SrcOffset, Dependencies, ppDependentResources, pDependentSubresourceRanges);
			public void AtomicCopyBufferUINT64(ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint32 Dependencies, ID3D12Resource** ppDependentResources, D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges) mut => VT.AtomicCopyBufferUINT64(ref this, ref pDstBuffer, DstOffset, ref pSrcBuffer, SrcOffset, Dependencies, ppDependentResources, pDependentSubresourceRanges);
			public void OMSetDepthBounds(float Min, float Max) mut => VT.OMSetDepthBounds(ref this, Min, Max);
			public void SetSamplePositions(uint32 NumSamplesPerPixel, uint32 NumPixels, ref D3D12_SAMPLE_POSITION pSamplePositions) mut => VT.SetSamplePositions(ref this, NumSamplesPerPixel, NumPixels, ref pSamplePositions);
			public void ResolveSubresourceRegion(ref ID3D12Resource pDstResource, uint32 DstSubresource, uint32 DstX, uint32 DstY, ref ID3D12Resource pSrcResource, uint32 SrcSubresource, RECT* pSrcRect, DXGI_FORMAT Format, D3D12_RESOLVE_MODE ResolveMode) mut => VT.ResolveSubresourceRegion(ref this, ref pDstResource, DstSubresource, DstX, DstY, ref pSrcResource, SrcSubresource, pSrcRect, Format, ResolveMode);
			public void SetViewInstanceMask(uint32 Mask) mut => VT.SetViewInstanceMask(ref this, Mask);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint32 Dependencies, ID3D12Resource** ppDependentResources, D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges) AtomicCopyBufferUINT;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, ref ID3D12Resource pDstBuffer, uint64 DstOffset, ref ID3D12Resource pSrcBuffer, uint64 SrcOffset, uint32 Dependencies, ID3D12Resource** ppDependentResources, D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges) AtomicCopyBufferUINT64;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, float Min, float Max) OMSetDepthBounds;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, uint32 NumSamplesPerPixel, uint32 NumPixels, ref D3D12_SAMPLE_POSITION pSamplePositions) SetSamplePositions;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, ref ID3D12Resource pDstResource, uint32 DstSubresource, uint32 DstX, uint32 DstY, ref ID3D12Resource pSrcResource, uint32 SrcSubresource, RECT* pSrcRect, DXGI_FORMAT Format, D3D12_RESOLVE_MODE ResolveMode) ResolveSubresourceRegion;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList1 self, uint32 Mask) SetViewInstanceMask;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1
		{
			public const new Guid IID = .(0x38c3e585, 0xff17, 0x412c, 0x91, 0x50, 0x4f, 0xc6, 0xf9, 0xd7, 0x2a, 0x28);
			
			public new VTable* VT { get => (.)vt; }
			
			public void WriteBufferImmediate(uint32 Count, D3D12_WRITEBUFFERIMMEDIATE_PARAMETER* pParams, D3D12_WRITEBUFFERIMMEDIATE_MODE* pModes) mut => VT.WriteBufferImmediate(ref this, Count, pParams, pModes);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList1.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList2 self, uint32 Count, D3D12_WRITEBUFFERIMMEDIATE_PARAMETER* pParams, D3D12_WRITEBUFFERIMMEDIATE_MODE* pModes) WriteBufferImmediate;
			}
		}
		[CRepr]
		public struct ID3D12CommandQueue : ID3D12Pageable
		{
			public const new Guid IID = .(0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed);
			
			public new VTable* VT { get => (.)vt; }
			
			public void UpdateTileMappings(ref ID3D12Resource pResource, uint32 NumResourceRegions, D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates, D3D12_TILE_REGION_SIZE* pResourceRegionSizes, ID3D12Heap* pHeap, uint32 NumRanges, D3D12_TILE_RANGE_FLAGS* pRangeFlags, uint32* pHeapRangeStartOffsets, uint32* pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags) mut => VT.UpdateTileMappings(ref this, ref pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags);
			public void CopyTileMappings(ref ID3D12Resource pDstResource, in D3D12_TILED_RESOURCE_COORDINATE pDstRegionStartCoordinate, ref ID3D12Resource pSrcResource, in D3D12_TILED_RESOURCE_COORDINATE pSrcRegionStartCoordinate, in D3D12_TILE_REGION_SIZE pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags) mut => VT.CopyTileMappings(ref this, ref pDstResource, pDstRegionStartCoordinate, ref pSrcResource, pSrcRegionStartCoordinate, pRegionSize, Flags);
			public void ExecuteCommandLists(uint32 NumCommandLists, ID3D12CommandList** ppCommandLists) mut => VT.ExecuteCommandLists(ref this, NumCommandLists, ppCommandLists);
			public void SetMarker(uint32 Metadata, void* pData, uint32 Size) mut => VT.SetMarker(ref this, Metadata, pData, Size);
			public void BeginEvent(uint32 Metadata, void* pData, uint32 Size) mut => VT.BeginEvent(ref this, Metadata, pData, Size);
			public void EndEvent() mut => VT.EndEvent(ref this);
			public HRESULT Signal(ref ID3D12Fence pFence, uint64 Value) mut => VT.Signal(ref this, ref pFence, Value);
			public HRESULT Wait(ref ID3D12Fence pFence, uint64 Value) mut => VT.Wait(ref this, ref pFence, Value);
			public HRESULT GetTimestampFrequency(out uint64 pFrequency) mut => VT.GetTimestampFrequency(ref this, out pFrequency);
			public HRESULT GetClockCalibration(out uint64 pGpuTimestamp, out uint64 pCpuTimestamp) mut => VT.GetClockCalibration(ref this, out pGpuTimestamp, out pCpuTimestamp);
			public D3D12_COMMAND_QUEUE_DESC GetDesc() mut => VT.GetDesc(ref this);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self, ref ID3D12Resource pResource, uint32 NumResourceRegions, D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates, D3D12_TILE_REGION_SIZE* pResourceRegionSizes, ID3D12Heap* pHeap, uint32 NumRanges, D3D12_TILE_RANGE_FLAGS* pRangeFlags, uint32* pHeapRangeStartOffsets, uint32* pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags) UpdateTileMappings;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self, ref ID3D12Resource pDstResource, in D3D12_TILED_RESOURCE_COORDINATE pDstRegionStartCoordinate, ref ID3D12Resource pSrcResource, in D3D12_TILED_RESOURCE_COORDINATE pSrcRegionStartCoordinate, in D3D12_TILE_REGION_SIZE pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags) CopyTileMappings;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self, uint32 NumCommandLists, ID3D12CommandList** ppCommandLists) ExecuteCommandLists;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self, uint32 Metadata, void* pData, uint32 Size) SetMarker;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self, uint32 Metadata, void* pData, uint32 Size) BeginEvent;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12CommandQueue self) EndEvent;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12CommandQueue self, ref ID3D12Fence pFence, uint64 Value) Signal;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12CommandQueue self, ref ID3D12Fence pFence, uint64 Value) Wait;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12CommandQueue self, out uint64 pFrequency) GetTimestampFrequency;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12CommandQueue self, out uint64 pGpuTimestamp, out uint64 pCpuTimestamp) GetClockCalibration;
				public new function [CallingConvention(.Stdcall)] D3D12_COMMAND_QUEUE_DESC(ref ID3D12CommandQueue self) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D12Device : ID3D12Object
		{
			public const new Guid IID = .(0x189819f1, 0x1db6, 0x4b57, 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7);
			
			public new VTable* VT { get => (.)vt; }
			
			public uint32 GetNodeCount() mut => VT.GetNodeCount(ref this);
			public HRESULT CreateCommandQueue(in D3D12_COMMAND_QUEUE_DESC pDesc, in Guid riid, void** ppCommandQueue) mut => VT.CreateCommandQueue(ref this, pDesc, riid, ppCommandQueue);
			public HRESULT CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE type, in Guid riid, void** ppCommandAllocator) mut => VT.CreateCommandAllocator(ref this, type, riid, ppCommandAllocator);
			public HRESULT CreateGraphicsPipelineState(in D3D12_GRAPHICS_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.CreateGraphicsPipelineState(ref this, pDesc, riid, ppPipelineState);
			public HRESULT CreateComputePipelineState(in D3D12_COMPUTE_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.CreateComputePipelineState(ref this, pDesc, riid, ppPipelineState);
			public HRESULT CreateCommandList(uint32 nodeMask, D3D12_COMMAND_LIST_TYPE type, ref ID3D12CommandAllocator pCommandAllocator, ID3D12PipelineState* pInitialState, in Guid riid, void** ppCommandList) mut => VT.CreateCommandList(ref this, nodeMask, type, ref pCommandAllocator, pInitialState, riid, ppCommandList);
			public HRESULT CheckFeatureSupport(D3D12_FEATURE Feature, void* pFeatureSupportData, uint32 FeatureSupportDataSize) mut => VT.CheckFeatureSupport(ref this, Feature, pFeatureSupportData, FeatureSupportDataSize);
			public HRESULT CreateDescriptorHeap(in D3D12_DESCRIPTOR_HEAP_DESC pDescriptorHeapDesc, in Guid riid, void** ppvHeap) mut => VT.CreateDescriptorHeap(ref this, pDescriptorHeapDesc, riid, ppvHeap);
			public uint32 GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) mut => VT.GetDescriptorHandleIncrementSize(ref this, DescriptorHeapType);
			public HRESULT CreateRootSignature(uint32 nodeMask, void* pBlobWithRootSignature, uint blobLengthInBytes, in Guid riid, void** ppvRootSignature) mut => VT.CreateRootSignature(ref this, nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature);
			public void CreateConstantBufferView(D3D12_CONSTANT_BUFFER_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateConstantBufferView(ref this, pDesc, DestDescriptor);
			public void CreateShaderResourceView(ID3D12Resource* pResource, D3D12_SHADER_RESOURCE_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateShaderResourceView(ref this, pResource, pDesc, DestDescriptor);
			public void CreateUnorderedAccessView(ID3D12Resource* pResource, ID3D12Resource* pCounterResource, D3D12_UNORDERED_ACCESS_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateUnorderedAccessView(ref this, pResource, pCounterResource, pDesc, DestDescriptor);
			public void CreateRenderTargetView(ID3D12Resource* pResource, D3D12_RENDER_TARGET_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateRenderTargetView(ref this, pResource, pDesc, DestDescriptor);
			public void CreateDepthStencilView(ID3D12Resource* pResource, D3D12_DEPTH_STENCIL_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateDepthStencilView(ref this, pResource, pDesc, DestDescriptor);
			public void CreateSampler(in D3D12_SAMPLER_DESC pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateSampler(ref this, pDesc, DestDescriptor);
			public void CopyDescriptors(uint32 NumDestDescriptorRanges, D3D12_CPU_DESCRIPTOR_HANDLE* pDestDescriptorRangeStarts, uint32* pDestDescriptorRangeSizes, uint32 NumSrcDescriptorRanges, D3D12_CPU_DESCRIPTOR_HANDLE* pSrcDescriptorRangeStarts, uint32* pSrcDescriptorRangeSizes, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) mut => VT.CopyDescriptors(ref this, NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType);
			public void CopyDescriptorsSimple(uint32 NumDescriptors, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) mut => VT.CopyDescriptorsSimple(ref this, NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType);
			public D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC* pResourceDescs) mut => VT.GetResourceAllocationInfo(ref this, visibleMask, numResourceDescs, pResourceDescs);
			public D3D12_HEAP_PROPERTIES GetCustomHeapProperties(uint32 nodeMask, D3D12_HEAP_TYPE heapType) mut => VT.GetCustomHeapProperties(ref this, nodeMask, heapType);
			public HRESULT CreateCommittedResource(in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riidResource, void** ppvResource) mut => VT.CreateCommittedResource(ref this, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource);
			public HRESULT CreateHeap(in D3D12_HEAP_DESC pDesc, in Guid riid, void** ppvHeap) mut => VT.CreateHeap(ref this, pDesc, riid, ppvHeap);
			public HRESULT CreatePlacedResource(ref ID3D12Heap pHeap, uint64 HeapOffset, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) mut => VT.CreatePlacedResource(ref this, ref pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource);
			public HRESULT CreateReservedResource(in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) mut => VT.CreateReservedResource(ref this, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource);
			public HRESULT CreateSharedHandle(ref ID3D12DeviceChild pObject, SECURITY_ATTRIBUTES* pAttributes, uint32 Access, PWSTR Name, out HANDLE pHandle) mut => VT.CreateSharedHandle(ref this, ref pObject, pAttributes, Access, Name, out pHandle);
			public HRESULT OpenSharedHandle(HANDLE NTHandle, in Guid riid, void** ppvObj) mut => VT.OpenSharedHandle(ref this, NTHandle, riid, ppvObj);
			public HRESULT OpenSharedHandleByName(PWSTR Name, uint32 Access, out HANDLE pNTHandle) mut => VT.OpenSharedHandleByName(ref this, Name, Access, out pNTHandle);
			public HRESULT MakeResident(uint32 NumObjects, ID3D12Pageable** ppObjects) mut => VT.MakeResident(ref this, NumObjects, ppObjects);
			public HRESULT Evict(uint32 NumObjects, ID3D12Pageable** ppObjects) mut => VT.Evict(ref this, NumObjects, ppObjects);
			public HRESULT CreateFence(uint64 InitialValue, D3D12_FENCE_FLAGS Flags, in Guid riid, void** ppFence) mut => VT.CreateFence(ref this, InitialValue, Flags, riid, ppFence);
			public HRESULT GetDeviceRemovedReason() mut => VT.GetDeviceRemovedReason(ref this);
			public void GetCopyableFootprints(in D3D12_RESOURCE_DESC pResourceDesc, uint32 FirstSubresource, uint32 NumSubresources, uint64 BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, uint32* pNumRows, uint64* pRowSizeInBytes, uint64* pTotalBytes) mut => VT.GetCopyableFootprints(ref this, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes);
			public HRESULT CreateQueryHeap(in D3D12_QUERY_HEAP_DESC pDesc, in Guid riid, void** ppvHeap) mut => VT.CreateQueryHeap(ref this, pDesc, riid, ppvHeap);
			public HRESULT SetStablePowerState(BOOL Enable) mut => VT.SetStablePowerState(ref this, Enable);
			public HRESULT CreateCommandSignature(in D3D12_COMMAND_SIGNATURE_DESC pDesc, ID3D12RootSignature* pRootSignature, in Guid riid, void** ppvCommandSignature) mut => VT.CreateCommandSignature(ref this, pDesc, pRootSignature, riid, ppvCommandSignature);
			public void GetResourceTiling(ref ID3D12Resource pTiledResource, uint32* pNumTilesForEntireResource, D3D12_PACKED_MIP_INFO* pPackedMipDesc, D3D12_TILE_SHAPE* pStandardTileShapeForNonPackedMips, uint32* pNumSubresourceTilings, uint32 FirstSubresourceTilingToGet, D3D12_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips) mut => VT.GetResourceTiling(ref this, ref pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips);
			public LUID GetAdapterLuid() mut => VT.GetAdapterLuid(ref this);

			[CRepr]
			public struct VTable : ID3D12Object.VTable
			{
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12Device self) GetNodeCount;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_COMMAND_QUEUE_DESC pDesc, in Guid riid, void** ppCommandQueue) CreateCommandQueue;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, D3D12_COMMAND_LIST_TYPE type, in Guid riid, void** ppCommandAllocator) CreateCommandAllocator;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_GRAPHICS_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) CreateGraphicsPipelineState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_COMPUTE_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) CreateComputePipelineState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, uint32 nodeMask, D3D12_COMMAND_LIST_TYPE type, ref ID3D12CommandAllocator pCommandAllocator, ID3D12PipelineState* pInitialState, in Guid riid, void** ppCommandList) CreateCommandList;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, D3D12_FEATURE Feature, void* pFeatureSupportData, uint32 FeatureSupportDataSize) CheckFeatureSupport;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_DESCRIPTOR_HEAP_DESC pDescriptorHeapDesc, in Guid riid, void** ppvHeap) CreateDescriptorHeap;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12Device self, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) GetDescriptorHandleIncrementSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, uint32 nodeMask, void* pBlobWithRootSignature, uint blobLengthInBytes, in Guid riid, void** ppvRootSignature) CreateRootSignature;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, D3D12_CONSTANT_BUFFER_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateConstantBufferView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, ID3D12Resource* pResource, D3D12_SHADER_RESOURCE_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateShaderResourceView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, ID3D12Resource* pResource, ID3D12Resource* pCounterResource, D3D12_UNORDERED_ACCESS_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateUnorderedAccessView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, ID3D12Resource* pResource, D3D12_RENDER_TARGET_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateRenderTargetView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, ID3D12Resource* pResource, D3D12_DEPTH_STENCIL_VIEW_DESC* pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateDepthStencilView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, in D3D12_SAMPLER_DESC pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateSampler;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, uint32 NumDestDescriptorRanges, D3D12_CPU_DESCRIPTOR_HANDLE* pDestDescriptorRangeStarts, uint32* pDestDescriptorRangeSizes, uint32 NumSrcDescriptorRanges, D3D12_CPU_DESCRIPTOR_HANDLE* pSrcDescriptorRangeStarts, uint32* pSrcDescriptorRangeSizes, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) CopyDescriptors;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, uint32 NumDescriptors, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) CopyDescriptorsSimple;
				public new function [CallingConvention(.Stdcall)] D3D12_RESOURCE_ALLOCATION_INFO(ref ID3D12Device self, uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC* pResourceDescs) GetResourceAllocationInfo;
				public new function [CallingConvention(.Stdcall)] D3D12_HEAP_PROPERTIES(ref ID3D12Device self, uint32 nodeMask, D3D12_HEAP_TYPE heapType) GetCustomHeapProperties;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riidResource, void** ppvResource) CreateCommittedResource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_HEAP_DESC pDesc, in Guid riid, void** ppvHeap) CreateHeap;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, ref ID3D12Heap pHeap, uint64 HeapOffset, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) CreatePlacedResource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) CreateReservedResource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, ref ID3D12DeviceChild pObject, SECURITY_ATTRIBUTES* pAttributes, uint32 Access, PWSTR Name, out HANDLE pHandle) CreateSharedHandle;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, HANDLE NTHandle, in Guid riid, void** ppvObj) OpenSharedHandle;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, PWSTR Name, uint32 Access, out HANDLE pNTHandle) OpenSharedHandleByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, uint32 NumObjects, ID3D12Pageable** ppObjects) MakeResident;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, uint32 NumObjects, ID3D12Pageable** ppObjects) Evict;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, uint64 InitialValue, D3D12_FENCE_FLAGS Flags, in Guid riid, void** ppFence) CreateFence;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self) GetDeviceRemovedReason;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, in D3D12_RESOURCE_DESC pResourceDesc, uint32 FirstSubresource, uint32 NumSubresources, uint64 BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, uint32* pNumRows, uint64* pRowSizeInBytes, uint64* pTotalBytes) GetCopyableFootprints;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_QUERY_HEAP_DESC pDesc, in Guid riid, void** ppvHeap) CreateQueryHeap;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, BOOL Enable) SetStablePowerState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device self, in D3D12_COMMAND_SIGNATURE_DESC pDesc, ID3D12RootSignature* pRootSignature, in Guid riid, void** ppvCommandSignature) CreateCommandSignature;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device self, ref ID3D12Resource pTiledResource, uint32* pNumTilesForEntireResource, D3D12_PACKED_MIP_INFO* pPackedMipDesc, D3D12_TILE_SHAPE* pStandardTileShapeForNonPackedMips, uint32* pNumSubresourceTilings, uint32 FirstSubresourceTilingToGet, D3D12_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips) GetResourceTiling;
				public new function [CallingConvention(.Stdcall)] LUID(ref ID3D12Device self) GetAdapterLuid;
			}
		}
		[CRepr]
		public struct ID3D12PipelineLibrary : ID3D12DeviceChild
		{
			public const new Guid IID = .(0xc64226a8, 0x9201, 0x46af, 0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT StorePipeline(PWSTR pName, ref ID3D12PipelineState pPipeline) mut => VT.StorePipeline(ref this, pName, ref pPipeline);
			public HRESULT LoadGraphicsPipeline(PWSTR pName, in D3D12_GRAPHICS_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.LoadGraphicsPipeline(ref this, pName, pDesc, riid, ppPipelineState);
			public HRESULT LoadComputePipeline(PWSTR pName, in D3D12_COMPUTE_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.LoadComputePipeline(ref this, pName, pDesc, riid, ppPipelineState);
			public uint GetSerializedSize() mut => VT.GetSerializedSize(ref this);
			public HRESULT Serialize(void* pData, uint DataSizeInBytes) mut => VT.Serialize(ref this, pData, DataSizeInBytes);

			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineLibrary self, PWSTR pName, ref ID3D12PipelineState pPipeline) StorePipeline;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineLibrary self, PWSTR pName, in D3D12_GRAPHICS_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) LoadGraphicsPipeline;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineLibrary self, PWSTR pName, in D3D12_COMPUTE_PIPELINE_STATE_DESC pDesc, in Guid riid, void** ppPipelineState) LoadComputePipeline;
				public new function [CallingConvention(.Stdcall)] uint(ref ID3D12PipelineLibrary self) GetSerializedSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineLibrary self, void* pData, uint DataSizeInBytes) Serialize;
			}
		}
		[CRepr]
		public struct ID3D12PipelineLibrary1 : ID3D12PipelineLibrary
		{
			public const new Guid IID = .(0x80eabf42, 0x2568, 0x4e5e, 0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT LoadPipeline(PWSTR pName, in D3D12_PIPELINE_STATE_STREAM_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.LoadPipeline(ref this, pName, pDesc, riid, ppPipelineState);

			[CRepr]
			public struct VTable : ID3D12PipelineLibrary.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12PipelineLibrary1 self, PWSTR pName, in D3D12_PIPELINE_STATE_STREAM_DESC pDesc, in Guid riid, void** ppPipelineState) LoadPipeline;
			}
		}
		[CRepr]
		public struct ID3D12Device1 : ID3D12Device
		{
			public const new Guid IID = .(0x77acce80, 0x638e, 0x4e65, 0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreatePipelineLibrary(void* pLibraryBlob, uint BlobLength, in Guid riid, void** ppPipelineLibrary) mut => VT.CreatePipelineLibrary(ref this, pLibraryBlob, BlobLength, riid, ppPipelineLibrary);
			public HRESULT SetEventOnMultipleFenceCompletion(ID3D12Fence** ppFences, uint64* pFenceValues, uint32 NumFences, D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, HANDLE hEvent) mut => VT.SetEventOnMultipleFenceCompletion(ref this, ppFences, pFenceValues, NumFences, Flags, hEvent);
			public HRESULT SetResidencyPriority(uint32 NumObjects, ID3D12Pageable** ppObjects, D3D12_RESIDENCY_PRIORITY* pPriorities) mut => VT.SetResidencyPriority(ref this, NumObjects, ppObjects, pPriorities);

			[CRepr]
			public struct VTable : ID3D12Device.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device1 self, void* pLibraryBlob, uint BlobLength, in Guid riid, void** ppPipelineLibrary) CreatePipelineLibrary;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device1 self, ID3D12Fence** ppFences, uint64* pFenceValues, uint32 NumFences, D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, HANDLE hEvent) SetEventOnMultipleFenceCompletion;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device1 self, uint32 NumObjects, ID3D12Pageable** ppObjects, D3D12_RESIDENCY_PRIORITY* pPriorities) SetResidencyPriority;
			}
		}
		[CRepr]
		public struct ID3D12Device2 : ID3D12Device1
		{
			public const new Guid IID = .(0x30baa41e, 0xb15b, 0x475c, 0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreatePipelineState(in D3D12_PIPELINE_STATE_STREAM_DESC pDesc, in Guid riid, void** ppPipelineState) mut => VT.CreatePipelineState(ref this, pDesc, riid, ppPipelineState);

			[CRepr]
			public struct VTable : ID3D12Device1.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device2 self, in D3D12_PIPELINE_STATE_STREAM_DESC pDesc, in Guid riid, void** ppPipelineState) CreatePipelineState;
			}
		}
		[CRepr]
		public struct ID3D12Device3 : ID3D12Device2
		{
			public const new Guid IID = .(0x81dadc15, 0x2bad, 0x4392, 0x93, 0xc5, 0x10, 0x13, 0x45, 0xc4, 0xaa, 0x98);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT OpenExistingHeapFromAddress(void* pAddress, in Guid riid, void** ppvHeap) mut => VT.OpenExistingHeapFromAddress(ref this, pAddress, riid, ppvHeap);
			public HRESULT OpenExistingHeapFromFileMapping(HANDLE hFileMapping, in Guid riid, void** ppvHeap) mut => VT.OpenExistingHeapFromFileMapping(ref this, hFileMapping, riid, ppvHeap);
			public HRESULT EnqueueMakeResident(D3D12_RESIDENCY_FLAGS Flags, uint32 NumObjects, ID3D12Pageable** ppObjects, ref ID3D12Fence pFenceToSignal, uint64 FenceValueToSignal) mut => VT.EnqueueMakeResident(ref this, Flags, NumObjects, ppObjects, ref pFenceToSignal, FenceValueToSignal);

			[CRepr]
			public struct VTable : ID3D12Device2.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device3 self, void* pAddress, in Guid riid, void** ppvHeap) OpenExistingHeapFromAddress;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device3 self, HANDLE hFileMapping, in Guid riid, void** ppvHeap) OpenExistingHeapFromFileMapping;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device3 self, D3D12_RESIDENCY_FLAGS Flags, uint32 NumObjects, ID3D12Pageable** ppObjects, ref ID3D12Fence pFenceToSignal, uint64 FenceValueToSignal) EnqueueMakeResident;
			}
		}
		[CRepr]
		public struct ID3D12ProtectedSession : ID3D12DeviceChild
		{
			public const new Guid IID = .(0xa1533d18, 0x0ac1, 0x4084, 0x85, 0xb9, 0x89, 0xa9, 0x61, 0x16, 0x80, 0x6b);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetStatusFence(in Guid riid, void** ppFence) mut => VT.GetStatusFence(ref this, riid, ppFence);
			public D3D12_PROTECTED_SESSION_STATUS GetSessionStatus() mut => VT.GetSessionStatus(ref this);

			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ProtectedSession self, in Guid riid, void** ppFence) GetStatusFence;
				public new function [CallingConvention(.Stdcall)] D3D12_PROTECTED_SESSION_STATUS(ref ID3D12ProtectedSession self) GetSessionStatus;
			}
		}
		[CRepr]
		public struct ID3D12ProtectedResourceSession : ID3D12ProtectedSession
		{
			public const new Guid IID = .(0x6cd696f4, 0xf289, 0x40cc, 0x80, 0x91, 0x5a, 0x6c, 0x0a, 0x09, 0x9c, 0x3d);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_PROTECTED_RESOURCE_SESSION_DESC GetDesc() mut => VT.GetDesc(ref this);

			[CRepr]
			public struct VTable : ID3D12ProtectedSession.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_PROTECTED_RESOURCE_SESSION_DESC(ref ID3D12ProtectedResourceSession self) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D12Device4 : ID3D12Device3
		{
			public const new Guid IID = .(0xe865df17, 0xa9ee, 0x46f9, 0xa4, 0x63, 0x30, 0x98, 0x31, 0x5a, 0xa2, 0xe5);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateCommandList1(uint32 nodeMask, D3D12_COMMAND_LIST_TYPE type, D3D12_COMMAND_LIST_FLAGS flags, in Guid riid, void** ppCommandList) mut => VT.CreateCommandList1(ref this, nodeMask, type, flags, riid, ppCommandList);
			public HRESULT CreateProtectedResourceSession(in D3D12_PROTECTED_RESOURCE_SESSION_DESC pDesc, in Guid riid, void** ppSession) mut => VT.CreateProtectedResourceSession(ref this, pDesc, riid, ppSession);
			public HRESULT CreateCommittedResource1(in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riidResource, void** ppvResource) mut => VT.CreateCommittedResource1(ref this, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, pProtectedSession, riidResource, ppvResource);
			public HRESULT CreateHeap1(in D3D12_HEAP_DESC pDesc, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riid, void** ppvHeap) mut => VT.CreateHeap1(ref this, pDesc, pProtectedSession, riid, ppvHeap);
			public HRESULT CreateReservedResource1(in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riid, void** ppvResource) mut => VT.CreateReservedResource1(ref this, pDesc, InitialState, pOptimizedClearValue, pProtectedSession, riid, ppvResource);
			public D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1) mut => VT.GetResourceAllocationInfo1(ref this, visibleMask, numResourceDescs, pResourceDescs, pResourceAllocationInfo1);

			[CRepr]
			public struct VTable : ID3D12Device3.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device4 self, uint32 nodeMask, D3D12_COMMAND_LIST_TYPE type, D3D12_COMMAND_LIST_FLAGS flags, in Guid riid, void** ppCommandList) CreateCommandList1;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device4 self, in D3D12_PROTECTED_RESOURCE_SESSION_DESC pDesc, in Guid riid, void** ppSession) CreateProtectedResourceSession;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device4 self, in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riidResource, void** ppvResource) CreateCommittedResource1;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device4 self, in D3D12_HEAP_DESC pDesc, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riid, void** ppvHeap) CreateHeap1;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device4 self, in D3D12_RESOURCE_DESC pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riid, void** ppvResource) CreateReservedResource1;
				public new function [CallingConvention(.Stdcall)] D3D12_RESOURCE_ALLOCATION_INFO(ref ID3D12Device4 self, uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1) GetResourceAllocationInfo1;
			}
		}
		[CRepr]
		public struct ID3D12LifetimeOwner : IUnknown
		{
			public const new Guid IID = .(0xe667af9f, 0xcd56, 0x4f46, 0x83, 0xce, 0x03, 0x2e, 0x59, 0x5d, 0x70, 0xa8);
			
			public new VTable* VT { get => (.)vt; }
			
			public void LifetimeStateUpdated(D3D12_LIFETIME_STATE NewState) mut => VT.LifetimeStateUpdated(ref this, NewState);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12LifetimeOwner self, D3D12_LIFETIME_STATE NewState) LifetimeStateUpdated;
			}
		}
		[CRepr]
		public struct ID3D12SwapChainAssistant : IUnknown
		{
			public const new Guid IID = .(0xf1df64b6, 0x57fd, 0x49cd, 0x88, 0x07, 0xc0, 0xeb, 0x88, 0xb4, 0x5c, 0x8f);
			
			public new VTable* VT { get => (.)vt; }
			
			public LUID GetLUID() mut => VT.GetLUID(ref this);
			public HRESULT GetSwapChainObject(in Guid riid, void** ppv) mut => VT.GetSwapChainObject(ref this, riid, ppv);
			public HRESULT GetCurrentResourceAndCommandQueue(in Guid riidResource, void** ppvResource, in Guid riidQueue, void** ppvQueue) mut => VT.GetCurrentResourceAndCommandQueue(ref this, riidResource, ppvResource, riidQueue, ppvQueue);
			public HRESULT InsertImplicitSync() mut => VT.InsertImplicitSync(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] LUID(ref ID3D12SwapChainAssistant self) GetLUID;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12SwapChainAssistant self, in Guid riid, void** ppv) GetSwapChainObject;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12SwapChainAssistant self, in Guid riidResource, void** ppvResource, in Guid riidQueue, void** ppvQueue) GetCurrentResourceAndCommandQueue;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12SwapChainAssistant self) InsertImplicitSync;
			}
		}
		[CRepr]
		public struct ID3D12LifetimeTracker : ID3D12DeviceChild
		{
			public const new Guid IID = .(0x3fd03d36, 0x4eb1, 0x424a, 0xa5, 0x82, 0x49, 0x4e, 0xcb, 0x8b, 0xa8, 0x13);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT DestroyOwnedObject(ref ID3D12DeviceChild pObject) mut => VT.DestroyOwnedObject(ref this, ref pObject);

			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12LifetimeTracker self, ref ID3D12DeviceChild pObject) DestroyOwnedObject;
			}
		}
		[CRepr]
		public struct ID3D12StateObject : ID3D12Pageable
		{
			public const new Guid IID = .(0x47016943, 0xfca8, 0x4594, 0x93, 0xea, 0xaf, 0x25, 0x8b, 0x55, 0x34, 0x6d);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D12Pageable.VTable {}
		}
		[CRepr]
		public struct ID3D12StateObjectProperties : IUnknown
		{
			public const new Guid IID = .(0xde5fa827, 0x9bf9, 0x4f26, 0x89, 0xff, 0xd7, 0xf5, 0x6f, 0xde, 0x38, 0x60);
			
			public new VTable* VT { get => (.)vt; }
			
			public void* GetShaderIdentifier(PWSTR pExportName) mut => VT.GetShaderIdentifier(ref this, pExportName);
			public uint64 GetShaderStackSize(PWSTR pExportName) mut => VT.GetShaderStackSize(ref this, pExportName);
			public uint64 GetPipelineStackSize() mut => VT.GetPipelineStackSize(ref this);
			public void SetPipelineStackSize(uint64 PipelineStackSizeInBytes) mut => VT.SetPipelineStackSize(ref this, PipelineStackSizeInBytes);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void*(ref ID3D12StateObjectProperties self, PWSTR pExportName) GetShaderIdentifier;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12StateObjectProperties self, PWSTR pExportName) GetShaderStackSize;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12StateObjectProperties self) GetPipelineStackSize;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12StateObjectProperties self, uint64 PipelineStackSizeInBytes) SetPipelineStackSize;
			}
		}
		[CRepr]
		public struct ID3D12Device5 : ID3D12Device4
		{
			public const new Guid IID = .(0x8b4f173b, 0x2fea, 0x4b80, 0x8f, 0x58, 0x43, 0x07, 0x19, 0x1a, 0xb9, 0x5d);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateLifetimeTracker(ref ID3D12LifetimeOwner pOwner, in Guid riid, void** ppvTracker) mut => VT.CreateLifetimeTracker(ref this, ref pOwner, riid, ppvTracker);
			public void RemoveDevice() mut => VT.RemoveDevice(ref this);
			public HRESULT EnumerateMetaCommands(out uint32 pNumMetaCommands, D3D12_META_COMMAND_DESC* pDescs) mut => VT.EnumerateMetaCommands(ref this, out pNumMetaCommands, pDescs);
			public HRESULT EnumerateMetaCommandParameters(in Guid CommandId, D3D12_META_COMMAND_PARAMETER_STAGE Stage, uint32* pTotalStructureSizeInBytes, out uint32 pParameterCount, D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs) mut => VT.EnumerateMetaCommandParameters(ref this, CommandId, Stage, pTotalStructureSizeInBytes, out pParameterCount, pParameterDescs);
			public HRESULT CreateMetaCommand(in Guid CommandId, uint32 NodeMask, void* pCreationParametersData, uint CreationParametersDataSizeInBytes, in Guid riid, void** ppMetaCommand) mut => VT.CreateMetaCommand(ref this, CommandId, NodeMask, pCreationParametersData, CreationParametersDataSizeInBytes, riid, ppMetaCommand);
			public HRESULT CreateStateObject(in D3D12_STATE_OBJECT_DESC pDesc, in Guid riid, void** ppStateObject) mut => VT.CreateStateObject(ref this, pDesc, riid, ppStateObject);
			public void GetRaytracingAccelerationStructurePrebuildInfo(in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS pDesc, out D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO pInfo) mut => VT.GetRaytracingAccelerationStructurePrebuildInfo(ref this, pDesc, out pInfo);
			public D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS CheckDriverMatchingIdentifier(D3D12_SERIALIZED_DATA_TYPE SerializedDataType, in D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER pIdentifierToCheck) mut => VT.CheckDriverMatchingIdentifier(ref this, SerializedDataType, pIdentifierToCheck);

			[CRepr]
			public struct VTable : ID3D12Device4.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device5 self, ref ID3D12LifetimeOwner pOwner, in Guid riid, void** ppvTracker) CreateLifetimeTracker;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device5 self) RemoveDevice;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device5 self, out uint32 pNumMetaCommands, D3D12_META_COMMAND_DESC* pDescs) EnumerateMetaCommands;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device5 self, in Guid CommandId, D3D12_META_COMMAND_PARAMETER_STAGE Stage, uint32* pTotalStructureSizeInBytes, out uint32 pParameterCount, D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs) EnumerateMetaCommandParameters;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device5 self, in Guid CommandId, uint32 NodeMask, void* pCreationParametersData, uint CreationParametersDataSizeInBytes, in Guid riid, void** ppMetaCommand) CreateMetaCommand;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device5 self, in D3D12_STATE_OBJECT_DESC pDesc, in Guid riid, void** ppStateObject) CreateStateObject;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device5 self, in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS pDesc, out D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO pInfo) GetRaytracingAccelerationStructurePrebuildInfo;
				public new function [CallingConvention(.Stdcall)] D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(ref ID3D12Device5 self, D3D12_SERIALIZED_DATA_TYPE SerializedDataType, in D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER pIdentifierToCheck) CheckDriverMatchingIdentifier;
			}
		}
		[CRepr]
		public struct ID3D12DeviceRemovedExtendedDataSettings : IUnknown
		{
			public const new Guid IID = .(0x82bc481c, 0x6b9b, 0x4030, 0xae, 0xdb, 0x7e, 0xe3, 0xd1, 0xdf, 0x1e, 0x63);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetAutoBreadcrumbsEnablement(D3D12_DRED_ENABLEMENT Enablement) mut => VT.SetAutoBreadcrumbsEnablement(ref this, Enablement);
			public void SetPageFaultEnablement(D3D12_DRED_ENABLEMENT Enablement) mut => VT.SetPageFaultEnablement(ref this, Enablement);
			public void SetWatsonDumpEnablement(D3D12_DRED_ENABLEMENT Enablement) mut => VT.SetWatsonDumpEnablement(ref this, Enablement);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12DeviceRemovedExtendedDataSettings self, D3D12_DRED_ENABLEMENT Enablement) SetAutoBreadcrumbsEnablement;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12DeviceRemovedExtendedDataSettings self, D3D12_DRED_ENABLEMENT Enablement) SetPageFaultEnablement;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12DeviceRemovedExtendedDataSettings self, D3D12_DRED_ENABLEMENT Enablement) SetWatsonDumpEnablement;
			}
		}
		[CRepr]
		public struct ID3D12DeviceRemovedExtendedDataSettings1 : ID3D12DeviceRemovedExtendedDataSettings
		{
			public const new Guid IID = .(0xdbd5ae51, 0x3317, 0x4f0a, 0xad, 0xf9, 0x1d, 0x7c, 0xed, 0xca, 0xae, 0x0b);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT Enablement) mut => VT.SetBreadcrumbContextEnablement(ref this, Enablement);

			[CRepr]
			public struct VTable : ID3D12DeviceRemovedExtendedDataSettings.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12DeviceRemovedExtendedDataSettings1 self, D3D12_DRED_ENABLEMENT Enablement) SetBreadcrumbContextEnablement;
			}
		}
		[CRepr]
		public struct ID3D12DeviceRemovedExtendedData : IUnknown
		{
			public const new Guid IID = .(0x98931d33, 0x5ae8, 0x4791, 0xaa, 0x3c, 0x1a, 0x73, 0xa2, 0x93, 0x4e, 0x71);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetAutoBreadcrumbsOutput(out D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT pOutput) mut => VT.GetAutoBreadcrumbsOutput(ref this, out pOutput);
			public HRESULT GetPageFaultAllocationOutput(out D3D12_DRED_PAGE_FAULT_OUTPUT pOutput) mut => VT.GetPageFaultAllocationOutput(ref this, out pOutput);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceRemovedExtendedData self, out D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT pOutput) GetAutoBreadcrumbsOutput;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceRemovedExtendedData self, out D3D12_DRED_PAGE_FAULT_OUTPUT pOutput) GetPageFaultAllocationOutput;
			}
		}
		[CRepr]
		public struct ID3D12DeviceRemovedExtendedData1 : ID3D12DeviceRemovedExtendedData
		{
			public const new Guid IID = .(0x9727a022, 0xcf1d, 0x4dda, 0x9e, 0xba, 0xef, 0xfa, 0x65, 0x3f, 0xc5, 0x06);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetAutoBreadcrumbsOutput1(out D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 pOutput) mut => VT.GetAutoBreadcrumbsOutput1(ref this, out pOutput);
			public HRESULT GetPageFaultAllocationOutput1(out D3D12_DRED_PAGE_FAULT_OUTPUT1 pOutput) mut => VT.GetPageFaultAllocationOutput1(ref this, out pOutput);

			[CRepr]
			public struct VTable : ID3D12DeviceRemovedExtendedData.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceRemovedExtendedData1 self, out D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 pOutput) GetAutoBreadcrumbsOutput1;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceRemovedExtendedData1 self, out D3D12_DRED_PAGE_FAULT_OUTPUT1 pOutput) GetPageFaultAllocationOutput1;
			}
		}
		[CRepr]
		public struct ID3D12DeviceRemovedExtendedData2 : ID3D12DeviceRemovedExtendedData1
		{
			public const new Guid IID = .(0x67fc5816, 0xe4ca, 0x4915, 0xbf, 0x18, 0x42, 0x54, 0x12, 0x72, 0xda, 0x54);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetPageFaultAllocationOutput2(out D3D12_DRED_PAGE_FAULT_OUTPUT2 pOutput) mut => VT.GetPageFaultAllocationOutput2(ref this, out pOutput);
			public D3D12_DRED_DEVICE_STATE GetDeviceState() mut => VT.GetDeviceState(ref this);

			[CRepr]
			public struct VTable : ID3D12DeviceRemovedExtendedData1.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DeviceRemovedExtendedData2 self, out D3D12_DRED_PAGE_FAULT_OUTPUT2 pOutput) GetPageFaultAllocationOutput2;
				public new function [CallingConvention(.Stdcall)] D3D12_DRED_DEVICE_STATE(ref ID3D12DeviceRemovedExtendedData2 self) GetDeviceState;
			}
		}
		[CRepr]
		public struct ID3D12Device6 : ID3D12Device5
		{
			public const new Guid IID = .(0xc70b221b, 0x40e4, 0x4a17, 0x89, 0xaf, 0x02, 0x5a, 0x07, 0x27, 0xa6, 0xdc);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetBackgroundProcessingMode(D3D12_BACKGROUND_PROCESSING_MODE Mode, D3D12_MEASUREMENTS_ACTION MeasurementsAction, HANDLE hEventToSignalUponCompletion, BOOL* pbFurtherMeasurementsDesired) mut => VT.SetBackgroundProcessingMode(ref this, Mode, MeasurementsAction, hEventToSignalUponCompletion, pbFurtherMeasurementsDesired);

			[CRepr]
			public struct VTable : ID3D12Device5.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device6 self, D3D12_BACKGROUND_PROCESSING_MODE Mode, D3D12_MEASUREMENTS_ACTION MeasurementsAction, HANDLE hEventToSignalUponCompletion, BOOL* pbFurtherMeasurementsDesired) SetBackgroundProcessingMode;
			}
		}
		[CRepr]
		public struct ID3D12ProtectedResourceSession1 : ID3D12ProtectedResourceSession
		{
			public const new Guid IID = .(0xd6f12dd6, 0x76fb, 0x406e, 0x89, 0x61, 0x42, 0x96, 0xee, 0xfc, 0x04, 0x09);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_PROTECTED_RESOURCE_SESSION_DESC1 GetDesc1() mut => VT.GetDesc1(ref this);

			[CRepr]
			public struct VTable : ID3D12ProtectedResourceSession.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_PROTECTED_RESOURCE_SESSION_DESC1(ref ID3D12ProtectedResourceSession1 self) GetDesc1;
			}
		}
		[CRepr]
		public struct ID3D12Device7 : ID3D12Device6
		{
			public const new Guid IID = .(0x5c014b53, 0x68a1, 0x4b9b, 0x8b, 0xd1, 0xdd, 0x60, 0x46, 0xb9, 0x35, 0x8b);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT AddToStateObject(in D3D12_STATE_OBJECT_DESC pAddition, ref ID3D12StateObject pStateObjectToGrowFrom, in Guid riid, void** ppNewStateObject) mut => VT.AddToStateObject(ref this, pAddition, ref pStateObjectToGrowFrom, riid, ppNewStateObject);
			public HRESULT CreateProtectedResourceSession1(in D3D12_PROTECTED_RESOURCE_SESSION_DESC1 pDesc, in Guid riid, void** ppSession) mut => VT.CreateProtectedResourceSession1(ref this, pDesc, riid, ppSession);

			[CRepr]
			public struct VTable : ID3D12Device6.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device7 self, in D3D12_STATE_OBJECT_DESC pAddition, ref ID3D12StateObject pStateObjectToGrowFrom, in Guid riid, void** ppNewStateObject) AddToStateObject;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device7 self, in D3D12_PROTECTED_RESOURCE_SESSION_DESC1 pDesc, in Guid riid, void** ppSession) CreateProtectedResourceSession1;
			}
		}
		[CRepr]
		public struct ID3D12Device8 : ID3D12Device7
		{
			public const new Guid IID = .(0x9218e6bb, 0xf944, 0x4f7e, 0xa7, 0x5c, 0xb1, 0xb2, 0xc7, 0xb7, 0x01, 0xf3);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo2(uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC1* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1) mut => VT.GetResourceAllocationInfo2(ref this, visibleMask, numResourceDescs, pResourceDescs, pResourceAllocationInfo1);
			public HRESULT CreateCommittedResource2(in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC1 pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riidResource, void** ppvResource) mut => VT.CreateCommittedResource2(ref this, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, pProtectedSession, riidResource, ppvResource);
			public HRESULT CreatePlacedResource1(ref ID3D12Heap pHeap, uint64 HeapOffset, in D3D12_RESOURCE_DESC1 pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) mut => VT.CreatePlacedResource1(ref this, ref pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource);
			public void CreateSamplerFeedbackUnorderedAccessView(ID3D12Resource* pTargetedResource, ID3D12Resource* pFeedbackResource, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) mut => VT.CreateSamplerFeedbackUnorderedAccessView(ref this, pTargetedResource, pFeedbackResource, DestDescriptor);
			public void GetCopyableFootprints1(in D3D12_RESOURCE_DESC1 pResourceDesc, uint32 FirstSubresource, uint32 NumSubresources, uint64 BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, uint32* pNumRows, uint64* pRowSizeInBytes, uint64* pTotalBytes) mut => VT.GetCopyableFootprints1(ref this, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes);

			[CRepr]
			public struct VTable : ID3D12Device7.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_RESOURCE_ALLOCATION_INFO(ref ID3D12Device8 self, uint32 visibleMask, uint32 numResourceDescs, D3D12_RESOURCE_DESC1* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1) GetResourceAllocationInfo2;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device8 self, in D3D12_HEAP_PROPERTIES pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, in D3D12_RESOURCE_DESC1 pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, in Guid riidResource, void** ppvResource) CreateCommittedResource2;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device8 self, ref ID3D12Heap pHeap, uint64 HeapOffset, in D3D12_RESOURCE_DESC1 pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, in Guid riid, void** ppvResource) CreatePlacedResource1;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device8 self, ID3D12Resource* pTargetedResource, ID3D12Resource* pFeedbackResource, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) CreateSamplerFeedbackUnorderedAccessView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Device8 self, in D3D12_RESOURCE_DESC1 pResourceDesc, uint32 FirstSubresource, uint32 NumSubresources, uint64 BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, uint32* pNumRows, uint64* pRowSizeInBytes, uint64* pTotalBytes) GetCopyableFootprints1;
			}
		}
		[CRepr]
		public struct ID3D12Resource1 : ID3D12Resource
		{
			public const new Guid IID = .(0x9d5e227a, 0x4430, 0x4161, 0x88, 0xb3, 0x3e, 0xca, 0x6b, 0xb1, 0x6e, 0x19);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetProtectedResourceSession(in Guid riid, void** ppProtectedSession) mut => VT.GetProtectedResourceSession(ref this, riid, ppProtectedSession);

			[CRepr]
			public struct VTable : ID3D12Resource.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Resource1 self, in Guid riid, void** ppProtectedSession) GetProtectedResourceSession;
			}
		}
		[CRepr]
		public struct ID3D12Resource2 : ID3D12Resource1
		{
			public const new Guid IID = .(0xbe36ec3b, 0xea85, 0x4aeb, 0xa4, 0x5a, 0xe9, 0xd7, 0x64, 0x04, 0xa4, 0x95);
			
			public new VTable* VT { get => (.)vt; }
			
			public D3D12_RESOURCE_DESC1 GetDesc1() mut => VT.GetDesc1(ref this);

			[CRepr]
			public struct VTable : ID3D12Resource1.VTable
			{
				public new function [CallingConvention(.Stdcall)] D3D12_RESOURCE_DESC1(ref ID3D12Resource2 self) GetDesc1;
			}
		}
		[CRepr]
		public struct ID3D12Heap1 : ID3D12Heap
		{
			public const new Guid IID = .(0x572f7389, 0x2168, 0x49e3, 0x96, 0x93, 0xd6, 0xdf, 0x58, 0x71, 0xbf, 0x6d);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetProtectedResourceSession(in Guid riid, void** ppProtectedSession) mut => VT.GetProtectedResourceSession(ref this, riid, ppProtectedSession);

			[CRepr]
			public struct VTable : ID3D12Heap.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Heap1 self, in Guid riid, void** ppProtectedSession) GetProtectedResourceSession;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList3 : ID3D12GraphicsCommandList2
		{
			public const new Guid IID = .(0x6fda83a7, 0xb84c, 0x4e38, 0x9a, 0xc8, 0xc7, 0xbd, 0x22, 0x01, 0x6b, 0x3d);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetProtectedResourceSession(ID3D12ProtectedResourceSession* pProtectedResourceSession) mut => VT.SetProtectedResourceSession(ref this, pProtectedResourceSession);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList2.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList3 self, ID3D12ProtectedResourceSession* pProtectedResourceSession) SetProtectedResourceSession;
			}
		}
		[CRepr]
		public struct ID3D12MetaCommand : ID3D12Pageable
		{
			public const new Guid IID = .(0xdbb84c27, 0x36ce, 0x4fc9, 0xb8, 0x01, 0xf0, 0x48, 0xc4, 0x6a, 0xc5, 0x70);
			
			public new VTable* VT { get => (.)vt; }
			
			public uint64 GetRequiredParameterResourceSize(D3D12_META_COMMAND_PARAMETER_STAGE Stage, uint32 ParameterIndex) mut => VT.GetRequiredParameterResourceSize(ref this, Stage, ParameterIndex);

			[CRepr]
			public struct VTable : ID3D12Pageable.VTable
			{
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12MetaCommand self, D3D12_META_COMMAND_PARAMETER_STAGE Stage, uint32 ParameterIndex) GetRequiredParameterResourceSize;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3
		{
			public const new Guid IID = .(0x8754318e, 0xd3a9, 0x4541, 0x98, 0xcf, 0x64, 0x5b, 0x50, 0xdc, 0x48, 0x74);
			
			public new VTable* VT { get => (.)vt; }
			
			public void BeginRenderPass(uint32 NumRenderTargets, D3D12_RENDER_PASS_RENDER_TARGET_DESC* pRenderTargets, D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pDepthStencil, D3D12_RENDER_PASS_FLAGS Flags) mut => VT.BeginRenderPass(ref this, NumRenderTargets, pRenderTargets, pDepthStencil, Flags);
			public void EndRenderPass() mut => VT.EndRenderPass(ref this);
			public void InitializeMetaCommand(ref ID3D12MetaCommand pMetaCommand, void* pInitializationParametersData, uint InitializationParametersDataSizeInBytes) mut => VT.InitializeMetaCommand(ref this, ref pMetaCommand, pInitializationParametersData, InitializationParametersDataSizeInBytes);
			public void ExecuteMetaCommand(ref ID3D12MetaCommand pMetaCommand, void* pExecutionParametersData, uint ExecutionParametersDataSizeInBytes) mut => VT.ExecuteMetaCommand(ref this, ref pMetaCommand, pExecutionParametersData, ExecutionParametersDataSizeInBytes);
			public void BuildRaytracingAccelerationStructure(in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC pDesc, uint32 NumPostbuildInfoDescs, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs) mut => VT.BuildRaytracingAccelerationStructure(ref this, pDesc, NumPostbuildInfoDescs, pPostbuildInfoDescs);
			public void EmitRaytracingAccelerationStructurePostbuildInfo(in D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC pDesc, uint32 NumSourceAccelerationStructures, uint64* pSourceAccelerationStructureData) mut => VT.EmitRaytracingAccelerationStructurePostbuildInfo(ref this, pDesc, NumSourceAccelerationStructures, pSourceAccelerationStructureData);
			public void CopyRaytracingAccelerationStructure(uint64 DestAccelerationStructureData, uint64 SourceAccelerationStructureData, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) mut => VT.CopyRaytracingAccelerationStructure(ref this, DestAccelerationStructureData, SourceAccelerationStructureData, Mode);
			public void SetPipelineState1(ref ID3D12StateObject pStateObject) mut => VT.SetPipelineState1(ref this, ref pStateObject);
			public void DispatchRays(in D3D12_DISPATCH_RAYS_DESC pDesc) mut => VT.DispatchRays(ref this, pDesc);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList3.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, uint32 NumRenderTargets, D3D12_RENDER_PASS_RENDER_TARGET_DESC* pRenderTargets, D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pDepthStencil, D3D12_RENDER_PASS_FLAGS Flags) BeginRenderPass;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self) EndRenderPass;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, ref ID3D12MetaCommand pMetaCommand, void* pInitializationParametersData, uint InitializationParametersDataSizeInBytes) InitializeMetaCommand;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, ref ID3D12MetaCommand pMetaCommand, void* pExecutionParametersData, uint ExecutionParametersDataSizeInBytes) ExecuteMetaCommand;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, in D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC pDesc, uint32 NumPostbuildInfoDescs, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs) BuildRaytracingAccelerationStructure;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, in D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC pDesc, uint32 NumSourceAccelerationStructures, uint64* pSourceAccelerationStructureData) EmitRaytracingAccelerationStructurePostbuildInfo;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, uint64 DestAccelerationStructureData, uint64 SourceAccelerationStructureData, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) CopyRaytracingAccelerationStructure;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, ref ID3D12StateObject pStateObject) SetPipelineState1;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList4 self, in D3D12_DISPATCH_RAYS_DESC pDesc) DispatchRays;
			}
		}
		[CRepr]
		public struct ID3D12ShaderCacheSession : ID3D12DeviceChild
		{
			public const new Guid IID = .(0x28e2495d, 0x0f64, 0x4ae4, 0xa6, 0xec, 0x12, 0x92, 0x55, 0xdc, 0x49, 0xa8);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT FindValue(void* pKey, uint32 KeySize, void* pValue, out uint32 pValueSize) mut => VT.FindValue(ref this, pKey, KeySize, pValue, out pValueSize);
			public HRESULT StoreValue(void* pKey, uint32 KeySize, void* pValue, uint32 ValueSize) mut => VT.StoreValue(ref this, pKey, KeySize, pValue, ValueSize);
			public void SetDeleteOnDestroy() mut => VT.SetDeleteOnDestroy(ref this);
			public D3D12_SHADER_CACHE_SESSION_DESC GetDesc() mut => VT.GetDesc(ref this);

			[CRepr]
			public struct VTable : ID3D12DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderCacheSession self, void* pKey, uint32 KeySize, void* pValue, out uint32 pValueSize) FindValue;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderCacheSession self, void* pKey, uint32 KeySize, void* pValue, uint32 ValueSize) StoreValue;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12ShaderCacheSession self) SetDeleteOnDestroy;
				public new function [CallingConvention(.Stdcall)] D3D12_SHADER_CACHE_SESSION_DESC(ref ID3D12ShaderCacheSession self) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D12Device9 : ID3D12Device8
		{
			public const new Guid IID = .(0x4c80e962, 0xf032, 0x4f60, 0xbc, 0x9e, 0xeb, 0xc2, 0xcf, 0xa1, 0xd8, 0x3c);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateShaderCacheSession(in D3D12_SHADER_CACHE_SESSION_DESC pDesc, in Guid riid, void** ppvSession) mut => VT.CreateShaderCacheSession(ref this, pDesc, riid, ppvSession);
			public HRESULT ShaderCacheControl(D3D12_SHADER_CACHE_KIND_FLAGS Kinds, D3D12_SHADER_CACHE_CONTROL_FLAGS Control) mut => VT.ShaderCacheControl(ref this, Kinds, Control);
			public HRESULT CreateCommandQueue1(in D3D12_COMMAND_QUEUE_DESC pDesc, in Guid CreatorID, in Guid riid, void** ppCommandQueue) mut => VT.CreateCommandQueue1(ref this, pDesc, CreatorID, riid, ppCommandQueue);

			[CRepr]
			public struct VTable : ID3D12Device8.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device9 self, in D3D12_SHADER_CACHE_SESSION_DESC pDesc, in Guid riid, void** ppvSession) CreateShaderCacheSession;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device9 self, D3D12_SHADER_CACHE_KIND_FLAGS Kinds, D3D12_SHADER_CACHE_CONTROL_FLAGS Control) ShaderCacheControl;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12Device9 self, in D3D12_COMMAND_QUEUE_DESC pDesc, in Guid CreatorID, in Guid riid, void** ppCommandQueue) CreateCommandQueue1;
			}
		}
		[CRepr]
		public struct ID3D12Tools : IUnknown
		{
			public const new Guid IID = .(0x7071e1f0, 0xe84b, 0x4b33, 0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5);
			
			public new VTable* VT { get => (.)vt; }
			
			public void EnableShaderInstrumentation(BOOL bEnable) mut => VT.EnableShaderInstrumentation(ref this, bEnable);
			public BOOL ShaderInstrumentationEnabled() mut => VT.ShaderInstrumentationEnabled(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Tools self, BOOL bEnable) EnableShaderInstrumentation;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12Tools self) ShaderInstrumentationEnabled;
			}
		}
		[CRepr]
		public struct ID3D12Debug : IUnknown
		{
			public const new Guid IID = .(0x344488b7, 0x6846, 0x474b, 0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void EnableDebugLayer() mut => VT.EnableDebugLayer(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug self) EnableDebugLayer;
			}
		}
		[CRepr]
		public struct ID3D12Debug1 : IUnknown
		{
			public const new Guid IID = .(0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8, 0xad, 0x15, 0x90, 0x00, 0xaf, 0x43, 0x04);
			
			public new VTable* VT { get => (.)vt; }
			
			public void EnableDebugLayer() mut => VT.EnableDebugLayer(ref this);
			public void SetEnableGPUBasedValidation(BOOL Enable) mut => VT.SetEnableGPUBasedValidation(ref this, Enable);
			public void SetEnableSynchronizedCommandQueueValidation(BOOL Enable) mut => VT.SetEnableSynchronizedCommandQueueValidation(ref this, Enable);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug1 self) EnableDebugLayer;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug1 self, BOOL Enable) SetEnableGPUBasedValidation;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug1 self, BOOL Enable) SetEnableSynchronizedCommandQueueValidation;
			}
		}
		[CRepr]
		public struct ID3D12Debug2 : IUnknown
		{
			public const new Guid IID = .(0x93a665c4, 0xa3b2, 0x4e5d, 0xb6, 0x92, 0xa2, 0x6a, 0xe1, 0x4e, 0x33, 0x74);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags) mut => VT.SetGPUBasedValidationFlags(ref this, Flags);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug2 self, D3D12_GPU_BASED_VALIDATION_FLAGS Flags) SetGPUBasedValidationFlags;
			}
		}
		[CRepr]
		public struct ID3D12Debug3 : ID3D12Debug
		{
			public const new Guid IID = .(0x5cf4e58f, 0xf671, 0x4ff1, 0xa5, 0x42, 0x36, 0x86, 0xe3, 0xd1, 0x53, 0xd1);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetEnableGPUBasedValidation(BOOL Enable) mut => VT.SetEnableGPUBasedValidation(ref this, Enable);
			public void SetEnableSynchronizedCommandQueueValidation(BOOL Enable) mut => VT.SetEnableSynchronizedCommandQueueValidation(ref this, Enable);
			public void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags) mut => VT.SetGPUBasedValidationFlags(ref this, Flags);

			[CRepr]
			public struct VTable : ID3D12Debug.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug3 self, BOOL Enable) SetEnableGPUBasedValidation;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug3 self, BOOL Enable) SetEnableSynchronizedCommandQueueValidation;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug3 self, D3D12_GPU_BASED_VALIDATION_FLAGS Flags) SetGPUBasedValidationFlags;
			}
		}
		[CRepr]
		public struct ID3D12Debug4 : ID3D12Debug3
		{
			public const new Guid IID = .(0x014b816e, 0x9ec5, 0x4a2f, 0xa8, 0x45, 0xff, 0xbe, 0x44, 0x1c, 0xe1, 0x3a);
			
			public new VTable* VT { get => (.)vt; }
			
			public void DisableDebugLayer() mut => VT.DisableDebugLayer(ref this);

			[CRepr]
			public struct VTable : ID3D12Debug3.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug4 self) DisableDebugLayer;
			}
		}
		[CRepr]
		public struct ID3D12Debug5 : ID3D12Debug4
		{
			public const new Guid IID = .(0x548d6b12, 0x09fa, 0x40e0, 0x90, 0x69, 0x5d, 0xcd, 0x58, 0x9a, 0x52, 0xc9);
			
			public new VTable* VT { get => (.)vt; }
			
			public void SetEnableAutoName(BOOL Enable) mut => VT.SetEnableAutoName(ref this, Enable);

			[CRepr]
			public struct VTable : ID3D12Debug4.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12Debug5 self, BOOL Enable) SetEnableAutoName;
			}
		}
		[CRepr]
		public struct ID3D12DebugDevice1 : IUnknown
		{
			public const new Guid IID = .(0xa9b71770, 0xd099, 0x4a65, 0xa6, 0x98, 0x3d, 0xee, 0x10, 0x02, 0x0f, 0x88);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.SetDebugParameter(ref this, Type, pData, DataSize);
			public HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.GetDebugParameter(ref this, Type, pData, DataSize);
			public HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags) mut => VT.ReportLiveDeviceObjects(ref this, Flags);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice1 self, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) SetDebugParameter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice1 self, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) GetDebugParameter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice1 self, D3D12_RLDO_FLAGS Flags) ReportLiveDeviceObjects;
			}
		}
		[CRepr]
		public struct ID3D12DebugDevice : IUnknown
		{
			public const new Guid IID = .(0x3febd6dd, 0x4973, 0x4787, 0x81, 0x94, 0xe4, 0x5f, 0x9e, 0x28, 0x92, 0x3e);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask) mut => VT.SetFeatureMask(ref this, Mask);
			public D3D12_DEBUG_FEATURE GetFeatureMask() mut => VT.GetFeatureMask(ref this);
			public HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags) mut => VT.ReportLiveDeviceObjects(ref this, Flags);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice self, D3D12_DEBUG_FEATURE Mask) SetFeatureMask;
				public new function [CallingConvention(.Stdcall)] D3D12_DEBUG_FEATURE(ref ID3D12DebugDevice self) GetFeatureMask;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice self, D3D12_RLDO_FLAGS Flags) ReportLiveDeviceObjects;
			}
		}
		[CRepr]
		public struct ID3D12DebugDevice2 : ID3D12DebugDevice
		{
			public const new Guid IID = .(0x60eccbc1, 0x378d, 0x4df1, 0x89, 0x4c, 0xf8, 0xac, 0x5c, 0xe4, 0xd7, 0xdd);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.SetDebugParameter(ref this, Type, pData, DataSize);
			public HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.GetDebugParameter(ref this, Type, pData, DataSize);

			[CRepr]
			public struct VTable : ID3D12DebugDevice.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice2 self, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) SetDebugParameter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugDevice2 self, D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, void* pData, uint32 DataSize) GetDebugParameter;
			}
		}
		[CRepr]
		public struct ID3D12DebugCommandQueue : IUnknown
		{
			public const new Guid IID = .(0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3a);
			
			public new VTable* VT { get => (.)vt; }
			
			public BOOL AssertResourceState(ref ID3D12Resource pResource, uint32 Subresource, uint32 State) mut => VT.AssertResourceState(ref this, ref pResource, Subresource, State);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12DebugCommandQueue self, ref ID3D12Resource pResource, uint32 Subresource, uint32 State) AssertResourceState;
			}
		}
		[CRepr]
		public struct ID3D12DebugCommandList1 : IUnknown
		{
			public const new Guid IID = .(0x102ca951, 0x311b, 0x4b01, 0xb1, 0x1f, 0xec, 0xb8, 0x3e, 0x06, 0x1b, 0x37);
			
			public new VTable* VT { get => (.)vt; }
			
			public BOOL AssertResourceState(ref ID3D12Resource pResource, uint32 Subresource, uint32 State) mut => VT.AssertResourceState(ref this, ref pResource, Subresource, State);
			public HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.SetDebugParameter(ref this, Type, pData, DataSize);
			public HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.GetDebugParameter(ref this, Type, pData, DataSize);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12DebugCommandList1 self, ref ID3D12Resource pResource, uint32 Subresource, uint32 State) AssertResourceState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugCommandList1 self, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) SetDebugParameter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugCommandList1 self, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) GetDebugParameter;
			}
		}
		[CRepr]
		public struct ID3D12DebugCommandList : IUnknown
		{
			public const new Guid IID = .(0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3f);
			
			public new VTable* VT { get => (.)vt; }
			
			public BOOL AssertResourceState(ref ID3D12Resource pResource, uint32 Subresource, uint32 State) mut => VT.AssertResourceState(ref this, ref pResource, Subresource, State);
			public HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask) mut => VT.SetFeatureMask(ref this, Mask);
			public D3D12_DEBUG_FEATURE GetFeatureMask() mut => VT.GetFeatureMask(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12DebugCommandList self, ref ID3D12Resource pResource, uint32 Subresource, uint32 State) AssertResourceState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugCommandList self, D3D12_DEBUG_FEATURE Mask) SetFeatureMask;
				public new function [CallingConvention(.Stdcall)] D3D12_DEBUG_FEATURE(ref ID3D12DebugCommandList self) GetFeatureMask;
			}
		}
		[CRepr]
		public struct ID3D12DebugCommandList2 : ID3D12DebugCommandList
		{
			public const new Guid IID = .(0xaeb575cf, 0x4e06, 0x48be, 0xba, 0x3b, 0xc4, 0x50, 0xfc, 0x96, 0x65, 0x2e);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.SetDebugParameter(ref this, Type, pData, DataSize);
			public HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) mut => VT.GetDebugParameter(ref this, Type, pData, DataSize);

			[CRepr]
			public struct VTable : ID3D12DebugCommandList.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugCommandList2 self, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) SetDebugParameter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12DebugCommandList2 self, D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, void* pData, uint32 DataSize) GetDebugParameter;
			}
		}
		[CRepr]
		public struct ID3D12SharingContract : IUnknown
		{
			public const new Guid IID = .(0x0adf7d52, 0x929c, 0x4e61, 0xad, 0xdb, 0xff, 0xed, 0x30, 0xde, 0x66, 0xef);
			
			public new VTable* VT { get => (.)vt; }
			
			public void Present(ref ID3D12Resource pResource, uint32 Subresource, HWND window) mut => VT.Present(ref this, ref pResource, Subresource, window);
			public void SharedFenceSignal(ref ID3D12Fence pFence, uint64 FenceValue) mut => VT.SharedFenceSignal(ref this, ref pFence, FenceValue);
			public void BeginCapturableWork(in Guid guid) mut => VT.BeginCapturableWork(ref this, guid);
			public void EndCapturableWork(in Guid guid) mut => VT.EndCapturableWork(ref this, guid);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12SharingContract self, ref ID3D12Resource pResource, uint32 Subresource, HWND window) Present;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12SharingContract self, ref ID3D12Fence pFence, uint64 FenceValue) SharedFenceSignal;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12SharingContract self, in Guid guid) BeginCapturableWork;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12SharingContract self, in Guid guid) EndCapturableWork;
			}
		}
		[CRepr]
		public struct ID3D12InfoQueue : IUnknown
		{
			public const new Guid IID = .(0x0742a90b, 0xc387, 0x483f, 0xb9, 0x46, 0x30, 0xa7, 0xe4, 0xe6, 0x14, 0x58);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetMessageCountLimit(uint64 MessageCountLimit) mut => VT.SetMessageCountLimit(ref this, MessageCountLimit);
			public void ClearStoredMessages() mut => VT.ClearStoredMessages(ref this);
			public HRESULT GetMessage(uint64 MessageIndex, D3D12_MESSAGE* pMessage, out uint pMessageByteLength) mut => VT.GetMessage(ref this, MessageIndex, pMessage, out pMessageByteLength);
			public uint64 GetNumMessagesAllowedByStorageFilter() mut => VT.GetNumMessagesAllowedByStorageFilter(ref this);
			public uint64 GetNumMessagesDeniedByStorageFilter() mut => VT.GetNumMessagesDeniedByStorageFilter(ref this);
			public uint64 GetNumStoredMessages() mut => VT.GetNumStoredMessages(ref this);
			public uint64 GetNumStoredMessagesAllowedByRetrievalFilter() mut => VT.GetNumStoredMessagesAllowedByRetrievalFilter(ref this);
			public uint64 GetNumMessagesDiscardedByMessageCountLimit() mut => VT.GetNumMessagesDiscardedByMessageCountLimit(ref this);
			public uint64 GetMessageCountLimit() mut => VT.GetMessageCountLimit(ref this);
			public HRESULT AddStorageFilterEntries(ref D3D12_INFO_QUEUE_FILTER pFilter) mut => VT.AddStorageFilterEntries(ref this, ref pFilter);
			public HRESULT GetStorageFilter(D3D12_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) mut => VT.GetStorageFilter(ref this, pFilter, out pFilterByteLength);
			public void ClearStorageFilter() mut => VT.ClearStorageFilter(ref this);
			public HRESULT PushEmptyStorageFilter() mut => VT.PushEmptyStorageFilter(ref this);
			public HRESULT PushCopyOfStorageFilter() mut => VT.PushCopyOfStorageFilter(ref this);
			public HRESULT PushStorageFilter(ref D3D12_INFO_QUEUE_FILTER pFilter) mut => VT.PushStorageFilter(ref this, ref pFilter);
			public void PopStorageFilter() mut => VT.PopStorageFilter(ref this);
			public uint32 GetStorageFilterStackSize() mut => VT.GetStorageFilterStackSize(ref this);
			public HRESULT AddRetrievalFilterEntries(ref D3D12_INFO_QUEUE_FILTER pFilter) mut => VT.AddRetrievalFilterEntries(ref this, ref pFilter);
			public HRESULT GetRetrievalFilter(D3D12_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) mut => VT.GetRetrievalFilter(ref this, pFilter, out pFilterByteLength);
			public void ClearRetrievalFilter() mut => VT.ClearRetrievalFilter(ref this);
			public HRESULT PushEmptyRetrievalFilter() mut => VT.PushEmptyRetrievalFilter(ref this);
			public HRESULT PushCopyOfRetrievalFilter() mut => VT.PushCopyOfRetrievalFilter(ref this);
			public HRESULT PushRetrievalFilter(ref D3D12_INFO_QUEUE_FILTER pFilter) mut => VT.PushRetrievalFilter(ref this, ref pFilter);
			public void PopRetrievalFilter() mut => VT.PopRetrievalFilter(ref this);
			public uint32 GetRetrievalFilterStackSize() mut => VT.GetRetrievalFilterStackSize(ref this);
			public HRESULT AddMessage(D3D12_MESSAGE_CATEGORY Category, D3D12_MESSAGE_SEVERITY Severity, D3D12_MESSAGE_ID ID, PSTR pDescription) mut => VT.AddMessage(ref this, Category, Severity, ID, pDescription);
			public HRESULT AddApplicationMessage(D3D12_MESSAGE_SEVERITY Severity, PSTR pDescription) mut => VT.AddApplicationMessage(ref this, Severity, pDescription);
			public HRESULT SetBreakOnCategory(D3D12_MESSAGE_CATEGORY Category, BOOL bEnable) mut => VT.SetBreakOnCategory(ref this, Category, bEnable);
			public HRESULT SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY Severity, BOOL bEnable) mut => VT.SetBreakOnSeverity(ref this, Severity, bEnable);
			public HRESULT SetBreakOnID(D3D12_MESSAGE_ID ID, BOOL bEnable) mut => VT.SetBreakOnID(ref this, ID, bEnable);
			public BOOL GetBreakOnCategory(D3D12_MESSAGE_CATEGORY Category) mut => VT.GetBreakOnCategory(ref this, Category);
			public BOOL GetBreakOnSeverity(D3D12_MESSAGE_SEVERITY Severity) mut => VT.GetBreakOnSeverity(ref this, Severity);
			public BOOL GetBreakOnID(D3D12_MESSAGE_ID ID) mut => VT.GetBreakOnID(ref this, ID);
			public void SetMuteDebugOutput(BOOL bMute) mut => VT.SetMuteDebugOutput(ref this, bMute);
			public BOOL GetMuteDebugOutput() mut => VT.GetMuteDebugOutput(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, uint64 MessageCountLimit) SetMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self) ClearStoredMessages;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, uint64 MessageIndex, D3D12_MESSAGE* pMessage, out uint pMessageByteLength) GetMessage;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetNumMessagesAllowedByStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetNumMessagesDeniedByStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetNumStoredMessages;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetNumStoredMessagesAllowedByRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetNumMessagesDiscardedByMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12InfoQueue self) GetMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, ref D3D12_INFO_QUEUE_FILTER pFilter) AddStorageFilterEntries;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) GetStorageFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self) ClearStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self) PushEmptyStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self) PushCopyOfStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, ref D3D12_INFO_QUEUE_FILTER pFilter) PushStorageFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self) PopStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12InfoQueue self) GetStorageFilterStackSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, ref D3D12_INFO_QUEUE_FILTER pFilter) AddRetrievalFilterEntries;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) GetRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self) ClearRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self) PushEmptyRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self) PushCopyOfRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, ref D3D12_INFO_QUEUE_FILTER pFilter) PushRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self) PopRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12InfoQueue self) GetRetrievalFilterStackSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_MESSAGE_CATEGORY Category, D3D12_MESSAGE_SEVERITY Severity, D3D12_MESSAGE_ID ID, PSTR pDescription) AddMessage;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_MESSAGE_SEVERITY Severity, PSTR pDescription) AddApplicationMessage;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_MESSAGE_CATEGORY Category, BOOL bEnable) SetBreakOnCategory;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_MESSAGE_SEVERITY Severity, BOOL bEnable) SetBreakOnSeverity;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue self, D3D12_MESSAGE_ID ID, BOOL bEnable) SetBreakOnID;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12InfoQueue self, D3D12_MESSAGE_CATEGORY Category) GetBreakOnCategory;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12InfoQueue self, D3D12_MESSAGE_SEVERITY Severity) GetBreakOnSeverity;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12InfoQueue self, D3D12_MESSAGE_ID ID) GetBreakOnID;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12InfoQueue self, BOOL bMute) SetMuteDebugOutput;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12InfoQueue self) GetMuteDebugOutput;
			}
		}
		[CRepr]
		public struct ID3D12InfoQueue1 : ID3D12InfoQueue
		{
			public const new Guid IID = .(0x2852dd88, 0xb484, 0x4c0c, 0xb6, 0xb1, 0x67, 0x16, 0x85, 0x00, 0xe6, 0x00);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT RegisterMessageCallback(D3D12MessageFunc CallbackFunc, D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, void* pContext, out uint32 pCallbackCookie) mut => VT.RegisterMessageCallback(ref this, CallbackFunc, CallbackFilterFlags, pContext, out pCallbackCookie);
			public HRESULT UnregisterMessageCallback(uint32 CallbackCookie) mut => VT.UnregisterMessageCallback(ref this, CallbackCookie);

			[CRepr]
			public struct VTable : ID3D12InfoQueue.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue1 self, D3D12MessageFunc CallbackFunc, D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, void* pContext, out uint32 pCallbackCookie) RegisterMessageCallback;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12InfoQueue1 self, uint32 CallbackCookie) UnregisterMessageCallback;
			}
		}
		[CRepr]
		public struct ID3D12SDKConfiguration : IUnknown
		{
			public const new Guid IID = .(0xe9eb5314, 0x33aa, 0x42b2, 0xa7, 0x18, 0xd7, 0x7f, 0x58, 0xb1, 0xf1, 0xc7);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetSDKVersion(uint32 SDKVersion, PSTR SDKPath) mut => VT.SetSDKVersion(ref this, SDKVersion, SDKPath);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12SDKConfiguration self, uint32 SDKVersion, PSTR SDKPath) SetSDKVersion;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList5 : ID3D12GraphicsCommandList4
		{
			public const new Guid IID = .(0x55050859, 0x4024, 0x474c, 0x87, 0xf5, 0x64, 0x72, 0xea, 0xee, 0x44, 0xea);
			
			public new VTable* VT { get => (.)vt; }
			
			public void RSSetShadingRate(D3D12_SHADING_RATE baseShadingRate, D3D12_SHADING_RATE_COMBINER* combiners) mut => VT.RSSetShadingRate(ref this, baseShadingRate, combiners);
			public void RSSetShadingRateImage(ID3D12Resource* shadingRateImage) mut => VT.RSSetShadingRateImage(ref this, shadingRateImage);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList4.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList5 self, D3D12_SHADING_RATE baseShadingRate, D3D12_SHADING_RATE_COMBINER* combiners) RSSetShadingRate;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList5 self, ID3D12Resource* shadingRateImage) RSSetShadingRateImage;
			}
		}
		[CRepr]
		public struct ID3D12GraphicsCommandList6 : ID3D12GraphicsCommandList5
		{
			public const new Guid IID = .(0xc3827890, 0xe548, 0x4cfa, 0x96, 0xcf, 0x56, 0x89, 0xa9, 0x37, 0x0f, 0x80);
			
			public new VTable* VT { get => (.)vt; }
			
			public void DispatchMesh(uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) mut => VT.DispatchMesh(ref this, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ);

			[CRepr]
			public struct VTable : ID3D12GraphicsCommandList5.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D12GraphicsCommandList6 self, uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) DispatchMesh;
			}
		}
		[CRepr]
		public struct ID3D12ShaderReflectionType
		{
			public const new Guid IID = .(0xe913c351, 0x783d, 0x48ca, 0xa1, 0xd1, 0x4f, 0x30, 0x62, 0x84, 0xad, 0x56);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_SHADER_TYPE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12ShaderReflectionType* GetMemberTypeByIndex(uint32 Index) mut => VT.GetMemberTypeByIndex(ref this, Index);
			public ID3D12ShaderReflectionType* GetMemberTypeByName(PSTR Name) mut => VT.GetMemberTypeByName(ref this, Name);
			public PSTR GetMemberTypeName(uint32 Index) mut => VT.GetMemberTypeName(ref this, Index);
			public HRESULT IsEqual(ref ID3D12ShaderReflectionType pType) mut => VT.IsEqual(ref this, ref pType);
			public ID3D12ShaderReflectionType* GetSubType() mut => VT.GetSubType(ref this);
			public ID3D12ShaderReflectionType* GetBaseClass() mut => VT.GetBaseClass(ref this);
			public uint32 GetNumInterfaces() mut => VT.GetNumInterfaces(ref this);
			public ID3D12ShaderReflectionType* GetInterfaceByIndex(uint32 uIndex) mut => VT.GetInterfaceByIndex(ref this, uIndex);
			public HRESULT IsOfType(ref ID3D12ShaderReflectionType pType) mut => VT.IsOfType(ref this, ref pType);
			public HRESULT ImplementsInterface(ref ID3D12ShaderReflectionType pBase) mut => VT.ImplementsInterface(ref this, ref pBase);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionType self, out D3D12_SHADER_TYPE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionType self, uint32 Index) GetMemberTypeByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionType self, PSTR Name) GetMemberTypeByName;
				public new function [CallingConvention(.Stdcall)] PSTR(ref ID3D12ShaderReflectionType self, uint32 Index) GetMemberTypeName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionType self, ref ID3D12ShaderReflectionType pType) IsEqual;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionType self) GetSubType;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionType self) GetBaseClass;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflectionType self) GetNumInterfaces;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionType self, uint32 uIndex) GetInterfaceByIndex;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionType self, ref ID3D12ShaderReflectionType pType) IsOfType;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionType self, ref ID3D12ShaderReflectionType pBase) ImplementsInterface;
			}
		}
		[CRepr]
		public struct ID3D12ShaderReflectionVariable
		{
			public const new Guid IID = .(0x8337a8a6, 0xa216, 0x444a, 0xb2, 0xf4, 0x31, 0x47, 0x33, 0xa7, 0x3a, 0xea);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_SHADER_VARIABLE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12ShaderReflectionType* ComGetType() mut => VT.ComGetType(ref this);
			public ID3D12ShaderReflectionConstantBuffer* GetBuffer() mut => VT.GetBuffer(ref this);
			public uint32 GetInterfaceSlot(uint32 uArrayIndex) mut => VT.GetInterfaceSlot(ref this, uArrayIndex);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionVariable self, out D3D12_SHADER_VARIABLE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionType*(ref ID3D12ShaderReflectionVariable self) ComGetType;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionConstantBuffer*(ref ID3D12ShaderReflectionVariable self) GetBuffer;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflectionVariable self, uint32 uArrayIndex) GetInterfaceSlot;
			}
		}
		[CRepr]
		public struct ID3D12ShaderReflectionConstantBuffer
		{
			public const new Guid IID = .(0xc59598b4, 0x48b3, 0x4869, 0xb9, 0xb1, 0xb1, 0x61, 0x8b, 0x14, 0xa8, 0xb7);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_SHADER_BUFFER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12ShaderReflectionVariable* GetVariableByIndex(uint32 Index) mut => VT.GetVariableByIndex(ref this, Index);
			public ID3D12ShaderReflectionVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflectionConstantBuffer self, out D3D12_SHADER_BUFFER_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionVariable*(ref ID3D12ShaderReflectionConstantBuffer self, uint32 Index) GetVariableByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionVariable*(ref ID3D12ShaderReflectionConstantBuffer self, PSTR Name) GetVariableByName;
			}
		}
		[CRepr]
		public struct ID3D12ShaderReflection : IUnknown
		{
			public const new Guid IID = .(0x5a58797d, 0xa72c, 0x478d, 0x8b, 0xa2, 0xef, 0xc6, 0xb0, 0xef, 0xe8, 0x8e);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_SHADER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByIndex(uint32 Index) mut => VT.GetConstantBufferByIndex(ref this, Index);
			public ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByName(PSTR Name) mut => VT.GetConstantBufferByName(ref this, Name);
			public HRESULT GetResourceBindingDesc(uint32 ResourceIndex, out D3D12_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDesc(ref this, ResourceIndex, out pDesc);
			public HRESULT GetInputParameterDesc(uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetInputParameterDesc(ref this, ParameterIndex, out pDesc);
			public HRESULT GetOutputParameterDesc(uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetOutputParameterDesc(ref this, ParameterIndex, out pDesc);
			public HRESULT GetPatchConstantParameterDesc(uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetPatchConstantParameterDesc(ref this, ParameterIndex, out pDesc);
			public ID3D12ShaderReflectionVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);
			public HRESULT GetResourceBindingDescByName(PSTR Name, out D3D12_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDescByName(ref this, Name, out pDesc);
			public uint32 GetMovInstructionCount() mut => VT.GetMovInstructionCount(ref this);
			public uint32 GetMovcInstructionCount() mut => VT.GetMovcInstructionCount(ref this);
			public uint32 GetConversionInstructionCount() mut => VT.GetConversionInstructionCount(ref this);
			public uint32 GetBitwiseInstructionCount() mut => VT.GetBitwiseInstructionCount(ref this);
			public D3D_PRIMITIVE GetGSInputPrimitive() mut => VT.GetGSInputPrimitive(ref this);
			public BOOL IsSampleFrequencyShader() mut => VT.IsSampleFrequencyShader(ref this);
			public uint32 GetNumInterfaceSlots() mut => VT.GetNumInterfaceSlots(ref this);
			public HRESULT GetMinFeatureLevel(out D3D_FEATURE_LEVEL pLevel) mut => VT.GetMinFeatureLevel(ref this, out pLevel);
			public uint32 GetThreadGroupSize(uint32* pSizeX, uint32* pSizeY, uint32* pSizeZ) mut => VT.GetThreadGroupSize(ref this, pSizeX, pSizeY, pSizeZ);
			public uint64 GetRequiresFlags() mut => VT.GetRequiresFlags(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, out D3D12_SHADER_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionConstantBuffer*(ref ID3D12ShaderReflection self, uint32 Index) GetConstantBufferByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionConstantBuffer*(ref ID3D12ShaderReflection self, PSTR Name) GetConstantBufferByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, uint32 ResourceIndex, out D3D12_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) GetInputParameterDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) GetOutputParameterDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, uint32 ParameterIndex, out D3D12_SIGNATURE_PARAMETER_DESC pDesc) GetPatchConstantParameterDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionVariable*(ref ID3D12ShaderReflection self, PSTR Name) GetVariableByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, PSTR Name, out D3D12_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDescByName;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self) GetMovInstructionCount;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self) GetMovcInstructionCount;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self) GetConversionInstructionCount;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self) GetBitwiseInstructionCount;
				public new function [CallingConvention(.Stdcall)] D3D_PRIMITIVE(ref ID3D12ShaderReflection self) GetGSInputPrimitive;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D12ShaderReflection self) IsSampleFrequencyShader;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self) GetNumInterfaceSlots;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12ShaderReflection self, out D3D_FEATURE_LEVEL pLevel) GetMinFeatureLevel;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D12ShaderReflection self, uint32* pSizeX, uint32* pSizeY, uint32* pSizeZ) GetThreadGroupSize;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D12ShaderReflection self) GetRequiresFlags;
			}
		}
		[CRepr]
		public struct ID3D12LibraryReflection : IUnknown
		{
			public const new Guid IID = .(0x8e349d19, 0x54db, 0x4a56, 0x9d, 0xc9, 0x11, 0x9d, 0x87, 0xbd, 0xb8, 0x04);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_LIBRARY_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12FunctionReflection* GetFunctionByIndex(int32 FunctionIndex) mut => VT.GetFunctionByIndex(ref this, FunctionIndex);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12LibraryReflection self, out D3D12_LIBRARY_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12FunctionReflection*(ref ID3D12LibraryReflection self, int32 FunctionIndex) GetFunctionByIndex;
			}
		}
		[CRepr]
		public struct ID3D12FunctionReflection
		{
			public const new Guid IID = .(0x1108795c, 0x2772, 0x4ba9, 0xb2, 0xa8, 0xd4, 0x64, 0xdc, 0x7e, 0x27, 0x99);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_FUNCTION_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByIndex(uint32 BufferIndex) mut => VT.GetConstantBufferByIndex(ref this, BufferIndex);
			public ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByName(PSTR Name) mut => VT.GetConstantBufferByName(ref this, Name);
			public HRESULT GetResourceBindingDesc(uint32 ResourceIndex, out D3D12_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDesc(ref this, ResourceIndex, out pDesc);
			public ID3D12ShaderReflectionVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);
			public HRESULT GetResourceBindingDescByName(PSTR Name, out D3D12_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDescByName(ref this, Name, out pDesc);
			public ID3D12FunctionParameterReflection* GetFunctionParameter(int32 ParameterIndex) mut => VT.GetFunctionParameter(ref this, ParameterIndex);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12FunctionReflection self, out D3D12_FUNCTION_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionConstantBuffer*(ref ID3D12FunctionReflection self, uint32 BufferIndex) GetConstantBufferByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionConstantBuffer*(ref ID3D12FunctionReflection self, PSTR Name) GetConstantBufferByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12FunctionReflection self, uint32 ResourceIndex, out D3D12_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDesc;
				public new function [CallingConvention(.Stdcall)] ID3D12ShaderReflectionVariable*(ref ID3D12FunctionReflection self, PSTR Name) GetVariableByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12FunctionReflection self, PSTR Name, out D3D12_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDescByName;
				public new function [CallingConvention(.Stdcall)] ID3D12FunctionParameterReflection*(ref ID3D12FunctionReflection self, int32 ParameterIndex) GetFunctionParameter;
			}
		}
		[CRepr]
		public struct ID3D12FunctionParameterReflection
		{
			public const new Guid IID = .(0xec25f42d, 0x7006, 0x4f2b, 0xb3, 0x3e, 0x02, 0xcc, 0x33, 0x75, 0x73, 0x3f);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D12_PARAMETER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D12FunctionParameterReflection self, out D3D12_PARAMETER_DESC pDesc) GetDesc;
			}
		}
		
		// --- Functions ---
		
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12SerializeRootSignature(in D3D12_ROOT_SIGNATURE_DESC pRootSignature, D3D_ROOT_SIGNATURE_VERSION Version, out ID3DBlob* ppBlob, ID3DBlob** ppErrorBlob);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12CreateRootSignatureDeserializer(void* pSrcData, uint SrcDataSizeInBytes, in Guid pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12SerializeVersionedRootSignature(in D3D12_VERSIONED_ROOT_SIGNATURE_DESC pRootSignature, out ID3DBlob* ppBlob, ID3DBlob** ppErrorBlob);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12CreateVersionedRootSignatureDeserializer(void* pSrcData, uint SrcDataSizeInBytes, in Guid pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12CreateDevice(IUnknown* pAdapter, D3D_FEATURE_LEVEL MinimumFeatureLevel, in Guid riid, void** ppDevice);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12GetDebugInterface(in Guid riid, void** ppvDebug);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12EnableExperimentalFeatures(uint32 NumFeatures, Guid* pIIDs, void* pConfigurationStructs, uint32* pConfigurationStructSizes);
		[Import("d3d12.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D12GetInterface(in Guid rclsid, in Guid riid, void** ppvDebug);
	}
}
