1 module aurora.directx.d3d12.d3d12; 2 3 public import aurora.directx.com; 4 public import aurora.directx.dxgi.dxgiformat; 5 public import aurora.directx.dxgi.dxgicommon; 6 public import aurora.directx.d3d.d3dcommon; 7 8 public: 9 10 /// 11 /// Constants 12 /// 13 14 enum int D3D12_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; 15 enum int D3D12_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; 16 enum int D3D12_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; 17 enum int D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff; 18 enum int D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; 19 enum int D3D12_CLIP_OR_CULL_DISTANCE_COUNT = 8; 20 enum int D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; 21 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; 22 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; 23 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; 24 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; 25 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16; 26 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 27 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; 28 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 29 enum int D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 30 enum int D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; 31 enum int D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 32 enum int D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; 33 enum int D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 34 enum int D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 35 enum int D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; 36 enum int D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; 37 enum int D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; 38 enum int D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; 39 enum int D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; 40 enum int D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; 41 enum int D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; 42 enum int D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; 43 enum int D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; 44 enum int D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; 45 enum int D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; 46 enum int D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; 47 enum int D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; 48 enum int D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; 49 enum int D3D12_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; 50 enum int D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; 51 enum int D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; 52 enum int D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; 53 enum int D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; 54 enum int D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; 55 enum int D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; 56 enum int D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256; 57 enum int D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256; 58 enum int D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64; 59 enum int D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240; 60 enum int D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68; 61 enum int D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224; 62 enum int D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72; 63 enum int D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208; 64 enum int D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76; 65 enum int D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192; 66 enum int D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84; 67 enum int D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176; 68 enum int D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92; 69 enum int D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160; 70 enum int D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100; 71 enum int D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144; 72 enum int D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112; 73 enum int D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128; 74 enum int D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128; 75 enum int D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112; 76 enum int D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144; 77 enum int D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96; 78 enum int D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168; 79 enum int D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80; 80 enum int D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204; 81 enum int D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64; 82 enum int D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256; 83 enum int D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48; 84 enum int D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340; 85 enum int D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32; 86 enum int D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512; 87 enum int D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16; 88 enum int D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768; 89 enum int D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1; 90 enum int D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256; 91 enum int D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768; 92 enum int D3D12_CS_4_X_THREAD_GROUP_MAX_X = 768; 93 enum int D3D12_CS_4_X_THREAD_GROUP_MAX_Y = 768; 94 enum int D3D12_CS_4_X_UAV_REGISTER_COUNT = 1; 95 enum int D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535; 96 enum int D3D12_CS_TGSM_REGISTER_COUNT = 8192; 97 enum int D3D12_CS_TGSM_REGISTER_READS_PER_INST = 1; 98 enum int D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1; 99 enum int D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1; 100 enum int D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS = 3; 101 enum int D3D12_CS_THREADGROUPID_REGISTER_COUNT = 1; 102 enum int D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1; 103 enum int D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1; 104 enum int D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3; 105 enum int D3D12_CS_THREADIDINGROUP_REGISTER_COUNT = 1; 106 enum int D3D12_CS_THREADID_REGISTER_COMPONENTS = 3; 107 enum int D3D12_CS_THREADID_REGISTER_COUNT = 1; 108 enum int D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024; 109 enum int D3D12_CS_THREAD_GROUP_MAX_X = 1024; 110 enum int D3D12_CS_THREAD_GROUP_MAX_Y = 1024; 111 enum int D3D12_CS_THREAD_GROUP_MAX_Z = 64; 112 enum int D3D12_CS_THREAD_GROUP_MIN_X = 1; 113 enum int D3D12_CS_THREAD_GROUP_MIN_Y = 1; 114 enum int D3D12_CS_THREAD_GROUP_MIN_Z = 1; 115 enum int D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384; 116 enum float D3D12_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f; 117 enum float D3D12_DEFAULT_BLEND_FACTOR_BLUE = 1.0f; 118 enum float D3D12_DEFAULT_BLEND_FACTOR_GREEN = 1.0f; 119 enum float D3D12_DEFAULT_BLEND_FACTOR_RED = 1.0f; 120 enum float D3D12_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f; 121 enum int D3D12_DEFAULT_DEPTH_BIAS = 0; 122 enum float D3D12_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f; 123 enum int D3D12_DEFAULT_MAX_ANISOTROPY = 16; 124 enum float D3D12_DEFAULT_MIP_LOD_BIAS = 0.0f; 125 enum int D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304; 126 enum int D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; 127 enum int D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536; 128 enum int D3D12_DEFAULT_SAMPLE_MASK = 0xffffffff; 129 enum int D3D12_DEFAULT_SCISSOR_ENDX = 0; 130 enum int D3D12_DEFAULT_SCISSOR_ENDY = 0; 131 enum int D3D12_DEFAULT_SCISSOR_STARTX = 0; 132 enum int D3D12_DEFAULT_SCISSOR_STARTY = 0; 133 enum float D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f; 134 enum int D3D12_DEFAULT_STENCIL_READ_MASK = 0xff; 135 enum int D3D12_DEFAULT_STENCIL_REFERENCE = 0; 136 enum int D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff; 137 enum int D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; 138 enum int D3D12_DEFAULT_VIEWPORT_HEIGHT = 0; 139 enum float D3D12_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f; 140 enum float D3D12_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f; 141 enum int D3D12_DEFAULT_VIEWPORT_TOPLEFTX = 0; 142 enum int D3D12_DEFAULT_VIEWPORT_TOPLEFTY = 0; 143 enum int D3D12_DEFAULT_VIEWPORT_WIDTH = 0; 144 enum int D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff; 145 enum int D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END = 0xfffffff7; 146 enum int D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; 147 enum int D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; 148 enum int D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4; 149 enum int D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; 150 enum int D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32; 151 enum int D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2; 152 enum int D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1; 153 enum int D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3; 154 enum int D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; 155 enum int D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1; 156 enum int D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2; 157 enum int D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1; 158 enum int D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; 159 enum int D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; 160 enum int D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; 161 enum int D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; 162 enum int D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; 163 enum int D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; 164 enum int D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 165 enum int D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; 166 enum int D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; 167 enum int D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; 168 enum int D3D12_DS_OUTPUT_REGISTER_COMPONENTS = 4; 169 enum int D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 170 enum int D3D12_DS_OUTPUT_REGISTER_COUNT = 32; 171 enum float D3D12_float16_FUSED_TOLERANCE_IN_ULP = 0.6; 172 enum float D3D12_float32_MAX = 3.402823466e+38f; 173 enum float D3D12_float32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f; 174 enum float D3D12_float_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f; 175 enum float D3D12_float_TO_SRGB_EXPONENT_NUMERATOR = 1.0f; 176 enum float D3D12_float_TO_SRGB_OFFSET = 0.055f; 177 enum float D3D12_float_TO_SRGB_SCALE_1 = 12.92f; 178 enum float D3D12_float_TO_SRGB_SCALE_2 = 1.055f; 179 enum float D3D12_float_TO_SRGB_THRESHOLD = 0.0031308f; 180 enum float D3D12_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f; 181 enum float D3D12_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f; 182 enum float D3D12_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f; 183 enum float D3D12_FTOU_INSTRUCTION_MIN_INPUT = 0.0f; 184 enum int D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2; 185 enum int D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS = 1; 186 enum int D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1; 187 enum int D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 188 enum int D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1; 189 enum int D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; 190 enum int D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; 191 enum int D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; 192 enum int D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; 193 enum int D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; 194 enum int D3D12_GS_INPUT_REGISTER_COMPONENTS = 4; 195 enum int D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 196 enum int D3D12_GS_INPUT_REGISTER_COUNT = 32; 197 enum int D3D12_GS_INPUT_REGISTER_READS_PER_INST = 2; 198 enum int D3D12_GS_INPUT_REGISTER_READ_PORTS = 1; 199 enum int D3D12_GS_INPUT_REGISTER_VERTICES = 32; 200 enum int D3D12_GS_MAX_INSTANCE_COUNT = 32; 201 enum int D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024; 202 enum int D3D12_GS_OUTPUT_ELEMENTS = 32; 203 enum int D3D12_GS_OUTPUT_REGISTER_COMPONENTS = 4; 204 enum int D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 205 enum int D3D12_GS_OUTPUT_REGISTER_COUNT = 32; 206 enum int D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32; 207 enum int D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32; 208 enum int D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4; 209 enum int D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; 210 enum int D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2; 211 enum int D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1; 212 enum int D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xffffffff; 213 enum int D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1; 214 enum int D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 215 enum int D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1; 216 enum int D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2; 217 enum int D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1; 218 enum int D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1; 219 enum int D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 220 enum int D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1; 221 enum int D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2; 222 enum int D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1; 223 enum int D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; 224 enum int D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 225 enum int D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; 226 enum int D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; 227 enum int D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; 228 enum int D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xffffffff; 229 enum float D3D12_HS_MAXTESSFACTOR_LOWER_BOUND = 1.0f; 230 enum float D3D12_HS_MAXTESSFACTOR_UPPER_BOUND = 64.0f; 231 enum int D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; 232 enum int D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1; 233 enum int D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32; 234 enum int D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1; 235 enum int D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2; 236 enum int D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1; 237 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; 238 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; 239 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; 240 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; 241 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; 242 enum int D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS = 128; 243 enum int D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; 244 enum int D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; 245 enum int D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; 246 enum int D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; 247 enum int D3D12_IA_INSTANCE_ID_BIT_COUNT = 32; 248 enum int D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; 249 enum int D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32; 250 enum int D3D12_IA_PRIMITIVE_ID_BIT_COUNT = 32; 251 enum int D3D12_IA_VERTEX_ID_BIT_COUNT = 32; 252 enum int D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; 253 enum int D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; 254 enum int D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; 255 enum int D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; 256 enum int D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; 257 enum int D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff; 258 enum int D3D12_KEEP_UNORDERED_ACCESS_VIEWS = 0xffffffff; 259 enum float D3D12_LINEAR_GAMMA = 1.0f; 260 enum int D3D12_MAJOR_VERSION = 12; 261 enum float D3D12_MAX_BORDER_COLOR_COMPONENT = 1.0f; 262 enum float D3D12_MAX_DEPTH = 1.0f; 263 enum int D3D12_MAX_LIVE_STATIC_SAMPLERS = 2032; 264 enum int D3D12_MAX_MAXANISOTROPY = 16; 265 enum int D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; 266 enum float D3D12_MAX_POSITION_VALUE = 3.402823466e+34f; 267 enum int D3D12_MAX_ROOT_COST = 64; 268 enum int D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_size_tIER_1 = 1000000; 269 enum int D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_size_tIER_2 = 1000000; 270 enum int D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE = 2048; 271 enum int D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; 272 enum int D3D12_MAX_VIEW_INSTANCE_COUNT = 4; 273 enum int D3D12_MINOR_VERSION = 0; 274 enum float D3D12_MIN_BORDER_COLOR_COMPONENT = 0.0f; 275 enum float D3D12_MIN_DEPTH = 0.0f; 276 enum int D3D12_MIN_MAXANISOTROPY = 0; 277 enum float D3D12_MIP_LOD_BIAS_MAX = 15.99f; 278 enum float D3D12_MIP_LOD_BIAS_MIN = -16.0f; 279 enum int D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT = 8; 280 enum int D3D12_MIP_LOD_RANGE_BIT_COUNT = 8; 281 enum float D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f; 282 enum int D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; 283 enum int D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; 284 enum int D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff8; 285 enum int D3D12_PACKED_TILE = 0xffffffff; 286 enum int D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; 287 enum int D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16; 288 enum int D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1; 289 enum int D3D12_PS_CS_UAV_REGISTER_COUNT = 8; 290 enum int D3D12_PS_CS_UAV_REGISTER_READS_PER_INST = 1; 291 enum int D3D12_PS_CS_UAV_REGISTER_READ_PORTS = 1; 292 enum int D3D12_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff; 293 enum int D3D12_PS_FRONTFACING_FALSE_VALUE = 0; 294 enum int D3D12_PS_FRONTFACING_TRUE_VALUE = 0xffffffff; 295 enum int D3D12_PS_INPUT_REGISTER_COMPONENTS = 4; 296 enum int D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 297 enum int D3D12_PS_INPUT_REGISTER_COUNT = 32; 298 enum int D3D12_PS_INPUT_REGISTER_READS_PER_INST = 2; 299 enum int D3D12_PS_INPUT_REGISTER_READ_PORTS = 1; 300 enum float D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0f; 301 enum int D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; 302 enum int D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; 303 enum int D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; 304 enum int D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1; 305 enum int D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32; 306 enum int D3D12_PS_OUTPUT_MASK_REGISTER_COUNT = 1; 307 enum int D3D12_PS_OUTPUT_REGISTER_COMPONENTS = 4; 308 enum int D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 309 enum int D3D12_PS_OUTPUT_REGISTER_COUNT = 8; 310 enum float D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f; 311 enum int D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16; 312 enum int D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096; 313 enum int D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; 314 enum int D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 315 enum int D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096; 316 enum int D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; 317 enum int D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; 318 enum int D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384; 319 enum int D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; 320 enum int D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 321 enum int D3D12_REQ_MAXANISOTROPY = 16; 322 enum int D3D12_REQ_MIP_LEVELS = 15; 323 enum int D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; 324 enum int D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096; 325 enum int D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384; 326 enum int D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128; 327 enum float D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = 0.25f; 328 enum int D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048; 329 enum int D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20; 330 enum int D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096; 331 enum int D3D12_REQ_SUBRESOURCES = 30720; 332 enum int D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048; 333 enum int D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384; 334 enum int D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048; 335 enum int D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384; 336 enum int D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; 337 enum int D3D12_REQ_TEXTURECUBE_DIMENSION = 16384; 338 enum int D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; 339 enum int D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff; 340 enum int D3D12_SHADER_MAJOR_VERSION = 5; 341 enum int D3D12_SHADER_MAX_INSTANCES = 65535; 342 enum int D3D12_SHADER_MAX_INTERFACES = 253; 343 enum int D3D12_SHADER_MAX_INTERFACE_CALL_SITES = 4096; 344 enum int D3D12_SHADER_MAX_TYPES = 65535; 345 enum int D3D12_SHADER_MINOR_VERSION = 1; 346 enum int D3D12_SHIFT_INSTRUCTION_PAD_VALUE = 0; 347 enum int D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; 348 enum int D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; 349 enum int D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536; 350 enum int D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096; 351 enum int D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; 352 enum int D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512; 353 enum int D3D12_SO_BUFFER_SLOT_COUNT = 4; 354 enum int D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; 355 enum int D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff; 356 enum int D3D12_SO_OUTPUT_COMPONENT_COUNT = 128; 357 enum int D3D12_SO_STREAM_COUNT = 4; 358 enum int D3D12_SPEC_DATE_DAY = 14; 359 enum int D3D12_SPEC_DATE_MONTH = 11; 360 enum int D3D12_SPEC_DATE_YEAR = 2014; 361 enum float D3D12_SPEC_VERSION = 1.16; 362 enum float D3D12_SRGB_GAMMA = 2.2f; 363 enum float D3D12_SRGB_TO_float_DENOMINATOR_1 = 12.92f; 364 enum float D3D12_SRGB_TO_float_DENOMINATOR_2 = 1.055f; 365 enum float D3D12_SRGB_TO_float_EXPONENT = 2.4f; 366 enum float D3D12_SRGB_TO_float_OFFSET = 0.055f; 367 enum float D3D12_SRGB_TO_float_THRESHOLD = 0.04045f; 368 enum float D3D12_SRGB_TO_float_TOLERANCE_IN_ULP = 0.5f; 369 enum int D3D12_STANDARD_COMPONENT_BIT_COUNT = 32; 370 enum int D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; 371 enum int D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; 372 enum int D3D12_STANDARD_PIXEL_COMPONENT_COUNT = 128; 373 enum int D3D12_STANDARD_PIXEL_ELEMENT_COUNT = 32; 374 enum int D3D12_STANDARD_VECTOR_SIZE = 4; 375 enum int D3D12_STANDARD_VERTEX_ELEMENT_COUNT = 32; 376 enum int D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; 377 enum int D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; 378 enum int D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8; 379 enum int D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; 380 enum int D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; 381 enum int D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64; 382 enum int D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64; 383 enum int D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63; 384 enum int D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64; 385 enum int D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2; 386 enum int D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1; 387 enum int D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1; 388 enum int D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16; 389 enum int D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256; 390 enum int D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512; 391 enum int D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 65536; 392 enum int D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096; 393 enum int D3D12_UAV_SLOT_COUNT = 64; 394 enum int D3D12_UNBOUND_MEMORY_ACCESS_RESULT = 0; 395 enum int D3D12_VIDEO_DECODE_MAX_ARGUMENTS = 10; 396 enum int D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN = 0xffffffff; 397 enum int D3D12_VIDEO_PROCESS_MAX_FILTERS = 32; 398 enum int D3D12_VIDEO_PROCESS_STEREO_VIEWS = 2; 399 enum int D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; 400 enum int D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; 401 enum int D3D12_VIEWPORT_BOUNDS_MAX = 32767; 402 enum int D3D12_VIEWPORT_BOUNDS_MIN = -32768; 403 enum int D3D12_VS_INPUT_REGISTER_COMPONENTS = 4; 404 enum int D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 405 enum int D3D12_VS_INPUT_REGISTER_COUNT = 32; 406 enum int D3D12_VS_INPUT_REGISTER_READS_PER_INST = 2; 407 enum int D3D12_VS_INPUT_REGISTER_READ_PORTS = 1; 408 enum int D3D12_VS_OUTPUT_REGISTER_COMPONENTS = 4; 409 enum int D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 410 enum int D3D12_VS_OUTPUT_REGISTER_COUNT = 32; 411 enum int D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; 412 enum int D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; 413 enum int D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; 414 415 enum int D3D12_SHADER_COMPONENT_MAPPING_MASK = 0x7; 416 enum int D3D12_SHADER_COMPONENT_MAPPING_SHIFT = 3; 417 enum int D3D12_FILTER_REDUCTION_TYPE_MASK = 0x3; 418 enum int D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7; 419 enum int D3D12_FILTER_TYPE_MASK = 0x3; 420 enum int D3D12_MIN_FILTER_SHIFT = 4; 421 enum int D3D12_MAG_FILTER_SHIFT = 2; 422 enum int D3D12_MIP_FILTER_SHIFT = 0; 423 enum int D3D12_ANISOTROPIC_FILTERING_BIT = 0x40; 424 425 const IID D3D12ExperimentalShaderModels = { 0x76f5573e, 0xf13a, 0x40f5, [0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f]}; 426 427 alias ulong D3D12_GPU_VIRTUAL_ADDRESS; 428 alias D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; 429 alias D3D_PRIMITIVE D3D12_PRIMITIVE; 430 alias RECT D3D12_RECT; 431 432 433 /// 434 /// Mixins 435 /// 436 437 ///This macros have not yet been converted to mixins 438 /* 439 #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) 440 #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ 441 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \ 442 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \ 443 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \ 444 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)) 445 #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) 446 #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) 447 #define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ 448 ( ( D3D12_FILTER ) ( \ 449 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ 450 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ 451 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ 452 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 453 #define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ 454 ( ( D3D12_FILTER ) ( \ 455 D3D12_ANISOTROPIC_FILTERING_BIT | \ 456 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ 457 D3D12_FILTER_TYPE_LINEAR, \ 458 D3D12_FILTER_TYPE_LINEAR, \ 459 reduction ) ) ) 460 #define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ 461 ( ( D3D12_FILTER_TYPE ) \ 462 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 463 #define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ 464 ( ( D3D12_FILTER_TYPE ) \ 465 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 466 #define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ 467 ( ( D3D12_FILTER_TYPE ) \ 468 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 469 #define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ 470 ( ( D3D12_FILTER_REDUCTION_TYPE ) \ 471 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) 472 #define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ 473 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) 474 #define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ 475 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ 476 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ 477 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \ 478 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) ) 479 */ 480 481 /// 482 /// Functions 483 /// 484 485 HRESULT D3D12CreateDevice(IUnknown pAdapter, D3D_FEATURE_LEVEL MinimumFeatureLevel, REFIID riid, void** ppDevice ); 486 HRESULT D3D12GetDebugInterface(REFIID riid, void** ppvDebug); 487 HRESULT D3D12EnableExperimentalFeatures(uint NumFeatures, const IID* pIIDs, void* pConfigurationStructs, uint* pConfigurationStructSizes); 488 HRESULT D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, D3D_ROOT_SIGNATURE_VERSION Version, ID3DBlob* ppBlob, ID3DBlob* ppErrorBlob); 489 HRESULT D3D12CreateRootSignatureDeserializer(const void *pSrcData, size_t SrcDataSizeInBytes, REFIID pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer); 490 HRESULT D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, ID3DBlob* ppBlob, ID3DBlob* ppErrorBlob); 491 HRESULT D3D12CreateVersionedRootSignatureDeserializer(const void *pSrcData, size_t SrcDataSizeInBytes, REFIID pRootSignatureDeserializerInterface, void** ppRootSignatureDeserializer); 492 493 /// 494 /// Enumerations 495 /// 496 497 enum D3D12_COMMAND_LIST_TYPE 498 { 499 DIRECT = 0, 500 BUNDLE = 1, 501 COMPUTE = 2, 502 COPY = 3, 503 VIDEO_DECODE = 4, 504 VIDEO_PROCESS = 5 505 } 506 507 enum D3D12_COMMAND_QUEUE_FLAGS 508 { 509 NONE = 0, 510 DISABLE_GPU_TIMEOUT = 0x1 511 } 512 513 enum D3D12_COMMAND_QUEUE_PRIORITY 514 { 515 NORMAL = 0, 516 HIGH = 100, 517 GLOBAL_REALTIME = 10000 518 } 519 520 enum D3D12_PRIMITIVE_TOPOLOGY_TYPE 521 { 522 UNDEFINED = 0, 523 POINT = 1, 524 LINE = 2, 525 TRIANGLE = 3, 526 PATCH = 4 527 } 528 529 enum D3D12_INPUT_CLASSIFICATION 530 { 531 PER_VERTEX_DATA = 0, 532 PER_INSTANCE_DATA = 1 533 } 534 535 enum D3D12_FILL_MODE 536 { 537 D3D12_FILL_MODE_WIREFRAME = 2, 538 D3D12_FILL_MODE_SOLID = 3 539 } 540 541 enum D3D12_CULL_MODE 542 { 543 NONE = 1, 544 FRONT = 2, 545 BACK = 3 546 } 547 548 enum D3D12_COMPARISON_FUNC 549 { 550 NEVER = 1, 551 LESS = 2, 552 EQUAL = 3, 553 LESS_EQUAL = 4, 554 GREATER = 5, 555 NOT_EQUAL = 6, 556 GREATER_EQUAL = 7, 557 ALWAYS = 8 558 } 559 560 enum D3D12_DEPTH_WRITE_MASK 561 { 562 ZERO = 0, 563 ALL = 1 564 } 565 566 enum D3D12_STENCIL_OP 567 { 568 KEEP = 1, 569 ZERO = 2, 570 REPLACE = 3, 571 INCR_SAT = 4, 572 DECR_SAT = 5, 573 INVERT = 6, 574 INCR = 7, 575 DECR = 8 576 } 577 578 enum D3D12_BLEND 579 { 580 ZERO = 1, 581 ONE = 2, 582 SRC_COLOR = 3, 583 INV_SRC_COLOR = 4, 584 SRC_ALPHA = 5, 585 INV_SRC_ALPHA = 6, 586 DEST_ALPHA = 7, 587 INV_DEST_ALPHA = 8, 588 DEST_COLOR = 9, 589 INV_DEST_COLOR = 10, 590 SRC_ALPHA_SAT = 11, 591 BLEND_FACTOR = 14, 592 INV_BLEND_FACTOR = 15, 593 SRC1_COLOR = 16, 594 INV_SRC1_COLOR = 17, 595 SRC1_ALPHA = 18, 596 INV_SRC1_ALPHA = 19 597 } 598 599 enum D3D12_BLEND_OP 600 { 601 ADD = 1, 602 SUBTRACT = 2, 603 REV_SUBTRACT = 3, 604 MIN = 4, 605 MAX = 5 606 } 607 608 enum D3D12_COLOR_WRITE_ENABLE 609 { 610 RED = 1, 611 GREEN = 2, 612 BLUE = 4, 613 ALPHA = 8, 614 ALL = ( ( ( RED | GREEN ) | BLUE ) | ALPHA ) 615 } 616 617 enum D3D12_LOGIC_OP 618 { 619 CLEAR = 0, 620 SET = ( CLEAR + 1 ) , 621 COPY = ( SET + 1 ) , 622 COPY_INVERTED = ( COPY + 1 ) , 623 NOOP = ( COPY_INVERTED + 1 ) , 624 INVERT = ( NOOP + 1 ) , 625 AND = ( INVERT + 1 ) , 626 NAND = ( AND + 1 ) , 627 OR = ( NAND + 1 ) , 628 NOR = ( OR + 1 ) , 629 XOR = ( NOR + 1 ) , 630 EQUIV = ( XOR + 1 ) , 631 AND_REVERSE = ( EQUIV + 1 ) , 632 AND_INVERTED = ( AND_REVERSE + 1 ) , 633 OR_REVERSE = ( AND_INVERTED + 1 ) , 634 OR_INVERTED = ( OR_REVERSE + 1 ) 635 } 636 637 enum D3D12_CONSERVATIVE_RASTERIZATION_MODE 638 { 639 OFF = 0, 640 ON = 1 641 } 642 643 enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE 644 { 645 VALUE_DISABLED = 0, 646 VALUE_0xFFFF = 1, 647 VALUE_0xFFFFFFFF = 2 648 } 649 650 enum D3D12_PIPELINE_STATE_FLAGS 651 { 652 NONE = 0, 653 TOOL_DEBUG = 0x1 654 } 655 656 enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE 657 { 658 ROOT_SIGNATURE = 0, 659 VS = ( ROOT_SIGNATURE + 1 ) , 660 PS = ( VS + 1 ) , 661 DS = ( PS + 1 ) , 662 HS = ( DS + 1 ) , 663 GS = ( HS + 1 ) , 664 CS = ( GS + 1 ) , 665 STREAM_OUTPUT = ( CS + 1 ) , 666 BLEND = ( STREAM_OUTPUT + 1 ) , 667 SAMPLE_MASK = ( BLEND + 1 ) , 668 RASTERIZER = ( SAMPLE_MASK + 1 ) , 669 DEPTH_STENCIL = ( RASTERIZER + 1 ) , 670 INPUT_LAYOUT = ( DEPTH_STENCIL + 1 ) , 671 IB_STRIP_CUT_VALUE = ( INPUT_LAYOUT + 1 ) , 672 PRIMITIVE_TOPOLOGY = ( IB_STRIP_CUT_VALUE + 1 ) , 673 RENDER_TARGET_FORMATS = ( PRIMITIVE_TOPOLOGY + 1 ) , 674 DEPTH_STENCIL_FORMAT = ( RENDER_TARGET_FORMATS + 1 ) , 675 SAMPLE_DESC = ( DEPTH_STENCIL_FORMAT + 1 ) , 676 NODE_MASK = ( SAMPLE_DESC + 1 ) , 677 CACHED_PSO = ( NODE_MASK + 1 ) , 678 FLAGS = ( CACHED_PSO + 1 ) , 679 DEPTH_STENCIL1 = ( FLAGS + 1 ) , 680 VIEW_INSTANCING = ( DEPTH_STENCIL1 + 1 ) , 681 MAX_VALID = ( VIEW_INSTANCING + 1 ) 682 } 683 684 enum D3D12_FEATURE 685 { 686 D3D12_OPTIONS = 0, 687 ARCHITECTURE = 1, 688 FEATURE_LEVELS = 2, 689 FORMAT_SUPPORT = 3, 690 MULTISAMPLE_QUALITY_LEVELS = 4, 691 FORMAT_INFO = 5, 692 GPU_VIRTUAL_ADDRESS_SUPPORT = 6, 693 SHADER_MODEL = 7, 694 D3D12_OPTIONS1 = 8, 695 ROOT_SIGNATURE = 12, 696 ARCHITECTURE1 = 16, 697 D3D12_OPTIONS2 = 18, 698 SHADER_CACHE = 19, 699 COMMAND_QUEUE_PRIORITY = 20, 700 D3D12_OPTIONS3 = 21, 701 EXISTING_HEAPS = 22 702 } 703 704 enum D3D12_SHADER_MIN_PRECISION_SUPPORT 705 { 706 SUPPORT_NONE = 0, 707 SUPPORT_10_BIT = 0x1, 708 SUPPORT_16_BIT = 0x2 709 } 710 711 enum D3D12_TILED_RESOURCES_TIER 712 { 713 TIER_NOT_SUPPORTED = 0, 714 TIER_1 = 1, 715 TIER_2 = 2, 716 TIER_3 = 3 717 } 718 719 enum D3D12_RESOURCE_BINDING_TIER 720 { 721 TIER_1 = 1, 722 TIER_2 = 2, 723 TIER_3 = 3 724 } 725 726 enum D3D12_CONSERVATIVE_RASTERIZATION_TIER 727 { 728 TIER_NOT_SUPPORTED = 0, 729 TIER_1 = 1, 730 TIER_2 = 2, 731 TIER_3 = 3 732 } 733 734 enum D3D12_FORMAT_SUPPORT1 735 { 736 NONE = 0, 737 BUFFER = 0x1, 738 IA_VERTEX_BUFFER = 0x2, 739 IA_INDEX_BUFFER = 0x4, 740 SO_BUFFER = 0x8, 741 TEXTURE1D = 0x10, 742 TEXTURE2D = 0x20, 743 TEXTURE3D = 0x40, 744 TEXTURECUBE = 0x80, 745 SHADER_LOAD = 0x100, 746 SHADER_SAMPLE = 0x200, 747 SHADER_SAMPLE_COMPARISON = 0x400, 748 SHADER_SAMPLE_MONO_TEXT = 0x800, 749 MIP = 0x1000, 750 RENDER_TARGET = 0x4000, 751 BLENDABLE = 0x8000, 752 DEPTH_STENCIL = 0x10000, 753 MULTISAMPLE_RESOLVE = 0x40000, 754 DISPLAY = 0x80000, 755 CAST_WITHIN_BIT_LAYOUT = 0x100000, 756 MULTISAMPLE_RENDERTARGET = 0x200000, 757 MULTISAMPLE_LOAD = 0x400000, 758 SHADER_GATHER = 0x800000, 759 BACK_BUFFER_CAST = 0x1000000, 760 TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, 761 SHADER_GATHER_COMPARISON = 0x4000000, 762 DECODER_OUTPUT = 0x8000000, 763 VIDEO_PROCESSOR_OUTPUT = 0x10000000, 764 VIDEO_PROCESSOR_INPUT = 0x20000000, 765 VIDEO_ENCODER = 0x40000000 766 } 767 768 enum D3D12_FORMAT_SUPPORT2 769 { 770 NONE = 0, 771 UAV_ATOMIC_ADD = 0x1, 772 UAV_ATOMIC_BITWISE_OPS = 0x2, 773 UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, 774 UAV_ATOMIC_EXCHANGE = 0x8, 775 UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, 776 UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, 777 UAV_TYPED_LOAD = 0x40, 778 UAV_TYPED_STORE = 0x80, 779 OUTPUT_MERGER_LOGIC_OP = 0x100, 780 TILED = 0x200, 781 MULTIPLANE_OVERLAY = 0x4000 782 } 783 784 enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS 785 { 786 NONE = 0, 787 TILED_RESOURCE = 0x1 788 } 789 790 enum D3D12_CROSS_NODE_SHARING_TIER 791 { 792 TIER_NOT_SUPPORTED = 0, 793 TIER_1_EMULATED = 1, 794 TIER_1 = 2, 795 TIER_2 = 3 796 } 797 798 enum D3D12_RESOURCE_HEAP_TIER 799 { 800 TIER_1 = 1, 801 TIER_2 = 2 802 } 803 804 enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER 805 { 806 TIER_NOT_SUPPORTED = 0, 807 TIER_1 = 1, 808 TIER_2 = 2 809 } 810 811 enum D3D12_VIEW_INSTANCING_TIER 812 { 813 TIER_NOT_SUPPORTED = 0, 814 TIER_1 = 1, 815 TIER_2 = 2, 816 TIER_3 = 3 817 } 818 819 enum D3D_ROOT_SIGNATURE_VERSION 820 { 821 VERSION_1 = 0x1, 822 VERSION_1_0 = 0x1, 823 VERSION_1_1 = 0x2 824 } 825 826 enum D3D_SHADER_MODEL 827 { 828 MODEL_5_1 = 0x51, 829 MODEL_6_0 = 0x60, 830 MODEL_6_1 = 0x61 831 } 832 833 enum D3D12_SHADER_CACHE_SUPPORT_FLAGS 834 { 835 NONE = 0, 836 SINGLE_PSO = 0x1, 837 LIBRARY = 0x2, 838 AUTOMATIC_INPROC_CACHE = 0x4, 839 AUTOMATIC_DISK_CACHE = 0x8 840 } 841 842 enum D3D12_COMMAND_LIST_SUPPORT_FLAGS 843 { 844 NONE = 0, 845 DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE.DIRECT ) , 846 BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE.BUNDLE ) , 847 COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE.COMPUTE ) , 848 COPY = ( 1 << D3D12_COMMAND_LIST_TYPE.COPY ) , 849 VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE.VIDEO_DECODE ) , 850 VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE.VIDEO_PROCESS ) 851 } 852 853 enum D3D12_HEAP_TYPE 854 { 855 DEFAULT = 1, 856 UPLOAD = 2, 857 READBACK = 3, 858 CUSTOM = 4 859 } 860 861 enum D3D12_CPU_PAGE_PROPERTY 862 { 863 UNKNOWN = 0, 864 NOT_AVAILABLE = 1, 865 WRITE_COMBINE = 2, 866 WRITE_BACK = 3 867 } 868 869 enum D3D12_MEMORY_POOL 870 { 871 POOL_UNKNOWN = 0, 872 POOL_L0 = 1, 873 POOL_L1 = 2 874 } 875 876 enum D3D12_HEAP_FLAGS 877 { 878 NONE = 0, 879 SHARED = 0x1, 880 DENY_BUFFERS = 0x4, 881 ALLOW_DISPLAY = 0x8, 882 SHARED_CROSS_ADAPTER = 0x20, 883 DENY_RT_DS_TEXTURES = 0x40, 884 DENY_NON_RT_DS_TEXTURES = 0x80, 885 HARDWARE_PROTECTED = 0x100, 886 ALLOW_WRITE_WATCH = 0x200, 887 ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, 888 ALLOW_ONLY_BUFFERS = 0xc0, 889 ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, 890 ALLOW_ONLY_RT_DS_TEXTURES = 0x84 891 } 892 893 enum D3D12_RESOURCE_DIMENSION 894 { 895 UNKNOWN = 0, 896 BUFFER = 1, 897 TEXTURE1D = 2, 898 TEXTURE2D = 3, 899 TEXTURE3D = 4 900 } 901 902 enum D3D12_TEXTURE_LAYOUT 903 { 904 LAYOUT_UNKNOWN = 0, 905 LAYOUT_ROW_MAJOR = 1, 906 LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, 907 LAYOUT_64KB_STANDARD_SWIZZLE = 3 908 } 909 910 enum D3D12_RESOURCE_FLAGS 911 { 912 NONE = 0, 913 ALLOW_RENDER_TARGET = 0x1, 914 ALLOW_DEPTH_STENCIL = 0x2, 915 ALLOW_UNORDERED_ACCESS = 0x4, 916 DENY_SHADER_RESOURCE = 0x8, 917 ALLOW_CROSS_ADAPTER = 0x10, 918 ALLOW_SIMULTANEOUS_ACCESS = 0x20, 919 VIDEO_DECODE_REFERENCE_ONLY = 0x40 920 } 921 922 enum D3D12_TILE_RANGE_FLAGS 923 { 924 NONE = 0, 925 NULL = 1, 926 SKIP = 2, 927 REUSE_SINGLE_TILE = 4 928 } 929 930 enum D3D12_TILE_MAPPING_FLAGS 931 { 932 NONE = 0, 933 NO_HAZARD = 0x1 934 } 935 936 enum D3D12_TILE_COPY_FLAGS 937 { 938 NONE = 0, 939 NO_HAZARD = 0x1, 940 LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 941 SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 942 } 943 944 enum D3D12_RESOURCE_STATES 945 { 946 COMMON = 0, 947 VERTEX_AND_CONSTANT_BUFFER = 0x1, 948 INDEX_BUFFER = 0x2, 949 RENDER_TARGET = 0x4, 950 UNORDERED_ACCESS = 0x8, 951 DEPTH_WRITE = 0x10, 952 DEPTH_READ = 0x20, 953 NON_PIXEL_SHADER_RESOURCE = 0x40, 954 PIXEL_SHADER_RESOURCE = 0x80, 955 STREAM_OUT = 0x100, 956 INDIRECT_ARGUMENT = 0x200, 957 COPY_DEST = 0x400, 958 COPY_SOURCE = 0x800, 959 RESOLVE_DEST = 0x1000, 960 RESOLVE_SOURCE = 0x2000, 961 GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , 962 PRESENT = 0, 963 PREDICATION = 0x200, 964 VIDEO_DECODE_READ = 0x10000, 965 VIDEO_DECODE_WRITE = 0x20000, 966 VIDEO_PROCESS_READ = 0x40000, 967 VIDEO_PROCESS_WRITE = 0x80000 968 } 969 970 enum D3D12_RESOURCE_BARRIER_TYPE 971 { 972 TRANSITION = 0, 973 ALIASING = ( TRANSITION + 1 ) , 974 UAV = ( ALIASING + 1 ) 975 } 976 977 enum D3D12_RESOURCE_BARRIER_FLAGS 978 { 979 NONE = 0, 980 BEGIN_ONLY = 0x1, 981 END_ONLY = 0x2 982 } 983 984 enum D3D12_TEXTURE_COPY_TYPE 985 { 986 SUBRESOURCE_INDEX = 0, 987 PLACED_FOOTPRINT = 1 988 } 989 990 enum D3D12_RESOLVE_MODE 991 { 992 DECOMPRESS = 0, 993 MIN = 1, 994 MAX = 2, 995 AVERAGE = 3 996 } 997 998 enum D3D12_VIEW_INSTANCING_FLAGS 999 { 1000 NONE = 0, 1001 ENABLE_VIEW_INSTANCE_MASKING = 0x1 1002 } 1003 1004 enum D3D12_SHADER_COMPONENT_MAPPING 1005 { 1006 FROM_MEMORY_COMPONENT_0 = 0, 1007 FROM_MEMORY_COMPONENT_1 = 1, 1008 FROM_MEMORY_COMPONENT_2 = 2, 1009 FROM_MEMORY_COMPONENT_3 = 3, 1010 FORCE_VALUE_0 = 4, 1011 FORCE_VALUE_1 = 5 1012 } 1013 1014 enum D3D12_BUFFER_SRV_FLAGS 1015 { 1016 NONE = 0, 1017 RAW = 0x1 1018 } 1019 1020 enum D3D12_SRV_DIMENSION 1021 { 1022 UNKNOWN = 0, 1023 BUFFER = 1, 1024 TEXTURE1D = 2, 1025 TEXTURE1DARRAY = 3, 1026 TEXTURE2D = 4, 1027 TEXTURE2DARRAY = 5, 1028 TEXTURE2DMS = 6, 1029 TEXTURE2DMSARRAY = 7, 1030 TEXTURE3D = 8, 1031 TEXTURECUBE = 9, 1032 TEXTURECUBEARRAY = 10 1033 } 1034 1035 enum D3D12_FILTER 1036 { 1037 MIN_MAG_MIP_POINT = 0, 1038 MIN_MAG_POINT_MIP_LINEAR = 0x1, 1039 MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, 1040 MIN_POINT_MAG_MIP_LINEAR = 0x5, 1041 MIN_LINEAR_MAG_MIP_POINT = 0x10, 1042 MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 1043 MIN_MAG_LINEAR_MIP_POINT = 0x14, 1044 MIN_MAG_MIP_LINEAR = 0x15, 1045 ANISOTROPIC = 0x55, 1046 COMPARISON_MIN_MAG_MIP_POINT = 0x80, 1047 COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 1048 COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 1049 COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 1050 COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 1051 COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 1052 COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 1053 COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 1054 COMPARISON_ANISOTROPIC = 0xd5, 1055 MINIMUM_MIN_MAG_MIP_POINT = 0x100, 1056 MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, 1057 MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, 1058 MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, 1059 MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, 1060 MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, 1061 MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, 1062 MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, 1063 MINIMUM_ANISOTROPIC = 0x155, 1064 MAXIMUM_MIN_MAG_MIP_POINT = 0x180, 1065 MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, 1066 MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, 1067 MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, 1068 MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, 1069 MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, 1070 MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, 1071 MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, 1072 MAXIMUM_ANISOTROPIC = 0x1d5 1073 } 1074 1075 enum D3D12_FILTER_TYPE 1076 { 1077 POINT = 0, 1078 LINEAR = 1 1079 } 1080 1081 enum REDUCTION_TYPE 1082 { 1083 STANDARD = 0, 1084 COMPARISON = 1, 1085 MINIMUM = 2, 1086 MAXIMUM = 3 1087 } 1088 1089 enum D3D12_TEXTURE_ADDRESS_MODE 1090 { 1091 WRAP = 1, 1092 MIRROR = 2, 1093 CLAMP = 3, 1094 BORDER = 4, 1095 MIRROR_ONCE = 5 1096 } 1097 1098 enum D3D12_BUFFER_UAV_FLAGS 1099 { 1100 NONE = 0, 1101 RAW = 0x1 1102 } 1103 1104 enum D3D12_UAV_DIMENSION 1105 { 1106 UNKNOWN = 0, 1107 BUFFER = 1, 1108 TEXTURE1D = 2, 1109 TEXTURE1DARRAY = 3, 1110 TEXTURE2D = 4, 1111 TEXTURE2DARRAY = 5, 1112 TEXTURE3D = 8 1113 } 1114 1115 enum D3D12_RTV_DIMENSION 1116 { 1117 UNKNOWN = 0, 1118 BUFFER = 1, 1119 TEXTURE1D = 2, 1120 TEXTURE1DARRAY = 3, 1121 TEXTURE2D = 4, 1122 TEXTURE2DARRAY = 5, 1123 TEXTURE2DMS = 6, 1124 TEXTURE2DMSARRAY = 7, 1125 TEXTURE3D = 8 1126 } 1127 1128 enum D3D12_DSV_FLAGS 1129 { 1130 NONE = 0, 1131 READ_ONLY_DEPTH = 0x1, 1132 READ_ONLY_STENCIL = 0x2 1133 } 1134 1135 enum D3D12_DSV_DIMENSION 1136 { 1137 UNKNOWN = 0, 1138 TEXTURE1D = 1, 1139 TEXTURE1DARRAY = 2, 1140 TEXTURE2D = 3, 1141 TEXTURE2DARRAY = 4, 1142 TEXTURE2DMS = 5, 1143 TEXTURE2DMSARRAY = 6 1144 } 1145 1146 enum D3D12_CLEAR_FLAGS 1147 { 1148 DEPTH = 0x1, 1149 STENCIL = 0x2 1150 } 1151 1152 enum D3D12_FENCE_FLAGS 1153 { 1154 NONE = 0, 1155 SHARED = 0x1, 1156 SHARED_CROSS_ADAPTER = 0x2, 1157 NON_MONITORED = 0x4 1158 } 1159 1160 enum D3D12_DESCRIPTOR_HEAP_TYPE 1161 { 1162 CBV_SRV_UAV = 0, 1163 SAMPLER = ( CBV_SRV_UAV + 1 ) , 1164 RTV = ( SAMPLER + 1 ) , 1165 DSV = ( RTV + 1 ) , 1166 NUM_TYPES = ( DSV + 1 ) 1167 } 1168 1169 enum D3D12_DESCRIPTOR_HEAP_FLAGS 1170 { 1171 NONE = 0, 1172 SHADER_VISIBLE = 0x1 1173 } 1174 1175 enum D3D12_DESCRIPTOR_RANGE_TYPE 1176 { 1177 SRV = 0, 1178 UAV = ( SRV + 1 ) , 1179 CBV = ( UAV + 1 ) , 1180 SAMPLER = ( CBV + 1 ) 1181 } 1182 1183 enum D3D12_SHADER_VISIBILITY 1184 { 1185 ALL = 0, 1186 VERTEX = 1, 1187 HULL = 2, 1188 DOMAIN = 3, 1189 GEOMETRY = 4, 1190 PIXEL = 5 1191 } 1192 1193 enum D3D12_ROOT_PARAMETER_TYPE 1194 { 1195 TYPE_DESCRIPTOR_TABLE = 0, 1196 TYPE_32BIT_CONSTANTS = ( TYPE_DESCRIPTOR_TABLE + 1 ) , 1197 TYPE_CBV = ( TYPE_32BIT_CONSTANTS + 1 ) , 1198 TYPE_SRV = ( TYPE_CBV + 1 ) , 1199 TYPE_UAV = ( TYPE_SRV + 1 ) 1200 } 1201 1202 enum D3D12_ROOT_SIGNATURE_FLAGS 1203 { 1204 NONE = 0, 1205 ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, 1206 DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, 1207 DENY_HULL_SHADER_ROOT_ACCESS = 0x4, 1208 DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, 1209 DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, 1210 DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, 1211 ALLOW_STREAM_OUTPUT = 0x40 1212 } 1213 1214 enum D3D12_STATIC_BORDER_COLOR 1215 { 1216 TRANSPARENT_BLACK = 0, 1217 OPAQUE_BLACK = ( TRANSPARENT_BLACK + 1 ) , 1218 OPAQUE_WHITE = ( OPAQUE_BLACK + 1 ) 1219 } 1220 1221 enum D3D12_DESCRIPTOR_RANGE_FLAGS 1222 { 1223 NONE = 0, 1224 DESCRIPTORS_VOLATILE = 0x1, 1225 DATA_VOLATILE = 0x2, 1226 DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 1227 DATA_STATIC = 0x8 1228 } 1229 1230 enum D3D12_ROOT_DESCRIPTOR_FLAGS 1231 { 1232 NONE = 0, 1233 DATA_VOLATILE = 0x2, 1234 DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 1235 DATA_STATIC = 0x8 1236 } 1237 1238 enum D3D12_QUERY_HEAP_TYPE 1239 { 1240 OCCLUSION = 0, 1241 TIMESTAMP = 1, 1242 PIPELINE_STATISTICS = 2, 1243 SO_STATISTICS = 3, 1244 VIDEO_DECODE_STATISTICS = 4, 1245 COPY_QUEUE_TIMESTAMP = 5 1246 } 1247 1248 enum D3D12_QUERY_TYPE 1249 { 1250 OCCLUSION = 0, 1251 BINARY_OCCLUSION = 1, 1252 TIMESTAMP = 2, 1253 PIPELINE_STATISTICS = 3, 1254 SO_STATISTICS_STREAM0 = 4, 1255 SO_STATISTICS_STREAM1 = 5, 1256 SO_STATISTICS_STREAM2 = 6, 1257 SO_STATISTICS_STREAM3 = 7, 1258 VIDEO_DECODE_STATISTICS = 8 1259 } 1260 1261 enum D3D12_PREDICATION_OP 1262 { 1263 EQUAL_ZERO = 0, 1264 NOT_EQUAL_ZERO = 1 1265 } 1266 1267 enum D3D12_INDIRECT_ARGUMENT_TYPE 1268 { 1269 DRAW = 0, 1270 DRAW_INDEXED = ( DRAW + 1 ) , 1271 DISPATCH = ( DRAW_INDEXED + 1 ) , 1272 VERTEX_BUFFER_VIEW = ( DISPATCH + 1 ) , 1273 INDEX_BUFFER_VIEW = ( VERTEX_BUFFER_VIEW + 1 ) , 1274 CONSTANT = ( INDEX_BUFFER_VIEW + 1 ) , 1275 CONSTANT_BUFFER_VIEW = ( CONSTANT + 1 ) , 1276 SHADER_RESOURCE_VIEW = ( CONSTANT_BUFFER_VIEW + 1 ) , 1277 UNORDERED_ACCESS_VIEW = ( SHADER_RESOURCE_VIEW + 1 ) 1278 } 1279 1280 enum D3D12_WRITEBUFFERIMMEDIATE_MODE 1281 { 1282 DEFAULT = 0, 1283 MARKER_IN = 0x1, 1284 MARKER_OUT = 0x2 1285 } 1286 1287 enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS 1288 { 1289 NONE = 0, 1290 ANY = 0x1, 1291 ALL = 0 1292 } 1293 1294 enum D3D12_RESIDENCY_PRIORITY 1295 { 1296 MINIMUM = 0x28000000, 1297 LOW = 0x50000000, 1298 NORMAL = 0x78000000, 1299 HIGH = 0xa0010000, 1300 MAXIMUM = 0xc8000000 1301 } 1302 1303 enum D3D12_RESIDENCY_FLAGS 1304 { 1305 NONE = 0, 1306 DENY_OVERBUDGET = 0x1 1307 } 1308 1309 /// 1310 /// Structures 1311 /// 1312 1313 struct D3D12_COMMAND_QUEUE_DESC 1314 { 1315 D3D12_COMMAND_LIST_TYPE Type; 1316 int Priority; 1317 D3D12_COMMAND_QUEUE_FLAGS Flags; 1318 uint NodeMask; 1319 } 1320 1321 struct D3D12_INPUT_ELEMENT_DESC 1322 { 1323 LPCSTR SemanticName; 1324 uint SemanticIndex; 1325 DXGI_FORMAT Format; 1326 uint InputSlot; 1327 uint AlignedByteOffset; 1328 D3D12_INPUT_CLASSIFICATION InputSlotClass; 1329 uint InstanceDataStepRate; 1330 } 1331 1332 struct D3D12_SO_DECLARATION_ENTRY 1333 { 1334 uint Stream; 1335 LPCSTR SemanticName; 1336 uint SemanticIndex; 1337 BYTE StartComponent; 1338 BYTE ComponentCount; 1339 BYTE OutputSlot; 1340 } 1341 1342 struct D3D12_VIEWPORT 1343 { 1344 float TopLeftX; 1345 float TopLeftY; 1346 float Width; 1347 float Height; 1348 float MinDepth; 1349 float MaxDepth; 1350 } 1351 1352 1353 struct D3D12_BOX 1354 { 1355 uint left; 1356 uint top; 1357 uint front; 1358 uint right; 1359 uint bottom; 1360 uint back; 1361 } 1362 1363 struct D3D12_DEPTH_STENCILOP_DESC 1364 { 1365 D3D12_STENCIL_OP StencilFailOp; 1366 D3D12_STENCIL_OP StencilDepthFailOp; 1367 D3D12_STENCIL_OP StencilPassOp; 1368 D3D12_COMPARISON_FUNC StencilFunc; 1369 } 1370 1371 struct D3D12_DEPTH_STENCIL_DESC 1372 { 1373 bool DepthEnable; 1374 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 1375 D3D12_COMPARISON_FUNC DepthFunc; 1376 bool StencilEnable; 1377 ubyte StencilReadMask; 1378 ubyte StencilWriteMask; 1379 D3D12_DEPTH_STENCILOP_DESC FrontFace; 1380 D3D12_DEPTH_STENCILOP_DESC BackFace; 1381 } 1382 1383 struct D3D12_DEPTH_STENCIL_DESC1 1384 { 1385 bool DepthEnable; 1386 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 1387 D3D12_COMPARISON_FUNC DepthFunc; 1388 bool StencilEnable; 1389 ubyte StencilReadMask; 1390 ubyte StencilWriteMask; 1391 D3D12_DEPTH_STENCILOP_DESC FrontFace; 1392 D3D12_DEPTH_STENCILOP_DESC BackFace; 1393 bool DepthBoundsTestEnable; 1394 } 1395 1396 struct D3D12_RENDER_TARGET_BLEND_DESC 1397 { 1398 bool BlendEnable; 1399 bool LogicOpEnable; 1400 D3D12_BLEND SrcBlend; 1401 D3D12_BLEND DestBlend; 1402 D3D12_BLEND_OP BlendOp; 1403 D3D12_BLEND SrcBlendAlpha; 1404 D3D12_BLEND DestBlendAlpha; 1405 D3D12_BLEND_OP BlendOpAlpha; 1406 D3D12_LOGIC_OP LogicOp; 1407 ubyte RenderTargetWriteMask; 1408 } 1409 1410 struct D3D12_BLEND_DESC 1411 { 1412 bool AlphaToCoverageEnable; 1413 bool IndependentBlendEnable; 1414 D3D12_RENDER_TARGET_BLEND_DESC[8] RenderTarget; 1415 } 1416 1417 struct D3D12_RASTERIZER_DESC 1418 { 1419 D3D12_FILL_MODE FillMode; 1420 D3D12_CULL_MODE CullMode; 1421 bool FrontCounterClockwise; 1422 int DepthBias; 1423 float DepthBiasClamp; 1424 float SlopeScaledDepthBias; 1425 bool DepthClipEnable; 1426 bool MultisampleEnable; 1427 bool AntialiasedLineEnable; 1428 uint ForcedSampleCount; 1429 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; 1430 } 1431 1432 struct D3D12_SHADER_BYTECODE 1433 { 1434 const void *pShaderBytecode; 1435 size_t BytecodeLength; 1436 } 1437 1438 struct D3D12_STREAM_OUTPUT_DESC 1439 { 1440 const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; 1441 uint NumEntries; 1442 const uint *pBufferStrides; 1443 uint NumStrides; 1444 uint RasterizedStream; 1445 } 1446 1447 struct D3D12_INPUT_LAYOUT_DESC 1448 { 1449 const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; 1450 uint NumElements; 1451 } 1452 1453 struct D3D12_CACHED_PIPELINE_STATE 1454 { 1455 const void *pCachedBlob; 1456 size_t CachedBlobSizeInBytes; 1457 } 1458 1459 struct D3D12_GRAPHICS_PIPELINE_STATE_DESC 1460 { 1461 ID3D12RootSignature pRootSignature; 1462 D3D12_SHADER_BYTECODE VS; 1463 D3D12_SHADER_BYTECODE PS; 1464 D3D12_SHADER_BYTECODE DS; 1465 D3D12_SHADER_BYTECODE HS; 1466 D3D12_SHADER_BYTECODE GS; 1467 D3D12_STREAM_OUTPUT_DESC StreamOutput; 1468 D3D12_BLEND_DESC BlendState; 1469 uint SampleMask; 1470 D3D12_RASTERIZER_DESC RasterizerState; 1471 D3D12_DEPTH_STENCIL_DESC DepthStencilState; 1472 D3D12_INPUT_LAYOUT_DESC InputLayout; 1473 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; 1474 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; 1475 uint NumRenderTargets; 1476 DXGI_FORMAT[8] RTVFormats; 1477 DXGI_FORMAT DSVFormat; 1478 DXGI_SAMPLE_DESC SampleDesc; 1479 uint NodeMask; 1480 D3D12_CACHED_PIPELINE_STATE CachedPSO; 1481 D3D12_PIPELINE_STATE_FLAGS Flags; 1482 } 1483 1484 struct D3D12_COMPUTE_PIPELINE_STATE_DESC 1485 { 1486 ID3D12RootSignature pRootSignature; 1487 D3D12_SHADER_BYTECODE CS; 1488 uint NodeMask; 1489 D3D12_CACHED_PIPELINE_STATE CachedPSO; 1490 D3D12_PIPELINE_STATE_FLAGS Flags; 1491 } 1492 1493 struct D3D12_RT_FORMAT_ARRAY 1494 { 1495 DXGI_FORMAT[8] RTFormats; 1496 uint NumRenderTargets; 1497 } 1498 1499 struct D3D12_PIPELINE_STATE_STREAM_DESC 1500 { 1501 size_t SizeInBytes; 1502 void *pPipelineStateSubobjectStream; 1503 } 1504 1505 struct D3D12_FEATURE_DATA_D3D12_OPTIONS 1506 { 1507 bool DoublePrecisionFloatShaderOps; 1508 bool OutputMergerLogicOp; 1509 D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; 1510 D3D12_TILED_RESOURCES_TIER TiledResourcesTier; 1511 D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; 1512 bool PSSpecifiedStencilRefSupported; 1513 bool TypedUAVLoadAdditionalFormats; 1514 bool ROVsSupported; 1515 D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; 1516 uint MaxGPUVirtualAddressBitsPerResource; 1517 bool StandardSwizzle64KBSupported; 1518 D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; 1519 bool CrossAdapterRowMajorTextureSupported; 1520 bool VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; 1521 D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; 1522 } 1523 1524 struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 1525 { 1526 bool WaveOps; 1527 uint WaveLaneCountMin; 1528 uint WaveLaneCountMax; 1529 uint TotalLaneCount; 1530 bool ExpandedComputeResourceStates; 1531 bool Int64ShaderOps; 1532 } 1533 1534 struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 1535 { 1536 bool DepthBoundsTestSupported; 1537 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; 1538 } 1539 1540 struct D3D12_FEATURE_DATA_ROOT_SIGNATURE 1541 { 1542 D3D_ROOT_SIGNATURE_VERSION HighestVersion; 1543 } 1544 1545 struct D3D12_FEATURE_DATA_ARCHITECTURE 1546 { 1547 uint NodeIndex; 1548 bool TileBasedRenderer; 1549 bool UMA; 1550 bool CacheCoherentUMA; 1551 } 1552 1553 struct D3D12_FEATURE_DATA_ARCHITECTURE1 1554 { 1555 uint NodeIndex; 1556 bool TileBasedRenderer; 1557 bool UMA; 1558 bool CacheCoherentUMA; 1559 bool IsolatedMMU; 1560 } 1561 1562 struct D3D12_FEATURE_DATA_FEATURE_LEVELS 1563 { 1564 uint NumFeatureLevels; 1565 const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; 1566 D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; 1567 } 1568 1569 struct D3D12_FEATURE_DATA_SHADER_MODEL 1570 { 1571 D3D_SHADER_MODEL HighestShaderModel; 1572 } 1573 1574 struct D3D12_FEATURE_DATA_FORMAT_SUPPORT 1575 { 1576 DXGI_FORMAT Format; 1577 D3D12_FORMAT_SUPPORT1 Support1; 1578 D3D12_FORMAT_SUPPORT2 Support2; 1579 } 1580 1581 struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS 1582 { 1583 DXGI_FORMAT Format; 1584 uint SampleCount; 1585 D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; 1586 uint NumQualityLevels; 1587 } 1588 1589 struct D3D12_FEATURE_DATA_FORMAT_INFO 1590 { 1591 DXGI_FORMAT Format; 1592 ubyte PlaneCount; 1593 } 1594 1595 struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT 1596 { 1597 uint MaxGPUVirtualAddressBitsPerResource; 1598 uint MaxGPUVirtualAddressBitsPerProcess; 1599 } 1600 1601 struct D3D12_FEATURE_DATA_SHADER_CACHE 1602 { 1603 D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; 1604 } 1605 1606 struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY 1607 { 1608 D3D12_COMMAND_LIST_TYPE CommandListType; 1609 uint Priority; 1610 bool PriorityForTypeIsSupported; 1611 } 1612 1613 struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 1614 { 1615 bool CopyQueueTimestampQueriesSupported; 1616 bool CastingFullyTypedFormatSupported; 1617 D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; 1618 D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; 1619 bool BarycentricsSupported; 1620 } 1621 1622 struct D3D12_FEATURE_DATA_EXISTING_HEAPS 1623 { 1624 bool Supported; 1625 } 1626 1627 struct D3D12_RESOURCE_ALLOCATION_INFO 1628 { 1629 ulong SizeInBytes; 1630 ulong Alignment; 1631 } 1632 1633 struct D3D12_HEAP_PROPERTIES 1634 { 1635 D3D12_HEAP_TYPE Type; 1636 D3D12_CPU_PAGE_PROPERTY CPUPageProperty; 1637 D3D12_MEMORY_POOL MemoryPoolPreference; 1638 uint CreationNodeMask; 1639 uint VisibleNodeMask; 1640 } 1641 1642 struct D3D12_HEAP_DESC 1643 { 1644 ulong SizeInBytes; 1645 D3D12_HEAP_PROPERTIES Properties; 1646 ulong Alignment; 1647 D3D12_HEAP_FLAGS Flags; 1648 } 1649 1650 struct D3D12_RESOURCE_DESC 1651 { 1652 D3D12_RESOURCE_DIMENSION Dimension; 1653 ulong Alignment; 1654 ulong Width; 1655 uint Height; 1656 ushort DepthOrArraySize; 1657 ushort MipLevels; 1658 DXGI_FORMAT Format; 1659 DXGI_SAMPLE_DESC SampleDesc; 1660 D3D12_TEXTURE_LAYOUT Layout; 1661 D3D12_RESOURCE_FLAGS Flags; 1662 } 1663 1664 struct D3D12_DEPTH_STENCIL_VALUE 1665 { 1666 float Depth; 1667 ubyte Stencil; 1668 } 1669 1670 struct D3D12_CLEAR_VALUE 1671 { 1672 DXGI_FORMAT Format; 1673 union 1674 { 1675 float[4] Color; 1676 D3D12_DEPTH_STENCIL_VALUE DepthStencil; 1677 } 1678 } 1679 1680 struct D3D12_RANGE 1681 { 1682 size_t Begin; 1683 size_t End; 1684 } 1685 1686 struct D3D12_RANGE_UINT64 1687 { 1688 ulong Begin; 1689 ulong End; 1690 } 1691 1692 struct D3D12_SUBRESOURCE_RANGE_UINT64 1693 { 1694 uint Subresource; 1695 D3D12_RANGE_UINT64 Range; 1696 } 1697 1698 struct D3D12_SUBRESOURCE_INFO 1699 { 1700 ulong Offset; 1701 uint RowPitch; 1702 uint DepthPitch; 1703 } 1704 1705 struct D3D12_TILED_RESOURCE_COORDINATE 1706 { 1707 uint X; 1708 uint Y; 1709 uint Z; 1710 uint Subresource; 1711 } 1712 1713 struct D3D12_TILE_REGION_SIZE 1714 { 1715 uint NumTiles; 1716 bool UseBox; 1717 uint Width; 1718 ushort Height; 1719 ushort Depth; 1720 } 1721 1722 struct D3D12_SUBRESOURCE_TILING 1723 { 1724 uint WidthInTiles; 1725 ushort HeightInTiles; 1726 ushort DepthInTiles; 1727 uint StartTileIndexInOverallResource; 1728 } 1729 1730 struct D3D12_TILE_SHAPE 1731 { 1732 uint WidthInTexels; 1733 uint HeightInTexels; 1734 uint DepthInTexels; 1735 } 1736 1737 struct D3D12_PACKED_MIP_INFO 1738 { 1739 ubyte NumStandardMips; 1740 ubyte NumPackedMips; 1741 uint NumTilesForPackedMips; 1742 uint StartTileIndexInOverallResource; 1743 } 1744 1745 struct D3D12_RESOURCE_TRANSITION_BARRIER 1746 { 1747 ID3D12Resource pResource; 1748 uint Subresource; 1749 D3D12_RESOURCE_STATES StateBefore; 1750 D3D12_RESOURCE_STATES StateAfter; 1751 } 1752 1753 struct D3D12_RESOURCE_ALIASING_BARRIER 1754 { 1755 ID3D12Resource pResourceBefore; 1756 ID3D12Resource pResourceAfter; 1757 } 1758 1759 struct D3D12_RESOURCE_UAV_BARRIER 1760 { 1761 ID3D12Resource pResource; 1762 } 1763 1764 struct D3D12_RESOURCE_BARRIER 1765 { 1766 D3D12_RESOURCE_BARRIER_TYPE Type; 1767 D3D12_RESOURCE_BARRIER_FLAGS Flags; 1768 union 1769 { 1770 D3D12_RESOURCE_TRANSITION_BARRIER Transition; 1771 D3D12_RESOURCE_ALIASING_BARRIER Aliasing; 1772 D3D12_RESOURCE_UAV_BARRIER UAV; 1773 } 1774 } 1775 1776 struct D3D12_SUBRESOURCE_FOOTPRINT 1777 { 1778 DXGI_FORMAT Format; 1779 uint Width; 1780 uint Height; 1781 uint Depth; 1782 uint RowPitch; 1783 } 1784 1785 struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT 1786 { 1787 ulong Offset; 1788 D3D12_SUBRESOURCE_FOOTPRINT Footprint; 1789 } 1790 1791 struct D3D12_TEXTURE_COPY_LOCATION 1792 { 1793 ID3D12Resource pResource; 1794 D3D12_TEXTURE_COPY_TYPE Type; 1795 union 1796 { 1797 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; 1798 uint SubresourceIndex; 1799 } 1800 } 1801 1802 struct D3D12_SAMPLE_POSITION 1803 { 1804 byte X; 1805 byte Y; 1806 } 1807 1808 struct D3D12_VIEW_INSTANCE_LOCATION 1809 { 1810 uint ViewportArrayIndex; 1811 uint RenderTargetArrayIndex; 1812 } 1813 1814 struct D3D12_VIEW_INSTANCING_DESC 1815 { 1816 uint ViewInstanceCount; 1817 const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; 1818 D3D12_VIEW_INSTANCING_FLAGS Flags; 1819 } 1820 1821 struct D3D12_BUFFER_SRV 1822 { 1823 ulong FirstElement; 1824 uint NumElements; 1825 uint StructureByteStride; 1826 D3D12_BUFFER_SRV_FLAGS Flags; 1827 } 1828 1829 struct D3D12_TEX1D_SRV 1830 { 1831 uint MostDetailedMip; 1832 uint MipLevels; 1833 float ResourceMinLODClamp; 1834 } 1835 1836 struct D3D12_TEX1D_ARRAY_SRV 1837 { 1838 uint MostDetailedMip; 1839 uint MipLevels; 1840 uint FirstArraySlice; 1841 uint ArraySize; 1842 float ResourceMinLODClamp; 1843 } 1844 1845 struct D3D12_TEX2D_SRV 1846 { 1847 uint MostDetailedMip; 1848 uint MipLevels; 1849 uint PlaneSlice; 1850 float ResourceMinLODClamp; 1851 } 1852 1853 struct D3D12_TEX2D_ARRAY_SRV 1854 { 1855 uint MostDetailedMip; 1856 uint MipLevels; 1857 uint FirstArraySlice; 1858 uint ArraySize; 1859 uint PlaneSlice; 1860 float ResourceMinLODClamp; 1861 } 1862 1863 struct D3D12_TEX3D_SRV 1864 { 1865 uint MostDetailedMip; 1866 uint MipLevels; 1867 float ResourceMinLODClamp; 1868 } 1869 1870 struct D3D12_TEXCUBE_SRV 1871 { 1872 uint MostDetailedMip; 1873 uint MipLevels; 1874 float ResourceMinLODClamp; 1875 } 1876 1877 struct D3D12_TEXCUBE_ARRAY_SRV 1878 { 1879 uint MostDetailedMip; 1880 uint MipLevels; 1881 uint First2DArrayFace; 1882 uint NumCubes; 1883 float ResourceMinLODClamp; 1884 } 1885 1886 struct D3D12_TEX2DMS_SRV 1887 { 1888 uint UnusedField_NothingToDefine; 1889 } 1890 1891 struct D3D12_TEX2DMS_ARRAY_SRV 1892 { 1893 uint FirstArraySlice; 1894 uint ArraySize; 1895 } 1896 1897 struct D3D12_SHADER_RESOURCE_VIEW_DESC 1898 { 1899 DXGI_FORMAT Format; 1900 D3D12_SRV_DIMENSION ViewDimension; 1901 uint Shader4ComponentMapping; 1902 union 1903 { 1904 D3D12_BUFFER_SRV Buffer; 1905 D3D12_TEX1D_SRV Texture1D; 1906 D3D12_TEX1D_ARRAY_SRV Texture1DArray; 1907 D3D12_TEX2D_SRV Texture2D; 1908 D3D12_TEX2D_ARRAY_SRV Texture2DArray; 1909 D3D12_TEX2DMS_SRV Texture2DMS; 1910 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; 1911 D3D12_TEX3D_SRV Texture3D; 1912 D3D12_TEXCUBE_SRV TextureCube; 1913 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; 1914 } 1915 } 1916 1917 struct D3D12_CONSTANT_BUFFER_VIEW_DESC 1918 { 1919 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 1920 uint SizeInBytes; 1921 } 1922 1923 struct D3D12_SAMPLER_DESC 1924 { 1925 D3D12_FILTER Filter; 1926 D3D12_TEXTURE_ADDRESS_MODE AddressU; 1927 D3D12_TEXTURE_ADDRESS_MODE AddressV; 1928 D3D12_TEXTURE_ADDRESS_MODE AddressW; 1929 float MipLODBias; 1930 uint MaxAnisotropy; 1931 D3D12_COMPARISON_FUNC ComparisonFunc; 1932 float[4] BorderColor; 1933 float MinLOD; 1934 float MaxLOD; 1935 } 1936 1937 struct D3D12_BUFFER_UAV 1938 { 1939 ulong FirstElement; 1940 uint NumElements; 1941 uint StructureByteStride; 1942 ulong CounterOffsetInBytes; 1943 D3D12_BUFFER_UAV_FLAGS Flags; 1944 } 1945 1946 struct D3D12_TEX1D_UAV 1947 { 1948 uint MipSlice; 1949 } 1950 1951 struct D3D12_TEX1D_ARRAY_UAV 1952 { 1953 uint MipSlice; 1954 uint FirstArraySlice; 1955 uint ArraySize; 1956 } 1957 1958 struct D3D12_TEX2D_UAV 1959 { 1960 uint MipSlice; 1961 uint PlaneSlice; 1962 } 1963 1964 struct D3D12_TEX2D_ARRAY_UAV 1965 { 1966 uint MipSlice; 1967 uint FirstArraySlice; 1968 uint ArraySize; 1969 uint PlaneSlice; 1970 } 1971 1972 struct D3D12_TEX3D_UAV 1973 { 1974 uint MipSlice; 1975 uint FirstWSlice; 1976 uint WSize; 1977 } 1978 1979 struct D3D12_UNORDERED_ACCESS_VIEW_DESC 1980 { 1981 DXGI_FORMAT Format; 1982 D3D12_UAV_DIMENSION ViewDimension; 1983 union 1984 { 1985 D3D12_BUFFER_UAV Buffer; 1986 D3D12_TEX1D_UAV Texture1D; 1987 D3D12_TEX1D_ARRAY_UAV Texture1DArray; 1988 D3D12_TEX2D_UAV Texture2D; 1989 D3D12_TEX2D_ARRAY_UAV Texture2DArray; 1990 D3D12_TEX3D_UAV Texture3D; 1991 } 1992 } 1993 1994 struct D3D12_BUFFER_RTV 1995 { 1996 ulong FirstElement; 1997 uint NumElements; 1998 } 1999 2000 struct D3D12_TEX1D_RTV 2001 { 2002 uint MipSlice; 2003 } 2004 2005 struct D3D12_TEX1D_ARRAY_RTV 2006 { 2007 uint MipSlice; 2008 uint FirstArraySlice; 2009 uint ArraySize; 2010 } 2011 2012 struct D3D12_TEX2D_RTV 2013 { 2014 uint MipSlice; 2015 uint PlaneSlice; 2016 } 2017 2018 struct D3D12_TEX2DMS_RTV 2019 { 2020 uint UnusedField_NothingToDefine; 2021 } 2022 2023 struct D3D12_TEX2D_ARRAY_RTV 2024 { 2025 uint MipSlice; 2026 uint FirstArraySlice; 2027 uint ArraySize; 2028 uint PlaneSlice; 2029 } 2030 2031 struct D3D12_TEX2DMS_ARRAY_RTV 2032 { 2033 uint FirstArraySlice; 2034 uint ArraySize; 2035 } 2036 2037 struct D3D12_TEX3D_RTV 2038 { 2039 uint MipSlice; 2040 uint FirstWSlice; 2041 uint WSize; 2042 } 2043 2044 struct D3D12_RENDER_TARGET_VIEW_DESC 2045 { 2046 DXGI_FORMAT Format; 2047 D3D12_RTV_DIMENSION ViewDimension; 2048 union 2049 { 2050 D3D12_BUFFER_RTV Buffer; 2051 D3D12_TEX1D_RTV Texture1D; 2052 D3D12_TEX1D_ARRAY_RTV Texture1DArray; 2053 D3D12_TEX2D_RTV Texture2D; 2054 D3D12_TEX2D_ARRAY_RTV Texture2DArray; 2055 D3D12_TEX2DMS_RTV Texture2DMS; 2056 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; 2057 D3D12_TEX3D_RTV Texture3D; 2058 } 2059 } 2060 2061 struct D3D12_TEX1D_DSV 2062 { 2063 uint MipSlice; 2064 } 2065 2066 struct D3D12_TEX1D_ARRAY_DSV 2067 { 2068 uint MipSlice; 2069 uint FirstArraySlice; 2070 uint ArraySize; 2071 } 2072 2073 struct D3D12_TEX2D_DSV 2074 { 2075 uint MipSlice; 2076 } 2077 2078 struct D3D12_TEX2D_ARRAY_DSV 2079 { 2080 uint MipSlice; 2081 uint FirstArraySlice; 2082 uint ArraySize; 2083 } 2084 2085 struct D3D12_TEX2DMS_DSV 2086 { 2087 uint UnusedField_NothingToDefine; 2088 } 2089 2090 struct D3D12_TEX2DMS_ARRAY_DSV 2091 { 2092 uint FirstArraySlice; 2093 uint ArraySize; 2094 } 2095 2096 struct D3D12_DEPTH_STENCIL_VIEW_DESC 2097 { 2098 DXGI_FORMAT Format; 2099 D3D12_DSV_DIMENSION ViewDimension; 2100 D3D12_DSV_FLAGS Flags; 2101 union 2102 { 2103 D3D12_TEX1D_DSV Texture1D; 2104 D3D12_TEX1D_ARRAY_DSV Texture1DArray; 2105 D3D12_TEX2D_DSV Texture2D; 2106 D3D12_TEX2D_ARRAY_DSV Texture2DArray; 2107 D3D12_TEX2DMS_DSV Texture2DMS; 2108 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; 2109 } 2110 } 2111 2112 struct D3D12_DESCRIPTOR_HEAP_DESC 2113 { 2114 D3D12_DESCRIPTOR_HEAP_TYPE Type; 2115 uint NumDescriptors; 2116 D3D12_DESCRIPTOR_HEAP_FLAGS Flags; 2117 uint NodeMask; 2118 } 2119 2120 struct D3D12_DESCRIPTOR_RANGE 2121 { 2122 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 2123 uint NumDescriptors; 2124 uint BaseShaderRegister; 2125 uint RegisterSpace; 2126 uint OffsetInDescriptorsFromTableStart; 2127 } 2128 2129 struct D3D12_ROOT_DESCRIPTOR_TABLE 2130 { 2131 uint NumDescriptorRanges; 2132 const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; 2133 } 2134 2135 struct D3D12_ROOT_CONSTANTS 2136 { 2137 uint ShaderRegister; 2138 uint RegisterSpace; 2139 uint Num32BitValues; 2140 } 2141 2142 struct D3D12_ROOT_DESCRIPTOR 2143 { 2144 uint ShaderRegister; 2145 uint RegisterSpace; 2146 } 2147 2148 struct D3D12_ROOT_PARAMETER 2149 { 2150 D3D12_ROOT_PARAMETER_TYPE ParameterType; 2151 union 2152 { 2153 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; 2154 D3D12_ROOT_CONSTANTS Constants; 2155 D3D12_ROOT_DESCRIPTOR Descriptor; 2156 } 2157 D3D12_SHADER_VISIBILITY ShaderVisibility; 2158 } 2159 2160 struct D3D12_STATIC_SAMPLER_DESC 2161 { 2162 D3D12_FILTER Filter; 2163 D3D12_TEXTURE_ADDRESS_MODE AddressU; 2164 D3D12_TEXTURE_ADDRESS_MODE AddressV; 2165 D3D12_TEXTURE_ADDRESS_MODE AddressW; 2166 float MipLODBias; 2167 uint MaxAnisotropy; 2168 D3D12_COMPARISON_FUNC ComparisonFunc; 2169 D3D12_STATIC_BORDER_COLOR BorderColor; 2170 float MinLOD; 2171 float MaxLOD; 2172 uint ShaderRegister; 2173 uint RegisterSpace; 2174 D3D12_SHADER_VISIBILITY ShaderVisibility; 2175 } 2176 2177 struct D3D12_ROOT_SIGNATURE_DESC 2178 { 2179 uint NumParameters; 2180 const D3D12_ROOT_PARAMETER *pParameters; 2181 uint NumStaticSamplers; 2182 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 2183 D3D12_ROOT_SIGNATURE_FLAGS Flags; 2184 } 2185 2186 struct D3D12_DESCRIPTOR_RANGE1 2187 { 2188 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 2189 uint NumDescriptors; 2190 uint BaseShaderRegister; 2191 uint RegisterSpace; 2192 D3D12_DESCRIPTOR_RANGE_FLAGS Flags; 2193 uint OffsetInDescriptorsFromTableStart; 2194 } 2195 2196 struct D3D12_ROOT_DESCRIPTOR_TABLE1 2197 { 2198 uint NumDescriptorRanges; 2199 const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; 2200 } 2201 2202 struct D3D12_ROOT_DESCRIPTOR1 2203 { 2204 uint ShaderRegister; 2205 uint RegisterSpace; 2206 D3D12_ROOT_DESCRIPTOR_FLAGS Flags; 2207 } 2208 2209 struct D3D12_ROOT_PARAMETER1 2210 { 2211 D3D12_ROOT_PARAMETER_TYPE ParameterType; 2212 union 2213 { 2214 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; 2215 D3D12_ROOT_CONSTANTS Constants; 2216 D3D12_ROOT_DESCRIPTOR1 Descriptor; 2217 } 2218 D3D12_SHADER_VISIBILITY ShaderVisibility; 2219 } 2220 2221 struct D3D12_ROOT_SIGNATURE_DESC1 2222 { 2223 uint NumParameters; 2224 const D3D12_ROOT_PARAMETER1 *pParameters; 2225 uint NumStaticSamplers; 2226 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 2227 D3D12_ROOT_SIGNATURE_FLAGS Flags; 2228 } 2229 2230 struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC 2231 { 2232 D3D_ROOT_SIGNATURE_VERSION Version; 2233 union 2234 { 2235 D3D12_ROOT_SIGNATURE_DESC Desc_1_0; 2236 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; 2237 } 2238 } 2239 2240 struct D3D12_CPU_DESCRIPTOR_HANDLE 2241 { 2242 size_t ptr; 2243 } 2244 2245 struct D3D12_GPU_DESCRIPTOR_HANDLE 2246 { 2247 ulong ptr; 2248 } 2249 2250 struct D3D12_DISCARD_REGION 2251 { 2252 uint NumRects; 2253 const D3D12_RECT *pRects; 2254 uint FirstSubresource; 2255 uint NumSubresources; 2256 } 2257 2258 struct D3D12_QUERY_HEAP_DESC 2259 { 2260 D3D12_QUERY_HEAP_TYPE Type; 2261 uint Count; 2262 uint NodeMask; 2263 } 2264 2265 struct D3D12_QUERY_DATA_PIPELINE_STATISTICS 2266 { 2267 ulong IAVertices; 2268 ulong IAPrimitives; 2269 ulong VSInvocations; 2270 ulong GSInvocations; 2271 ulong GSPrimitives; 2272 ulong CInvocations; 2273 ulong CPrimitives; 2274 ulong PSInvocations; 2275 ulong HSInvocations; 2276 ulong DSInvocations; 2277 ulong CSInvocations; 2278 } 2279 2280 struct D3D12_QUERY_DATA_SO_STATISTICS 2281 { 2282 ulong NumPrimitivesWritten; 2283 ulong PrimitivesStorageNeeded; 2284 } 2285 2286 struct D3D12_STREAM_OUTPUT_BUFFER_VIEW 2287 { 2288 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 2289 ulong SizeInBytes; 2290 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; 2291 } 2292 2293 struct D3D12_DRAW_ARGUMENTS 2294 { 2295 uint VertexCountPerInstance; 2296 uint InstanceCount; 2297 uint StartVertexLocation; 2298 uint StartInstanceLocation; 2299 } 2300 2301 struct D3D12_DRAW_INDEXED_ARGUMENTS 2302 { 2303 uint IndexCountPerInstance; 2304 uint InstanceCount; 2305 uint StartIndexLocation; 2306 int BaseVertexLocation; 2307 uint StartInstanceLocation; 2308 } 2309 2310 struct D3D12_DISPATCH_ARGUMENTS 2311 { 2312 uint ThreadGroupCountX; 2313 uint ThreadGroupCountY; 2314 uint ThreadGroupCountZ; 2315 } 2316 2317 struct D3D12_VERTEX_BUFFER_VIEW 2318 { 2319 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 2320 uint SizeInBytes; 2321 uint StrideInBytes; 2322 } 2323 2324 struct D3D12_INDEX_BUFFER_VIEW 2325 { 2326 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 2327 uint SizeInBytes; 2328 DXGI_FORMAT Format; 2329 } 2330 2331 struct D3D12_INDIRECT_ARGUMENT_DESC 2332 { 2333 D3D12_INDIRECT_ARGUMENT_TYPE Type; 2334 union 2335 { 2336 struct VertexBuffer 2337 { 2338 uint Slot; 2339 }; 2340 struct Constant 2341 { 2342 uint RootParameterIndex; 2343 uint DestOffsetIn32BitValues; 2344 uint Num32BitValuesToSet; 2345 }; 2346 struct ConstantBufferView 2347 { 2348 uint RootParameterIndex; 2349 }; 2350 struct ShaderResourceView 2351 { 2352 uint RootParameterIndex; 2353 }; 2354 struct UnorderedAccessView 2355 { 2356 uint RootParameterIndex; 2357 }; 2358 }; 2359 } 2360 2361 struct D3D12_COMMAND_SIGNATURE_DESC 2362 { 2363 uint ByteStride; 2364 uint NumArgumentDescs; 2365 const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; 2366 uint NodeMask; 2367 } 2368 2369 struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER 2370 { 2371 D3D12_GPU_VIRTUAL_ADDRESS Dest; 2372 uint Value; 2373 } 2374 struct D3D12_SUBRESOURCE_DATA 2375 { 2376 const void *pData; 2377 LONG_PTR RowPitch; 2378 LONG_PTR SlicePitch; 2379 } 2380 2381 struct D3D12_MEMCPY_DEST 2382 { 2383 void *pData; 2384 size_t RowPitch; 2385 size_t SlicePitch; 2386 } 2387 2388 /// 2389 /// Interfaces 2390 /// 2391 2392 mixin(uuid!(ID3D12Object, "c4fec28f-7966-4e95-9f94-f431cb56c3b8")); 2393 public interface ID3D12Object : IUnknown 2394 { 2395 extern(Windows): 2396 HRESULT GetPrivateData(REFGUID guid, uint *pDataSize, void *pData); 2397 HRESULT SetName(const wchar *Name); 2398 HRESULT SetPrivateData(REFGUID guid, uint DataSize, const void *pData); 2399 HRESULT SetPrivateDataInterface(REFGUID guid, const IUnknown *pData); 2400 } 2401 2402 mixin(uuid!(ID3D12DeviceChild, "905db94b-a00c-4140-9df5-2b64ca9ea357")); 2403 public interface ID3D12DeviceChild : ID3D12Object 2404 { 2405 extern(Windows): 2406 HRESULT GetDevice(REFIID riid, void **ppvDevice); 2407 } 2408 2409 mixin(uuid!(ID3D12RootSignature, "c54a6b66-72df-4ee8-8be5-a946a1429214")); 2410 public interface ID3D12RootSignature : ID3D12DeviceChild 2411 { 2412 extern(Windows): 2413 } 2414 2415 mixin(uuid!(ID3D12RootSignatureDeserializer, "34AB647B-3CC8-46AC-841B-C0965645C046")); 2416 public interface ID3D12RootSignatureDeserializer : IUnknown 2417 { 2418 extern(Windows): 2419 D3D12_ROOT_SIGNATURE_DESC* GetRootSignatureDesc(); 2420 } 2421 2422 mixin(uuid!(ID3D12VersionedRootSignatureDeserializer, "7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")); 2423 public interface ID3D12VersionedRootSignatureDeserializer : IUnknown 2424 { 2425 extern(Windows): 2426 HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc); 2427 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc(); 2428 } 2429 2430 mixin(uuid!(ID3D12Pageable, "63ee58fb-1268-4835-86da-f008ce62f0d6")); 2431 public interface ID3D12Pageable : ID3D12DeviceChild 2432 { 2433 extern(Windows): 2434 } 2435 2436 mixin(uuid!(ID3D12Heap, "6b3b2502-6e51-45b3-90ee-9884265e8df3")); 2437 public interface ID3D12Heap : ID3D12Pageable 2438 { 2439 extern(Windows): 2440 D3D12_HEAP_DESC GetDesc(); 2441 } 2442 2443 mixin(uuid!(ID3D12Resource, "696442be-a72e-4059-bc79-5b5c98040fad")); 2444 public interface ID3D12Resource : ID3D12Pageable 2445 { 2446 extern(Windows): 2447 HRESULT Map(uint Subresource, const D3D12_RANGE *pReadRange, void **ppData); 2448 void Unmap(uint Subresource, const D3D12_RANGE *pWrittenRange); 2449 D3D12_RESOURCE_DESC GetDesc(); 2450 D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress(); 2451 HRESULT WriteToSubresource(uint DstSubresource, const D3D12_BOX *pDstBox, const void *pSrcData, uint SrcRowPitch, uint SrcDepthPitch); 2452 HRESULT ReadFromSubresource(void *pDstData, uint DstRowPitch, uint DstDepthPitch, uint SrcSubresource, const D3D12_BOX *pSrcBox); 2453 HRESULT GetHeapProperties(D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS *pHeapFlags); 2454 } 2455 2456 mixin(uuid!(ID3D12CommandAllocator, "6102dee4-af59-4b09-b999-b44d73f09b24")); 2457 public interface ID3D12CommandAllocator : ID3D12Pageable 2458 { 2459 extern(Windows): 2460 HRESULT Reset(); 2461 } 2462 2463 mixin(uuid!(ID3D12Fence, "0a753dcf-c4d8-4b91-adf6-be5a60d95a76")); 2464 public interface ID3D12Fence : ID3D12Pageable 2465 { 2466 extern(Windows): 2467 ulong GetCompletedValue(); 2468 HRESULT SetEventOnCompletion(ulong Value, HANDLE hEvent); 2469 HRESULT Signal(ulong Value); 2470 } 2471 2472 mixin(uuid!(ID3D12Fence1, "433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")); 2473 public interface ID3D12Fence1 : ID3D12Fence 2474 { 2475 extern(Windows): 2476 D3D12_FENCE_FLAGS GetCreationFlags(); 2477 } 2478 2479 mixin(uuid!(ID3D12PipelineState, "765a30f3-f624-4c6f-a828-ace948622445")); 2480 public interface ID3D12PipelineState : ID3D12Pageable 2481 { 2482 extern(Windows): 2483 HRESULT GetCachedBlob(ID3DBlob *ppBlob); 2484 } 2485 2486 mixin(uuid!(ID3D12DescriptorHeap, "8efb471d-616c-4f49-90f7-127bb763fa51")); 2487 public interface ID3D12DescriptorHeap : ID3D12Pageable 2488 { 2489 extern(Windows): 2490 D3D12_DESCRIPTOR_HEAP_DESC GetDesc(); 2491 D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart(); 2492 D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart(); 2493 } 2494 2495 mixin(uuid!(ID3D12QueryHeap, "0d9658ae-ed45-469e-a61d-970ec583cab4")); 2496 public interface ID3D12QueryHeap : ID3D12Pageable 2497 { 2498 extern(Windows): 2499 } 2500 2501 mixin(uuid!(ID3D12CommandSignature, "c36a797c-ec80-4f0a-8985-a7b2475082d1")); 2502 public interface ID3D12CommandSignature : ID3D12Pageable 2503 { 2504 extern(Windows): 2505 } 2506 2507 mixin(uuid!(ID3D12CommandList, "7116d91c-e7e4-47ce-b8c6-ec8168f437e5")); 2508 public interface ID3D12CommandList : ID3D12DeviceChild 2509 { 2510 extern(Windows): 2511 D3D12_COMMAND_LIST_TYPE GetType(); 2512 } 2513 2514 mixin(uuid!(ID3D12GraphicsCommandList, "5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")); 2515 public interface ID3D12GraphicsCommandList : ID3D12CommandList 2516 { 2517 extern(Windows): 2518 HRESULT Close(); 2519 HRESULT Reset(ID3D12CommandAllocator pAllocator, ID3D12PipelineState pInitialState); 2520 void ClearState(ID3D12PipelineState pPipelineState); 2521 void DrawInstanced(uint VertexCountPerInstance, uint InstanceCount, uint StartVertexLocation, uint StartInstanceLocation); 2522 void DrawIndexedInstanced(uint IndexCountPerInstance, uint InstanceCount, uint StartIndexLocation, int BaseVertexLocation, uint StartInstanceLocation); 2523 void Dispatch(uint ThreadGroupCountX, uint ThreadGroupCountY, uint ThreadGroupCountZ); 2524 void CopyBufferRegion(ID3D12Resource pDstBuffer, ulong DstOffset, ID3D12Resource pSrcBuffer, ulong SrcOffset, ulong NumBytes); 2525 void CopyTextureRegion(const D3D12_TEXTURE_COPY_LOCATION *pDst, uint DstX, uint DstY, uint DstZ, const D3D12_TEXTURE_COPY_LOCATION *pSrc, const D3D12_BOX *pSrcBox); 2526 void CopyResource(ID3D12Resource pDstResource, ID3D12Resource pSrcResource); 2527 void CopyTiles(ID3D12Resource pTiledResource, const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, const D3D12_TILE_REGION_SIZE *pTileRegionSize, ID3D12Resource pBuffer, ulong BufferStartOffsetInBytes, D3D12_TILE_COPY_FLAGS Flags); 2528 void ResolveSubresource(ID3D12Resource pDstResource, uint DstSubresource, ID3D12Resource pSrcResource, uint SrcSubresource, DXGI_FORMAT Format); 2529 void IASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 2530 void RSSetViewports(uint NumViewports, const D3D12_VIEWPORT *pViewports); 2531 void RSSetScissorRects(uint NumRects, const D3D12_RECT *pRects); 2532 void OMSetBlendFactor(const float[4] BlendFactor); 2533 void OMSetStencilRef(uint StencilRef); 2534 void SetPipelineState(ID3D12PipelineState pPipelineState); 2535 void ResourceBarrier(uint NumBarriers, const D3D12_RESOURCE_BARRIER *pBarriers); 2536 void ExecuteBundle(ID3D12GraphicsCommandList pCommandList); 2537 void SetDescriptorHeaps(uint NumDescriptorHeaps, const(ID3D12DescriptorHeap) *ppDescriptorHeaps); 2538 void SetComputeRootSignature(ID3D12RootSignature pRootSignature); 2539 void SetGraphicsRootSignature(ID3D12RootSignature pRootSignature); 2540 void SetComputeRootDescriptorTable(uint RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 2541 void SetGraphicsRootDescriptorTable(uint RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 2542 void SetComputeRoot32BitConstant(uint RootParameterIndex, uint SrcData, uint DestOffsetIn32BitValues); 2543 void SetGraphicsRoot32BitConstant(uint RootParameterIndex, uint SrcData, uint DestOffsetIn32BitValues); 2544 void SetComputeRoot32BitConstants(uint RootParameterIndex, uint Num32BitValuesToSet, const void *pSrcData, uint DestOffsetIn32BitValues); 2545 void SetGraphicsRoot32BitConstants(uint RootParameterIndex, uint Num32BitValuesToSet, const void *pSrcData, uint DestOffsetIn32BitValues); 2546 void SetComputeRootConstantBufferView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2547 void SetGraphicsRootConstantBufferView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2548 void SetComputeRootShaderResourceView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2549 void SetGraphicsRootShaderResourceView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2550 void SetComputeRootUnorderedAccessView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2551 void SetGraphicsRootUnorderedAccessView(uint RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 2552 void IASetIndexBuffer(const D3D12_INDEX_BUFFER_VIEW *pView); 2553 void IASetVertexBuffers(uint StartSlot, uint NumViews, const D3D12_VERTEX_BUFFER_VIEW *pViews); 2554 void SOSetTargets(uint StartSlot, uint NumViews, const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 2555 void OMSetRenderTargets(uint NumRenderTargetDescriptors, const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, bool RTsSingleHandleToDescriptorRange, const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 2556 void ClearDepthStencilView(D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, D3D12_CLEAR_FLAGS ClearFlags, float Depth, ubyte Stencil, uint NumRects, const D3D12_RECT *pRects); 2557 void ClearRenderTargetView(D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, const float[4] ColorRGBA, uint NumRects, const D3D12_RECT *pRects); 2558 void ClearUnorderedAccessViewUint(D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ID3D12Resource pResource, const uint[4] Values, uint NumRects, const D3D12_RECT *pRects); 2559 void ClearUnorderedAccessViewFloat(D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, ID3D12Resource pResource, const float[4] Values, uint NumRects, const D3D12_RECT *pRects); 2560 void DiscardResource(ID3D12Resource pResource, const D3D12_DISCARD_REGION *pRegion); 2561 void BeginQuery(ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint Index); 2562 void EndQuery(ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint Index); 2563 void ResolveQueryData(ID3D12QueryHeap pQueryHeap, D3D12_QUERY_TYPE Type, uint StartIndex, uint NumQueries, ID3D12Resource pDestinationBuffer, ulong AlignedDestinationBufferOffset); 2564 void SetPredication(ID3D12Resource pBuffer, ulong AlignedBufferOffset, D3D12_PREDICATION_OP Operation); 2565 void SetMarker(uint Metadata, const void *pData, uint Size); 2566 void BeginEvent(uint Metadata, const void *pData, uint Size); 2567 void EndEvent(); 2568 void ExecuteIndirect(ID3D12CommandSignature pCommandSignature, uint MaxCommandCount, ID3D12Resource pArgumentBuffer, ulong ArgumentBufferOffset, ID3D12Resource pCountBuffer, ulong CountBufferOffset); 2569 } 2570 2571 mixin(uuid!(ID3D12GraphicsCommandList1, "553103fb-1fe7-4557-bb38-946d7d0e7ca7")); 2572 public interface ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList 2573 { 2574 extern(Windows): 2575 void AtomicCopyBufferUINT(ID3D12Resource pDstBuffer, ulong DstOffset, ID3D12Resource pSrcBuffer, ulong SrcOffset, uint Dependencies, const(ID3D12Resource) *ppDependentResources, const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 2576 void AtomicCopyBufferUINT64(ID3D12Resource pDstBuffer, ulong DstOffset, ID3D12Resource pSrcBuffer, ulong SrcOffset, uint Dependencies, const(ID3D12Resource) *ppDependentResources, const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 2577 void OMSetDepthBounds(float Min, float Max); 2578 void SetSamplePositions(uint NumSamplesPerPixel, uint NumPixels, D3D12_SAMPLE_POSITION *pSamplePositions); 2579 void ResolveSubresourceRegion(ID3D12Resource pDstResource, uint DstSubresource, uint DstX, uint DstY, ID3D12Resource pSrcResource, uint SrcSubresource, D3D12_RECT *pSrcRect, DXGI_FORMAT Format, D3D12_RESOLVE_MODE ResolveMode); 2580 void SetViewInstanceMask(uint Mask); 2581 } 2582 2583 mixin(uuid!(ID3D12GraphicsCommandList2, "38C3E585-FF17-412C-9150-4FC6F9D72A28")); 2584 public interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1 2585 { 2586 extern(Windows): 2587 void WriteBufferImmediate(uint Count, const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 2588 } 2589 2590 mixin(uuid!(ID3D12CommandQueue, "0ec870a6-5d7e-4c22-8cfc-5baae07616ed")); 2591 public interface ID3D12CommandQueue : ID3D12Pageable 2592 { 2593 extern(Windows): 2594 void UpdateTileMappings(ID3D12Resource pResource, uint NumResourceRegions, const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, ID3D12Heap pHeap, uint NumRanges, const D3D12_TILE_RANGE_FLAGS *pRangeFlags, const uint *pHeapRangeStartOffsets, const uint *pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags); 2595 void CopyTileMappings(ID3D12Resource pDstResource, const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, ID3D12Resource pSrcResource, const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, const D3D12_TILE_REGION_SIZE *pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags); 2596 void ExecuteCommandLists(uint NumCommandLists, const(ID3D12CommandList) *ppCommandLists); 2597 void SetMarker( uint Metadata, const void *pData, uint Size); 2598 void BeginEvent(uint Metadata, const void *pData, uint Size); 2599 void EndEvent(); 2600 HRESULT Signal(ID3D12Fence pFence, ulong Value); 2601 HRESULT Wait(ID3D12Fence pFence, ulong Value); 2602 HRESULT GetTimestampFrequency(ulong *pFrequency); 2603 HRESULT GetClockCalibration(ulong *pGpuTimestamp, ulong *pCpuTimestamp); 2604 D3D12_COMMAND_QUEUE_DESC GetDesc(); 2605 } 2606 2607 mixin(uuid!(ID3D12Device, "189819f1-1db6-4b57-be54-1821339b85f7")); 2608 public interface ID3D12Device : ID3D12Object 2609 { 2610 extern(Windows): 2611 uint GetNodeCount(); 2612 HRESULT CreateCommandQueue(const D3D12_COMMAND_QUEUE_DESC *pDesc, REFIID riid, void **ppCommandQueue); 2613 HRESULT CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE type, REFIID riid, void **ppCommandAllocator); 2614 HRESULT CreateGraphicsPipelineState(const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, REFIID riid, void **ppPipelineState); 2615 HRESULT CreateComputePipelineState(const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, REFIID riid, void **ppPipelineState); 2616 HRESULT CreateCommandList(uint nodeMask, D3D12_COMMAND_LIST_TYPE type, ID3D12CommandAllocator pCommandAllocator, ID3D12PipelineState pInitialState, REFIID riid, void **ppCommandList); 2617 HRESULT CheckFeatureSupport(D3D12_FEATURE Feature, void *pFeatureSupportData, uint FeatureSupportDataSize); 2618 HRESULT CreateDescriptorHeap(const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, REFIID riid, void **ppvHeap); 2619 uint GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 2620 HRESULT CreateRootSignature(uint nodeMask, const void *pBlobWithRootSignature, size_t blobLengthInBytes, REFIID riid, void **ppvRootSignature); 2621 void CreateConstantBufferView(const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2622 void CreateShaderResourceView(ID3D12Resource pResource, const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2623 void CreateUnorderedAccessView(ID3D12Resource pResource, ID3D12Resource pCounterResource, const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2624 void CreateRenderTargetView(ID3D12Resource pResource, const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2625 void CreateDepthStencilView(ID3D12Resource pResource, const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2626 void CreateSampler(const D3D12_SAMPLER_DESC *pDesc, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 2627 void CopyDescriptors(uint NumDestDescriptorRanges, const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, const uint *pDestDescriptorRangeSizes, uint NumSrcDescriptorRanges, const D3D12_CPU_DESCRIPTOR_HANDLE *pSr, const uint *pSrcDescriptorRangeSizes, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 2628 void CopyDescriptorsSimple(uint NumDescriptors, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 2629 D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(uint visibleMask, uint numResourceDescs, const D3D12_RESOURCE_DESC *pResourceDescs); 2630 D3D12_HEAP_PROPERTIES GetCustomHeapProperties(uint nodeMask, D3D12_HEAP_TYPE heapType); 2631 HRESULT CreateCommittedResource(const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialResourceState, const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riidResource, void **ppvResource); 2632 HRESULT CreateHeap(const D3D12_HEAP_DESC *pDesc, REFIID riid, void **ppvHeap); 2633 HRESULT CreatePlacedResource(ID3D12Heap pHeap, ulong HeapOffset, const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, void **ppvResource); 2634 HRESULT CreateReservedResource(const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, void **ppvResource); 2635 HRESULT CreateSharedHandle(ID3D12DeviceChild pObject, const SECURITY_ATTRIBUTES *pAttributes, uint Access, const wchar *Name, HANDLE *pHandle); 2636 HRESULT OpenSharedHandle(HANDLE NTHandle, REFIID riid, void **ppvObj); 2637 HRESULT OpenSharedHandleByName(const wchar *Name, uint Access, HANDLE *pNTHandle); 2638 HRESULT MakeResident( uint NumObjects, const(ID3D12Pageable) *ppObjects); 2639 HRESULT Evict(uint NumObjects, const(ID3D12Pageable) *ppObjects); 2640 HRESULT CreateFence(ulong InitialValue, D3D12_FENCE_FLAGS Flags, REFIID riid, void **ppFence); 2641 HRESULT GetDeviceRemovedReason(); 2642 void GetCopyableFootprints(const D3D12_RESOURCE_DESC *pResourceDesc, uint FirstSubresource, uint NumSubresources, ulong BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, uint *pNumRows, ulong *pRowSizeInBytes, ulong *pTotalBytes); 2643 HRESULT CreateQueryHeap(const D3D12_QUERY_HEAP_DESC *pDesc, REFIID riid, void **ppvHeap); 2644 HRESULT SetStablePowerState(bool Enable); 2645 HRESULT CreateCommandSignature(const D3D12_COMMAND_SIGNATURE_DESC *pDesc, ID3D12RootSignature pRootSignature, REFIID riid, void **ppvCommandSignature); 2646 void GetResourceTiling(ID3D12Resource pTiledResource, uint *pNumTilesForEntireResource, D3D12_PACKED_MIP_INFO *pPackedMipDesc, D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, uint *pNumSubresourceTilings, uint FirstSubresourceTilingToGet, D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 2647 LUID GetAdapterLuid(); 2648 } 2649 2650 mixin(uuid!(ID3D12PipelineLibrary, "c64226a8-9201-46af-b4cc-53fb9ff7414f")); 2651 public interface ID3D12PipelineLibrary : ID3D12DeviceChild 2652 { 2653 extern(Windows): 2654 HRESULT StorePipeline(const wchar *pName, ID3D12PipelineState pPipeline); 2655 HRESULT LoadGraphicsPipeline(const wchar *pName, const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, REFIID riid, void **ppPipelineState); 2656 HRESULT LoadComputePipeline(const wchar *pName, const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, REFIID riid, void **ppPipelineState); 2657 size_t GetSerializedSize(); 2658 HRESULT Serialize(void *pData, size_t DataSizeInBytes); 2659 } 2660 2661 mixin(uuid!(ID3D12PipelineLibrary1, "80eabf42-2568-4e5e-bd82-c37f86961dc3")); 2662 public interface ID3D12PipelineLibrary1 : ID3D12PipelineLibrary 2663 { 2664 extern(Windows): 2665 HRESULT LoadPipeline(const wchar *Name, const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, REFIID riid, void **ppPipelineState); 2666 } 2667 2668 mixin(uuid!(ID3D12Device1, "77acce80-638e-4e65-8895-c1f23386863e")); 2669 public interface ID3D12Device1 : ID3D12Device 2670 { 2671 extern(Windows): 2672 HRESULT CreatePipelineLibrary(const void *pLibraryBlob, size_t BlobLength, REFIID riid, void **ppPipelineLibrary); 2673 HRESULT SetEventOnMultipleFenceCompletion(const(ID3D12Fence) *ppFences, const ulong *pFenceValues, uint NumFences, D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, HANDLE hEvent); 2674 HRESULT SetResidencyPriority(uint NumObjects, const(ID3D12Pageable) *ppObjects, const D3D12_RESIDENCY_PRIORITY *pPriorities); 2675 } 2676 2677 mixin(uuid!(ID3D12Device2, "30baa41e-b15b-475c-a0bb-1af5c5b64328")); 2678 public interface ID3D12Device2 : ID3D12Device1 2679 { 2680 extern(Windows): 2681 HRESULT CreatePipelineState(const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, REFIID riid, void **ppPipelineState); 2682 } 2683 2684 mixin(uuid!(ID3D12Device3, "81dadc15-2bad-4392-93c5-101345c4aa98")); 2685 public interface ID3D12Device3 : ID3D12Device2 2686 { 2687 extern(Windows): 2688 HRESULT OpenExistingHeapFromAddress(const void *pAddress, REFIID riid, void **ppvHeap); 2689 HRESULT OpenExistingHeapFromFileMapping(HANDLE hFileMapping, REFIID riid, void **ppvHeap); 2690 HRESULT EnqueueMakeResident(D3D12_RESIDENCY_FLAGS Flags, uint NumObjects, const(ID3D12Pageable) *ppObjects, ID3D12Fence pFenceToSignal, ulong FenceValueToSignal); 2691 } 2692 2693 mixin(uuid!(ID3D12Tools, "7071e1f0-e84b-4b33-974f-12fa49de65c5")); 2694 public interface ID3D12Tools : IUnknown 2695 { 2696 extern(Windows): 2697 void EnableShaderInstrumentation(bool bEnable); 2698 bool ShaderInstrumentationEnabled(); 2699 } 2700