d3d12.h (1234117B) - Raw
1 /*** Autogenerated by WIDL 10.4 from include/d3d12.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __d3d12_h__ 17 #define __d3d12_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __ID3D12Object_FWD_DEFINED__ 22 #define __ID3D12Object_FWD_DEFINED__ 23 typedef interface ID3D12Object ID3D12Object; 24 #ifdef __cplusplus 25 interface ID3D12Object; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __ID3D12DeviceChild_FWD_DEFINED__ 30 #define __ID3D12DeviceChild_FWD_DEFINED__ 31 typedef interface ID3D12DeviceChild ID3D12DeviceChild; 32 #ifdef __cplusplus 33 interface ID3D12DeviceChild; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __ID3D12Pageable_FWD_DEFINED__ 38 #define __ID3D12Pageable_FWD_DEFINED__ 39 typedef interface ID3D12Pageable ID3D12Pageable; 40 #ifdef __cplusplus 41 interface ID3D12Pageable; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __ID3D12Heap_FWD_DEFINED__ 46 #define __ID3D12Heap_FWD_DEFINED__ 47 typedef interface ID3D12Heap ID3D12Heap; 48 #ifdef __cplusplus 49 interface ID3D12Heap; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __ID3D12Resource_FWD_DEFINED__ 54 #define __ID3D12Resource_FWD_DEFINED__ 55 typedef interface ID3D12Resource ID3D12Resource; 56 #ifdef __cplusplus 57 interface ID3D12Resource; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __ID3D12CommandList_FWD_DEFINED__ 62 #define __ID3D12CommandList_FWD_DEFINED__ 63 typedef interface ID3D12CommandList ID3D12CommandList; 64 #ifdef __cplusplus 65 interface ID3D12CommandList; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ 70 #define __ID3D12DescriptorHeap_FWD_DEFINED__ 71 typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; 72 #ifdef __cplusplus 73 interface ID3D12DescriptorHeap; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __ID3D12QueryHeap_FWD_DEFINED__ 78 #define __ID3D12QueryHeap_FWD_DEFINED__ 79 typedef interface ID3D12QueryHeap ID3D12QueryHeap; 80 #ifdef __cplusplus 81 interface ID3D12QueryHeap; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __ID3D12CommandSignature_FWD_DEFINED__ 86 #define __ID3D12CommandSignature_FWD_DEFINED__ 87 typedef interface ID3D12CommandSignature ID3D12CommandSignature; 88 #ifdef __cplusplus 89 interface ID3D12CommandSignature; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ 94 #define __ID3D12GraphicsCommandList_FWD_DEFINED__ 95 typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; 96 #ifdef __cplusplus 97 interface ID3D12GraphicsCommandList; 98 #endif /* __cplusplus */ 99 #endif 100 101 #ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__ 102 #define __ID3D12GraphicsCommandList1_FWD_DEFINED__ 103 typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1; 104 #ifdef __cplusplus 105 interface ID3D12GraphicsCommandList1; 106 #endif /* __cplusplus */ 107 #endif 108 109 #ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__ 110 #define __ID3D12GraphicsCommandList2_FWD_DEFINED__ 111 typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2; 112 #ifdef __cplusplus 113 interface ID3D12GraphicsCommandList2; 114 #endif /* __cplusplus */ 115 #endif 116 117 #ifndef __ID3D12ProtectedSession_FWD_DEFINED__ 118 #define __ID3D12ProtectedSession_FWD_DEFINED__ 119 typedef interface ID3D12ProtectedSession ID3D12ProtectedSession; 120 #ifdef __cplusplus 121 interface ID3D12ProtectedSession; 122 #endif /* __cplusplus */ 123 #endif 124 125 #ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__ 126 #define __ID3D12ProtectedResourceSession_FWD_DEFINED__ 127 typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession; 128 #ifdef __cplusplus 129 interface ID3D12ProtectedResourceSession; 130 #endif /* __cplusplus */ 131 #endif 132 133 #ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__ 134 #define __ID3D12GraphicsCommandList3_FWD_DEFINED__ 135 typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3; 136 #ifdef __cplusplus 137 interface ID3D12GraphicsCommandList3; 138 #endif /* __cplusplus */ 139 #endif 140 141 #ifndef __ID3D12CommandQueue_FWD_DEFINED__ 142 #define __ID3D12CommandQueue_FWD_DEFINED__ 143 typedef interface ID3D12CommandQueue ID3D12CommandQueue; 144 #ifdef __cplusplus 145 interface ID3D12CommandQueue; 146 #endif /* __cplusplus */ 147 #endif 148 149 #ifndef __ID3D12RootSignature_FWD_DEFINED__ 150 #define __ID3D12RootSignature_FWD_DEFINED__ 151 typedef interface ID3D12RootSignature ID3D12RootSignature; 152 #ifdef __cplusplus 153 interface ID3D12RootSignature; 154 #endif /* __cplusplus */ 155 #endif 156 157 #ifndef __ID3D12PipelineState_FWD_DEFINED__ 158 #define __ID3D12PipelineState_FWD_DEFINED__ 159 typedef interface ID3D12PipelineState ID3D12PipelineState; 160 #ifdef __cplusplus 161 interface ID3D12PipelineState; 162 #endif /* __cplusplus */ 163 #endif 164 165 #ifndef __ID3D12Fence_FWD_DEFINED__ 166 #define __ID3D12Fence_FWD_DEFINED__ 167 typedef interface ID3D12Fence ID3D12Fence; 168 #ifdef __cplusplus 169 interface ID3D12Fence; 170 #endif /* __cplusplus */ 171 #endif 172 173 #ifndef __ID3D12Fence1_FWD_DEFINED__ 174 #define __ID3D12Fence1_FWD_DEFINED__ 175 typedef interface ID3D12Fence1 ID3D12Fence1; 176 #ifdef __cplusplus 177 interface ID3D12Fence1; 178 #endif /* __cplusplus */ 179 #endif 180 181 #ifndef __ID3D12CommandAllocator_FWD_DEFINED__ 182 #define __ID3D12CommandAllocator_FWD_DEFINED__ 183 typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; 184 #ifdef __cplusplus 185 interface ID3D12CommandAllocator; 186 #endif /* __cplusplus */ 187 #endif 188 189 #ifndef __ID3D12Device_FWD_DEFINED__ 190 #define __ID3D12Device_FWD_DEFINED__ 191 typedef interface ID3D12Device ID3D12Device; 192 #ifdef __cplusplus 193 interface ID3D12Device; 194 #endif /* __cplusplus */ 195 #endif 196 197 #ifndef __ID3D12PipelineLibrary_FWD_DEFINED__ 198 #define __ID3D12PipelineLibrary_FWD_DEFINED__ 199 typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary; 200 #ifdef __cplusplus 201 interface ID3D12PipelineLibrary; 202 #endif /* __cplusplus */ 203 #endif 204 205 #ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__ 206 #define __ID3D12PipelineLibrary1_FWD_DEFINED__ 207 typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1; 208 #ifdef __cplusplus 209 interface ID3D12PipelineLibrary1; 210 #endif /* __cplusplus */ 211 #endif 212 213 #ifndef __ID3D12Device1_FWD_DEFINED__ 214 #define __ID3D12Device1_FWD_DEFINED__ 215 typedef interface ID3D12Device1 ID3D12Device1; 216 #ifdef __cplusplus 217 interface ID3D12Device1; 218 #endif /* __cplusplus */ 219 #endif 220 221 #ifndef __ID3D12Device2_FWD_DEFINED__ 222 #define __ID3D12Device2_FWD_DEFINED__ 223 typedef interface ID3D12Device2 ID3D12Device2; 224 #ifdef __cplusplus 225 interface ID3D12Device2; 226 #endif /* __cplusplus */ 227 #endif 228 229 #ifndef __ID3D12Device3_FWD_DEFINED__ 230 #define __ID3D12Device3_FWD_DEFINED__ 231 typedef interface ID3D12Device3 ID3D12Device3; 232 #ifdef __cplusplus 233 interface ID3D12Device3; 234 #endif /* __cplusplus */ 235 #endif 236 237 #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ 238 #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ 239 typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; 240 #ifdef __cplusplus 241 interface ID3D12RootSignatureDeserializer; 242 #endif /* __cplusplus */ 243 #endif 244 245 #ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ 246 #define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ 247 typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer; 248 #ifdef __cplusplus 249 interface ID3D12VersionedRootSignatureDeserializer; 250 #endif /* __cplusplus */ 251 #endif 252 253 #ifndef __ID3D12Device4_FWD_DEFINED__ 254 #define __ID3D12Device4_FWD_DEFINED__ 255 typedef interface ID3D12Device4 ID3D12Device4; 256 #ifdef __cplusplus 257 interface ID3D12Device4; 258 #endif /* __cplusplus */ 259 #endif 260 261 #ifndef __ID3D12LifetimeOwner_FWD_DEFINED__ 262 #define __ID3D12LifetimeOwner_FWD_DEFINED__ 263 typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner; 264 #ifdef __cplusplus 265 interface ID3D12LifetimeOwner; 266 #endif /* __cplusplus */ 267 #endif 268 269 #ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__ 270 #define __ID3D12SwapChainAssistant_FWD_DEFINED__ 271 typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant; 272 #ifdef __cplusplus 273 interface ID3D12SwapChainAssistant; 274 #endif /* __cplusplus */ 275 #endif 276 277 #ifndef __ID3D12LifetimeTracker_FWD_DEFINED__ 278 #define __ID3D12LifetimeTracker_FWD_DEFINED__ 279 typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker; 280 #ifdef __cplusplus 281 interface ID3D12LifetimeTracker; 282 #endif /* __cplusplus */ 283 #endif 284 285 #ifndef __ID3D12StateObject_FWD_DEFINED__ 286 #define __ID3D12StateObject_FWD_DEFINED__ 287 typedef interface ID3D12StateObject ID3D12StateObject; 288 #ifdef __cplusplus 289 interface ID3D12StateObject; 290 #endif /* __cplusplus */ 291 #endif 292 293 #ifndef __ID3D12StateObjectProperties_FWD_DEFINED__ 294 #define __ID3D12StateObjectProperties_FWD_DEFINED__ 295 typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties; 296 #ifdef __cplusplus 297 interface ID3D12StateObjectProperties; 298 #endif /* __cplusplus */ 299 #endif 300 301 #ifndef __ID3D12Device5_FWD_DEFINED__ 302 #define __ID3D12Device5_FWD_DEFINED__ 303 typedef interface ID3D12Device5 ID3D12Device5; 304 #ifdef __cplusplus 305 interface ID3D12Device5; 306 #endif /* __cplusplus */ 307 #endif 308 309 #ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ 310 #define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ 311 typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings; 312 #ifdef __cplusplus 313 interface ID3D12DeviceRemovedExtendedDataSettings; 314 #endif /* __cplusplus */ 315 #endif 316 317 #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ 318 #define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ 319 typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1; 320 #ifdef __cplusplus 321 interface ID3D12DeviceRemovedExtendedDataSettings1; 322 #endif /* __cplusplus */ 323 #endif 324 325 #ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ 326 #define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ 327 typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData; 328 #ifdef __cplusplus 329 interface ID3D12DeviceRemovedExtendedData; 330 #endif /* __cplusplus */ 331 #endif 332 333 #ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ 334 #define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ 335 typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1; 336 #ifdef __cplusplus 337 interface ID3D12DeviceRemovedExtendedData1; 338 #endif /* __cplusplus */ 339 #endif 340 341 #ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ 342 #define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ 343 typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2; 344 #ifdef __cplusplus 345 interface ID3D12DeviceRemovedExtendedData2; 346 #endif /* __cplusplus */ 347 #endif 348 349 #ifndef __ID3D12Device6_FWD_DEFINED__ 350 #define __ID3D12Device6_FWD_DEFINED__ 351 typedef interface ID3D12Device6 ID3D12Device6; 352 #ifdef __cplusplus 353 interface ID3D12Device6; 354 #endif /* __cplusplus */ 355 #endif 356 357 #ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__ 358 #define __ID3D12ProtectedResourceSession1_FWD_DEFINED__ 359 typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1; 360 #ifdef __cplusplus 361 interface ID3D12ProtectedResourceSession1; 362 #endif /* __cplusplus */ 363 #endif 364 365 #ifndef __ID3D12Device7_FWD_DEFINED__ 366 #define __ID3D12Device7_FWD_DEFINED__ 367 typedef interface ID3D12Device7 ID3D12Device7; 368 #ifdef __cplusplus 369 interface ID3D12Device7; 370 #endif /* __cplusplus */ 371 #endif 372 373 #ifndef __ID3D12Device8_FWD_DEFINED__ 374 #define __ID3D12Device8_FWD_DEFINED__ 375 typedef interface ID3D12Device8 ID3D12Device8; 376 #ifdef __cplusplus 377 interface ID3D12Device8; 378 #endif /* __cplusplus */ 379 #endif 380 381 #ifndef __ID3D12Resource1_FWD_DEFINED__ 382 #define __ID3D12Resource1_FWD_DEFINED__ 383 typedef interface ID3D12Resource1 ID3D12Resource1; 384 #ifdef __cplusplus 385 interface ID3D12Resource1; 386 #endif /* __cplusplus */ 387 #endif 388 389 #ifndef __ID3D12Resource2_FWD_DEFINED__ 390 #define __ID3D12Resource2_FWD_DEFINED__ 391 typedef interface ID3D12Resource2 ID3D12Resource2; 392 #ifdef __cplusplus 393 interface ID3D12Resource2; 394 #endif /* __cplusplus */ 395 #endif 396 397 #ifndef __ID3D12Heap1_FWD_DEFINED__ 398 #define __ID3D12Heap1_FWD_DEFINED__ 399 typedef interface ID3D12Heap1 ID3D12Heap1; 400 #ifdef __cplusplus 401 interface ID3D12Heap1; 402 #endif /* __cplusplus */ 403 #endif 404 405 #ifndef __ID3D12MetaCommand_FWD_DEFINED__ 406 #define __ID3D12MetaCommand_FWD_DEFINED__ 407 typedef interface ID3D12MetaCommand ID3D12MetaCommand; 408 #ifdef __cplusplus 409 interface ID3D12MetaCommand; 410 #endif /* __cplusplus */ 411 #endif 412 413 #ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__ 414 #define __ID3D12GraphicsCommandList4_FWD_DEFINED__ 415 typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4; 416 #ifdef __cplusplus 417 interface ID3D12GraphicsCommandList4; 418 #endif /* __cplusplus */ 419 #endif 420 421 #ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__ 422 #define __ID3D12ShaderCacheSession_FWD_DEFINED__ 423 typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession; 424 #ifdef __cplusplus 425 interface ID3D12ShaderCacheSession; 426 #endif /* __cplusplus */ 427 #endif 428 429 #ifndef __ID3D12Device9_FWD_DEFINED__ 430 #define __ID3D12Device9_FWD_DEFINED__ 431 typedef interface ID3D12Device9 ID3D12Device9; 432 #ifdef __cplusplus 433 interface ID3D12Device9; 434 #endif /* __cplusplus */ 435 #endif 436 437 #ifndef __ID3D12Device10_FWD_DEFINED__ 438 #define __ID3D12Device10_FWD_DEFINED__ 439 typedef interface ID3D12Device10 ID3D12Device10; 440 #ifdef __cplusplus 441 interface ID3D12Device10; 442 #endif /* __cplusplus */ 443 #endif 444 445 #ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ 446 #define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ 447 typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; 448 #ifdef __cplusplus 449 interface ID3D12VirtualizationGuestDevice; 450 #endif /* __cplusplus */ 451 #endif 452 453 #ifndef __ID3D12Tools_FWD_DEFINED__ 454 #define __ID3D12Tools_FWD_DEFINED__ 455 typedef interface ID3D12Tools ID3D12Tools; 456 #ifdef __cplusplus 457 interface ID3D12Tools; 458 #endif /* __cplusplus */ 459 #endif 460 461 #ifndef __ID3D12SDKConfiguration_FWD_DEFINED__ 462 #define __ID3D12SDKConfiguration_FWD_DEFINED__ 463 typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration; 464 #ifdef __cplusplus 465 interface ID3D12SDKConfiguration; 466 #endif /* __cplusplus */ 467 #endif 468 469 #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ 470 #define __ID3D12GraphicsCommandList5_FWD_DEFINED__ 471 typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; 472 #ifdef __cplusplus 473 interface ID3D12GraphicsCommandList5; 474 #endif /* __cplusplus */ 475 #endif 476 477 #ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__ 478 #define __ID3D12GraphicsCommandList6_FWD_DEFINED__ 479 typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6; 480 #ifdef __cplusplus 481 interface ID3D12GraphicsCommandList6; 482 #endif /* __cplusplus */ 483 #endif 484 485 #ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__ 486 #define __ID3D12GraphicsCommandList7_FWD_DEFINED__ 487 typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7; 488 #ifdef __cplusplus 489 interface ID3D12GraphicsCommandList7; 490 #endif /* __cplusplus */ 491 #endif 492 493 /* Headers for imported files */ 494 495 #include <oaidl.h> 496 #include <ocidl.h> 497 #include <dxgi.h> 498 #include <d3dcommon.h> 499 500 #ifdef __cplusplus 501 extern "C" { 502 #endif 503 504 #ifndef _D3D12_CONSTANTS 505 #define _D3D12_CONSTANTS 506 #define D3D12_16BIT_INDEX_STRIP_CUT_VALUE (0xffff) 507 508 #define D3D12_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff) 509 510 #define D3D12_8BIT_INDEX_STRIP_CUT_VALUE (0xff) 511 512 #define D3D12_APPEND_ALIGNED_ELEMENT (0xffffffff) 513 514 #define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9) 515 516 #define D3D12_CLIP_OR_CULL_DISTANCE_COUNT (8) 517 518 #define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2) 519 520 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14) 521 522 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4) 523 524 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32) 525 526 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) 527 528 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16) 529 530 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4) 531 532 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15) 533 534 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1) 535 536 #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1) 537 538 #define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64) 539 540 #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4) 541 542 #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1) 543 544 #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1) 545 546 #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1) 547 548 #define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32) 549 550 #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1) 551 552 #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128) 553 554 #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1) 555 556 #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1) 557 558 #define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128) 559 560 #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1) 561 562 #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT (16) 563 564 #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1) 565 566 #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1) 567 568 #define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT (16) 569 570 #define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32) 571 572 #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4) 573 574 #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32) 575 576 #define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT (4096) 577 578 #define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3) 579 580 #define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3) 581 582 #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10) 583 584 #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10) 585 586 #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8) 587 588 #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7) 589 590 #define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT (256) 591 592 #define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (256) 593 594 #define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP (64) 595 596 #define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (240) 597 598 #define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP (68) 599 600 #define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (224) 601 602 #define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP (72) 603 604 #define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (208) 605 606 #define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP (76) 607 608 #define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (192) 609 610 #define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP (84) 611 612 #define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (176) 613 614 #define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP (92) 615 616 #define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (160) 617 618 #define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP (100) 619 620 #define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (144) 621 622 #define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP (112) 623 624 #define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (128) 625 626 #define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP (128) 627 628 #define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (112) 629 630 #define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP (144) 631 632 #define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (96) 633 634 #define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP (168) 635 636 #define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (80) 637 638 #define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP (204) 639 640 #define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (64) 641 642 #define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP (256) 643 644 #define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (48) 645 646 #define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP (340) 647 648 #define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (32) 649 650 #define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP (512) 651 652 #define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (16) 653 654 #define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP (768) 655 656 #define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION (1) 657 658 #define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT (256) 659 660 #define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP (768) 661 662 #define D3D12_CS_4_X_THREAD_GROUP_MAX_X (768) 663 664 #define D3D12_CS_4_X_THREAD_GROUP_MAX_Y (768) 665 666 #define D3D12_CS_4_X_UAV_REGISTER_COUNT (1) 667 668 #define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) 669 670 #define D3D12_CS_TGSM_REGISTER_COUNT (8192) 671 672 #define D3D12_CS_TGSM_REGISTER_READS_PER_INST (1) 673 674 #define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS (1) 675 676 #define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS (1) 677 678 #define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS (3) 679 680 #define D3D12_CS_THREADGROUPID_REGISTER_COUNT (1) 681 682 #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS (1) 683 684 #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT (1) 685 686 #define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS (3) 687 688 #define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT (1) 689 690 #define D3D12_CS_THREADID_REGISTER_COMPONENTS (3) 691 692 #define D3D12_CS_THREADID_REGISTER_COUNT (1) 693 694 #define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP (1024) 695 696 #define D3D12_CS_THREAD_GROUP_MAX_X (1024) 697 698 #define D3D12_CS_THREAD_GROUP_MAX_Y (1024) 699 700 #define D3D12_CS_THREAD_GROUP_MAX_Z (64) 701 702 #define D3D12_CS_THREAD_GROUP_MIN_X (1) 703 704 #define D3D12_CS_THREAD_GROUP_MIN_Y (1) 705 706 #define D3D12_CS_THREAD_GROUP_MIN_Z (1) 707 708 #define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL (16384) 709 710 #define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f) 711 #define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f) 712 #define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f) 713 #define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f) 714 #define D3D12_DEFAULT_BORDER_COLOR_COMPONENT (0.0f) 715 #define D3D12_DEFAULT_DEPTH_BIAS (0) 716 717 #define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f) 718 #define D3D12_DEFAULT_MAX_ANISOTROPY (16) 719 720 #define D3D12_DEFAULT_MIP_LOD_BIAS (0.0f) 721 #define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (4194304) 722 723 #define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0) 724 725 #define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT (65536) 726 727 #define D3D12_DEFAULT_SAMPLE_MASK (0xffffffff) 728 729 #define D3D12_DEFAULT_SCISSOR_ENDX (0) 730 731 #define D3D12_DEFAULT_SCISSOR_ENDY (0) 732 733 #define D3D12_DEFAULT_SCISSOR_STARTX (0) 734 735 #define D3D12_DEFAULT_SCISSOR_STARTY (0) 736 737 #define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f) 738 #define D3D12_DEFAULT_STENCIL_READ_MASK (0xff) 739 740 #define D3D12_DEFAULT_STENCIL_REFERENCE (0) 741 742 #define D3D12_DEFAULT_STENCIL_WRITE_MASK (0xff) 743 744 #define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0) 745 746 #define D3D12_DEFAULT_VIEWPORT_HEIGHT (0) 747 748 #define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH (0.0f) 749 #define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH (0.0f) 750 #define D3D12_DEFAULT_VIEWPORT_TOPLEFTX (0) 751 752 #define D3D12_DEFAULT_VIEWPORT_TOPLEFTY (0) 753 754 #define D3D12_DEFAULT_VIEWPORT_WIDTH (0) 755 756 #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff) 757 758 #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END (0xfffffff7) 759 760 #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0) 761 762 #define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968) 763 764 #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS (4) 765 766 #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) 767 768 #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32) 769 770 #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST (2) 771 772 #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS (1) 773 774 #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS (3) 775 776 #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT (32) 777 778 #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT (1) 779 780 #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST (2) 781 782 #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS (1) 783 784 #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4) 785 786 #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32) 787 788 #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32) 789 790 #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2) 791 792 #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1) 793 794 #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1) 795 796 #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32) 797 798 #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1) 799 800 #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2) 801 802 #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1) 803 804 #define D3D12_DS_OUTPUT_REGISTER_COMPONENTS (4) 805 806 #define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32) 807 808 #define D3D12_DS_OUTPUT_REGISTER_COUNT (32) 809 810 #define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.6) 811 #define D3D12_FLOAT32_MAX (3.402823466e+38f) 812 #define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f) 813 #define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.4f) 814 #define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.0f) 815 #define D3D12_FLOAT_TO_SRGB_OFFSET (0.055f) 816 #define D3D12_FLOAT_TO_SRGB_SCALE_1 (12.92f) 817 #define D3D12_FLOAT_TO_SRGB_SCALE_2 (1.055f) 818 #define D3D12_FLOAT_TO_SRGB_THRESHOLD (0.0031308f) 819 #define D3D12_FTOI_INSTRUCTION_MAX_INPUT (2147483647.999f) 820 #define D3D12_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.999f) 821 #define D3D12_FTOU_INSTRUCTION_MAX_INPUT (4294967295.999f) 822 #define D3D12_FTOU_INSTRUCTION_MIN_INPUT (0.0f) 823 #define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST (2) 824 825 #define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS (1) 826 827 #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS (1) 828 829 #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32) 830 831 #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT (1) 832 833 #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1) 834 835 #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32) 836 837 #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1) 838 839 #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2) 840 841 #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1) 842 843 #define D3D12_GS_INPUT_REGISTER_COMPONENTS (4) 844 845 #define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32) 846 847 #define D3D12_GS_INPUT_REGISTER_COUNT (32) 848 849 #define D3D12_GS_INPUT_REGISTER_READS_PER_INST (2) 850 851 #define D3D12_GS_INPUT_REGISTER_READ_PORTS (1) 852 853 #define D3D12_GS_INPUT_REGISTER_VERTICES (32) 854 855 #define D3D12_GS_MAX_INSTANCE_COUNT (32) 856 857 #define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024) 858 859 #define D3D12_GS_OUTPUT_ELEMENTS (32) 860 861 #define D3D12_GS_OUTPUT_REGISTER_COMPONENTS (4) 862 863 #define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32) 864 865 #define D3D12_GS_OUTPUT_REGISTER_COUNT (32) 866 867 #define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32) 868 869 #define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32) 870 871 #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS (4) 872 873 #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) 874 875 #define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST (2) 876 877 #define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS (1) 878 879 #define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff) 880 881 #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS (1) 882 883 #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32) 884 885 #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT (1) 886 887 #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST (2) 888 889 #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS (1) 890 891 #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS (1) 892 893 #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT (32) 894 895 #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT (1) 896 897 #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST (2) 898 899 #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS (1) 900 901 #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS (1) 902 903 #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT (32) 904 905 #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT (1) 906 907 #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST (2) 908 909 #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS (1) 910 911 #define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND (0xffffffff) 912 913 #define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND (1.0f) 914 #define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND (64.0f) 915 #define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS (3968) 916 917 #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS (1) 918 919 #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT (32) 920 921 #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT (1) 922 923 #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST (2) 924 925 #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS (1) 926 927 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS (4) 928 929 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT (32) 930 931 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32) 932 933 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST (2) 934 935 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS (1) 936 937 #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS (128) 938 939 #define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0) 940 941 #define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0) 942 943 #define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0) 944 945 #define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1) 946 947 #define D3D12_IA_INSTANCE_ID_BIT_COUNT (32) 948 949 #define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT (32) 950 951 #define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT (32) 952 953 #define D3D12_IA_PRIMITIVE_ID_BIT_COUNT (32) 954 955 #define D3D12_IA_VERTEX_ID_BIT_COUNT (32) 956 957 #define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32) 958 959 #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128) 960 961 #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32) 962 963 #define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff) 964 965 #define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff) 966 967 #define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff) 968 969 #define D3D12_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff) 970 971 #define D3D12_LINEAR_GAMMA (1.0f) 972 #define D3D12_MAJOR_VERSION (12) 973 974 #define D3D12_MAX_BORDER_COLOR_COMPONENT (1.0f) 975 #define D3D12_MAX_DEPTH (1.0f) 976 #define D3D12_MAX_LIVE_STATIC_SAMPLERS (2032) 977 978 #define D3D12_MAX_MAXANISOTROPY (16) 979 980 #define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT (32) 981 982 #define D3D12_MAX_POSITION_VALUE (3.402823466e+34f) 983 #define D3D12_MAX_ROOT_COST (64) 984 985 #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 (1000000) 986 987 #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 (1000000) 988 989 #define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE (2048) 990 991 #define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP (17) 992 993 #define D3D12_MAX_VIEW_INSTANCE_COUNT (4) 994 995 #define D3D12_MINOR_VERSION (0) 996 997 #define D3D12_MIN_BORDER_COLOR_COMPONENT (0.0f) 998 #define D3D12_MIN_DEPTH (0.0f) 999 #define D3D12_MIN_MAXANISOTROPY (0) 1000 1001 #define D3D12_MIP_LOD_BIAS_MAX (15.99f) 1002 #define D3D12_MIP_LOD_BIAS_MIN (-16.0f) 1003 #define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT (8) 1004 1005 #define D3D12_MIP_LOD_RANGE_BIT_COUNT (8) 1006 1007 #define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.4f) 1008 #define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0) 1009 1010 #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff) 1011 1012 #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff8) 1013 1014 #define D3D12_PACKED_TILE (0xffffffff) 1015 1016 #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT (15) 1017 1018 #define D3D12_PREVIEW_SDK_VERSION (702) 1019 1020 #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (16) 1021 1022 #define D3D12_PS_CS_UAV_REGISTER_COMPONENTS (1) 1023 1024 #define D3D12_PS_CS_UAV_REGISTER_COUNT (8) 1025 1026 #define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST (1) 1027 1028 #define D3D12_PS_CS_UAV_REGISTER_READ_PORTS (1) 1029 1030 #define D3D12_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff) 1031 1032 #define D3D12_PS_FRONTFACING_FALSE_VALUE (0x0) 1033 1034 #define D3D12_PS_FRONTFACING_TRUE_VALUE (0xffffffff) 1035 1036 #define D3D12_PS_INPUT_REGISTER_COMPONENTS (4) 1037 1038 #define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32) 1039 1040 #define D3D12_PS_INPUT_REGISTER_COUNT (32) 1041 1042 #define D3D12_PS_INPUT_REGISTER_READS_PER_INST (2) 1043 1044 #define D3D12_PS_INPUT_REGISTER_READ_PORTS (1) 1045 1046 #define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f) 1047 #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1) 1048 1049 #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32) 1050 1051 #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT (1) 1052 1053 #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1) 1054 1055 #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32) 1056 1057 #define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT (1) 1058 1059 #define D3D12_PS_OUTPUT_REGISTER_COMPONENTS (4) 1060 1061 #define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32) 1062 1063 #define D3D12_PS_OUTPUT_REGISTER_COUNT (8) 1064 1065 #define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f) 1066 #define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT (16) 1067 1068 #define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT (8) 1069 1070 #define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT (256) 1071 1072 #define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT (16) 1073 1074 #define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES (32) 1075 1076 #define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH (31) 1077 1078 #define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (16777216) 1079 1080 #define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE (16777216) 1081 1082 #define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE (536870912) 1083 1084 #define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS (1073741824) 1085 1086 #define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE (4096) 1087 1088 #define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT (32) 1089 1090 #define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT (64) 1091 1092 #define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT (16) 1093 1094 #define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096) 1095 1096 #define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27) 1097 1098 #define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096) 1099 1100 #define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096) 1101 1102 #define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32) 1103 1104 #define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32) 1105 1106 #define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) 1107 1108 #define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024) 1109 1110 #define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096) 1111 1112 #define D3D12_REQ_MAXANISOTROPY (16) 1113 1114 #define D3D12_REQ_MIP_LEVELS (15) 1115 1116 #define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048) 1117 1118 #define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096) 1119 1120 #define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384) 1121 1122 #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) 1123 1124 #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f) 1125 #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048) 1126 1127 #define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20) 1128 1129 #define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096) 1130 1131 #define D3D12_REQ_SUBRESOURCES (30720) 1132 1133 #define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048) 1134 1135 #define D3D12_REQ_TEXTURE1D_U_DIMENSION (16384) 1136 1137 #define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048) 1138 1139 #define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) 1140 1141 #define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048) 1142 1143 #define D3D12_REQ_TEXTURECUBE_DIMENSION (16384) 1144 1145 #define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0) 1146 1147 #define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES (0xffffffff) 1148 1149 #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT (2) 1150 1151 #define D3D12_SDK_VERSION (602) 1152 1153 #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES (32) 1154 1155 #define D3D12_SHADER_MAJOR_VERSION (5) 1156 1157 #define D3D12_SHADER_MAX_INSTANCES (65535) 1158 1159 #define D3D12_SHADER_MAX_INTERFACES (253) 1160 1161 #define D3D12_SHADER_MAX_INTERFACE_CALL_SITES (4096) 1162 1163 #define D3D12_SHADER_MAX_TYPES (65535) 1164 1165 #define D3D12_SHADER_MINOR_VERSION (1) 1166 1167 #define D3D12_SHIFT_INSTRUCTION_PAD_VALUE (0) 1168 1169 #define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5) 1170 1171 #define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT (8) 1172 1173 #define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (65536) 1174 1175 #define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT (4096) 1176 1177 #define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048) 1178 1179 #define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512) 1180 1181 #define D3D12_SO_BUFFER_SLOT_COUNT (4) 1182 1183 #define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff) 1184 1185 #define D3D12_SO_NO_RASTERIZED_STREAM (0xffffffff) 1186 1187 #define D3D12_SO_OUTPUT_COMPONENT_COUNT (128) 1188 1189 #define D3D12_SO_STREAM_COUNT (4) 1190 1191 #define D3D12_SPEC_DATE_DAY (14) 1192 1193 #define D3D12_SPEC_DATE_MONTH (11) 1194 1195 #define D3D12_SPEC_DATE_YEAR (2014) 1196 1197 #define D3D12_SPEC_VERSION (1.16) 1198 #define D3D12_SRGB_GAMMA (2.2f) 1199 #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 (12.92f) 1200 #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 (1.055f) 1201 #define D3D12_SRGB_TO_FLOAT_EXPONENT (2.4f) 1202 #define D3D12_SRGB_TO_FLOAT_OFFSET (0.055f) 1203 #define D3D12_SRGB_TO_FLOAT_THRESHOLD (0.04045f) 1204 #define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f) 1205 #define D3D12_STANDARD_COMPONENT_BIT_COUNT (32) 1206 1207 #define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64) 1208 1209 #define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4) 1210 1211 #define D3D12_STANDARD_PIXEL_COMPONENT_COUNT (128) 1212 1213 #define D3D12_STANDARD_PIXEL_ELEMENT_COUNT (32) 1214 1215 #define D3D12_STANDARD_VECTOR_SIZE (4) 1216 1217 #define D3D12_STANDARD_VERTEX_ELEMENT_COUNT (32) 1218 1219 #define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64) 1220 1221 #define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT (8) 1222 1223 #define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT (8) 1224 1225 #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END (0xffffffff) 1226 1227 #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START (0xfffffff0) 1228 1229 #define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR (64) 1230 1231 #define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR (64) 1232 1233 #define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR (63) 1234 1235 #define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR (64) 1236 1237 #define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR (2) 1238 1239 #define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR (1) 1240 1241 #define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR (1) 1242 1243 #define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT (16) 1244 1245 #define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT (256) 1246 1247 #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT (512) 1248 1249 #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES (65536) 1250 1251 #define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES (32) 1252 1253 #define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT (4096) 1254 1255 #define D3D12_UAV_SLOT_COUNT (64) 1256 1257 #define D3D12_UNBOUND_MEMORY_ACCESS_RESULT (0) 1258 1259 #define D3D12_VIDEO_DECODE_MAX_ARGUMENTS (10) 1260 1261 #define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS (4) 1262 1263 #define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT (256) 1264 1265 #define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT (256) 1266 1267 #define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN (0xffffffff) 1268 1269 #define D3D12_VIDEO_PROCESS_MAX_FILTERS (32) 1270 1271 #define D3D12_VIDEO_PROCESS_STEREO_VIEWS (2) 1272 1273 #define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15) 1274 1275 #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16) 1276 1277 #define D3D12_VIEWPORT_BOUNDS_MAX (32767) 1278 1279 #define D3D12_VIEWPORT_BOUNDS_MIN (-32768) 1280 1281 #define D3D12_VS_INPUT_REGISTER_COMPONENTS (4) 1282 1283 #define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32) 1284 1285 #define D3D12_VS_INPUT_REGISTER_COUNT (32) 1286 1287 #define D3D12_VS_INPUT_REGISTER_READS_PER_INST (2) 1288 1289 #define D3D12_VS_INPUT_REGISTER_READ_PORTS (1) 1290 1291 #define D3D12_VS_OUTPUT_REGISTER_COMPONENTS (4) 1292 1293 #define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32) 1294 1295 #define D3D12_VS_OUTPUT_REGISTER_COUNT (32) 1296 1297 #define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10) 1298 1299 #define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25) 1300 1301 #define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25) 1302 1303 #endif 1304 #define D3D12_SHADER_COMPONENT_MAPPING_MASK (0x7) 1305 1306 #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT (3) 1307 1308 #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4)) 1309 1310 typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT { 1311 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0, 1312 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, 1313 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 1314 } D3D12_SHADER_MIN_PRECISION_SUPPORT; 1315 DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT); 1316 typedef enum D3D12_TILED_RESOURCES_TIER { 1317 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, 1318 D3D12_TILED_RESOURCES_TIER_1 = 1, 1319 D3D12_TILED_RESOURCES_TIER_2 = 2, 1320 D3D12_TILED_RESOURCES_TIER_3 = 3 1321 } D3D12_TILED_RESOURCES_TIER; 1322 typedef enum D3D12_RESOURCE_BINDING_TIER { 1323 D3D12_RESOURCE_BINDING_TIER_1 = 1, 1324 D3D12_RESOURCE_BINDING_TIER_2 = 2, 1325 D3D12_RESOURCE_BINDING_TIER_3 = 3 1326 } D3D12_RESOURCE_BINDING_TIER; 1327 typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER { 1328 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, 1329 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, 1330 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, 1331 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 1332 } D3D12_CONSERVATIVE_RASTERIZATION_TIER; 1333 typedef enum D3D12_CROSS_NODE_SHARING_TIER { 1334 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, 1335 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, 1336 D3D12_CROSS_NODE_SHARING_TIER_1 = 2, 1337 D3D12_CROSS_NODE_SHARING_TIER_2 = 3, 1338 D3D12_CROSS_NODE_SHARING_TIER_3 = 4 1339 } D3D12_CROSS_NODE_SHARING_TIER; 1340 typedef enum D3D12_RESOURCE_HEAP_TIER { 1341 D3D12_RESOURCE_HEAP_TIER_1 = 1, 1342 D3D12_RESOURCE_HEAP_TIER_2 = 2 1343 } D3D12_RESOURCE_HEAP_TIER; 1344 typedef enum D3D12_FORMAT_SUPPORT1 { 1345 D3D12_FORMAT_SUPPORT1_NONE = 0x0, 1346 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, 1347 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, 1348 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, 1349 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, 1350 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, 1351 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, 1352 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, 1353 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, 1354 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, 1355 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, 1356 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, 1357 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, 1358 D3D12_FORMAT_SUPPORT1_MIP = 0x1000, 1359 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, 1360 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, 1361 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, 1362 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, 1363 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, 1364 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, 1365 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, 1366 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, 1367 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, 1368 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, 1369 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, 1370 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, 1371 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, 1372 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, 1373 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, 1374 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 1375 } D3D12_FORMAT_SUPPORT1; 1376 DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1); 1377 typedef enum D3D12_FORMAT_SUPPORT2 { 1378 D3D12_FORMAT_SUPPORT2_NONE = 0x0, 1379 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, 1380 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, 1381 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, 1382 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, 1383 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, 1384 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, 1385 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, 1386 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, 1387 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, 1388 D3D12_FORMAT_SUPPORT2_TILED = 0x200, 1389 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, 1390 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000 1391 } D3D12_FORMAT_SUPPORT2; 1392 DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2); 1393 typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE { 1394 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0, 1395 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, 1396 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2 1397 } D3D12_WRITEBUFFERIMMEDIATE_MODE; 1398 typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER { 1399 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0, 1400 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1, 1401 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2 1402 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; 1403 typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS { 1404 D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0, 1405 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, 1406 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, 1407 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, 1408 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, 1409 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, 1410 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, 1411 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 1412 } D3D12_SHADER_CACHE_SUPPORT_FLAGS; 1413 DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS); 1414 typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS { 1415 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0, 1416 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1, 1417 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2, 1418 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4, 1419 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8, 1420 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10, 1421 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20, 1422 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40 1423 } D3D12_COMMAND_LIST_SUPPORT_FLAGS; 1424 DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS); 1425 typedef enum D3D12_VIEW_INSTANCING_TIER { 1426 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0, 1427 D3D12_VIEW_INSTANCING_TIER_1 = 0x1, 1428 D3D12_VIEW_INSTANCING_TIER_2 = 0x2, 1429 D3D12_VIEW_INSTANCING_TIER_3 = 0x3 1430 } D3D12_VIEW_INSTANCING_TIER; 1431 typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER { 1432 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0, 1433 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1, 1434 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = 0x2 1435 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; 1436 typedef struct D3D12_FEATURE_DATA_DISPLAYABLE { 1437 WINBOOL DisplayableTexture; 1438 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; 1439 } D3D12_FEATURE_DATA_DISPLAYABLE; 1440 typedef enum D3D12_HEAP_SERIALIZATION_TIER { 1441 D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0, 1442 D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa 1443 } D3D12_HEAP_SERIALIZATION_TIER; 1444 typedef enum D3D12_RENDER_PASS_TIER { 1445 D3D12_RENDER_PASS_TIER_0 = 0x0, 1446 D3D12_RENDER_PASS_TIER_1 = 0x1, 1447 D3D12_RENDER_PASS_TIER_2 = 0x2 1448 } D3D12_RENDER_PASS_TIER; 1449 typedef enum D3D12_RAYTRACING_TIER { 1450 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0, 1451 D3D12_RAYTRACING_TIER_1_0 = 0xa, 1452 D3D12_RAYTRACING_TIER_1_1 = 0xb 1453 } D3D12_RAYTRACING_TIER; 1454 typedef enum D3D12_RESIDENCY_FLAGS { 1455 D3D12_RESIDENCY_FLAG_NONE = 0x0, 1456 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1 1457 } D3D12_RESIDENCY_FLAGS; 1458 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESIDENCY_FLAGS); 1459 #ifndef __ID3D12Fence_FWD_DEFINED__ 1460 #define __ID3D12Fence_FWD_DEFINED__ 1461 typedef interface ID3D12Fence ID3D12Fence; 1462 #ifdef __cplusplus 1463 interface ID3D12Fence; 1464 #endif /* __cplusplus */ 1465 #endif 1466 1467 #ifndef __ID3D12RootSignature_FWD_DEFINED__ 1468 #define __ID3D12RootSignature_FWD_DEFINED__ 1469 typedef interface ID3D12RootSignature ID3D12RootSignature; 1470 #ifdef __cplusplus 1471 interface ID3D12RootSignature; 1472 #endif /* __cplusplus */ 1473 #endif 1474 1475 #ifndef __ID3D12Heap_FWD_DEFINED__ 1476 #define __ID3D12Heap_FWD_DEFINED__ 1477 typedef interface ID3D12Heap ID3D12Heap; 1478 #ifdef __cplusplus 1479 interface ID3D12Heap; 1480 #endif /* __cplusplus */ 1481 #endif 1482 1483 #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ 1484 #define __ID3D12DescriptorHeap_FWD_DEFINED__ 1485 typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; 1486 #ifdef __cplusplus 1487 interface ID3D12DescriptorHeap; 1488 #endif /* __cplusplus */ 1489 #endif 1490 1491 #ifndef __ID3D12Resource_FWD_DEFINED__ 1492 #define __ID3D12Resource_FWD_DEFINED__ 1493 typedef interface ID3D12Resource ID3D12Resource; 1494 #ifdef __cplusplus 1495 interface ID3D12Resource; 1496 #endif /* __cplusplus */ 1497 #endif 1498 1499 #ifndef __ID3D12CommandAllocator_FWD_DEFINED__ 1500 #define __ID3D12CommandAllocator_FWD_DEFINED__ 1501 typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; 1502 #ifdef __cplusplus 1503 interface ID3D12CommandAllocator; 1504 #endif /* __cplusplus */ 1505 #endif 1506 1507 #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ 1508 #define __ID3D12GraphicsCommandList_FWD_DEFINED__ 1509 typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; 1510 #ifdef __cplusplus 1511 interface ID3D12GraphicsCommandList; 1512 #endif /* __cplusplus */ 1513 #endif 1514 1515 #ifndef __ID3D12CommandQueue_FWD_DEFINED__ 1516 #define __ID3D12CommandQueue_FWD_DEFINED__ 1517 typedef interface ID3D12CommandQueue ID3D12CommandQueue; 1518 #ifdef __cplusplus 1519 interface ID3D12CommandQueue; 1520 #endif /* __cplusplus */ 1521 #endif 1522 1523 #ifndef __ID3D12PipelineState_FWD_DEFINED__ 1524 #define __ID3D12PipelineState_FWD_DEFINED__ 1525 typedef interface ID3D12PipelineState ID3D12PipelineState; 1526 #ifdef __cplusplus 1527 interface ID3D12PipelineState; 1528 #endif /* __cplusplus */ 1529 #endif 1530 1531 #ifndef __ID3D12Device_FWD_DEFINED__ 1532 #define __ID3D12Device_FWD_DEFINED__ 1533 typedef interface ID3D12Device ID3D12Device; 1534 #ifdef __cplusplus 1535 interface ID3D12Device; 1536 #endif /* __cplusplus */ 1537 #endif 1538 1539 typedef RECT D3D12_RECT; 1540 typedef struct D3D12_BOX { 1541 UINT left; 1542 UINT top; 1543 UINT front; 1544 UINT right; 1545 UINT bottom; 1546 UINT back; 1547 } D3D12_BOX; 1548 typedef struct D3D12_VIEWPORT { 1549 FLOAT TopLeftX; 1550 FLOAT TopLeftY; 1551 FLOAT Width; 1552 FLOAT Height; 1553 FLOAT MinDepth; 1554 FLOAT MaxDepth; 1555 } D3D12_VIEWPORT; 1556 typedef struct D3D12_RANGE { 1557 SIZE_T Begin; 1558 SIZE_T End; 1559 } D3D12_RANGE; 1560 typedef struct D3D12_RANGE_UINT64 { 1561 UINT64 Begin; 1562 UINT64 End; 1563 } D3D12_RANGE_UINT64; 1564 typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 { 1565 UINT Subresource; 1566 D3D12_RANGE_UINT64 Range; 1567 } D3D12_SUBRESOURCE_RANGE_UINT64; 1568 typedef struct D3D12_SUBRESOURCE_INFO { 1569 UINT64 Offset; 1570 UINT RowPitch; 1571 UINT DepthPitch; 1572 } D3D12_SUBRESOURCE_INFO; 1573 typedef struct D3D12_RESOURCE_ALLOCATION_INFO { 1574 UINT64 SizeInBytes; 1575 UINT64 Alignment; 1576 } D3D12_RESOURCE_ALLOCATION_INFO; 1577 typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 { 1578 UINT64 Offset; 1579 UINT64 Alignment; 1580 UINT64 SizeInBytes; 1581 } D3D12_RESOURCE_ALLOCATION_INFO1; 1582 typedef struct D3D12_DRAW_ARGUMENTS { 1583 UINT VertexCountPerInstance; 1584 UINT InstanceCount; 1585 UINT StartVertexLocation; 1586 UINT StartInstanceLocation; 1587 } D3D12_DRAW_ARGUMENTS; 1588 typedef struct D3D12_DRAW_INDEXED_ARGUMENTS { 1589 UINT IndexCountPerInstance; 1590 UINT InstanceCount; 1591 UINT StartIndexLocation; 1592 INT BaseVertexLocation; 1593 UINT StartInstanceLocation; 1594 } D3D12_DRAW_INDEXED_ARGUMENTS; 1595 typedef struct D3D12_DISPATCH_ARGUMENTS { 1596 UINT ThreadGroupCountX; 1597 UINT ThreadGroupCountY; 1598 UINT ThreadGroupCountZ; 1599 } D3D12_DISPATCH_ARGUMENTS; 1600 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS { 1601 WINBOOL DoublePrecisionFloatShaderOps; 1602 WINBOOL OutputMergerLogicOp; 1603 D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; 1604 D3D12_TILED_RESOURCES_TIER TiledResourcesTier; 1605 D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; 1606 WINBOOL PSSpecifiedStencilRefSupported; 1607 WINBOOL TypedUAVLoadAdditionalFormats; 1608 WINBOOL ROVsSupported; 1609 D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; 1610 UINT MaxGPUVirtualAddressBitsPerResource; 1611 WINBOOL StandardSwizzle64KBSupported; 1612 D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; 1613 WINBOOL CrossAdapterRowMajorTextureSupported; 1614 WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; 1615 D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; 1616 } D3D12_FEATURE_DATA_D3D12_OPTIONS; 1617 typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT { 1618 DXGI_FORMAT Format; 1619 D3D12_FORMAT_SUPPORT1 Support1; 1620 D3D12_FORMAT_SUPPORT2 Support2; 1621 } D3D12_FEATURE_DATA_FORMAT_SUPPORT; 1622 typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS { 1623 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x0, 1624 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 1625 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; 1626 DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS); 1627 typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS { 1628 DXGI_FORMAT Format; 1629 UINT SampleCount; 1630 D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; 1631 UINT NumQualityLevels; 1632 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; 1633 typedef enum D3D12_HEAP_TYPE { 1634 D3D12_HEAP_TYPE_DEFAULT = 1, 1635 D3D12_HEAP_TYPE_UPLOAD = 2, 1636 D3D12_HEAP_TYPE_READBACK = 3, 1637 D3D12_HEAP_TYPE_CUSTOM = 4 1638 } D3D12_HEAP_TYPE; 1639 typedef enum D3D12_CPU_PAGE_PROPERTY { 1640 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, 1641 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, 1642 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, 1643 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 1644 } D3D12_CPU_PAGE_PROPERTY; 1645 typedef enum D3D12_MEMORY_POOL { 1646 D3D12_MEMORY_POOL_UNKNOWN = 0, 1647 D3D12_MEMORY_POOL_L0 = 1, 1648 D3D12_MEMORY_POOL_L1 = 2 1649 } D3D12_MEMORY_POOL; 1650 typedef struct D3D12_HEAP_PROPERTIES { 1651 D3D12_HEAP_TYPE Type; 1652 D3D12_CPU_PAGE_PROPERTY CPUPageProperty; 1653 D3D12_MEMORY_POOL MemoryPoolPreference; 1654 UINT CreationNodeMask; 1655 UINT VisibleNodeMask; 1656 } D3D12_HEAP_PROPERTIES; 1657 typedef enum D3D12_HEAP_FLAGS { 1658 D3D12_HEAP_FLAG_NONE = 0x0, 1659 D3D12_HEAP_FLAG_SHARED = 0x1, 1660 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, 1661 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, 1662 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, 1663 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, 1664 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, 1665 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, 1666 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, 1667 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, 1668 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, 1669 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, 1670 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0, 1671 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, 1672 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, 1673 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 1674 } D3D12_HEAP_FLAGS; 1675 DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS); 1676 typedef struct D3D12_HEAP_DESC { 1677 UINT64 SizeInBytes; 1678 D3D12_HEAP_PROPERTIES Properties; 1679 UINT64 Alignment; 1680 D3D12_HEAP_FLAGS Flags; 1681 } D3D12_HEAP_DESC; 1682 typedef struct D3D12_TILED_RESOURCE_COORDINATE { 1683 UINT X; 1684 UINT Y; 1685 UINT Z; 1686 UINT Subresource; 1687 } D3D12_TILED_RESOURCE_COORDINATE; 1688 typedef struct D3D12_TILE_REGION_SIZE { 1689 UINT NumTiles; 1690 WINBOOL UseBox; 1691 UINT Width; 1692 UINT16 Height; 1693 UINT16 Depth; 1694 } D3D12_TILE_REGION_SIZE; 1695 typedef struct D3D12_SUBRESOURCE_TILING { 1696 UINT WidthInTiles; 1697 UINT16 HeightInTiles; 1698 UINT16 DepthInTiles; 1699 UINT StartTileIndexInOverallResource; 1700 } D3D12_SUBRESOURCE_TILING; 1701 typedef struct D3D12_TILE_SHAPE { 1702 UINT WidthInTexels; 1703 UINT HeightInTexels; 1704 UINT DepthInTexels; 1705 } D3D12_TILE_SHAPE; 1706 typedef struct D3D12_SHADER_BYTECODE { 1707 const void *pShaderBytecode; 1708 SIZE_T BytecodeLength; 1709 } D3D12_SHADER_BYTECODE; 1710 typedef struct D3D12_DEPTH_STENCIL_VALUE { 1711 FLOAT Depth; 1712 UINT8 Stencil; 1713 } D3D12_DEPTH_STENCIL_VALUE; 1714 typedef struct D3D12_CLEAR_VALUE { 1715 DXGI_FORMAT Format; 1716 __C89_NAMELESS union { 1717 FLOAT Color[4]; 1718 D3D12_DEPTH_STENCIL_VALUE DepthStencil; 1719 } __C89_NAMELESSUNIONNAME; 1720 } D3D12_CLEAR_VALUE; 1721 typedef struct D3D12_PACKED_MIP_INFO { 1722 UINT8 NumStandardMips; 1723 UINT8 NumPackedMips; 1724 UINT NumTilesForPackedMips; 1725 UINT StartTileIndexInOverallResource; 1726 } D3D12_PACKED_MIP_INFO; 1727 typedef enum D3D12_RESOURCE_STATES { 1728 D3D12_RESOURCE_STATE_COMMON = 0, 1729 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, 1730 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, 1731 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, 1732 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, 1733 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, 1734 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, 1735 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, 1736 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, 1737 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, 1738 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, 1739 D3D12_RESOURCE_STATE_COPY_DEST = 0x400, 1740 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, 1741 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, 1742 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, 1743 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, 1744 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, 1745 D3D12_RESOURCE_STATE_GENERIC_READ = ((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800, 1746 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = 0x40 | 0x80, 1747 D3D12_RESOURCE_STATE_PRESENT = 0x0, 1748 D3D12_RESOURCE_STATE_PREDICATION = 0x200, 1749 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000, 1750 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000, 1751 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000, 1752 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000, 1753 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000, 1754 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000 1755 } D3D12_RESOURCE_STATES; 1756 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES); 1757 typedef enum D3D12_RESOURCE_BARRIER_TYPE { 1758 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, 1759 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1, 1760 D3D12_RESOURCE_BARRIER_TYPE_UAV = 2 1761 } D3D12_RESOURCE_BARRIER_TYPE; 1762 typedef enum D3D12_RESOURCE_BARRIER_FLAGS { 1763 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0, 1764 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, 1765 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 1766 } D3D12_RESOURCE_BARRIER_FLAGS; 1767 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS); 1768 typedef struct D3D12_RESOURCE_TRANSITION_BARRIER { 1769 ID3D12Resource *pResource; 1770 UINT Subresource; 1771 D3D12_RESOURCE_STATES StateBefore; 1772 D3D12_RESOURCE_STATES StateAfter; 1773 } D3D12_RESOURCE_TRANSITION_BARRIER; 1774 typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING { 1775 ID3D12Resource *pResourceBefore; 1776 ID3D12Resource *pResourceAfter; 1777 } D3D12_RESOURCE_ALIASING_BARRIER; 1778 typedef struct D3D12_RESOURCE_UAV_BARRIER { 1779 ID3D12Resource *pResource; 1780 } D3D12_RESOURCE_UAV_BARRIER; 1781 typedef struct D3D12_RESOURCE_BARRIER { 1782 D3D12_RESOURCE_BARRIER_TYPE Type; 1783 D3D12_RESOURCE_BARRIER_FLAGS Flags; 1784 __C89_NAMELESS union { 1785 D3D12_RESOURCE_TRANSITION_BARRIER Transition; 1786 D3D12_RESOURCE_ALIASING_BARRIER Aliasing; 1787 D3D12_RESOURCE_UAV_BARRIER UAV; 1788 } __C89_NAMELESSUNIONNAME; 1789 } D3D12_RESOURCE_BARRIER; 1790 typedef enum D3D12_RESOURCE_DIMENSION { 1791 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, 1792 D3D12_RESOURCE_DIMENSION_BUFFER = 1, 1793 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, 1794 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, 1795 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 1796 } D3D12_RESOURCE_DIMENSION; 1797 typedef enum D3D12_TEXTURE_LAYOUT { 1798 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, 1799 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, 1800 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, 1801 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 1802 } D3D12_TEXTURE_LAYOUT; 1803 typedef enum D3D12_RESOURCE_FLAGS { 1804 D3D12_RESOURCE_FLAG_NONE = 0x0, 1805 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, 1806 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, 1807 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, 1808 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, 1809 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, 1810 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, 1811 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, 1812 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, 1813 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100 1814 } D3D12_RESOURCE_FLAGS; 1815 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS); 1816 typedef struct D3D12_MIP_REGION { 1817 UINT Width; 1818 UINT Height; 1819 UINT Depth; 1820 } D3D12_MIP_REGION; 1821 typedef struct D3D12_RESOURCE_DESC { 1822 D3D12_RESOURCE_DIMENSION Dimension; 1823 UINT64 Alignment; 1824 UINT64 Width; 1825 UINT Height; 1826 UINT16 DepthOrArraySize; 1827 UINT16 MipLevels; 1828 DXGI_FORMAT Format; 1829 DXGI_SAMPLE_DESC SampleDesc; 1830 D3D12_TEXTURE_LAYOUT Layout; 1831 D3D12_RESOURCE_FLAGS Flags; 1832 } D3D12_RESOURCE_DESC; 1833 typedef struct D3D12_RESOURCE_DESC1 { 1834 D3D12_RESOURCE_DIMENSION Dimension; 1835 UINT64 Alignment; 1836 UINT64 Width; 1837 UINT Height; 1838 UINT16 DepthOrArraySize; 1839 UINT16 MipLevels; 1840 DXGI_FORMAT Format; 1841 DXGI_SAMPLE_DESC SampleDesc; 1842 D3D12_TEXTURE_LAYOUT Layout; 1843 D3D12_RESOURCE_FLAGS Flags; 1844 D3D12_MIP_REGION SamplerFeedbackMipRegion; 1845 } D3D12_RESOURCE_DESC1; 1846 typedef enum D3D12_RESOLVE_MODE { 1847 D3D12_RESOLVE_MODE_DECOMPRESS = 0, 1848 D3D12_RESOLVE_MODE_MIN = 1, 1849 D3D12_RESOLVE_MODE_MAX = 2, 1850 D3D12_RESOLVE_MODE_AVERAGE = 3, 1851 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, 1852 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 1853 } D3D12_RESOLVE_MODE; 1854 typedef struct D3D12_SAMPLE_POSITION { 1855 INT8 X; 1856 INT8 Y; 1857 } D3D12_SAMPLE_POSITION; 1858 typedef enum D3D12_TEXTURE_COPY_TYPE { 1859 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, 1860 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 1861 } D3D12_TEXTURE_COPY_TYPE; 1862 typedef struct D3D12_SUBRESOURCE_FOOTPRINT { 1863 DXGI_FORMAT Format; 1864 UINT Width; 1865 UINT Height; 1866 UINT Depth; 1867 UINT RowPitch; 1868 } D3D12_SUBRESOURCE_FOOTPRINT; 1869 typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT { 1870 UINT64 Offset; 1871 D3D12_SUBRESOURCE_FOOTPRINT Footprint; 1872 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; 1873 typedef struct D3D12_TEXTURE_COPY_LOCATION { 1874 ID3D12Resource *pResource; 1875 D3D12_TEXTURE_COPY_TYPE Type; 1876 __C89_NAMELESS union { 1877 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; 1878 UINT SubresourceIndex; 1879 } __C89_NAMELESSUNIONNAME; 1880 } D3D12_TEXTURE_COPY_LOCATION; 1881 typedef enum D3D12_DESCRIPTOR_RANGE_TYPE { 1882 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, 1883 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1, 1884 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2, 1885 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3 1886 } D3D12_DESCRIPTOR_RANGE_TYPE; 1887 typedef struct D3D12_DESCRIPTOR_RANGE { 1888 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 1889 UINT NumDescriptors; 1890 UINT BaseShaderRegister; 1891 UINT RegisterSpace; 1892 UINT OffsetInDescriptorsFromTableStart; 1893 } D3D12_DESCRIPTOR_RANGE; 1894 typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS { 1895 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0, 1896 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, 1897 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, 1898 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 1899 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, 1900 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000 1901 } D3D12_DESCRIPTOR_RANGE_FLAGS; 1902 DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS); 1903 typedef struct D3D12_DESCRIPTOR_RANGE1 { 1904 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 1905 UINT NumDescriptors; 1906 UINT BaseShaderRegister; 1907 UINT RegisterSpace; 1908 D3D12_DESCRIPTOR_RANGE_FLAGS Flags; 1909 UINT OffsetInDescriptorsFromTableStart; 1910 } D3D12_DESCRIPTOR_RANGE1; 1911 typedef struct D3D12_ROOT_DESCRIPTOR_TABLE { 1912 UINT NumDescriptorRanges; 1913 const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; 1914 } D3D12_ROOT_DESCRIPTOR_TABLE; 1915 typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 { 1916 UINT NumDescriptorRanges; 1917 const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; 1918 } D3D12_ROOT_DESCRIPTOR_TABLE1; 1919 typedef struct D3D12_ROOT_CONSTANTS { 1920 UINT ShaderRegister; 1921 UINT RegisterSpace; 1922 UINT Num32BitValues; 1923 } D3D12_ROOT_CONSTANTS; 1924 typedef struct D3D12_ROOT_DESCRIPTOR { 1925 UINT ShaderRegister; 1926 UINT RegisterSpace; 1927 } D3D12_ROOT_DESCRIPTOR; 1928 typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS { 1929 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0, 1930 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, 1931 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 1932 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8 1933 } D3D12_ROOT_DESCRIPTOR_FLAGS; 1934 DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS); 1935 typedef struct D3D12_ROOT_DESCRIPTOR1 { 1936 UINT ShaderRegister; 1937 UINT RegisterSpace; 1938 D3D12_ROOT_DESCRIPTOR_FLAGS Flags; 1939 } D3D12_ROOT_DESCRIPTOR1; 1940 typedef enum D3D12_ROOT_PARAMETER_TYPE { 1941 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, 1942 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1, 1943 D3D12_ROOT_PARAMETER_TYPE_CBV = 2, 1944 D3D12_ROOT_PARAMETER_TYPE_SRV = 3, 1945 D3D12_ROOT_PARAMETER_TYPE_UAV = 4 1946 } D3D12_ROOT_PARAMETER_TYPE; 1947 typedef enum D3D12_SHADER_VISIBILITY { 1948 D3D12_SHADER_VISIBILITY_ALL = 0, 1949 D3D12_SHADER_VISIBILITY_VERTEX = 1, 1950 D3D12_SHADER_VISIBILITY_HULL = 2, 1951 D3D12_SHADER_VISIBILITY_DOMAIN = 3, 1952 D3D12_SHADER_VISIBILITY_GEOMETRY = 4, 1953 D3D12_SHADER_VISIBILITY_PIXEL = 5, 1954 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, 1955 D3D12_SHADER_VISIBILITY_MESH = 7 1956 } D3D12_SHADER_VISIBILITY; 1957 typedef struct D3D12_ROOT_PARAMETER { 1958 D3D12_ROOT_PARAMETER_TYPE ParameterType; 1959 __C89_NAMELESS union { 1960 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; 1961 D3D12_ROOT_CONSTANTS Constants; 1962 D3D12_ROOT_DESCRIPTOR Descriptor; 1963 } __C89_NAMELESSUNIONNAME; 1964 D3D12_SHADER_VISIBILITY ShaderVisibility; 1965 } D3D12_ROOT_PARAMETER; 1966 typedef struct D3D12_ROOT_PARAMETER1 { 1967 D3D12_ROOT_PARAMETER_TYPE ParameterType; 1968 __C89_NAMELESS union { 1969 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; 1970 D3D12_ROOT_CONSTANTS Constants; 1971 D3D12_ROOT_DESCRIPTOR1 Descriptor; 1972 } __C89_NAMELESSUNIONNAME; 1973 D3D12_SHADER_VISIBILITY ShaderVisibility; 1974 } D3D12_ROOT_PARAMETER1; 1975 typedef enum D3D12_STATIC_BORDER_COLOR { 1976 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, 1977 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1, 1978 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2 1979 } D3D12_STATIC_BORDER_COLOR; 1980 typedef enum D3D12_FILTER { 1981 D3D12_FILTER_MIN_MAG_MIP_POINT = 0x0, 1982 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, 1983 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, 1984 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, 1985 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 1986 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 1987 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 1988 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 1989 D3D12_FILTER_ANISOTROPIC = 0x55, 1990 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 1991 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 1992 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 1993 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 1994 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 1995 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 1996 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 1997 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 1998 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, 1999 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, 2000 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, 2001 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, 2002 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, 2003 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, 2004 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, 2005 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, 2006 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, 2007 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, 2008 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, 2009 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, 2010 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, 2011 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, 2012 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, 2013 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, 2014 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, 2015 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, 2016 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 2017 } D3D12_FILTER; 2018 typedef enum D3D12_FILTER_TYPE { 2019 D3D12_FILTER_TYPE_POINT = 0, 2020 D3D12_FILTER_TYPE_LINEAR = 1 2021 } D3D12_FILTER_TYPE; 2022 #define D3D12_MIP_FILTER_SHIFT (0) 2023 2024 #define D3D12_MAG_FILTER_SHIFT (2) 2025 2026 #define D3D12_MIN_FILTER_SHIFT (4) 2027 2028 #define D3D12_FILTER_TYPE_MASK (0x3) 2029 2030 #define D3D12_ANISOTROPIC_FILTERING_BIT (0x40) 2031 2032 typedef enum D3D12_FILTER_REDUCTION_TYPE { 2033 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, 2034 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, 2035 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, 2036 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 2037 } D3D12_FILTER_REDUCTION_TYPE; 2038 #define D3D12_FILTER_REDUCTION_TYPE_MASK (0x3) 2039 2040 #define D3D12_FILTER_REDUCTION_TYPE_SHIFT (7) 2041 2042 #define D3D12_ENCODE_BASIC_FILTER(min, mag, mip, reduction) \ 2043 ((D3D12_FILTER) ( \ 2044 (((min) & D3D12_FILTER_TYPE_MASK) << D3D12_MIN_FILTER_SHIFT) \ 2045 | (((mag) & D3D12_FILTER_TYPE_MASK) << D3D12_MAG_FILTER_SHIFT) \ 2046 | (((mip) & D3D12_FILTER_TYPE_MASK) << D3D12_MIP_FILTER_SHIFT) \ 2047 | (((reduction) & D3D12_FILTER_REDUCTION_TYPE_MASK) << D3D12_FILTER_REDUCTION_TYPE_SHIFT))) 2048 #define D3D12_ENCODE_ANISOTROPIC_FILTER(reduction) \ 2049 ((D3D12_FILTER) ( \ 2050 D3D12_ANISOTROPIC_FILTERING_BIT \ 2051 | D3D12_ENCODE_BASIC_FILTER(D3D12_FILTER_TYPE_LINEAR, \ 2052 D3D12_FILTER_TYPE_LINEAR, \ 2053 D3D12_FILTER_TYPE_LINEAR, \ 2054 reduction))) 2055 #define D3D12_DECODE_MAG_FILTER(filter) \ 2056 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK)) 2057 #define D3D12_DECODE_MIN_FILTER(filter) \ 2058 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK)) 2059 #define D3D12_DECODE_MIP_FILTER(filter) \ 2060 ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK)) 2061 #define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter) \ 2062 (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \ 2063 && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \ 2064 && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \ 2065 && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR)) 2066 #define D3D12_DECODE_FILTER_REDUCTION(filter) \ 2067 ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \ 2068 & D3D12_FILTER_REDUCTION_TYPE_MASK)) 2069 #define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \ 2070 (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON) 2071 typedef enum D3D12_TEXTURE_ADDRESS_MODE { 2072 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, 2073 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, 2074 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, 2075 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, 2076 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 2077 } D3D12_TEXTURE_ADDRESS_MODE; 2078 typedef enum D3D12_COMPARISON_FUNC { 2079 D3D12_COMPARISON_FUNC_NEVER = 1, 2080 D3D12_COMPARISON_FUNC_LESS = 2, 2081 D3D12_COMPARISON_FUNC_EQUAL = 3, 2082 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, 2083 D3D12_COMPARISON_FUNC_GREATER = 5, 2084 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, 2085 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, 2086 D3D12_COMPARISON_FUNC_ALWAYS = 8 2087 } D3D12_COMPARISON_FUNC; 2088 typedef struct D3D12_STATIC_SAMPLER_DESC { 2089 D3D12_FILTER Filter; 2090 D3D12_TEXTURE_ADDRESS_MODE AddressU; 2091 D3D12_TEXTURE_ADDRESS_MODE AddressV; 2092 D3D12_TEXTURE_ADDRESS_MODE AddressW; 2093 FLOAT MipLODBias; 2094 UINT MaxAnisotropy; 2095 D3D12_COMPARISON_FUNC ComparisonFunc; 2096 D3D12_STATIC_BORDER_COLOR BorderColor; 2097 FLOAT MinLOD; 2098 FLOAT MaxLOD; 2099 UINT ShaderRegister; 2100 UINT RegisterSpace; 2101 D3D12_SHADER_VISIBILITY ShaderVisibility; 2102 } D3D12_STATIC_SAMPLER_DESC; 2103 typedef enum D3D12_ROOT_SIGNATURE_FLAGS { 2104 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0, 2105 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, 2106 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, 2107 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, 2108 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, 2109 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, 2110 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, 2111 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, 2112 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, 2113 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, 2114 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, 2115 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, 2116 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800 2117 } D3D12_ROOT_SIGNATURE_FLAGS; 2118 DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS); 2119 typedef struct D3D12_ROOT_SIGNATURE_DESC { 2120 UINT NumParameters; 2121 const D3D12_ROOT_PARAMETER *pParameters; 2122 UINT NumStaticSamplers; 2123 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 2124 D3D12_ROOT_SIGNATURE_FLAGS Flags; 2125 } D3D12_ROOT_SIGNATURE_DESC; 2126 typedef struct D3D12_ROOT_SIGNATURE_DESC1 { 2127 UINT NumParameters; 2128 const D3D12_ROOT_PARAMETER1 *pParameters; 2129 UINT NumStaticSamplers; 2130 const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 2131 D3D12_ROOT_SIGNATURE_FLAGS Flags; 2132 } D3D12_ROOT_SIGNATURE_DESC1; 2133 typedef enum D3D_ROOT_SIGNATURE_VERSION { 2134 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, 2135 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, 2136 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2 2137 } D3D_ROOT_SIGNATURE_VERSION; 2138 typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC { 2139 D3D_ROOT_SIGNATURE_VERSION Version; 2140 __C89_NAMELESS union { 2141 D3D12_ROOT_SIGNATURE_DESC Desc_1_0; 2142 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; 2143 } __C89_NAMELESSUNIONNAME; 2144 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; 2145 typedef enum D3D12_DESCRIPTOR_HEAP_TYPE { 2146 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, 2147 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = 1, 2148 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = 2, 2149 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = 3, 2150 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = 4 2151 } D3D12_DESCRIPTOR_HEAP_TYPE; 2152 typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS { 2153 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0, 2154 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 2155 } D3D12_DESCRIPTOR_HEAP_FLAGS; 2156 DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS); 2157 typedef struct D3D12_DESCRIPTOR_HEAP_DESC { 2158 D3D12_DESCRIPTOR_HEAP_TYPE Type; 2159 UINT NumDescriptors; 2160 D3D12_DESCRIPTOR_HEAP_FLAGS Flags; 2161 UINT NodeMask; 2162 } D3D12_DESCRIPTOR_HEAP_DESC; 2163 typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; 2164 typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC { 2165 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 2166 UINT SizeInBytes; 2167 } D3D12_CONSTANT_BUFFER_VIEW_DESC; 2168 typedef enum D3D12_SRV_DIMENSION { 2169 D3D12_SRV_DIMENSION_UNKNOWN = 0, 2170 D3D12_SRV_DIMENSION_BUFFER = 1, 2171 D3D12_SRV_DIMENSION_TEXTURE1D = 2, 2172 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, 2173 D3D12_SRV_DIMENSION_TEXTURE2D = 4, 2174 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, 2175 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, 2176 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, 2177 D3D12_SRV_DIMENSION_TEXTURE3D = 8, 2178 D3D12_SRV_DIMENSION_TEXTURECUBE = 9, 2179 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, 2180 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11 2181 } D3D12_SRV_DIMENSION; 2182 typedef enum D3D12_BUFFER_SRV_FLAGS { 2183 D3D12_BUFFER_SRV_FLAG_NONE = 0x0, 2184 D3D12_BUFFER_SRV_FLAG_RAW = 0x1 2185 } D3D12_BUFFER_SRV_FLAGS; 2186 DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS); 2187 typedef enum D3D12_SHADER_COMPONENT_MAPPING { 2188 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, 2189 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, 2190 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, 2191 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, 2192 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, 2193 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 2194 } D3D12_SHADER_COMPONENT_MAPPING; 2195 #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \ 2196 (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \ 2197 | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \ 2198 | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \ 2199 | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \ 2200 | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES) 2201 #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3) 2202 #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \ 2203 ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \ 2204 & D3D12_SHADER_COMPONENT_MAPPING_MASK)) 2205 typedef struct D3D12_BUFFER_SRV { 2206 UINT64 FirstElement; 2207 UINT NumElements; 2208 UINT StructureByteStride; 2209 D3D12_BUFFER_SRV_FLAGS Flags; 2210 } D3D12_BUFFER_SRV; 2211 typedef struct D3D12_TEX1D_SRV { 2212 UINT MostDetailedMip; 2213 UINT MipLevels; 2214 FLOAT ResourceMinLODClamp; 2215 } D3D12_TEX1D_SRV; 2216 typedef struct D3D12_TEX1D_ARRAY_SRV { 2217 UINT MostDetailedMip; 2218 UINT MipLevels; 2219 UINT FirstArraySlice; 2220 UINT ArraySize; 2221 FLOAT ResourceMinLODClamp; 2222 } D3D12_TEX1D_ARRAY_SRV; 2223 typedef struct D3D12_TEX2D_SRV { 2224 UINT MostDetailedMip; 2225 UINT MipLevels; 2226 UINT PlaneSlice; 2227 FLOAT ResourceMinLODClamp; 2228 } D3D12_TEX2D_SRV; 2229 typedef struct D3D12_TEX2D_ARRAY_SRV { 2230 UINT MostDetailedMip; 2231 UINT MipLevels; 2232 UINT FirstArraySlice; 2233 UINT ArraySize; 2234 UINT PlaneSlice; 2235 FLOAT ResourceMinLODClamp; 2236 } D3D12_TEX2D_ARRAY_SRV; 2237 typedef struct D3D12_TEX2DMS_SRV { 2238 UINT UnusedField_NothingToDefine; 2239 } D3D12_TEX2DMS_SRV; 2240 typedef struct D3D12_TEX2DMS_ARRAY_SRV { 2241 UINT FirstArraySlice; 2242 UINT ArraySize; 2243 } D3D12_TEX2DMS_ARRAY_SRV; 2244 typedef struct D3D12_TEX3D_SRV { 2245 UINT MostDetailedMip; 2246 UINT MipLevels; 2247 FLOAT ResourceMinLODClamp; 2248 } D3D12_TEX3D_SRV; 2249 typedef struct D3D12_TEXCUBE_SRV { 2250 UINT MostDetailedMip; 2251 UINT MipLevels; 2252 FLOAT ResourceMinLODClamp; 2253 } D3D12_TEXCUBE_SRV; 2254 typedef struct D3D12_TEXCUBE_ARRAY_SRV { 2255 UINT MostDetailedMip; 2256 UINT MipLevels; 2257 UINT First2DArrayFace; 2258 UINT NumCubes; 2259 FLOAT ResourceMinLODClamp; 2260 } D3D12_TEXCUBE_ARRAY_SRV; 2261 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV { 2262 D3D12_GPU_VIRTUAL_ADDRESS Location; 2263 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; 2264 typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC { 2265 DXGI_FORMAT Format; 2266 D3D12_SRV_DIMENSION ViewDimension; 2267 UINT Shader4ComponentMapping; 2268 __C89_NAMELESS union { 2269 D3D12_BUFFER_SRV Buffer; 2270 D3D12_TEX1D_SRV Texture1D; 2271 D3D12_TEX1D_ARRAY_SRV Texture1DArray; 2272 D3D12_TEX2D_SRV Texture2D; 2273 D3D12_TEX2D_ARRAY_SRV Texture2DArray; 2274 D3D12_TEX2DMS_SRV Texture2DMS; 2275 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; 2276 D3D12_TEX3D_SRV Texture3D; 2277 D3D12_TEXCUBE_SRV TextureCube; 2278 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; 2279 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; 2280 } __C89_NAMELESSUNIONNAME; 2281 } D3D12_SHADER_RESOURCE_VIEW_DESC; 2282 typedef enum D3D12_UAV_DIMENSION { 2283 D3D12_UAV_DIMENSION_UNKNOWN = 0, 2284 D3D12_UAV_DIMENSION_BUFFER = 1, 2285 D3D12_UAV_DIMENSION_TEXTURE1D = 2, 2286 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, 2287 D3D12_UAV_DIMENSION_TEXTURE2D = 4, 2288 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, 2289 D3D12_UAV_DIMENSION_TEXTURE3D = 8 2290 } D3D12_UAV_DIMENSION; 2291 typedef enum D3D12_BUFFER_UAV_FLAGS { 2292 D3D12_BUFFER_UAV_FLAG_NONE = 0x0, 2293 D3D12_BUFFER_UAV_FLAG_RAW = 0x1 2294 } D3D12_BUFFER_UAV_FLAGS; 2295 DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS); 2296 typedef struct D3D12_BUFFER_UAV { 2297 UINT64 FirstElement; 2298 UINT NumElements; 2299 UINT StructureByteStride; 2300 UINT64 CounterOffsetInBytes; 2301 D3D12_BUFFER_UAV_FLAGS Flags; 2302 } D3D12_BUFFER_UAV; 2303 typedef struct D3D12_TEX1D_UAV { 2304 UINT MipSlice; 2305 } D3D12_TEX1D_UAV; 2306 typedef struct D3D12_TEX1D_ARRAY_UAV { 2307 UINT MipSlice; 2308 UINT FirstArraySlice; 2309 UINT ArraySize; 2310 } D3D12_TEX1D_ARRAY_UAV; 2311 typedef struct D3D12_TEX2D_UAV { 2312 UINT MipSlice; 2313 UINT PlaneSlice; 2314 } D3D12_TEX2D_UAV; 2315 typedef struct D3D12_TEX2D_ARRAY_UAV { 2316 UINT MipSlice; 2317 UINT FirstArraySlice; 2318 UINT ArraySize; 2319 UINT PlaneSlice; 2320 } D3D12_TEX2D_ARRAY_UAV; 2321 typedef struct D3D12_TEX3D_UAV { 2322 UINT MipSlice; 2323 UINT FirstWSlice; 2324 UINT WSize; 2325 } D3D12_TEX3D_UAV; 2326 typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC { 2327 DXGI_FORMAT Format; 2328 D3D12_UAV_DIMENSION ViewDimension; 2329 __C89_NAMELESS union { 2330 D3D12_BUFFER_UAV Buffer; 2331 D3D12_TEX1D_UAV Texture1D; 2332 D3D12_TEX1D_ARRAY_UAV Texture1DArray; 2333 D3D12_TEX2D_UAV Texture2D; 2334 D3D12_TEX2D_ARRAY_UAV Texture2DArray; 2335 D3D12_TEX3D_UAV Texture3D; 2336 } __C89_NAMELESSUNIONNAME; 2337 } D3D12_UNORDERED_ACCESS_VIEW_DESC; 2338 typedef enum D3D12_RTV_DIMENSION { 2339 D3D12_RTV_DIMENSION_UNKNOWN = 0, 2340 D3D12_RTV_DIMENSION_BUFFER = 1, 2341 D3D12_RTV_DIMENSION_TEXTURE1D = 2, 2342 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, 2343 D3D12_RTV_DIMENSION_TEXTURE2D = 4, 2344 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, 2345 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, 2346 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, 2347 D3D12_RTV_DIMENSION_TEXTURE3D = 8 2348 } D3D12_RTV_DIMENSION; 2349 typedef struct D3D12_BUFFER_RTV { 2350 UINT64 FirstElement; 2351 UINT NumElements; 2352 } D3D12_BUFFER_RTV; 2353 typedef struct D3D12_TEX1D_RTV { 2354 UINT MipSlice; 2355 } D3D12_TEX1D_RTV; 2356 typedef struct D3D12_TEX1D_ARRAY_RTV { 2357 UINT MipSlice; 2358 UINT FirstArraySlice; 2359 UINT ArraySize; 2360 } D3D12_TEX1D_ARRAY_RTV; 2361 typedef struct D3D12_TEX2D_RTV { 2362 UINT MipSlice; 2363 UINT PlaneSlice; 2364 } D3D12_TEX2D_RTV; 2365 typedef struct D3D12_TEX2D_ARRAY_RTV { 2366 UINT MipSlice; 2367 UINT FirstArraySlice; 2368 UINT ArraySize; 2369 UINT PlaneSlice; 2370 } D3D12_TEX2D_ARRAY_RTV; 2371 typedef struct D3D12_TEX2DMS_RTV { 2372 UINT UnusedField_NothingToDefine; 2373 } D3D12_TEX2DMS_RTV; 2374 typedef struct D3D12_TEX2DMS_ARRAY_RTV { 2375 UINT FirstArraySlice; 2376 UINT ArraySize; 2377 } D3D12_TEX2DMS_ARRAY_RTV; 2378 typedef struct D3D12_TEX3D_RTV { 2379 UINT MipSlice; 2380 UINT FirstWSlice; 2381 UINT WSize; 2382 } D3D12_TEX3D_RTV; 2383 typedef struct D3D12_RENDER_TARGET_VIEW_DESC { 2384 DXGI_FORMAT Format; 2385 D3D12_RTV_DIMENSION ViewDimension; 2386 __C89_NAMELESS union { 2387 D3D12_BUFFER_RTV Buffer; 2388 D3D12_TEX1D_RTV Texture1D; 2389 D3D12_TEX1D_ARRAY_RTV Texture1DArray; 2390 D3D12_TEX2D_RTV Texture2D; 2391 D3D12_TEX2D_ARRAY_RTV Texture2DArray; 2392 D3D12_TEX2DMS_RTV Texture2DMS; 2393 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; 2394 D3D12_TEX3D_RTV Texture3D; 2395 } __C89_NAMELESSUNIONNAME; 2396 } D3D12_RENDER_TARGET_VIEW_DESC; 2397 typedef enum D3D12_DSV_DIMENSION { 2398 D3D12_DSV_DIMENSION_UNKNOWN = 0, 2399 D3D12_DSV_DIMENSION_TEXTURE1D = 1, 2400 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, 2401 D3D12_DSV_DIMENSION_TEXTURE2D = 3, 2402 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, 2403 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, 2404 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 2405 } D3D12_DSV_DIMENSION; 2406 typedef enum D3D12_DSV_FLAGS { 2407 D3D12_DSV_FLAG_NONE = 0x0, 2408 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, 2409 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 2410 } D3D12_DSV_FLAGS; 2411 DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS); 2412 typedef struct D3D12_TEX1D_DSV { 2413 UINT MipSlice; 2414 } D3D12_TEX1D_DSV; 2415 typedef struct D3D12_TEX1D_ARRAY_DSV { 2416 UINT MipSlice; 2417 UINT FirstArraySlice; 2418 UINT ArraySize; 2419 } D3D12_TEX1D_ARRAY_DSV; 2420 typedef struct D3D12_TEX2D_DSV { 2421 UINT MipSlice; 2422 } D3D12_TEX2D_DSV; 2423 typedef struct D3D12_TEX2D_ARRAY_DSV { 2424 UINT MipSlice; 2425 UINT FirstArraySlice; 2426 UINT ArraySize; 2427 } D3D12_TEX2D_ARRAY_DSV; 2428 typedef struct D3D12_TEX2DMS_DSV { 2429 UINT UnusedField_NothingToDefine; 2430 } D3D12_TEX2DMS_DSV; 2431 typedef struct D3D12_TEX2DMS_ARRAY_DSV { 2432 UINT FirstArraySlice; 2433 UINT ArraySize; 2434 } D3D12_TEX2DMS_ARRAY_DSV; 2435 typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC { 2436 DXGI_FORMAT Format; 2437 D3D12_DSV_DIMENSION ViewDimension; 2438 D3D12_DSV_FLAGS Flags; 2439 __C89_NAMELESS union { 2440 D3D12_TEX1D_DSV Texture1D; 2441 D3D12_TEX1D_ARRAY_DSV Texture1DArray; 2442 D3D12_TEX2D_DSV Texture2D; 2443 D3D12_TEX2D_ARRAY_DSV Texture2DArray; 2444 D3D12_TEX2DMS_DSV Texture2DMS; 2445 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; 2446 } __C89_NAMELESSUNIONNAME; 2447 } D3D12_DEPTH_STENCIL_VIEW_DESC; 2448 typedef struct D3D12_SAMPLER_DESC { 2449 D3D12_FILTER Filter; 2450 D3D12_TEXTURE_ADDRESS_MODE AddressU; 2451 D3D12_TEXTURE_ADDRESS_MODE AddressV; 2452 D3D12_TEXTURE_ADDRESS_MODE AddressW; 2453 FLOAT MipLODBias; 2454 UINT MaxAnisotropy; 2455 D3D12_COMPARISON_FUNC ComparisonFunc; 2456 FLOAT BorderColor[4]; 2457 FLOAT MinLOD; 2458 FLOAT MaxLOD; 2459 } D3D12_SAMPLER_DESC; 2460 typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { 2461 SIZE_T ptr; 2462 } D3D12_CPU_DESCRIPTOR_HANDLE; 2463 typedef struct D3D12_GPU_DESCRIPTOR_HANDLE { 2464 UINT64 ptr; 2465 } D3D12_GPU_DESCRIPTOR_HANDLE; 2466 typedef enum D3D12_STENCIL_OP { 2467 D3D12_STENCIL_OP_KEEP = 1, 2468 D3D12_STENCIL_OP_ZERO = 2, 2469 D3D12_STENCIL_OP_REPLACE = 3, 2470 D3D12_STENCIL_OP_INCR_SAT = 4, 2471 D3D12_STENCIL_OP_DECR_SAT = 5, 2472 D3D12_STENCIL_OP_INVERT = 6, 2473 D3D12_STENCIL_OP_INCR = 7, 2474 D3D12_STENCIL_OP_DECR = 8 2475 } D3D12_STENCIL_OP; 2476 typedef struct D3D12_DEPTH_STENCILOP_DESC { 2477 D3D12_STENCIL_OP StencilFailOp; 2478 D3D12_STENCIL_OP StencilDepthFailOp; 2479 D3D12_STENCIL_OP StencilPassOp; 2480 D3D12_COMPARISON_FUNC StencilFunc; 2481 } D3D12_DEPTH_STENCILOP_DESC; 2482 typedef enum D3D12_DEPTH_WRITE_MASK { 2483 D3D12_DEPTH_WRITE_MASK_ZERO = 0, 2484 D3D12_DEPTH_WRITE_MASK_ALL = 1 2485 } D3D12_DEPTH_WRITE_MASK; 2486 typedef struct D3D12_DEPTH_STENCIL_DESC { 2487 WINBOOL DepthEnable; 2488 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 2489 D3D12_COMPARISON_FUNC DepthFunc; 2490 WINBOOL StencilEnable; 2491 UINT8 StencilReadMask; 2492 UINT8 StencilWriteMask; 2493 D3D12_DEPTH_STENCILOP_DESC FrontFace; 2494 D3D12_DEPTH_STENCILOP_DESC BackFace; 2495 } D3D12_DEPTH_STENCIL_DESC; 2496 typedef struct D3D12_DEPTH_STENCIL_DESC1 { 2497 WINBOOL DepthEnable; 2498 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 2499 D3D12_COMPARISON_FUNC DepthFunc; 2500 WINBOOL StencilEnable; 2501 UINT8 StencilReadMask; 2502 UINT8 StencilWriteMask; 2503 D3D12_DEPTH_STENCILOP_DESC FrontFace; 2504 D3D12_DEPTH_STENCILOP_DESC BackFace; 2505 WINBOOL DepthBoundsTestEnable; 2506 } D3D12_DEPTH_STENCIL_DESC1; 2507 typedef enum D3D12_BLEND { 2508 D3D12_BLEND_ZERO = 1, 2509 D3D12_BLEND_ONE = 2, 2510 D3D12_BLEND_SRC_COLOR = 3, 2511 D3D12_BLEND_INV_SRC_COLOR = 4, 2512 D3D12_BLEND_SRC_ALPHA = 5, 2513 D3D12_BLEND_INV_SRC_ALPHA = 6, 2514 D3D12_BLEND_DEST_ALPHA = 7, 2515 D3D12_BLEND_INV_DEST_ALPHA = 8, 2516 D3D12_BLEND_DEST_COLOR = 9, 2517 D3D12_BLEND_INV_DEST_COLOR = 10, 2518 D3D12_BLEND_SRC_ALPHA_SAT = 11, 2519 D3D12_BLEND_BLEND_FACTOR = 14, 2520 D3D12_BLEND_INV_BLEND_FACTOR = 15, 2521 D3D12_BLEND_SRC1_COLOR = 16, 2522 D3D12_BLEND_INV_SRC1_COLOR = 17, 2523 D3D12_BLEND_SRC1_ALPHA = 18, 2524 D3D12_BLEND_INV_SRC1_ALPHA = 19, 2525 D3D12_BLEND_ALPHA_FACTOR = 20, 2526 D3D12_BLEND_INV_ALPHA_FACTOR = 21 2527 } D3D12_BLEND; 2528 typedef enum D3D12_BLEND_OP { 2529 D3D12_BLEND_OP_ADD = 1, 2530 D3D12_BLEND_OP_SUBTRACT = 2, 2531 D3D12_BLEND_OP_REV_SUBTRACT = 3, 2532 D3D12_BLEND_OP_MIN = 4, 2533 D3D12_BLEND_OP_MAX = 5 2534 } D3D12_BLEND_OP; 2535 typedef enum D3D12_LOGIC_OP { 2536 D3D12_LOGIC_OP_CLEAR = 0x0, 2537 D3D12_LOGIC_OP_SET = 0x1, 2538 D3D12_LOGIC_OP_COPY = 0x2, 2539 D3D12_LOGIC_OP_COPY_INVERTED = 0x3, 2540 D3D12_LOGIC_OP_NOOP = 0x4, 2541 D3D12_LOGIC_OP_INVERT = 0x5, 2542 D3D12_LOGIC_OP_AND = 0x6, 2543 D3D12_LOGIC_OP_NAND = 0x7, 2544 D3D12_LOGIC_OP_OR = 0x8, 2545 D3D12_LOGIC_OP_NOR = 0x9, 2546 D3D12_LOGIC_OP_XOR = 0xa, 2547 D3D12_LOGIC_OP_EQUIV = 0xb, 2548 D3D12_LOGIC_OP_AND_REVERSE = 0xc, 2549 D3D12_LOGIC_OP_AND_INVERTED = 0xd, 2550 D3D12_LOGIC_OP_OR_REVERSE = 0xe, 2551 D3D12_LOGIC_OP_OR_INVERTED = 0xf 2552 } D3D12_LOGIC_OP; 2553 typedef enum D3D12_COLOR_WRITE_ENABLE { 2554 D3D12_COLOR_WRITE_ENABLE_RED = 0x1, 2555 D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2, 2556 D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4, 2557 D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8, 2558 D3D12_COLOR_WRITE_ENABLE_ALL = ((D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN) | D3D12_COLOR_WRITE_ENABLE_BLUE) | D3D12_COLOR_WRITE_ENABLE_ALPHA 2559 } D3D12_COLOR_WRITE_ENABLE; 2560 typedef struct D3D12_RENDER_TARGET_BLEND_DESC { 2561 WINBOOL BlendEnable; 2562 WINBOOL LogicOpEnable; 2563 D3D12_BLEND SrcBlend; 2564 D3D12_BLEND DestBlend; 2565 D3D12_BLEND_OP BlendOp; 2566 D3D12_BLEND SrcBlendAlpha; 2567 D3D12_BLEND DestBlendAlpha; 2568 D3D12_BLEND_OP BlendOpAlpha; 2569 D3D12_LOGIC_OP LogicOp; 2570 UINT8 RenderTargetWriteMask; 2571 } D3D12_RENDER_TARGET_BLEND_DESC; 2572 typedef struct D3D12_BLEND_DESC { 2573 WINBOOL AlphaToCoverageEnable; 2574 WINBOOL IndependentBlendEnable; 2575 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8]; 2576 } D3D12_BLEND_DESC; 2577 typedef enum D3D12_FILL_MODE { 2578 D3D12_FILL_MODE_WIREFRAME = 2, 2579 D3D12_FILL_MODE_SOLID = 3 2580 } D3D12_FILL_MODE; 2581 typedef enum D3D12_CULL_MODE { 2582 D3D12_CULL_MODE_NONE = 1, 2583 D3D12_CULL_MODE_FRONT = 2, 2584 D3D12_CULL_MODE_BACK = 3 2585 } D3D12_CULL_MODE; 2586 typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE { 2587 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, 2588 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 2589 } D3D12_CONSERVATIVE_RASTERIZATION_MODE; 2590 typedef struct D3D12_RASTERIZER_DESC { 2591 D3D12_FILL_MODE FillMode; 2592 D3D12_CULL_MODE CullMode; 2593 WINBOOL FrontCounterClockwise; 2594 INT DepthBias; 2595 FLOAT DepthBiasClamp; 2596 FLOAT SlopeScaledDepthBias; 2597 WINBOOL DepthClipEnable; 2598 WINBOOL MultisampleEnable; 2599 WINBOOL AntialiasedLineEnable; 2600 UINT ForcedSampleCount; 2601 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; 2602 } D3D12_RASTERIZER_DESC; 2603 typedef struct D3D12_SO_DECLARATION_ENTRY { 2604 UINT Stream; 2605 const char *SemanticName; 2606 UINT SemanticIndex; 2607 BYTE StartComponent; 2608 BYTE ComponentCount; 2609 BYTE OutputSlot; 2610 } D3D12_SO_DECLARATION_ENTRY; 2611 typedef struct D3D12_STREAM_OUTPUT_DESC { 2612 const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; 2613 UINT NumEntries; 2614 const UINT *pBufferStrides; 2615 UINT NumStrides; 2616 UINT RasterizedStream; 2617 } D3D12_STREAM_OUTPUT_DESC; 2618 typedef enum D3D12_INPUT_CLASSIFICATION { 2619 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, 2620 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 2621 } D3D12_INPUT_CLASSIFICATION; 2622 typedef struct D3D12_INPUT_ELEMENT_DESC { 2623 const char *SemanticName; 2624 UINT SemanticIndex; 2625 DXGI_FORMAT Format; 2626 UINT InputSlot; 2627 UINT AlignedByteOffset; 2628 D3D12_INPUT_CLASSIFICATION InputSlotClass; 2629 UINT InstanceDataStepRate; 2630 } D3D12_INPUT_ELEMENT_DESC; 2631 typedef struct D3D12_INPUT_LAYOUT_DESC { 2632 const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; 2633 UINT NumElements; 2634 } D3D12_INPUT_LAYOUT_DESC; 2635 typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE { 2636 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, 2637 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, 2638 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 2639 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; 2640 typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; 2641 typedef D3D_PRIMITIVE D3D12_PRIMITIVE; 2642 typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE { 2643 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, 2644 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, 2645 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, 2646 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, 2647 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 2648 } D3D12_PRIMITIVE_TOPOLOGY_TYPE; 2649 typedef struct D3D12_CACHED_PIPELINE_STATE { 2650 const void *pCachedBlob; 2651 SIZE_T CachedBlobSizeInBytes; 2652 } D3D12_CACHED_PIPELINE_STATE; 2653 typedef enum D3D12_PIPELINE_STATE_FLAGS { 2654 D3D12_PIPELINE_STATE_FLAG_NONE = 0x0, 2655 D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1 2656 } D3D12_PIPELINE_STATE_FLAGS; 2657 DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS); 2658 typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC { 2659 ID3D12RootSignature *pRootSignature; 2660 D3D12_SHADER_BYTECODE VS; 2661 D3D12_SHADER_BYTECODE PS; 2662 D3D12_SHADER_BYTECODE DS; 2663 D3D12_SHADER_BYTECODE HS; 2664 D3D12_SHADER_BYTECODE GS; 2665 D3D12_STREAM_OUTPUT_DESC StreamOutput; 2666 D3D12_BLEND_DESC BlendState; 2667 UINT SampleMask; 2668 D3D12_RASTERIZER_DESC RasterizerState; 2669 D3D12_DEPTH_STENCIL_DESC DepthStencilState; 2670 D3D12_INPUT_LAYOUT_DESC InputLayout; 2671 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; 2672 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; 2673 UINT NumRenderTargets; 2674 DXGI_FORMAT RTVFormats[8]; 2675 DXGI_FORMAT DSVFormat; 2676 DXGI_SAMPLE_DESC SampleDesc; 2677 UINT NodeMask; 2678 D3D12_CACHED_PIPELINE_STATE CachedPSO; 2679 D3D12_PIPELINE_STATE_FLAGS Flags; 2680 } D3D12_GRAPHICS_PIPELINE_STATE_DESC; 2681 typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC { 2682 ID3D12RootSignature *pRootSignature; 2683 D3D12_SHADER_BYTECODE CS; 2684 UINT NodeMask; 2685 D3D12_CACHED_PIPELINE_STATE CachedPSO; 2686 D3D12_PIPELINE_STATE_FLAGS Flags; 2687 } D3D12_COMPUTE_PIPELINE_STATE_DESC; 2688 typedef struct D3D12_PIPELINE_STATE_STREAM_DESC { 2689 SIZE_T SizeInBytes; 2690 void *pPipelineStateSubobjectStream; 2691 } D3D12_PIPELINE_STATE_STREAM_DESC; 2692 struct D3D12_RT_FORMAT_ARRAY { 2693 DXGI_FORMAT RTFormats[8]; 2694 UINT NumRenderTargets; 2695 }; 2696 typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE { 2697 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0x0, 2698 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = 0x1, 2699 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = 0x2, 2700 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = 0x3, 2701 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = 0x4, 2702 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = 0x5, 2703 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = 0x6, 2704 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 0x7, 2705 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = 0x8, 2706 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 0x9, 2707 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = 0xa, 2708 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 0xb, 2709 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 0xc, 2710 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 0xd, 2711 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 0xe, 2712 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 0xf, 2713 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 0x10, 2714 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 0x11, 2715 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x12, 2716 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = 0x13, 2717 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = 0x14, 2718 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 0x15, 2719 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 0x16, 2720 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 0x18, 2721 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 0x19, 2722 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = 0x1a 2723 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; 2724 typedef struct D3D12_VIEW_INSTANCE_LOCATION { 2725 UINT ViewportArrayIndex; 2726 UINT RenderTargetArrayIndex; 2727 } D3D12_VIEW_INSTANCE_LOCATION; 2728 typedef enum D3D12_VIEW_INSTANCING_FLAGS { 2729 D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0, 2730 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1 2731 } D3D12_VIEW_INSTANCING_FLAGS; 2732 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIEW_INSTANCING_FLAGS); 2733 typedef struct D3D12_VIEW_INSTANCING_DESC { 2734 UINT ViewInstanceCount; 2735 const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; 2736 D3D12_VIEW_INSTANCING_FLAGS Flags; 2737 } D3D12_VIEW_INSTANCING_DESC; 2738 typedef enum D3D12_COMMAND_LIST_TYPE { 2739 D3D12_COMMAND_LIST_TYPE_DIRECT = 0, 2740 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, 2741 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, 2742 D3D12_COMMAND_LIST_TYPE_COPY = 3, 2743 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, 2744 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, 2745 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6 2746 } D3D12_COMMAND_LIST_TYPE; 2747 typedef enum D3D12_COMMAND_QUEUE_PRIORITY { 2748 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, 2749 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, 2750 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 2751 } D3D12_COMMAND_QUEUE_PRIORITY; 2752 typedef enum D3D12_COMMAND_QUEUE_FLAGS { 2753 D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0, 2754 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 2755 } D3D12_COMMAND_QUEUE_FLAGS; 2756 DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS); 2757 typedef struct D3D12_COMMAND_QUEUE_DESC { 2758 D3D12_COMMAND_LIST_TYPE Type; 2759 INT Priority; 2760 D3D12_COMMAND_QUEUE_FLAGS Flags; 2761 UINT NodeMask; 2762 } D3D12_COMMAND_QUEUE_DESC; 2763 typedef struct D3D12_FEATURE_DATA_ARCHITECTURE { 2764 UINT NodeIndex; 2765 WINBOOL TileBasedRenderer; 2766 WINBOOL UMA; 2767 WINBOOL CacheCoherentUMA; 2768 } D3D12_FEATURE_DATA_ARCHITECTURE; 2769 typedef struct D3D12_FEATURE_DATA_FORMAT_INFO { 2770 DXGI_FORMAT Format; 2771 UINT8 PlaneCount; 2772 } D3D12_FEATURE_DATA_FORMAT_INFO; 2773 typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS { 2774 UINT NumFeatureLevels; 2775 const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; 2776 D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; 2777 } D3D12_FEATURE_DATA_FEATURE_LEVELS; 2778 typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE { 2779 D3D_ROOT_SIGNATURE_VERSION HighestVersion; 2780 } D3D12_FEATURE_DATA_ROOT_SIGNATURE; 2781 typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT { 2782 UINT MaxGPUVirtualAddressBitsPerResource; 2783 UINT MaxGPUVirtualAddressBitsPerProcess; 2784 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; 2785 typedef enum D3D_SHADER_MODEL { 2786 D3D_SHADER_MODEL_5_1 = 0x51, 2787 D3D_SHADER_MODEL_6_0 = 0x60, 2788 D3D_SHADER_MODEL_6_1 = 0x61, 2789 D3D_SHADER_MODEL_6_2 = 0x62, 2790 D3D_SHADER_MODEL_6_3 = 0x63, 2791 D3D_SHADER_MODEL_6_4 = 0x64, 2792 D3D_SHADER_MODEL_6_5 = 0x65, 2793 D3D_SHADER_MODEL_6_6 = 0x66, 2794 D3D_SHADER_MODEL_6_7 = 0x67, 2795 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_7 2796 } D3D_SHADER_MODEL; 2797 typedef struct D3D12_FEATURE_DATA_SHADER_MODEL { 2798 D3D_SHADER_MODEL HighestShaderModel; 2799 } D3D12_FEATURE_DATA_SHADER_MODEL; 2800 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 { 2801 WINBOOL WaveOps; 2802 UINT WaveLaneCountMin; 2803 UINT WaveLaneCountMax; 2804 UINT TotalLaneCount; 2805 WINBOOL ExpandedComputeResourceStates; 2806 WINBOOL Int64ShaderOps; 2807 } D3D12_FEATURE_DATA_D3D12_OPTIONS1; 2808 typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 { 2809 UINT NodeIndex; 2810 WINBOOL TileBasedRenderer; 2811 WINBOOL UMA; 2812 WINBOOL CacheCoherentUMA; 2813 WINBOOL IsolatedMMU; 2814 } D3D12_FEATURE_DATA_ARCHITECTURE1; 2815 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 { 2816 WINBOOL DepthBoundsTestSupported; 2817 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; 2818 } D3D12_FEATURE_DATA_D3D12_OPTIONS2; 2819 typedef struct D3D12_FEATURE_DATA_SHADER_CACHE { 2820 D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; 2821 } D3D12_FEATURE_DATA_SHADER_CACHE; 2822 typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY { 2823 D3D12_COMMAND_LIST_TYPE CommandListType; 2824 UINT Priority; 2825 WINBOOL PriorityForTypeIsSupported; 2826 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; 2827 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 { 2828 WINBOOL CopyQueueTimestampQueriesSupported; 2829 WINBOOL CastingFullyTypedFormatSupported; 2830 D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; 2831 D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; 2832 WINBOOL BarycentricsSupported; 2833 } D3D12_FEATURE_DATA_D3D12_OPTIONS3; 2834 typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS { 2835 WINBOOL Supported; 2836 } D3D12_FEATURE_DATA_EXISTING_HEAPS; 2837 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 { 2838 WINBOOL MSAA64KBAlignedTextureSupported; 2839 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; 2840 WINBOOL Native16BitShaderOpsSupported; 2841 } D3D12_FEATURE_DATA_D3D12_OPTIONS4; 2842 typedef struct D3D12_FEATURE_DATA_SERIALIZATION { 2843 UINT NodeIndex; 2844 D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; 2845 } D3D12_FEATURE_DATA_SERIALIZATION; 2846 typedef struct D3D12_FEATURE_DATA_CROSS_NODE { 2847 D3D12_CROSS_NODE_SHARING_TIER SharingTier; 2848 WINBOOL AtomicShaderInstructions; 2849 } D3D12_FEATURE_DATA_CROSS_NODE; 2850 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 { 2851 WINBOOL SRVOnlyTiledResourceTier3; 2852 D3D12_RENDER_PASS_TIER RenderPassesTier; 2853 D3D12_RAYTRACING_TIER RaytracingTier; 2854 } D3D12_FEATURE_DATA_D3D12_OPTIONS5; 2855 typedef enum D3D12_VARIABLE_SHADING_RATE_TIER { 2856 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0x0, 2857 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 0x1, 2858 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 0x2 2859 } D3D12_VARIABLE_SHADING_RATE_TIER; 2860 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 { 2861 WINBOOL AdditionalShadingRatesSupported; 2862 WINBOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; 2863 D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; 2864 UINT ShadingRateImageTileSize; 2865 WINBOOL BackgroundProcessingSupported; 2866 } D3D12_FEATURE_DATA_D3D12_OPTIONS6; 2867 typedef enum D3D12_MESH_SHADER_TIER { 2868 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0x0, 2869 D3D12_MESH_SHADER_TIER_1 = 0xa 2870 } D3D12_MESH_SHADER_TIER; 2871 typedef enum D3D12_SAMPLER_FEEDBACK_TIER { 2872 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0x0, 2873 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 0x5a, 2874 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 0x64 2875 } D3D12_SAMPLER_FEEDBACK_TIER; 2876 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 { 2877 D3D12_MESH_SHADER_TIER MeshShaderTier; 2878 D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; 2879 } D3D12_FEATURE_DATA_D3D12_OPTIONS7; 2880 typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND { 2881 GUID CommandId; 2882 UINT NodeMask; 2883 const void *pQueryInputData; 2884 SIZE_T QueryInputDataSizeInBytes; 2885 void *pQueryOutputData; 2886 SIZE_T QueryOutputDataSizeInBytes; 2887 } D3D12_FEATURE_DATA_QUERY_META_COMMAND; 2888 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 { 2889 WINBOOL UnalignedBlockTexturesSupported; 2890 } D3D12_FEATURE_DATA_D3D12_OPTIONS8; 2891 typedef enum D3D12_WAVE_MMA_TIER { 2892 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0x0, 2893 D3D12_WAVE_MMA_TIER_1_0 = 0xa 2894 } D3D12_WAVE_MMA_TIER; 2895 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 { 2896 WINBOOL MeshShaderPipelineStatsSupported; 2897 WINBOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; 2898 WINBOOL AtomicInt64OnTypedResourceSupported; 2899 WINBOOL AtomicInt64OnGroupSharedSupported; 2900 WINBOOL DerivativesInMeshAndAmplificationShadersSupported; 2901 D3D12_WAVE_MMA_TIER WaveMMATier; 2902 } D3D12_FEATURE_DATA_D3D12_OPTIONS9; 2903 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 { 2904 WINBOOL VariableRateShadingSumCombinerSupported; 2905 WINBOOL MeshShaderPerPrimitiveShadingRateSupported; 2906 } D3D12_FEATURE_DATA_D3D12_OPTIONS10; 2907 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 { 2908 WINBOOL AtomicInt64OnDescriptorHeapResourceSupported; 2909 } D3D12_FEATURE_DATA_D3D12_OPTIONS11; 2910 typedef enum D3D12_TRI_STATE { 2911 D3D12_TRI_STATE_UNKNOWN = -0x1, 2912 D3D12_TRI_STATE_FALSE = 0x0, 2913 D3D12_TRI_STATE_TRUE = 0x1 2914 } D3D12_TRI_STATE; 2915 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 { 2916 D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; 2917 WINBOOL EnhancedBarriersSupported; 2918 WINBOOL RelaxedFormatCastingSupported; 2919 } D3D12_FEATURE_DATA_D3D12_OPTIONS12; 2920 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 { 2921 WINBOOL UnrestrictedBufferTextureCopyPitchSupported; 2922 WINBOOL UnrestrictedVertexElementAlignmentSupported; 2923 WINBOOL InvertedViewportHeightFlipsYSupported; 2924 WINBOOL InvertedViewportDepthFlipsZSupported; 2925 WINBOOL TextureCopyBetweenDimensionsSupported; 2926 WINBOOL AlphaBlendFactorSupported; 2927 } D3D12_FEATURE_DATA_D3D12_OPTIONS13; 2928 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 { 2929 WINBOOL AdvancedTextureOpsSupported; 2930 WINBOOL WriteableMSAATexturesSupported; 2931 WINBOOL IndependentFrontAndBackStencilRefMaskSupported; 2932 } D3D12_FEATURE_DATA_D3D12_OPTIONS14; 2933 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 { 2934 WINBOOL TriangleFanSupported; 2935 WINBOOL DynamicIndexBufferStripCutSupported; 2936 } D3D12_FEATURE_DATA_D3D12_OPTIONS15; 2937 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 { 2938 WINBOOL DynamicDepthBiasSupported; 2939 WINBOOL GPUUploadHeapSupported; 2940 } D3D12_FEATURE_DATA_D3D12_OPTIONS16; 2941 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 { 2942 WINBOOL NonNormalizedCoordinateSamplersSupported; 2943 WINBOOL ManualWriteTrackingResourceSupported; 2944 } D3D12_FEATURE_DATA_D3D12_OPTIONS17; 2945 typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 { 2946 WINBOOL RenderPassesValid; 2947 } D3D12_FEATURE_DATA_D3D12_OPTIONS18; 2948 typedef enum D3D12_FEATURE { 2949 D3D12_FEATURE_D3D12_OPTIONS = 0, 2950 D3D12_FEATURE_ARCHITECTURE = 1, 2951 D3D12_FEATURE_FEATURE_LEVELS = 2, 2952 D3D12_FEATURE_FORMAT_SUPPORT = 3, 2953 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, 2954 D3D12_FEATURE_FORMAT_INFO = 5, 2955 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, 2956 D3D12_FEATURE_SHADER_MODEL = 7, 2957 D3D12_FEATURE_D3D12_OPTIONS1 = 8, 2958 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, 2959 D3D12_FEATURE_ROOT_SIGNATURE = 12, 2960 D3D12_FEATURE_ARCHITECTURE1 = 16, 2961 D3D12_FEATURE_D3D12_OPTIONS2 = 18, 2962 D3D12_FEATURE_SHADER_CACHE = 19, 2963 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, 2964 D3D12_FEATURE_D3D12_OPTIONS3 = 21, 2965 D3D12_FEATURE_EXISTING_HEAPS = 22, 2966 D3D12_FEATURE_D3D12_OPTIONS4 = 23, 2967 D3D12_FEATURE_SERIALIZATION = 24, 2968 D3D12_FEATURE_CROSS_NODE = 25, 2969 D3D12_FEATURE_D3D12_OPTIONS5 = 27, 2970 D3D12_FEATURE_DISPLAYABLE = 28, 2971 D3D12_FEATURE_D3D12_OPTIONS6 = 30, 2972 D3D12_FEATURE_QUERY_META_COMMAND = 31, 2973 D3D12_FEATURE_D3D12_OPTIONS7 = 32, 2974 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, 2975 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, 2976 D3D12_FEATURE_D3D12_OPTIONS8 = 36, 2977 D3D12_FEATURE_D3D12_OPTIONS9 = 37, 2978 D3D12_FEATURE_D3D12_OPTIONS10 = 39, 2979 D3D12_FEATURE_D3D12_OPTIONS11 = 40, 2980 D3D12_FEATURE_D3D12_OPTIONS12 = 41, 2981 D3D12_FEATURE_D3D12_OPTIONS13 = 42, 2982 D3D12_FEATURE_D3D12_OPTIONS14 = 43, 2983 D3D12_FEATURE_D3D12_OPTIONS15 = 44, 2984 D3D12_FEATURE_D3D12_OPTIONS16 = 45, 2985 D3D12_FEATURE_D3D12_OPTIONS17 = 46, 2986 D3D12_FEATURE_D3D12_OPTIONS18 = 47 2987 } D3D12_FEATURE; 2988 typedef struct D3D12_MEMCPY_DEST { 2989 void *pData; 2990 SIZE_T RowPitch; 2991 SIZE_T SlicePitch; 2992 } D3D12_MEMCPY_DEST; 2993 typedef struct D3D12_SUBRESOURCE_DATA { 2994 const void *pData; 2995 LONG_PTR RowPitch; 2996 LONG_PTR SlicePitch; 2997 } D3D12_SUBRESOURCE_DATA; 2998 typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS { 2999 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0, 3000 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, 3001 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0 3002 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; 3003 DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS); 3004 typedef enum D3D12_RESIDENCY_PRIORITY { 3005 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, 3006 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, 3007 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, 3008 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, 3009 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 3010 } D3D12_RESIDENCY_PRIORITY; 3011 typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER { 3012 D3D12_GPU_VIRTUAL_ADDRESS Dest; 3013 UINT32 Value; 3014 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; 3015 typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS { 3016 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0 3017 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; 3018 DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_FLAGS); 3019 typedef enum D3D12_PROTECTED_SESSION_STATUS { 3020 D3D12_PROTECTED_SESSION_STATUS_OK = 0, 3021 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1 3022 } D3D12_PROTECTED_SESSION_STATUS; 3023 typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC { 3024 UINT NodeMask; 3025 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; 3026 } D3D12_PROTECTED_RESOURCE_SESSION_DESC; 3027 /***************************************************************************** 3028 * ID3D12Object interface 3029 */ 3030 #ifndef __ID3D12Object_INTERFACE_DEFINED__ 3031 #define __ID3D12Object_INTERFACE_DEFINED__ 3032 3033 DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8); 3034 #if defined(__cplusplus) && !defined(CINTERFACE) 3035 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") 3036 ID3D12Object : public IUnknown 3037 { 3038 virtual HRESULT STDMETHODCALLTYPE GetPrivateData( 3039 REFGUID guid, 3040 UINT *data_size, 3041 void *data) = 0; 3042 3043 virtual HRESULT STDMETHODCALLTYPE SetPrivateData( 3044 REFGUID guid, 3045 UINT data_size, 3046 const void *data) = 0; 3047 3048 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( 3049 REFGUID guid, 3050 const IUnknown *data) = 0; 3051 3052 virtual HRESULT STDMETHODCALLTYPE SetName( 3053 const WCHAR *name) = 0; 3054 3055 }; 3056 #ifdef __CRT_UUID_DECL 3057 __CRT_UUID_DECL(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8) 3058 #endif 3059 #else 3060 typedef struct ID3D12ObjectVtbl { 3061 BEGIN_INTERFACE 3062 3063 /*** IUnknown methods ***/ 3064 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3065 ID3D12Object *This, 3066 REFIID riid, 3067 void **ppvObject); 3068 3069 ULONG (STDMETHODCALLTYPE *AddRef)( 3070 ID3D12Object *This); 3071 3072 ULONG (STDMETHODCALLTYPE *Release)( 3073 ID3D12Object *This); 3074 3075 /*** ID3D12Object methods ***/ 3076 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3077 ID3D12Object *This, 3078 REFGUID guid, 3079 UINT *data_size, 3080 void *data); 3081 3082 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3083 ID3D12Object *This, 3084 REFGUID guid, 3085 UINT data_size, 3086 const void *data); 3087 3088 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3089 ID3D12Object *This, 3090 REFGUID guid, 3091 const IUnknown *data); 3092 3093 HRESULT (STDMETHODCALLTYPE *SetName)( 3094 ID3D12Object *This, 3095 const WCHAR *name); 3096 3097 END_INTERFACE 3098 } ID3D12ObjectVtbl; 3099 3100 interface ID3D12Object { 3101 CONST_VTBL ID3D12ObjectVtbl* lpVtbl; 3102 }; 3103 3104 #ifdef COBJMACROS 3105 #ifndef WIDL_C_INLINE_WRAPPERS 3106 /*** IUnknown methods ***/ 3107 #define ID3D12Object_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3108 #define ID3D12Object_AddRef(This) (This)->lpVtbl->AddRef(This) 3109 #define ID3D12Object_Release(This) (This)->lpVtbl->Release(This) 3110 /*** ID3D12Object methods ***/ 3111 #define ID3D12Object_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3112 #define ID3D12Object_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3113 #define ID3D12Object_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3114 #define ID3D12Object_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3115 #else 3116 /*** IUnknown methods ***/ 3117 static inline HRESULT ID3D12Object_QueryInterface(ID3D12Object* This,REFIID riid,void **ppvObject) { 3118 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3119 } 3120 static inline ULONG ID3D12Object_AddRef(ID3D12Object* This) { 3121 return This->lpVtbl->AddRef(This); 3122 } 3123 static inline ULONG ID3D12Object_Release(ID3D12Object* This) { 3124 return This->lpVtbl->Release(This); 3125 } 3126 /*** ID3D12Object methods ***/ 3127 static inline HRESULT ID3D12Object_GetPrivateData(ID3D12Object* This,REFGUID guid,UINT *data_size,void *data) { 3128 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3129 } 3130 static inline HRESULT ID3D12Object_SetPrivateData(ID3D12Object* This,REFGUID guid,UINT data_size,const void *data) { 3131 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3132 } 3133 static inline HRESULT ID3D12Object_SetPrivateDataInterface(ID3D12Object* This,REFGUID guid,const IUnknown *data) { 3134 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3135 } 3136 static inline HRESULT ID3D12Object_SetName(ID3D12Object* This,const WCHAR *name) { 3137 return This->lpVtbl->SetName(This,name); 3138 } 3139 #endif 3140 #endif 3141 3142 #endif 3143 3144 3145 #endif /* __ID3D12Object_INTERFACE_DEFINED__ */ 3146 3147 /***************************************************************************** 3148 * ID3D12DeviceChild interface 3149 */ 3150 #ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ 3151 #define __ID3D12DeviceChild_INTERFACE_DEFINED__ 3152 3153 DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57); 3154 #if defined(__cplusplus) && !defined(CINTERFACE) 3155 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") 3156 ID3D12DeviceChild : public ID3D12Object 3157 { 3158 virtual HRESULT STDMETHODCALLTYPE GetDevice( 3159 REFIID riid, 3160 void **device) = 0; 3161 3162 }; 3163 #ifdef __CRT_UUID_DECL 3164 __CRT_UUID_DECL(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57) 3165 #endif 3166 #else 3167 typedef struct ID3D12DeviceChildVtbl { 3168 BEGIN_INTERFACE 3169 3170 /*** IUnknown methods ***/ 3171 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3172 ID3D12DeviceChild *This, 3173 REFIID riid, 3174 void **ppvObject); 3175 3176 ULONG (STDMETHODCALLTYPE *AddRef)( 3177 ID3D12DeviceChild *This); 3178 3179 ULONG (STDMETHODCALLTYPE *Release)( 3180 ID3D12DeviceChild *This); 3181 3182 /*** ID3D12Object methods ***/ 3183 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3184 ID3D12DeviceChild *This, 3185 REFGUID guid, 3186 UINT *data_size, 3187 void *data); 3188 3189 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3190 ID3D12DeviceChild *This, 3191 REFGUID guid, 3192 UINT data_size, 3193 const void *data); 3194 3195 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3196 ID3D12DeviceChild *This, 3197 REFGUID guid, 3198 const IUnknown *data); 3199 3200 HRESULT (STDMETHODCALLTYPE *SetName)( 3201 ID3D12DeviceChild *This, 3202 const WCHAR *name); 3203 3204 /*** ID3D12DeviceChild methods ***/ 3205 HRESULT (STDMETHODCALLTYPE *GetDevice)( 3206 ID3D12DeviceChild *This, 3207 REFIID riid, 3208 void **device); 3209 3210 END_INTERFACE 3211 } ID3D12DeviceChildVtbl; 3212 3213 interface ID3D12DeviceChild { 3214 CONST_VTBL ID3D12DeviceChildVtbl* lpVtbl; 3215 }; 3216 3217 #ifdef COBJMACROS 3218 #ifndef WIDL_C_INLINE_WRAPPERS 3219 /*** IUnknown methods ***/ 3220 #define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3221 #define ID3D12DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This) 3222 #define ID3D12DeviceChild_Release(This) (This)->lpVtbl->Release(This) 3223 /*** ID3D12Object methods ***/ 3224 #define ID3D12DeviceChild_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3225 #define ID3D12DeviceChild_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3226 #define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3227 #define ID3D12DeviceChild_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3228 /*** ID3D12DeviceChild methods ***/ 3229 #define ID3D12DeviceChild_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 3230 #else 3231 /*** IUnknown methods ***/ 3232 static inline HRESULT ID3D12DeviceChild_QueryInterface(ID3D12DeviceChild* This,REFIID riid,void **ppvObject) { 3233 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3234 } 3235 static inline ULONG ID3D12DeviceChild_AddRef(ID3D12DeviceChild* This) { 3236 return This->lpVtbl->AddRef(This); 3237 } 3238 static inline ULONG ID3D12DeviceChild_Release(ID3D12DeviceChild* This) { 3239 return This->lpVtbl->Release(This); 3240 } 3241 /*** ID3D12Object methods ***/ 3242 static inline HRESULT ID3D12DeviceChild_GetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT *data_size,void *data) { 3243 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3244 } 3245 static inline HRESULT ID3D12DeviceChild_SetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT data_size,const void *data) { 3246 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3247 } 3248 static inline HRESULT ID3D12DeviceChild_SetPrivateDataInterface(ID3D12DeviceChild* This,REFGUID guid,const IUnknown *data) { 3249 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3250 } 3251 static inline HRESULT ID3D12DeviceChild_SetName(ID3D12DeviceChild* This,const WCHAR *name) { 3252 return This->lpVtbl->SetName(This,name); 3253 } 3254 /*** ID3D12DeviceChild methods ***/ 3255 static inline HRESULT ID3D12DeviceChild_GetDevice(ID3D12DeviceChild* This,REFIID riid,void **device) { 3256 return This->lpVtbl->GetDevice(This,riid,device); 3257 } 3258 #endif 3259 #endif 3260 3261 #endif 3262 3263 3264 #endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ 3265 3266 /***************************************************************************** 3267 * ID3D12Pageable interface 3268 */ 3269 #ifndef __ID3D12Pageable_INTERFACE_DEFINED__ 3270 #define __ID3D12Pageable_INTERFACE_DEFINED__ 3271 3272 DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6); 3273 #if defined(__cplusplus) && !defined(CINTERFACE) 3274 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") 3275 ID3D12Pageable : public ID3D12DeviceChild 3276 { 3277 }; 3278 #ifdef __CRT_UUID_DECL 3279 __CRT_UUID_DECL(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6) 3280 #endif 3281 #else 3282 typedef struct ID3D12PageableVtbl { 3283 BEGIN_INTERFACE 3284 3285 /*** IUnknown methods ***/ 3286 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3287 ID3D12Pageable *This, 3288 REFIID riid, 3289 void **ppvObject); 3290 3291 ULONG (STDMETHODCALLTYPE *AddRef)( 3292 ID3D12Pageable *This); 3293 3294 ULONG (STDMETHODCALLTYPE *Release)( 3295 ID3D12Pageable *This); 3296 3297 /*** ID3D12Object methods ***/ 3298 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3299 ID3D12Pageable *This, 3300 REFGUID guid, 3301 UINT *data_size, 3302 void *data); 3303 3304 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3305 ID3D12Pageable *This, 3306 REFGUID guid, 3307 UINT data_size, 3308 const void *data); 3309 3310 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3311 ID3D12Pageable *This, 3312 REFGUID guid, 3313 const IUnknown *data); 3314 3315 HRESULT (STDMETHODCALLTYPE *SetName)( 3316 ID3D12Pageable *This, 3317 const WCHAR *name); 3318 3319 /*** ID3D12DeviceChild methods ***/ 3320 HRESULT (STDMETHODCALLTYPE *GetDevice)( 3321 ID3D12Pageable *This, 3322 REFIID riid, 3323 void **device); 3324 3325 END_INTERFACE 3326 } ID3D12PageableVtbl; 3327 3328 interface ID3D12Pageable { 3329 CONST_VTBL ID3D12PageableVtbl* lpVtbl; 3330 }; 3331 3332 #ifdef COBJMACROS 3333 #ifndef WIDL_C_INLINE_WRAPPERS 3334 /*** IUnknown methods ***/ 3335 #define ID3D12Pageable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3336 #define ID3D12Pageable_AddRef(This) (This)->lpVtbl->AddRef(This) 3337 #define ID3D12Pageable_Release(This) (This)->lpVtbl->Release(This) 3338 /*** ID3D12Object methods ***/ 3339 #define ID3D12Pageable_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3340 #define ID3D12Pageable_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3341 #define ID3D12Pageable_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3342 #define ID3D12Pageable_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3343 /*** ID3D12DeviceChild methods ***/ 3344 #define ID3D12Pageable_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 3345 #else 3346 /*** IUnknown methods ***/ 3347 static inline HRESULT ID3D12Pageable_QueryInterface(ID3D12Pageable* This,REFIID riid,void **ppvObject) { 3348 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3349 } 3350 static inline ULONG ID3D12Pageable_AddRef(ID3D12Pageable* This) { 3351 return This->lpVtbl->AddRef(This); 3352 } 3353 static inline ULONG ID3D12Pageable_Release(ID3D12Pageable* This) { 3354 return This->lpVtbl->Release(This); 3355 } 3356 /*** ID3D12Object methods ***/ 3357 static inline HRESULT ID3D12Pageable_GetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT *data_size,void *data) { 3358 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3359 } 3360 static inline HRESULT ID3D12Pageable_SetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT data_size,const void *data) { 3361 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3362 } 3363 static inline HRESULT ID3D12Pageable_SetPrivateDataInterface(ID3D12Pageable* This,REFGUID guid,const IUnknown *data) { 3364 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3365 } 3366 static inline HRESULT ID3D12Pageable_SetName(ID3D12Pageable* This,const WCHAR *name) { 3367 return This->lpVtbl->SetName(This,name); 3368 } 3369 /*** ID3D12DeviceChild methods ***/ 3370 static inline HRESULT ID3D12Pageable_GetDevice(ID3D12Pageable* This,REFIID riid,void **device) { 3371 return This->lpVtbl->GetDevice(This,riid,device); 3372 } 3373 #endif 3374 #endif 3375 3376 #endif 3377 3378 3379 #endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ 3380 3381 /***************************************************************************** 3382 * ID3D12Heap interface 3383 */ 3384 #ifndef __ID3D12Heap_INTERFACE_DEFINED__ 3385 #define __ID3D12Heap_INTERFACE_DEFINED__ 3386 3387 DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3); 3388 #if defined(__cplusplus) && !defined(CINTERFACE) 3389 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") 3390 ID3D12Heap : public ID3D12Pageable 3391 { 3392 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 3393 virtual D3D12_HEAP_DESC* STDMETHODCALLTYPE GetDesc( 3394 D3D12_HEAP_DESC *__ret) = 0; 3395 D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( 3396 ) 3397 { 3398 D3D12_HEAP_DESC __ret; 3399 return *GetDesc(&__ret); 3400 } 3401 #else 3402 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( 3403 ) = 0; 3404 #endif 3405 3406 }; 3407 #ifdef __CRT_UUID_DECL 3408 __CRT_UUID_DECL(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3) 3409 #endif 3410 #else 3411 typedef struct ID3D12HeapVtbl { 3412 BEGIN_INTERFACE 3413 3414 /*** IUnknown methods ***/ 3415 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3416 ID3D12Heap *This, 3417 REFIID riid, 3418 void **ppvObject); 3419 3420 ULONG (STDMETHODCALLTYPE *AddRef)( 3421 ID3D12Heap *This); 3422 3423 ULONG (STDMETHODCALLTYPE *Release)( 3424 ID3D12Heap *This); 3425 3426 /*** ID3D12Object methods ***/ 3427 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3428 ID3D12Heap *This, 3429 REFGUID guid, 3430 UINT *data_size, 3431 void *data); 3432 3433 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3434 ID3D12Heap *This, 3435 REFGUID guid, 3436 UINT data_size, 3437 const void *data); 3438 3439 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3440 ID3D12Heap *This, 3441 REFGUID guid, 3442 const IUnknown *data); 3443 3444 HRESULT (STDMETHODCALLTYPE *SetName)( 3445 ID3D12Heap *This, 3446 const WCHAR *name); 3447 3448 /*** ID3D12DeviceChild methods ***/ 3449 HRESULT (STDMETHODCALLTYPE *GetDevice)( 3450 ID3D12Heap *This, 3451 REFIID riid, 3452 void **device); 3453 3454 /*** ID3D12Heap methods ***/ 3455 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)( 3456 ID3D12Heap *This, 3457 D3D12_HEAP_DESC *__ret); 3458 3459 END_INTERFACE 3460 } ID3D12HeapVtbl; 3461 3462 interface ID3D12Heap { 3463 CONST_VTBL ID3D12HeapVtbl* lpVtbl; 3464 }; 3465 3466 #ifdef COBJMACROS 3467 #ifndef WIDL_C_INLINE_WRAPPERS 3468 /*** IUnknown methods ***/ 3469 #define ID3D12Heap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3470 #define ID3D12Heap_AddRef(This) (This)->lpVtbl->AddRef(This) 3471 #define ID3D12Heap_Release(This) (This)->lpVtbl->Release(This) 3472 /*** ID3D12Object methods ***/ 3473 #define ID3D12Heap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3474 #define ID3D12Heap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3475 #define ID3D12Heap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3476 #define ID3D12Heap_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3477 /*** ID3D12DeviceChild methods ***/ 3478 #define ID3D12Heap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 3479 /*** ID3D12Heap methods ***/ 3480 #define ID3D12Heap_GetDesc(This) ID3D12Heap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 3481 #else 3482 /*** IUnknown methods ***/ 3483 static inline HRESULT ID3D12Heap_QueryInterface(ID3D12Heap* This,REFIID riid,void **ppvObject) { 3484 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3485 } 3486 static inline ULONG ID3D12Heap_AddRef(ID3D12Heap* This) { 3487 return This->lpVtbl->AddRef(This); 3488 } 3489 static inline ULONG ID3D12Heap_Release(ID3D12Heap* This) { 3490 return This->lpVtbl->Release(This); 3491 } 3492 /*** ID3D12Object methods ***/ 3493 static inline HRESULT ID3D12Heap_GetPrivateData(ID3D12Heap* This,REFGUID guid,UINT *data_size,void *data) { 3494 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3495 } 3496 static inline HRESULT ID3D12Heap_SetPrivateData(ID3D12Heap* This,REFGUID guid,UINT data_size,const void *data) { 3497 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3498 } 3499 static inline HRESULT ID3D12Heap_SetPrivateDataInterface(ID3D12Heap* This,REFGUID guid,const IUnknown *data) { 3500 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3501 } 3502 static inline HRESULT ID3D12Heap_SetName(ID3D12Heap* This,const WCHAR *name) { 3503 return This->lpVtbl->SetName(This,name); 3504 } 3505 /*** ID3D12DeviceChild methods ***/ 3506 static inline HRESULT ID3D12Heap_GetDevice(ID3D12Heap* This,REFIID riid,void **device) { 3507 return This->lpVtbl->GetDevice(This,riid,device); 3508 } 3509 /*** ID3D12Heap methods ***/ 3510 static inline D3D12_HEAP_DESC ID3D12Heap_GetDesc(ID3D12Heap* This) { 3511 D3D12_HEAP_DESC __ret; 3512 return *This->lpVtbl->GetDesc(This,&__ret); 3513 } 3514 #endif 3515 #endif 3516 3517 #endif 3518 3519 3520 #endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ 3521 3522 /***************************************************************************** 3523 * ID3D12Resource interface 3524 */ 3525 #ifndef __ID3D12Resource_INTERFACE_DEFINED__ 3526 #define __ID3D12Resource_INTERFACE_DEFINED__ 3527 3528 DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad); 3529 #if defined(__cplusplus) && !defined(CINTERFACE) 3530 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") 3531 ID3D12Resource : public ID3D12Pageable 3532 { 3533 virtual HRESULT STDMETHODCALLTYPE Map( 3534 UINT sub_resource, 3535 const D3D12_RANGE *read_range, 3536 void **data) = 0; 3537 3538 virtual void STDMETHODCALLTYPE Unmap( 3539 UINT sub_resource, 3540 const D3D12_RANGE *written_range) = 0; 3541 3542 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 3543 virtual D3D12_RESOURCE_DESC* STDMETHODCALLTYPE GetDesc( 3544 D3D12_RESOURCE_DESC *__ret) = 0; 3545 D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( 3546 ) 3547 { 3548 D3D12_RESOURCE_DESC __ret; 3549 return *GetDesc(&__ret); 3550 } 3551 #else 3552 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( 3553 ) = 0; 3554 #endif 3555 3556 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( 3557 ) = 0; 3558 3559 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( 3560 UINT dst_sub_resource, 3561 const D3D12_BOX *dst_box, 3562 const void *src_data, 3563 UINT src_row_pitch, 3564 UINT src_slice_pitch) = 0; 3565 3566 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( 3567 void *dst_data, 3568 UINT dst_row_pitch, 3569 UINT dst_slice_pitch, 3570 UINT src_sub_resource, 3571 const D3D12_BOX *src_box) = 0; 3572 3573 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( 3574 D3D12_HEAP_PROPERTIES *heap_properties, 3575 D3D12_HEAP_FLAGS *flags) = 0; 3576 3577 }; 3578 #ifdef __CRT_UUID_DECL 3579 __CRT_UUID_DECL(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad) 3580 #endif 3581 #else 3582 typedef struct ID3D12ResourceVtbl { 3583 BEGIN_INTERFACE 3584 3585 /*** IUnknown methods ***/ 3586 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3587 ID3D12Resource *This, 3588 REFIID riid, 3589 void **ppvObject); 3590 3591 ULONG (STDMETHODCALLTYPE *AddRef)( 3592 ID3D12Resource *This); 3593 3594 ULONG (STDMETHODCALLTYPE *Release)( 3595 ID3D12Resource *This); 3596 3597 /*** ID3D12Object methods ***/ 3598 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3599 ID3D12Resource *This, 3600 REFGUID guid, 3601 UINT *data_size, 3602 void *data); 3603 3604 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3605 ID3D12Resource *This, 3606 REFGUID guid, 3607 UINT data_size, 3608 const void *data); 3609 3610 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3611 ID3D12Resource *This, 3612 REFGUID guid, 3613 const IUnknown *data); 3614 3615 HRESULT (STDMETHODCALLTYPE *SetName)( 3616 ID3D12Resource *This, 3617 const WCHAR *name); 3618 3619 /*** ID3D12DeviceChild methods ***/ 3620 HRESULT (STDMETHODCALLTYPE *GetDevice)( 3621 ID3D12Resource *This, 3622 REFIID riid, 3623 void **device); 3624 3625 /*** ID3D12Resource methods ***/ 3626 HRESULT (STDMETHODCALLTYPE *Map)( 3627 ID3D12Resource *This, 3628 UINT sub_resource, 3629 const D3D12_RANGE *read_range, 3630 void **data); 3631 3632 void (STDMETHODCALLTYPE *Unmap)( 3633 ID3D12Resource *This, 3634 UINT sub_resource, 3635 const D3D12_RANGE *written_range); 3636 3637 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)( 3638 ID3D12Resource *This, 3639 D3D12_RESOURCE_DESC *__ret); 3640 3641 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)( 3642 ID3D12Resource *This); 3643 3644 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)( 3645 ID3D12Resource *This, 3646 UINT dst_sub_resource, 3647 const D3D12_BOX *dst_box, 3648 const void *src_data, 3649 UINT src_row_pitch, 3650 UINT src_slice_pitch); 3651 3652 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)( 3653 ID3D12Resource *This, 3654 void *dst_data, 3655 UINT dst_row_pitch, 3656 UINT dst_slice_pitch, 3657 UINT src_sub_resource, 3658 const D3D12_BOX *src_box); 3659 3660 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)( 3661 ID3D12Resource *This, 3662 D3D12_HEAP_PROPERTIES *heap_properties, 3663 D3D12_HEAP_FLAGS *flags); 3664 3665 END_INTERFACE 3666 } ID3D12ResourceVtbl; 3667 3668 interface ID3D12Resource { 3669 CONST_VTBL ID3D12ResourceVtbl* lpVtbl; 3670 }; 3671 3672 #ifdef COBJMACROS 3673 #ifndef WIDL_C_INLINE_WRAPPERS 3674 /*** IUnknown methods ***/ 3675 #define ID3D12Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3676 #define ID3D12Resource_AddRef(This) (This)->lpVtbl->AddRef(This) 3677 #define ID3D12Resource_Release(This) (This)->lpVtbl->Release(This) 3678 /*** ID3D12Object methods ***/ 3679 #define ID3D12Resource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3680 #define ID3D12Resource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3681 #define ID3D12Resource_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3682 #define ID3D12Resource_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3683 /*** ID3D12DeviceChild methods ***/ 3684 #define ID3D12Resource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 3685 /*** ID3D12Resource methods ***/ 3686 #define ID3D12Resource_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data) 3687 #define ID3D12Resource_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range) 3688 #define ID3D12Resource_GetDesc(This) ID3D12Resource_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 3689 #define ID3D12Resource_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This) 3690 #define ID3D12Resource_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) 3691 #define ID3D12Resource_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) 3692 #define ID3D12Resource_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags) 3693 #else 3694 /*** IUnknown methods ***/ 3695 static inline HRESULT ID3D12Resource_QueryInterface(ID3D12Resource* This,REFIID riid,void **ppvObject) { 3696 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3697 } 3698 static inline ULONG ID3D12Resource_AddRef(ID3D12Resource* This) { 3699 return This->lpVtbl->AddRef(This); 3700 } 3701 static inline ULONG ID3D12Resource_Release(ID3D12Resource* This) { 3702 return This->lpVtbl->Release(This); 3703 } 3704 /*** ID3D12Object methods ***/ 3705 static inline HRESULT ID3D12Resource_GetPrivateData(ID3D12Resource* This,REFGUID guid,UINT *data_size,void *data) { 3706 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3707 } 3708 static inline HRESULT ID3D12Resource_SetPrivateData(ID3D12Resource* This,REFGUID guid,UINT data_size,const void *data) { 3709 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3710 } 3711 static inline HRESULT ID3D12Resource_SetPrivateDataInterface(ID3D12Resource* This,REFGUID guid,const IUnknown *data) { 3712 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3713 } 3714 static inline HRESULT ID3D12Resource_SetName(ID3D12Resource* This,const WCHAR *name) { 3715 return This->lpVtbl->SetName(This,name); 3716 } 3717 /*** ID3D12DeviceChild methods ***/ 3718 static inline HRESULT ID3D12Resource_GetDevice(ID3D12Resource* This,REFIID riid,void **device) { 3719 return This->lpVtbl->GetDevice(This,riid,device); 3720 } 3721 /*** ID3D12Resource methods ***/ 3722 static inline HRESULT ID3D12Resource_Map(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) { 3723 return This->lpVtbl->Map(This,sub_resource,read_range,data); 3724 } 3725 static inline void ID3D12Resource_Unmap(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *written_range) { 3726 This->lpVtbl->Unmap(This,sub_resource,written_range); 3727 } 3728 static inline D3D12_RESOURCE_DESC ID3D12Resource_GetDesc(ID3D12Resource* This) { 3729 D3D12_RESOURCE_DESC __ret; 3730 return *This->lpVtbl->GetDesc(This,&__ret); 3731 } 3732 static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource_GetGPUVirtualAddress(ID3D12Resource* This) { 3733 return This->lpVtbl->GetGPUVirtualAddress(This); 3734 } 3735 static inline HRESULT ID3D12Resource_WriteToSubresource(ID3D12Resource* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) { 3736 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch); 3737 } 3738 static inline HRESULT ID3D12Resource_ReadFromSubresource(ID3D12Resource* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) { 3739 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box); 3740 } 3741 static inline HRESULT ID3D12Resource_GetHeapProperties(ID3D12Resource* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) { 3742 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags); 3743 } 3744 #endif 3745 #endif 3746 3747 #endif 3748 3749 3750 #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ 3751 3752 /***************************************************************************** 3753 * ID3D12CommandList interface 3754 */ 3755 #ifndef __ID3D12CommandList_INTERFACE_DEFINED__ 3756 #define __ID3D12CommandList_INTERFACE_DEFINED__ 3757 3758 DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5); 3759 #if defined(__cplusplus) && !defined(CINTERFACE) 3760 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") 3761 ID3D12CommandList : public ID3D12DeviceChild 3762 { 3763 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( 3764 ) = 0; 3765 3766 }; 3767 #ifdef __CRT_UUID_DECL 3768 __CRT_UUID_DECL(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5) 3769 #endif 3770 #else 3771 typedef struct ID3D12CommandListVtbl { 3772 BEGIN_INTERFACE 3773 3774 /*** IUnknown methods ***/ 3775 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3776 ID3D12CommandList *This, 3777 REFIID riid, 3778 void **ppvObject); 3779 3780 ULONG (STDMETHODCALLTYPE *AddRef)( 3781 ID3D12CommandList *This); 3782 3783 ULONG (STDMETHODCALLTYPE *Release)( 3784 ID3D12CommandList *This); 3785 3786 /*** ID3D12Object methods ***/ 3787 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 3788 ID3D12CommandList *This, 3789 REFGUID guid, 3790 UINT *data_size, 3791 void *data); 3792 3793 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 3794 ID3D12CommandList *This, 3795 REFGUID guid, 3796 UINT data_size, 3797 const void *data); 3798 3799 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 3800 ID3D12CommandList *This, 3801 REFGUID guid, 3802 const IUnknown *data); 3803 3804 HRESULT (STDMETHODCALLTYPE *SetName)( 3805 ID3D12CommandList *This, 3806 const WCHAR *name); 3807 3808 /*** ID3D12DeviceChild methods ***/ 3809 HRESULT (STDMETHODCALLTYPE *GetDevice)( 3810 ID3D12CommandList *This, 3811 REFIID riid, 3812 void **device); 3813 3814 /*** ID3D12CommandList methods ***/ 3815 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 3816 ID3D12CommandList *This); 3817 3818 END_INTERFACE 3819 } ID3D12CommandListVtbl; 3820 3821 interface ID3D12CommandList { 3822 CONST_VTBL ID3D12CommandListVtbl* lpVtbl; 3823 }; 3824 3825 #ifdef COBJMACROS 3826 #ifndef WIDL_C_INLINE_WRAPPERS 3827 /*** IUnknown methods ***/ 3828 #define ID3D12CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3829 #define ID3D12CommandList_AddRef(This) (This)->lpVtbl->AddRef(This) 3830 #define ID3D12CommandList_Release(This) (This)->lpVtbl->Release(This) 3831 /*** ID3D12Object methods ***/ 3832 #define ID3D12CommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 3833 #define ID3D12CommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 3834 #define ID3D12CommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 3835 #define ID3D12CommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name) 3836 /*** ID3D12DeviceChild methods ***/ 3837 #define ID3D12CommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 3838 /*** ID3D12CommandList methods ***/ 3839 #define ID3D12CommandList_GetType(This) (This)->lpVtbl->GetType(This) 3840 #else 3841 /*** IUnknown methods ***/ 3842 static inline HRESULT ID3D12CommandList_QueryInterface(ID3D12CommandList* This,REFIID riid,void **ppvObject) { 3843 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3844 } 3845 static inline ULONG ID3D12CommandList_AddRef(ID3D12CommandList* This) { 3846 return This->lpVtbl->AddRef(This); 3847 } 3848 static inline ULONG ID3D12CommandList_Release(ID3D12CommandList* This) { 3849 return This->lpVtbl->Release(This); 3850 } 3851 /*** ID3D12Object methods ***/ 3852 static inline HRESULT ID3D12CommandList_GetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT *data_size,void *data) { 3853 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 3854 } 3855 static inline HRESULT ID3D12CommandList_SetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT data_size,const void *data) { 3856 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 3857 } 3858 static inline HRESULT ID3D12CommandList_SetPrivateDataInterface(ID3D12CommandList* This,REFGUID guid,const IUnknown *data) { 3859 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 3860 } 3861 static inline HRESULT ID3D12CommandList_SetName(ID3D12CommandList* This,const WCHAR *name) { 3862 return This->lpVtbl->SetName(This,name); 3863 } 3864 /*** ID3D12DeviceChild methods ***/ 3865 static inline HRESULT ID3D12CommandList_GetDevice(ID3D12CommandList* This,REFIID riid,void **device) { 3866 return This->lpVtbl->GetDevice(This,riid,device); 3867 } 3868 /*** ID3D12CommandList methods ***/ 3869 static inline D3D12_COMMAND_LIST_TYPE ID3D12CommandList_GetType(ID3D12CommandList* This) { 3870 return This->lpVtbl->GetType(This); 3871 } 3872 #endif 3873 #endif 3874 3875 #endif 3876 3877 3878 #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ 3879 3880 typedef enum D3D12_TILE_COPY_FLAGS { 3881 D3D12_TILE_COPY_FLAG_NONE = 0x0, 3882 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, 3883 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 3884 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 3885 } D3D12_TILE_COPY_FLAGS; 3886 DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS); 3887 typedef struct D3D12_INDEX_BUFFER_VIEW { 3888 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 3889 UINT SizeInBytes; 3890 DXGI_FORMAT Format; 3891 } D3D12_INDEX_BUFFER_VIEW; 3892 typedef struct D3D12_VERTEX_BUFFER_VIEW { 3893 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 3894 UINT SizeInBytes; 3895 UINT StrideInBytes; 3896 } D3D12_VERTEX_BUFFER_VIEW; 3897 typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW { 3898 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 3899 UINT64 SizeInBytes; 3900 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; 3901 } D3D12_STREAM_OUTPUT_BUFFER_VIEW; 3902 typedef enum D3D12_CLEAR_FLAGS { 3903 D3D12_CLEAR_FLAG_DEPTH = 0x1, 3904 D3D12_CLEAR_FLAG_STENCIL = 0x2 3905 } D3D12_CLEAR_FLAGS; 3906 DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS); 3907 typedef struct D3D12_DISCARD_REGION { 3908 UINT NumRects; 3909 const D3D12_RECT *pRects; 3910 UINT FirstSubresource; 3911 UINT NumSubresources; 3912 } D3D12_DISCARD_REGION; 3913 typedef enum D3D12_QUERY_TYPE { 3914 D3D12_QUERY_TYPE_OCCLUSION = 0, 3915 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, 3916 D3D12_QUERY_TYPE_TIMESTAMP = 2, 3917 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, 3918 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, 3919 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, 3920 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, 3921 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, 3922 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, 3923 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10 3924 } D3D12_QUERY_TYPE; 3925 typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS { 3926 UINT64 IAVertices; 3927 UINT64 IAPrimitives; 3928 UINT64 VSInvocations; 3929 UINT64 GSInvocations; 3930 UINT64 GSPrimitives; 3931 UINT64 CInvocations; 3932 UINT64 CPrimitives; 3933 UINT64 PSInvocations; 3934 UINT64 HSInvocations; 3935 UINT64 DSInvocations; 3936 UINT64 CSInvocations; 3937 } D3D12_QUERY_DATA_PIPELINE_STATISTICS; 3938 typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 { 3939 UINT64 IAVertices; 3940 UINT64 IAPrimitives; 3941 UINT64 VSInvocations; 3942 UINT64 GSInvocations; 3943 UINT64 GSPrimitives; 3944 UINT64 CInvocations; 3945 UINT64 CPrimitives; 3946 UINT64 PSInvocations; 3947 UINT64 HSInvocations; 3948 UINT64 DSInvocations; 3949 UINT64 CSInvocations; 3950 UINT64 ASInvocations; 3951 UINT64 MSInvocations; 3952 UINT64 MSPrimitives; 3953 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1; 3954 typedef struct D3D12_QUERY_DATA_SO_STATISTICS { 3955 UINT64 NumPrimitivesWritten; 3956 UINT64 PrimitivesStorageNeeded; 3957 } D3D12_QUERY_DATA_SO_STATISTICS; 3958 typedef enum D3D12_PREDICATION_OP { 3959 D3D12_PREDICATION_OP_EQUAL_ZERO = 0, 3960 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 3961 } D3D12_PREDICATION_OP; 3962 /***************************************************************************** 3963 * ID3D12DescriptorHeap interface 3964 */ 3965 #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ 3966 #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ 3967 3968 DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51); 3969 #if defined(__cplusplus) && !defined(CINTERFACE) 3970 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") 3971 ID3D12DescriptorHeap : public ID3D12Pageable 3972 { 3973 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 3974 virtual D3D12_DESCRIPTOR_HEAP_DESC* STDMETHODCALLTYPE GetDesc( 3975 D3D12_DESCRIPTOR_HEAP_DESC *__ret) = 0; 3976 D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( 3977 ) 3978 { 3979 D3D12_DESCRIPTOR_HEAP_DESC __ret; 3980 return *GetDesc(&__ret); 3981 } 3982 #else 3983 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( 3984 ) = 0; 3985 #endif 3986 3987 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 3988 virtual D3D12_CPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( 3989 D3D12_CPU_DESCRIPTOR_HANDLE *__ret) = 0; 3990 D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( 3991 ) 3992 { 3993 D3D12_CPU_DESCRIPTOR_HANDLE __ret; 3994 return *GetCPUDescriptorHandleForHeapStart(&__ret); 3995 } 3996 #else 3997 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( 3998 ) = 0; 3999 #endif 4000 4001 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 4002 virtual D3D12_GPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( 4003 D3D12_GPU_DESCRIPTOR_HANDLE *__ret) = 0; 4004 D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( 4005 ) 4006 { 4007 D3D12_GPU_DESCRIPTOR_HANDLE __ret; 4008 return *GetGPUDescriptorHandleForHeapStart(&__ret); 4009 } 4010 #else 4011 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( 4012 ) = 0; 4013 #endif 4014 4015 }; 4016 #ifdef __CRT_UUID_DECL 4017 __CRT_UUID_DECL(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51) 4018 #endif 4019 #else 4020 typedef struct ID3D12DescriptorHeapVtbl { 4021 BEGIN_INTERFACE 4022 4023 /*** IUnknown methods ***/ 4024 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4025 ID3D12DescriptorHeap *This, 4026 REFIID riid, 4027 void **ppvObject); 4028 4029 ULONG (STDMETHODCALLTYPE *AddRef)( 4030 ID3D12DescriptorHeap *This); 4031 4032 ULONG (STDMETHODCALLTYPE *Release)( 4033 ID3D12DescriptorHeap *This); 4034 4035 /*** ID3D12Object methods ***/ 4036 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 4037 ID3D12DescriptorHeap *This, 4038 REFGUID guid, 4039 UINT *data_size, 4040 void *data); 4041 4042 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 4043 ID3D12DescriptorHeap *This, 4044 REFGUID guid, 4045 UINT data_size, 4046 const void *data); 4047 4048 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 4049 ID3D12DescriptorHeap *This, 4050 REFGUID guid, 4051 const IUnknown *data); 4052 4053 HRESULT (STDMETHODCALLTYPE *SetName)( 4054 ID3D12DescriptorHeap *This, 4055 const WCHAR *name); 4056 4057 /*** ID3D12DeviceChild methods ***/ 4058 HRESULT (STDMETHODCALLTYPE *GetDevice)( 4059 ID3D12DescriptorHeap *This, 4060 REFIID riid, 4061 void **device); 4062 4063 /*** ID3D12DescriptorHeap methods ***/ 4064 D3D12_DESCRIPTOR_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)( 4065 ID3D12DescriptorHeap *This, 4066 D3D12_DESCRIPTOR_HEAP_DESC *__ret); 4067 4068 D3D12_CPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)( 4069 ID3D12DescriptorHeap *This, 4070 D3D12_CPU_DESCRIPTOR_HANDLE *__ret); 4071 4072 D3D12_GPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)( 4073 ID3D12DescriptorHeap *This, 4074 D3D12_GPU_DESCRIPTOR_HANDLE *__ret); 4075 4076 END_INTERFACE 4077 } ID3D12DescriptorHeapVtbl; 4078 4079 interface ID3D12DescriptorHeap { 4080 CONST_VTBL ID3D12DescriptorHeapVtbl* lpVtbl; 4081 }; 4082 4083 #ifdef COBJMACROS 4084 #ifndef WIDL_C_INLINE_WRAPPERS 4085 /*** IUnknown methods ***/ 4086 #define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4087 #define ID3D12DescriptorHeap_AddRef(This) (This)->lpVtbl->AddRef(This) 4088 #define ID3D12DescriptorHeap_Release(This) (This)->lpVtbl->Release(This) 4089 /*** ID3D12Object methods ***/ 4090 #define ID3D12DescriptorHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 4091 #define ID3D12DescriptorHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 4092 #define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 4093 #define ID3D12DescriptorHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name) 4094 /*** ID3D12DeviceChild methods ***/ 4095 #define ID3D12DescriptorHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 4096 /*** ID3D12DescriptorHeap methods ***/ 4097 #define ID3D12DescriptorHeap_GetDesc(This) ID3D12DescriptorHeap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 4098 #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 4099 #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 4100 #else 4101 /*** IUnknown methods ***/ 4102 static inline HRESULT ID3D12DescriptorHeap_QueryInterface(ID3D12DescriptorHeap* This,REFIID riid,void **ppvObject) { 4103 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4104 } 4105 static inline ULONG ID3D12DescriptorHeap_AddRef(ID3D12DescriptorHeap* This) { 4106 return This->lpVtbl->AddRef(This); 4107 } 4108 static inline ULONG ID3D12DescriptorHeap_Release(ID3D12DescriptorHeap* This) { 4109 return This->lpVtbl->Release(This); 4110 } 4111 /*** ID3D12Object methods ***/ 4112 static inline HRESULT ID3D12DescriptorHeap_GetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT *data_size,void *data) { 4113 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 4114 } 4115 static inline HRESULT ID3D12DescriptorHeap_SetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT data_size,const void *data) { 4116 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 4117 } 4118 static inline HRESULT ID3D12DescriptorHeap_SetPrivateDataInterface(ID3D12DescriptorHeap* This,REFGUID guid,const IUnknown *data) { 4119 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 4120 } 4121 static inline HRESULT ID3D12DescriptorHeap_SetName(ID3D12DescriptorHeap* This,const WCHAR *name) { 4122 return This->lpVtbl->SetName(This,name); 4123 } 4124 /*** ID3D12DeviceChild methods ***/ 4125 static inline HRESULT ID3D12DescriptorHeap_GetDevice(ID3D12DescriptorHeap* This,REFIID riid,void **device) { 4126 return This->lpVtbl->GetDevice(This,riid,device); 4127 } 4128 /*** ID3D12DescriptorHeap methods ***/ 4129 static inline D3D12_DESCRIPTOR_HEAP_DESC ID3D12DescriptorHeap_GetDesc(ID3D12DescriptorHeap* This) { 4130 D3D12_DESCRIPTOR_HEAP_DESC __ret; 4131 return *This->lpVtbl->GetDesc(This,&__ret); 4132 } 4133 static inline D3D12_CPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) { 4134 D3D12_CPU_DESCRIPTOR_HANDLE __ret; 4135 return *This->lpVtbl->GetCPUDescriptorHandleForHeapStart(This,&__ret); 4136 } 4137 static inline D3D12_GPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) { 4138 D3D12_GPU_DESCRIPTOR_HANDLE __ret; 4139 return *This->lpVtbl->GetGPUDescriptorHandleForHeapStart(This,&__ret); 4140 } 4141 #endif 4142 #endif 4143 4144 #endif 4145 4146 4147 #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ 4148 4149 /***************************************************************************** 4150 * ID3D12QueryHeap interface 4151 */ 4152 #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ 4153 #define __ID3D12QueryHeap_INTERFACE_DEFINED__ 4154 4155 DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4); 4156 #if defined(__cplusplus) && !defined(CINTERFACE) 4157 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") 4158 ID3D12QueryHeap : public ID3D12Pageable 4159 { 4160 }; 4161 #ifdef __CRT_UUID_DECL 4162 __CRT_UUID_DECL(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4) 4163 #endif 4164 #else 4165 typedef struct ID3D12QueryHeapVtbl { 4166 BEGIN_INTERFACE 4167 4168 /*** IUnknown methods ***/ 4169 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4170 ID3D12QueryHeap *This, 4171 REFIID riid, 4172 void **ppvObject); 4173 4174 ULONG (STDMETHODCALLTYPE *AddRef)( 4175 ID3D12QueryHeap *This); 4176 4177 ULONG (STDMETHODCALLTYPE *Release)( 4178 ID3D12QueryHeap *This); 4179 4180 /*** ID3D12Object methods ***/ 4181 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 4182 ID3D12QueryHeap *This, 4183 REFGUID guid, 4184 UINT *data_size, 4185 void *data); 4186 4187 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 4188 ID3D12QueryHeap *This, 4189 REFGUID guid, 4190 UINT data_size, 4191 const void *data); 4192 4193 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 4194 ID3D12QueryHeap *This, 4195 REFGUID guid, 4196 const IUnknown *data); 4197 4198 HRESULT (STDMETHODCALLTYPE *SetName)( 4199 ID3D12QueryHeap *This, 4200 const WCHAR *name); 4201 4202 /*** ID3D12DeviceChild methods ***/ 4203 HRESULT (STDMETHODCALLTYPE *GetDevice)( 4204 ID3D12QueryHeap *This, 4205 REFIID riid, 4206 void **device); 4207 4208 END_INTERFACE 4209 } ID3D12QueryHeapVtbl; 4210 4211 interface ID3D12QueryHeap { 4212 CONST_VTBL ID3D12QueryHeapVtbl* lpVtbl; 4213 }; 4214 4215 #ifdef COBJMACROS 4216 #ifndef WIDL_C_INLINE_WRAPPERS 4217 /*** IUnknown methods ***/ 4218 #define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4219 #define ID3D12QueryHeap_AddRef(This) (This)->lpVtbl->AddRef(This) 4220 #define ID3D12QueryHeap_Release(This) (This)->lpVtbl->Release(This) 4221 /*** ID3D12Object methods ***/ 4222 #define ID3D12QueryHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 4223 #define ID3D12QueryHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 4224 #define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 4225 #define ID3D12QueryHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name) 4226 /*** ID3D12DeviceChild methods ***/ 4227 #define ID3D12QueryHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 4228 #else 4229 /*** IUnknown methods ***/ 4230 static inline HRESULT ID3D12QueryHeap_QueryInterface(ID3D12QueryHeap* This,REFIID riid,void **ppvObject) { 4231 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4232 } 4233 static inline ULONG ID3D12QueryHeap_AddRef(ID3D12QueryHeap* This) { 4234 return This->lpVtbl->AddRef(This); 4235 } 4236 static inline ULONG ID3D12QueryHeap_Release(ID3D12QueryHeap* This) { 4237 return This->lpVtbl->Release(This); 4238 } 4239 /*** ID3D12Object methods ***/ 4240 static inline HRESULT ID3D12QueryHeap_GetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT *data_size,void *data) { 4241 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 4242 } 4243 static inline HRESULT ID3D12QueryHeap_SetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT data_size,const void *data) { 4244 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 4245 } 4246 static inline HRESULT ID3D12QueryHeap_SetPrivateDataInterface(ID3D12QueryHeap* This,REFGUID guid,const IUnknown *data) { 4247 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 4248 } 4249 static inline HRESULT ID3D12QueryHeap_SetName(ID3D12QueryHeap* This,const WCHAR *name) { 4250 return This->lpVtbl->SetName(This,name); 4251 } 4252 /*** ID3D12DeviceChild methods ***/ 4253 static inline HRESULT ID3D12QueryHeap_GetDevice(ID3D12QueryHeap* This,REFIID riid,void **device) { 4254 return This->lpVtbl->GetDevice(This,riid,device); 4255 } 4256 #endif 4257 #endif 4258 4259 #endif 4260 4261 4262 #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ 4263 4264 /***************************************************************************** 4265 * ID3D12CommandSignature interface 4266 */ 4267 #ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ 4268 #define __ID3D12CommandSignature_INTERFACE_DEFINED__ 4269 4270 DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1); 4271 #if defined(__cplusplus) && !defined(CINTERFACE) 4272 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") 4273 ID3D12CommandSignature : public ID3D12Pageable 4274 { 4275 }; 4276 #ifdef __CRT_UUID_DECL 4277 __CRT_UUID_DECL(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1) 4278 #endif 4279 #else 4280 typedef struct ID3D12CommandSignatureVtbl { 4281 BEGIN_INTERFACE 4282 4283 /*** IUnknown methods ***/ 4284 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4285 ID3D12CommandSignature *This, 4286 REFIID riid, 4287 void **ppvObject); 4288 4289 ULONG (STDMETHODCALLTYPE *AddRef)( 4290 ID3D12CommandSignature *This); 4291 4292 ULONG (STDMETHODCALLTYPE *Release)( 4293 ID3D12CommandSignature *This); 4294 4295 /*** ID3D12Object methods ***/ 4296 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 4297 ID3D12CommandSignature *This, 4298 REFGUID guid, 4299 UINT *data_size, 4300 void *data); 4301 4302 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 4303 ID3D12CommandSignature *This, 4304 REFGUID guid, 4305 UINT data_size, 4306 const void *data); 4307 4308 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 4309 ID3D12CommandSignature *This, 4310 REFGUID guid, 4311 const IUnknown *data); 4312 4313 HRESULT (STDMETHODCALLTYPE *SetName)( 4314 ID3D12CommandSignature *This, 4315 const WCHAR *name); 4316 4317 /*** ID3D12DeviceChild methods ***/ 4318 HRESULT (STDMETHODCALLTYPE *GetDevice)( 4319 ID3D12CommandSignature *This, 4320 REFIID riid, 4321 void **device); 4322 4323 END_INTERFACE 4324 } ID3D12CommandSignatureVtbl; 4325 4326 interface ID3D12CommandSignature { 4327 CONST_VTBL ID3D12CommandSignatureVtbl* lpVtbl; 4328 }; 4329 4330 #ifdef COBJMACROS 4331 #ifndef WIDL_C_INLINE_WRAPPERS 4332 /*** IUnknown methods ***/ 4333 #define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4334 #define ID3D12CommandSignature_AddRef(This) (This)->lpVtbl->AddRef(This) 4335 #define ID3D12CommandSignature_Release(This) (This)->lpVtbl->Release(This) 4336 /*** ID3D12Object methods ***/ 4337 #define ID3D12CommandSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 4338 #define ID3D12CommandSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 4339 #define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 4340 #define ID3D12CommandSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name) 4341 /*** ID3D12DeviceChild methods ***/ 4342 #define ID3D12CommandSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 4343 #else 4344 /*** IUnknown methods ***/ 4345 static inline HRESULT ID3D12CommandSignature_QueryInterface(ID3D12CommandSignature* This,REFIID riid,void **ppvObject) { 4346 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4347 } 4348 static inline ULONG ID3D12CommandSignature_AddRef(ID3D12CommandSignature* This) { 4349 return This->lpVtbl->AddRef(This); 4350 } 4351 static inline ULONG ID3D12CommandSignature_Release(ID3D12CommandSignature* This) { 4352 return This->lpVtbl->Release(This); 4353 } 4354 /*** ID3D12Object methods ***/ 4355 static inline HRESULT ID3D12CommandSignature_GetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT *data_size,void *data) { 4356 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 4357 } 4358 static inline HRESULT ID3D12CommandSignature_SetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT data_size,const void *data) { 4359 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 4360 } 4361 static inline HRESULT ID3D12CommandSignature_SetPrivateDataInterface(ID3D12CommandSignature* This,REFGUID guid,const IUnknown *data) { 4362 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 4363 } 4364 static inline HRESULT ID3D12CommandSignature_SetName(ID3D12CommandSignature* This,const WCHAR *name) { 4365 return This->lpVtbl->SetName(This,name); 4366 } 4367 /*** ID3D12DeviceChild methods ***/ 4368 static inline HRESULT ID3D12CommandSignature_GetDevice(ID3D12CommandSignature* This,REFIID riid,void **device) { 4369 return This->lpVtbl->GetDevice(This,riid,device); 4370 } 4371 #endif 4372 #endif 4373 4374 #endif 4375 4376 4377 #endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ 4378 4379 /***************************************************************************** 4380 * ID3D12GraphicsCommandList interface 4381 */ 4382 #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ 4383 #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ 4384 4385 DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55); 4386 #if defined(__cplusplus) && !defined(CINTERFACE) 4387 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") 4388 ID3D12GraphicsCommandList : public ID3D12CommandList 4389 { 4390 virtual HRESULT STDMETHODCALLTYPE Close( 4391 ) = 0; 4392 4393 virtual HRESULT STDMETHODCALLTYPE Reset( 4394 ID3D12CommandAllocator *allocator, 4395 ID3D12PipelineState *initial_state) = 0; 4396 4397 virtual void STDMETHODCALLTYPE ClearState( 4398 ID3D12PipelineState *pipeline_state) = 0; 4399 4400 virtual void STDMETHODCALLTYPE DrawInstanced( 4401 UINT vertex_count_per_instance, 4402 UINT instance_count, 4403 UINT start_vertex_location, 4404 UINT start_instance_location) = 0; 4405 4406 virtual void STDMETHODCALLTYPE DrawIndexedInstanced( 4407 UINT index_count_per_instance, 4408 UINT instance_count, 4409 UINT start_vertex_location, 4410 INT base_vertex_location, 4411 UINT start_instance_location) = 0; 4412 4413 virtual void STDMETHODCALLTYPE Dispatch( 4414 UINT x, 4415 UINT u, 4416 UINT z) = 0; 4417 4418 virtual void STDMETHODCALLTYPE CopyBufferRegion( 4419 ID3D12Resource *dst_buffer, 4420 UINT64 dst_offset, 4421 ID3D12Resource *src_buffer, 4422 UINT64 src_offset, 4423 UINT64 byte_count) = 0; 4424 4425 virtual void STDMETHODCALLTYPE CopyTextureRegion( 4426 const D3D12_TEXTURE_COPY_LOCATION *dst, 4427 UINT dst_x, 4428 UINT dst_y, 4429 UINT dst_z, 4430 const D3D12_TEXTURE_COPY_LOCATION *src, 4431 const D3D12_BOX *src_box) = 0; 4432 4433 virtual void STDMETHODCALLTYPE CopyResource( 4434 ID3D12Resource *dst_resource, 4435 ID3D12Resource *src_resource) = 0; 4436 4437 virtual void STDMETHODCALLTYPE CopyTiles( 4438 ID3D12Resource *tiled_resource, 4439 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 4440 const D3D12_TILE_REGION_SIZE *tile_region_size, 4441 ID3D12Resource *buffer, 4442 UINT64 buffer_offset, 4443 D3D12_TILE_COPY_FLAGS flags) = 0; 4444 4445 virtual void STDMETHODCALLTYPE ResolveSubresource( 4446 ID3D12Resource *dst_resource, 4447 UINT dst_sub_resource, 4448 ID3D12Resource *src_resource, 4449 UINT src_sub_resource, 4450 DXGI_FORMAT format) = 0; 4451 4452 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( 4453 D3D12_PRIMITIVE_TOPOLOGY primitive_topology) = 0; 4454 4455 virtual void STDMETHODCALLTYPE RSSetViewports( 4456 UINT viewport_count, 4457 const D3D12_VIEWPORT *viewports) = 0; 4458 4459 virtual void STDMETHODCALLTYPE RSSetScissorRects( 4460 UINT rect_count, 4461 const D3D12_RECT *rects) = 0; 4462 4463 virtual void STDMETHODCALLTYPE OMSetBlendFactor( 4464 const FLOAT blend_factor[4]) = 0; 4465 4466 virtual void STDMETHODCALLTYPE OMSetStencilRef( 4467 UINT stencil_ref) = 0; 4468 4469 virtual void STDMETHODCALLTYPE SetPipelineState( 4470 ID3D12PipelineState *pipeline_state) = 0; 4471 4472 virtual void STDMETHODCALLTYPE ResourceBarrier( 4473 UINT barrier_count, 4474 const D3D12_RESOURCE_BARRIER *barriers) = 0; 4475 4476 virtual void STDMETHODCALLTYPE ExecuteBundle( 4477 ID3D12GraphicsCommandList *command_list) = 0; 4478 4479 virtual void STDMETHODCALLTYPE SetDescriptorHeaps( 4480 UINT heap_count, 4481 ID3D12DescriptorHeap *const *heaps) = 0; 4482 4483 virtual void STDMETHODCALLTYPE SetComputeRootSignature( 4484 ID3D12RootSignature *root_signature) = 0; 4485 4486 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( 4487 ID3D12RootSignature *root_signature) = 0; 4488 4489 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( 4490 UINT root_parameter_index, 4491 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0; 4492 4493 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( 4494 UINT root_parameter_index, 4495 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0; 4496 4497 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( 4498 UINT root_parameter_index, 4499 UINT data, 4500 UINT dst_offset) = 0; 4501 4502 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( 4503 UINT root_parameter_index, 4504 UINT data, 4505 UINT dst_offset) = 0; 4506 4507 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( 4508 UINT root_parameter_index, 4509 UINT constant_count, 4510 const void *data, 4511 UINT dst_offset) = 0; 4512 4513 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( 4514 UINT root_parameter_index, 4515 UINT constant_count, 4516 const void *data, 4517 UINT dst_offset) = 0; 4518 4519 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( 4520 UINT root_parameter_index, 4521 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4522 4523 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( 4524 UINT root_parameter_index, 4525 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4526 4527 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( 4528 UINT root_parameter_index, 4529 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4530 4531 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( 4532 UINT root_parameter_index, 4533 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4534 4535 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( 4536 UINT root_parameter_index, 4537 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4538 4539 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( 4540 UINT root_parameter_index, 4541 D3D12_GPU_VIRTUAL_ADDRESS address) = 0; 4542 4543 virtual void STDMETHODCALLTYPE IASetIndexBuffer( 4544 const D3D12_INDEX_BUFFER_VIEW *view) = 0; 4545 4546 virtual void STDMETHODCALLTYPE IASetVertexBuffers( 4547 UINT start_slot, 4548 UINT view_count, 4549 const D3D12_VERTEX_BUFFER_VIEW *views) = 0; 4550 4551 virtual void STDMETHODCALLTYPE SOSetTargets( 4552 UINT start_slot, 4553 UINT view_count, 4554 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) = 0; 4555 4556 virtual void STDMETHODCALLTYPE OMSetRenderTargets( 4557 UINT render_target_descriptor_count, 4558 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 4559 WINBOOL single_descriptor_handle, 4560 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) = 0; 4561 4562 virtual void STDMETHODCALLTYPE ClearDepthStencilView( 4563 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 4564 D3D12_CLEAR_FLAGS flags, 4565 FLOAT depth, 4566 UINT8 stencil, 4567 UINT rect_count, 4568 const D3D12_RECT *rects) = 0; 4569 4570 virtual void STDMETHODCALLTYPE ClearRenderTargetView( 4571 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 4572 const FLOAT color[4], 4573 UINT rect_count, 4574 const D3D12_RECT *rects) = 0; 4575 4576 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( 4577 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 4578 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 4579 ID3D12Resource *resource, 4580 const UINT values[4], 4581 UINT rect_count, 4582 const D3D12_RECT *rects) = 0; 4583 4584 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( 4585 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 4586 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 4587 ID3D12Resource *resource, 4588 const float values[4], 4589 UINT rect_count, 4590 const D3D12_RECT *rects) = 0; 4591 4592 virtual void STDMETHODCALLTYPE DiscardResource( 4593 ID3D12Resource *resource, 4594 const D3D12_DISCARD_REGION *region) = 0; 4595 4596 virtual void STDMETHODCALLTYPE BeginQuery( 4597 ID3D12QueryHeap *heap, 4598 D3D12_QUERY_TYPE type, 4599 UINT index) = 0; 4600 4601 virtual void STDMETHODCALLTYPE EndQuery( 4602 ID3D12QueryHeap *heap, 4603 D3D12_QUERY_TYPE type, 4604 UINT index) = 0; 4605 4606 virtual void STDMETHODCALLTYPE ResolveQueryData( 4607 ID3D12QueryHeap *heap, 4608 D3D12_QUERY_TYPE type, 4609 UINT start_index, 4610 UINT query_count, 4611 ID3D12Resource *dst_buffer, 4612 UINT64 aligned_dst_buffer_offset) = 0; 4613 4614 virtual void STDMETHODCALLTYPE SetPredication( 4615 ID3D12Resource *buffer, 4616 UINT64 aligned_buffer_offset, 4617 D3D12_PREDICATION_OP operation) = 0; 4618 4619 virtual void STDMETHODCALLTYPE SetMarker( 4620 UINT metadata, 4621 const void *data, 4622 UINT size) = 0; 4623 4624 virtual void STDMETHODCALLTYPE BeginEvent( 4625 UINT metadata, 4626 const void *data, 4627 UINT size) = 0; 4628 4629 virtual void STDMETHODCALLTYPE EndEvent( 4630 ) = 0; 4631 4632 virtual void STDMETHODCALLTYPE ExecuteIndirect( 4633 ID3D12CommandSignature *command_signature, 4634 UINT max_command_count, 4635 ID3D12Resource *arg_buffer, 4636 UINT64 arg_buffer_offset, 4637 ID3D12Resource *count_buffer, 4638 UINT64 count_buffer_offset) = 0; 4639 4640 }; 4641 #ifdef __CRT_UUID_DECL 4642 __CRT_UUID_DECL(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55) 4643 #endif 4644 #else 4645 typedef struct ID3D12GraphicsCommandListVtbl { 4646 BEGIN_INTERFACE 4647 4648 /*** IUnknown methods ***/ 4649 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4650 ID3D12GraphicsCommandList *This, 4651 REFIID riid, 4652 void **ppvObject); 4653 4654 ULONG (STDMETHODCALLTYPE *AddRef)( 4655 ID3D12GraphicsCommandList *This); 4656 4657 ULONG (STDMETHODCALLTYPE *Release)( 4658 ID3D12GraphicsCommandList *This); 4659 4660 /*** ID3D12Object methods ***/ 4661 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 4662 ID3D12GraphicsCommandList *This, 4663 REFGUID guid, 4664 UINT *data_size, 4665 void *data); 4666 4667 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 4668 ID3D12GraphicsCommandList *This, 4669 REFGUID guid, 4670 UINT data_size, 4671 const void *data); 4672 4673 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 4674 ID3D12GraphicsCommandList *This, 4675 REFGUID guid, 4676 const IUnknown *data); 4677 4678 HRESULT (STDMETHODCALLTYPE *SetName)( 4679 ID3D12GraphicsCommandList *This, 4680 const WCHAR *name); 4681 4682 /*** ID3D12DeviceChild methods ***/ 4683 HRESULT (STDMETHODCALLTYPE *GetDevice)( 4684 ID3D12GraphicsCommandList *This, 4685 REFIID riid, 4686 void **device); 4687 4688 /*** ID3D12CommandList methods ***/ 4689 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 4690 ID3D12GraphicsCommandList *This); 4691 4692 /*** ID3D12GraphicsCommandList methods ***/ 4693 HRESULT (STDMETHODCALLTYPE *Close)( 4694 ID3D12GraphicsCommandList *This); 4695 4696 HRESULT (STDMETHODCALLTYPE *Reset)( 4697 ID3D12GraphicsCommandList *This, 4698 ID3D12CommandAllocator *allocator, 4699 ID3D12PipelineState *initial_state); 4700 4701 void (STDMETHODCALLTYPE *ClearState)( 4702 ID3D12GraphicsCommandList *This, 4703 ID3D12PipelineState *pipeline_state); 4704 4705 void (STDMETHODCALLTYPE *DrawInstanced)( 4706 ID3D12GraphicsCommandList *This, 4707 UINT vertex_count_per_instance, 4708 UINT instance_count, 4709 UINT start_vertex_location, 4710 UINT start_instance_location); 4711 4712 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 4713 ID3D12GraphicsCommandList *This, 4714 UINT index_count_per_instance, 4715 UINT instance_count, 4716 UINT start_vertex_location, 4717 INT base_vertex_location, 4718 UINT start_instance_location); 4719 4720 void (STDMETHODCALLTYPE *Dispatch)( 4721 ID3D12GraphicsCommandList *This, 4722 UINT x, 4723 UINT u, 4724 UINT z); 4725 4726 void (STDMETHODCALLTYPE *CopyBufferRegion)( 4727 ID3D12GraphicsCommandList *This, 4728 ID3D12Resource *dst_buffer, 4729 UINT64 dst_offset, 4730 ID3D12Resource *src_buffer, 4731 UINT64 src_offset, 4732 UINT64 byte_count); 4733 4734 void (STDMETHODCALLTYPE *CopyTextureRegion)( 4735 ID3D12GraphicsCommandList *This, 4736 const D3D12_TEXTURE_COPY_LOCATION *dst, 4737 UINT dst_x, 4738 UINT dst_y, 4739 UINT dst_z, 4740 const D3D12_TEXTURE_COPY_LOCATION *src, 4741 const D3D12_BOX *src_box); 4742 4743 void (STDMETHODCALLTYPE *CopyResource)( 4744 ID3D12GraphicsCommandList *This, 4745 ID3D12Resource *dst_resource, 4746 ID3D12Resource *src_resource); 4747 4748 void (STDMETHODCALLTYPE *CopyTiles)( 4749 ID3D12GraphicsCommandList *This, 4750 ID3D12Resource *tiled_resource, 4751 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 4752 const D3D12_TILE_REGION_SIZE *tile_region_size, 4753 ID3D12Resource *buffer, 4754 UINT64 buffer_offset, 4755 D3D12_TILE_COPY_FLAGS flags); 4756 4757 void (STDMETHODCALLTYPE *ResolveSubresource)( 4758 ID3D12GraphicsCommandList *This, 4759 ID3D12Resource *dst_resource, 4760 UINT dst_sub_resource, 4761 ID3D12Resource *src_resource, 4762 UINT src_sub_resource, 4763 DXGI_FORMAT format); 4764 4765 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 4766 ID3D12GraphicsCommandList *This, 4767 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 4768 4769 void (STDMETHODCALLTYPE *RSSetViewports)( 4770 ID3D12GraphicsCommandList *This, 4771 UINT viewport_count, 4772 const D3D12_VIEWPORT *viewports); 4773 4774 void (STDMETHODCALLTYPE *RSSetScissorRects)( 4775 ID3D12GraphicsCommandList *This, 4776 UINT rect_count, 4777 const D3D12_RECT *rects); 4778 4779 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 4780 ID3D12GraphicsCommandList *This, 4781 const FLOAT blend_factor[4]); 4782 4783 void (STDMETHODCALLTYPE *OMSetStencilRef)( 4784 ID3D12GraphicsCommandList *This, 4785 UINT stencil_ref); 4786 4787 void (STDMETHODCALLTYPE *SetPipelineState)( 4788 ID3D12GraphicsCommandList *This, 4789 ID3D12PipelineState *pipeline_state); 4790 4791 void (STDMETHODCALLTYPE *ResourceBarrier)( 4792 ID3D12GraphicsCommandList *This, 4793 UINT barrier_count, 4794 const D3D12_RESOURCE_BARRIER *barriers); 4795 4796 void (STDMETHODCALLTYPE *ExecuteBundle)( 4797 ID3D12GraphicsCommandList *This, 4798 ID3D12GraphicsCommandList *command_list); 4799 4800 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 4801 ID3D12GraphicsCommandList *This, 4802 UINT heap_count, 4803 ID3D12DescriptorHeap *const *heaps); 4804 4805 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 4806 ID3D12GraphicsCommandList *This, 4807 ID3D12RootSignature *root_signature); 4808 4809 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 4810 ID3D12GraphicsCommandList *This, 4811 ID3D12RootSignature *root_signature); 4812 4813 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 4814 ID3D12GraphicsCommandList *This, 4815 UINT root_parameter_index, 4816 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 4817 4818 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 4819 ID3D12GraphicsCommandList *This, 4820 UINT root_parameter_index, 4821 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 4822 4823 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 4824 ID3D12GraphicsCommandList *This, 4825 UINT root_parameter_index, 4826 UINT data, 4827 UINT dst_offset); 4828 4829 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 4830 ID3D12GraphicsCommandList *This, 4831 UINT root_parameter_index, 4832 UINT data, 4833 UINT dst_offset); 4834 4835 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 4836 ID3D12GraphicsCommandList *This, 4837 UINT root_parameter_index, 4838 UINT constant_count, 4839 const void *data, 4840 UINT dst_offset); 4841 4842 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 4843 ID3D12GraphicsCommandList *This, 4844 UINT root_parameter_index, 4845 UINT constant_count, 4846 const void *data, 4847 UINT dst_offset); 4848 4849 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 4850 ID3D12GraphicsCommandList *This, 4851 UINT root_parameter_index, 4852 D3D12_GPU_VIRTUAL_ADDRESS address); 4853 4854 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 4855 ID3D12GraphicsCommandList *This, 4856 UINT root_parameter_index, 4857 D3D12_GPU_VIRTUAL_ADDRESS address); 4858 4859 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 4860 ID3D12GraphicsCommandList *This, 4861 UINT root_parameter_index, 4862 D3D12_GPU_VIRTUAL_ADDRESS address); 4863 4864 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 4865 ID3D12GraphicsCommandList *This, 4866 UINT root_parameter_index, 4867 D3D12_GPU_VIRTUAL_ADDRESS address); 4868 4869 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 4870 ID3D12GraphicsCommandList *This, 4871 UINT root_parameter_index, 4872 D3D12_GPU_VIRTUAL_ADDRESS address); 4873 4874 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 4875 ID3D12GraphicsCommandList *This, 4876 UINT root_parameter_index, 4877 D3D12_GPU_VIRTUAL_ADDRESS address); 4878 4879 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 4880 ID3D12GraphicsCommandList *This, 4881 const D3D12_INDEX_BUFFER_VIEW *view); 4882 4883 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 4884 ID3D12GraphicsCommandList *This, 4885 UINT start_slot, 4886 UINT view_count, 4887 const D3D12_VERTEX_BUFFER_VIEW *views); 4888 4889 void (STDMETHODCALLTYPE *SOSetTargets)( 4890 ID3D12GraphicsCommandList *This, 4891 UINT start_slot, 4892 UINT view_count, 4893 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 4894 4895 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 4896 ID3D12GraphicsCommandList *This, 4897 UINT render_target_descriptor_count, 4898 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 4899 WINBOOL single_descriptor_handle, 4900 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 4901 4902 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 4903 ID3D12GraphicsCommandList *This, 4904 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 4905 D3D12_CLEAR_FLAGS flags, 4906 FLOAT depth, 4907 UINT8 stencil, 4908 UINT rect_count, 4909 const D3D12_RECT *rects); 4910 4911 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 4912 ID3D12GraphicsCommandList *This, 4913 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 4914 const FLOAT color[4], 4915 UINT rect_count, 4916 const D3D12_RECT *rects); 4917 4918 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 4919 ID3D12GraphicsCommandList *This, 4920 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 4921 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 4922 ID3D12Resource *resource, 4923 const UINT values[4], 4924 UINT rect_count, 4925 const D3D12_RECT *rects); 4926 4927 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 4928 ID3D12GraphicsCommandList *This, 4929 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 4930 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 4931 ID3D12Resource *resource, 4932 const float values[4], 4933 UINT rect_count, 4934 const D3D12_RECT *rects); 4935 4936 void (STDMETHODCALLTYPE *DiscardResource)( 4937 ID3D12GraphicsCommandList *This, 4938 ID3D12Resource *resource, 4939 const D3D12_DISCARD_REGION *region); 4940 4941 void (STDMETHODCALLTYPE *BeginQuery)( 4942 ID3D12GraphicsCommandList *This, 4943 ID3D12QueryHeap *heap, 4944 D3D12_QUERY_TYPE type, 4945 UINT index); 4946 4947 void (STDMETHODCALLTYPE *EndQuery)( 4948 ID3D12GraphicsCommandList *This, 4949 ID3D12QueryHeap *heap, 4950 D3D12_QUERY_TYPE type, 4951 UINT index); 4952 4953 void (STDMETHODCALLTYPE *ResolveQueryData)( 4954 ID3D12GraphicsCommandList *This, 4955 ID3D12QueryHeap *heap, 4956 D3D12_QUERY_TYPE type, 4957 UINT start_index, 4958 UINT query_count, 4959 ID3D12Resource *dst_buffer, 4960 UINT64 aligned_dst_buffer_offset); 4961 4962 void (STDMETHODCALLTYPE *SetPredication)( 4963 ID3D12GraphicsCommandList *This, 4964 ID3D12Resource *buffer, 4965 UINT64 aligned_buffer_offset, 4966 D3D12_PREDICATION_OP operation); 4967 4968 void (STDMETHODCALLTYPE *SetMarker)( 4969 ID3D12GraphicsCommandList *This, 4970 UINT metadata, 4971 const void *data, 4972 UINT size); 4973 4974 void (STDMETHODCALLTYPE *BeginEvent)( 4975 ID3D12GraphicsCommandList *This, 4976 UINT metadata, 4977 const void *data, 4978 UINT size); 4979 4980 void (STDMETHODCALLTYPE *EndEvent)( 4981 ID3D12GraphicsCommandList *This); 4982 4983 void (STDMETHODCALLTYPE *ExecuteIndirect)( 4984 ID3D12GraphicsCommandList *This, 4985 ID3D12CommandSignature *command_signature, 4986 UINT max_command_count, 4987 ID3D12Resource *arg_buffer, 4988 UINT64 arg_buffer_offset, 4989 ID3D12Resource *count_buffer, 4990 UINT64 count_buffer_offset); 4991 4992 END_INTERFACE 4993 } ID3D12GraphicsCommandListVtbl; 4994 4995 interface ID3D12GraphicsCommandList { 4996 CONST_VTBL ID3D12GraphicsCommandListVtbl* lpVtbl; 4997 }; 4998 4999 #ifdef COBJMACROS 5000 #ifndef WIDL_C_INLINE_WRAPPERS 5001 /*** IUnknown methods ***/ 5002 #define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5003 #define ID3D12GraphicsCommandList_AddRef(This) (This)->lpVtbl->AddRef(This) 5004 #define ID3D12GraphicsCommandList_Release(This) (This)->lpVtbl->Release(This) 5005 /*** ID3D12Object methods ***/ 5006 #define ID3D12GraphicsCommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 5007 #define ID3D12GraphicsCommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 5008 #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 5009 #define ID3D12GraphicsCommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name) 5010 /*** ID3D12DeviceChild methods ***/ 5011 #define ID3D12GraphicsCommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 5012 /*** ID3D12CommandList methods ***/ 5013 #define ID3D12GraphicsCommandList_GetType(This) (This)->lpVtbl->GetType(This) 5014 /*** ID3D12GraphicsCommandList methods ***/ 5015 #define ID3D12GraphicsCommandList_Close(This) (This)->lpVtbl->Close(This) 5016 #define ID3D12GraphicsCommandList_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 5017 #define ID3D12GraphicsCommandList_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 5018 #define ID3D12GraphicsCommandList_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 5019 #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 5020 #define ID3D12GraphicsCommandList_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 5021 #define ID3D12GraphicsCommandList_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 5022 #define ID3D12GraphicsCommandList_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 5023 #define ID3D12GraphicsCommandList_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 5024 #define ID3D12GraphicsCommandList_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 5025 #define ID3D12GraphicsCommandList_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 5026 #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 5027 #define ID3D12GraphicsCommandList_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 5028 #define ID3D12GraphicsCommandList_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 5029 #define ID3D12GraphicsCommandList_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 5030 #define ID3D12GraphicsCommandList_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 5031 #define ID3D12GraphicsCommandList_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 5032 #define ID3D12GraphicsCommandList_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 5033 #define ID3D12GraphicsCommandList_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 5034 #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 5035 #define ID3D12GraphicsCommandList_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 5036 #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 5037 #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 5038 #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 5039 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 5040 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 5041 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 5042 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 5043 #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 5044 #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 5045 #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 5046 #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 5047 #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 5048 #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 5049 #define ID3D12GraphicsCommandList_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 5050 #define ID3D12GraphicsCommandList_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 5051 #define ID3D12GraphicsCommandList_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 5052 #define ID3D12GraphicsCommandList_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 5053 #define ID3D12GraphicsCommandList_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 5054 #define ID3D12GraphicsCommandList_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 5055 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 5056 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 5057 #define ID3D12GraphicsCommandList_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 5058 #define ID3D12GraphicsCommandList_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 5059 #define ID3D12GraphicsCommandList_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 5060 #define ID3D12GraphicsCommandList_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 5061 #define ID3D12GraphicsCommandList_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 5062 #define ID3D12GraphicsCommandList_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 5063 #define ID3D12GraphicsCommandList_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 5064 #define ID3D12GraphicsCommandList_EndEvent(This) (This)->lpVtbl->EndEvent(This) 5065 #define ID3D12GraphicsCommandList_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 5066 #else 5067 /*** IUnknown methods ***/ 5068 static inline HRESULT ID3D12GraphicsCommandList_QueryInterface(ID3D12GraphicsCommandList* This,REFIID riid,void **ppvObject) { 5069 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5070 } 5071 static inline ULONG ID3D12GraphicsCommandList_AddRef(ID3D12GraphicsCommandList* This) { 5072 return This->lpVtbl->AddRef(This); 5073 } 5074 static inline ULONG ID3D12GraphicsCommandList_Release(ID3D12GraphicsCommandList* This) { 5075 return This->lpVtbl->Release(This); 5076 } 5077 /*** ID3D12Object methods ***/ 5078 static inline HRESULT ID3D12GraphicsCommandList_GetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT *data_size,void *data) { 5079 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 5080 } 5081 static inline HRESULT ID3D12GraphicsCommandList_SetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT data_size,const void *data) { 5082 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 5083 } 5084 static inline HRESULT ID3D12GraphicsCommandList_SetPrivateDataInterface(ID3D12GraphicsCommandList* This,REFGUID guid,const IUnknown *data) { 5085 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 5086 } 5087 static inline HRESULT ID3D12GraphicsCommandList_SetName(ID3D12GraphicsCommandList* This,const WCHAR *name) { 5088 return This->lpVtbl->SetName(This,name); 5089 } 5090 /*** ID3D12DeviceChild methods ***/ 5091 static inline HRESULT ID3D12GraphicsCommandList_GetDevice(ID3D12GraphicsCommandList* This,REFIID riid,void **device) { 5092 return This->lpVtbl->GetDevice(This,riid,device); 5093 } 5094 /*** ID3D12CommandList methods ***/ 5095 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList_GetType(ID3D12GraphicsCommandList* This) { 5096 return This->lpVtbl->GetType(This); 5097 } 5098 /*** ID3D12GraphicsCommandList methods ***/ 5099 static inline HRESULT ID3D12GraphicsCommandList_Close(ID3D12GraphicsCommandList* This) { 5100 return This->lpVtbl->Close(This); 5101 } 5102 static inline HRESULT ID3D12GraphicsCommandList_Reset(ID3D12GraphicsCommandList* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 5103 return This->lpVtbl->Reset(This,allocator,initial_state); 5104 } 5105 static inline void ID3D12GraphicsCommandList_ClearState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) { 5106 This->lpVtbl->ClearState(This,pipeline_state); 5107 } 5108 static inline void ID3D12GraphicsCommandList_DrawInstanced(ID3D12GraphicsCommandList* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 5109 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 5110 } 5111 static inline void ID3D12GraphicsCommandList_DrawIndexedInstanced(ID3D12GraphicsCommandList* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 5112 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 5113 } 5114 static inline void ID3D12GraphicsCommandList_Dispatch(ID3D12GraphicsCommandList* This,UINT x,UINT u,UINT z) { 5115 This->lpVtbl->Dispatch(This,x,u,z); 5116 } 5117 static inline void ID3D12GraphicsCommandList_CopyBufferRegion(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 5118 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 5119 } 5120 static inline void ID3D12GraphicsCommandList_CopyTextureRegion(ID3D12GraphicsCommandList* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 5121 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 5122 } 5123 static inline void ID3D12GraphicsCommandList_CopyResource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 5124 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 5125 } 5126 static inline void ID3D12GraphicsCommandList_CopyTiles(ID3D12GraphicsCommandList* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 5127 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 5128 } 5129 static inline void ID3D12GraphicsCommandList_ResolveSubresource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 5130 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 5131 } 5132 static inline void ID3D12GraphicsCommandList_IASetPrimitiveTopology(ID3D12GraphicsCommandList* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 5133 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 5134 } 5135 static inline void ID3D12GraphicsCommandList_RSSetViewports(ID3D12GraphicsCommandList* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 5136 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 5137 } 5138 static inline void ID3D12GraphicsCommandList_RSSetScissorRects(ID3D12GraphicsCommandList* This,UINT rect_count,const D3D12_RECT *rects) { 5139 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 5140 } 5141 static inline void ID3D12GraphicsCommandList_OMSetBlendFactor(ID3D12GraphicsCommandList* This,const FLOAT blend_factor[4]) { 5142 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 5143 } 5144 static inline void ID3D12GraphicsCommandList_OMSetStencilRef(ID3D12GraphicsCommandList* This,UINT stencil_ref) { 5145 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 5146 } 5147 static inline void ID3D12GraphicsCommandList_SetPipelineState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) { 5148 This->lpVtbl->SetPipelineState(This,pipeline_state); 5149 } 5150 static inline void ID3D12GraphicsCommandList_ResourceBarrier(ID3D12GraphicsCommandList* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 5151 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 5152 } 5153 static inline void ID3D12GraphicsCommandList_ExecuteBundle(ID3D12GraphicsCommandList* This,ID3D12GraphicsCommandList *command_list) { 5154 This->lpVtbl->ExecuteBundle(This,command_list); 5155 } 5156 static inline void ID3D12GraphicsCommandList_SetDescriptorHeaps(ID3D12GraphicsCommandList* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 5157 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 5158 } 5159 static inline void ID3D12GraphicsCommandList_SetComputeRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) { 5160 This->lpVtbl->SetComputeRootSignature(This,root_signature); 5161 } 5162 static inline void ID3D12GraphicsCommandList_SetGraphicsRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) { 5163 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 5164 } 5165 static inline void ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 5166 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 5167 } 5168 static inline void ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 5169 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 5170 } 5171 static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 5172 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 5173 } 5174 static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 5175 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 5176 } 5177 static inline void ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 5178 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 5179 } 5180 static inline void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 5181 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 5182 } 5183 static inline void ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5184 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 5185 } 5186 static inline void ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5187 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 5188 } 5189 static inline void ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5190 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 5191 } 5192 static inline void ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5193 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 5194 } 5195 static inline void ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5196 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 5197 } 5198 static inline void ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5199 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 5200 } 5201 static inline void ID3D12GraphicsCommandList_IASetIndexBuffer(ID3D12GraphicsCommandList* This,const D3D12_INDEX_BUFFER_VIEW *view) { 5202 This->lpVtbl->IASetIndexBuffer(This,view); 5203 } 5204 static inline void ID3D12GraphicsCommandList_IASetVertexBuffers(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 5205 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 5206 } 5207 static inline void ID3D12GraphicsCommandList_SOSetTargets(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 5208 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 5209 } 5210 static inline void ID3D12GraphicsCommandList_OMSetRenderTargets(ID3D12GraphicsCommandList* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 5211 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 5212 } 5213 static inline void ID3D12GraphicsCommandList_ClearDepthStencilView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 5214 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 5215 } 5216 static inline void ID3D12GraphicsCommandList_ClearRenderTargetView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 5217 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 5218 } 5219 static inline void ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 5220 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 5221 } 5222 static inline void ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 5223 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 5224 } 5225 static inline void ID3D12GraphicsCommandList_DiscardResource(ID3D12GraphicsCommandList* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 5226 This->lpVtbl->DiscardResource(This,resource,region); 5227 } 5228 static inline void ID3D12GraphicsCommandList_BeginQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 5229 This->lpVtbl->BeginQuery(This,heap,type,index); 5230 } 5231 static inline void ID3D12GraphicsCommandList_EndQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 5232 This->lpVtbl->EndQuery(This,heap,type,index); 5233 } 5234 static inline void ID3D12GraphicsCommandList_ResolveQueryData(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 5235 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 5236 } 5237 static inline void ID3D12GraphicsCommandList_SetPredication(ID3D12GraphicsCommandList* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 5238 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 5239 } 5240 static inline void ID3D12GraphicsCommandList_SetMarker(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) { 5241 This->lpVtbl->SetMarker(This,metadata,data,size); 5242 } 5243 static inline void ID3D12GraphicsCommandList_BeginEvent(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) { 5244 This->lpVtbl->BeginEvent(This,metadata,data,size); 5245 } 5246 static inline void ID3D12GraphicsCommandList_EndEvent(ID3D12GraphicsCommandList* This) { 5247 This->lpVtbl->EndEvent(This); 5248 } 5249 static inline void ID3D12GraphicsCommandList_ExecuteIndirect(ID3D12GraphicsCommandList* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 5250 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 5251 } 5252 #endif 5253 #endif 5254 5255 #endif 5256 5257 5258 #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ 5259 5260 /***************************************************************************** 5261 * ID3D12GraphicsCommandList1 interface 5262 */ 5263 #ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ 5264 #define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ 5265 5266 DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7); 5267 #if defined(__cplusplus) && !defined(CINTERFACE) 5268 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7") 5269 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList 5270 { 5271 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT( 5272 ID3D12Resource *dst_buffer, 5273 UINT64 dst_offset, 5274 ID3D12Resource *src_buffer, 5275 UINT64 src_offset, 5276 UINT dependent_resource_count, 5277 ID3D12Resource *const *dependent_resources, 5278 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0; 5279 5280 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64( 5281 ID3D12Resource *dst_buffer, 5282 UINT64 dst_offset, 5283 ID3D12Resource *src_buffer, 5284 UINT64 src_offset, 5285 UINT dependent_resource_count, 5286 ID3D12Resource *const *dependent_resources, 5287 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0; 5288 5289 virtual void STDMETHODCALLTYPE OMSetDepthBounds( 5290 FLOAT min, 5291 FLOAT max) = 0; 5292 5293 virtual void STDMETHODCALLTYPE SetSamplePositions( 5294 UINT sample_count, 5295 UINT pixel_count, 5296 D3D12_SAMPLE_POSITION *sample_positions) = 0; 5297 5298 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion( 5299 ID3D12Resource *dst_resource, 5300 UINT dst_sub_resource_idx, 5301 UINT dst_x, 5302 UINT dst_y, 5303 ID3D12Resource *src_resource, 5304 UINT src_sub_resource_idx, 5305 D3D12_RECT *src_rect, 5306 DXGI_FORMAT format, 5307 D3D12_RESOLVE_MODE mode) = 0; 5308 5309 virtual void STDMETHODCALLTYPE SetViewInstanceMask( 5310 UINT mask) = 0; 5311 5312 }; 5313 #ifdef __CRT_UUID_DECL 5314 __CRT_UUID_DECL(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7) 5315 #endif 5316 #else 5317 typedef struct ID3D12GraphicsCommandList1Vtbl { 5318 BEGIN_INTERFACE 5319 5320 /*** IUnknown methods ***/ 5321 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5322 ID3D12GraphicsCommandList1 *This, 5323 REFIID riid, 5324 void **ppvObject); 5325 5326 ULONG (STDMETHODCALLTYPE *AddRef)( 5327 ID3D12GraphicsCommandList1 *This); 5328 5329 ULONG (STDMETHODCALLTYPE *Release)( 5330 ID3D12GraphicsCommandList1 *This); 5331 5332 /*** ID3D12Object methods ***/ 5333 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 5334 ID3D12GraphicsCommandList1 *This, 5335 REFGUID guid, 5336 UINT *data_size, 5337 void *data); 5338 5339 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 5340 ID3D12GraphicsCommandList1 *This, 5341 REFGUID guid, 5342 UINT data_size, 5343 const void *data); 5344 5345 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 5346 ID3D12GraphicsCommandList1 *This, 5347 REFGUID guid, 5348 const IUnknown *data); 5349 5350 HRESULT (STDMETHODCALLTYPE *SetName)( 5351 ID3D12GraphicsCommandList1 *This, 5352 const WCHAR *name); 5353 5354 /*** ID3D12DeviceChild methods ***/ 5355 HRESULT (STDMETHODCALLTYPE *GetDevice)( 5356 ID3D12GraphicsCommandList1 *This, 5357 REFIID riid, 5358 void **device); 5359 5360 /*** ID3D12CommandList methods ***/ 5361 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 5362 ID3D12GraphicsCommandList1 *This); 5363 5364 /*** ID3D12GraphicsCommandList methods ***/ 5365 HRESULT (STDMETHODCALLTYPE *Close)( 5366 ID3D12GraphicsCommandList1 *This); 5367 5368 HRESULT (STDMETHODCALLTYPE *Reset)( 5369 ID3D12GraphicsCommandList1 *This, 5370 ID3D12CommandAllocator *allocator, 5371 ID3D12PipelineState *initial_state); 5372 5373 void (STDMETHODCALLTYPE *ClearState)( 5374 ID3D12GraphicsCommandList1 *This, 5375 ID3D12PipelineState *pipeline_state); 5376 5377 void (STDMETHODCALLTYPE *DrawInstanced)( 5378 ID3D12GraphicsCommandList1 *This, 5379 UINT vertex_count_per_instance, 5380 UINT instance_count, 5381 UINT start_vertex_location, 5382 UINT start_instance_location); 5383 5384 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 5385 ID3D12GraphicsCommandList1 *This, 5386 UINT index_count_per_instance, 5387 UINT instance_count, 5388 UINT start_vertex_location, 5389 INT base_vertex_location, 5390 UINT start_instance_location); 5391 5392 void (STDMETHODCALLTYPE *Dispatch)( 5393 ID3D12GraphicsCommandList1 *This, 5394 UINT x, 5395 UINT u, 5396 UINT z); 5397 5398 void (STDMETHODCALLTYPE *CopyBufferRegion)( 5399 ID3D12GraphicsCommandList1 *This, 5400 ID3D12Resource *dst_buffer, 5401 UINT64 dst_offset, 5402 ID3D12Resource *src_buffer, 5403 UINT64 src_offset, 5404 UINT64 byte_count); 5405 5406 void (STDMETHODCALLTYPE *CopyTextureRegion)( 5407 ID3D12GraphicsCommandList1 *This, 5408 const D3D12_TEXTURE_COPY_LOCATION *dst, 5409 UINT dst_x, 5410 UINT dst_y, 5411 UINT dst_z, 5412 const D3D12_TEXTURE_COPY_LOCATION *src, 5413 const D3D12_BOX *src_box); 5414 5415 void (STDMETHODCALLTYPE *CopyResource)( 5416 ID3D12GraphicsCommandList1 *This, 5417 ID3D12Resource *dst_resource, 5418 ID3D12Resource *src_resource); 5419 5420 void (STDMETHODCALLTYPE *CopyTiles)( 5421 ID3D12GraphicsCommandList1 *This, 5422 ID3D12Resource *tiled_resource, 5423 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 5424 const D3D12_TILE_REGION_SIZE *tile_region_size, 5425 ID3D12Resource *buffer, 5426 UINT64 buffer_offset, 5427 D3D12_TILE_COPY_FLAGS flags); 5428 5429 void (STDMETHODCALLTYPE *ResolveSubresource)( 5430 ID3D12GraphicsCommandList1 *This, 5431 ID3D12Resource *dst_resource, 5432 UINT dst_sub_resource, 5433 ID3D12Resource *src_resource, 5434 UINT src_sub_resource, 5435 DXGI_FORMAT format); 5436 5437 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 5438 ID3D12GraphicsCommandList1 *This, 5439 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 5440 5441 void (STDMETHODCALLTYPE *RSSetViewports)( 5442 ID3D12GraphicsCommandList1 *This, 5443 UINT viewport_count, 5444 const D3D12_VIEWPORT *viewports); 5445 5446 void (STDMETHODCALLTYPE *RSSetScissorRects)( 5447 ID3D12GraphicsCommandList1 *This, 5448 UINT rect_count, 5449 const D3D12_RECT *rects); 5450 5451 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 5452 ID3D12GraphicsCommandList1 *This, 5453 const FLOAT blend_factor[4]); 5454 5455 void (STDMETHODCALLTYPE *OMSetStencilRef)( 5456 ID3D12GraphicsCommandList1 *This, 5457 UINT stencil_ref); 5458 5459 void (STDMETHODCALLTYPE *SetPipelineState)( 5460 ID3D12GraphicsCommandList1 *This, 5461 ID3D12PipelineState *pipeline_state); 5462 5463 void (STDMETHODCALLTYPE *ResourceBarrier)( 5464 ID3D12GraphicsCommandList1 *This, 5465 UINT barrier_count, 5466 const D3D12_RESOURCE_BARRIER *barriers); 5467 5468 void (STDMETHODCALLTYPE *ExecuteBundle)( 5469 ID3D12GraphicsCommandList1 *This, 5470 ID3D12GraphicsCommandList *command_list); 5471 5472 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 5473 ID3D12GraphicsCommandList1 *This, 5474 UINT heap_count, 5475 ID3D12DescriptorHeap *const *heaps); 5476 5477 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 5478 ID3D12GraphicsCommandList1 *This, 5479 ID3D12RootSignature *root_signature); 5480 5481 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 5482 ID3D12GraphicsCommandList1 *This, 5483 ID3D12RootSignature *root_signature); 5484 5485 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 5486 ID3D12GraphicsCommandList1 *This, 5487 UINT root_parameter_index, 5488 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 5489 5490 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 5491 ID3D12GraphicsCommandList1 *This, 5492 UINT root_parameter_index, 5493 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 5494 5495 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 5496 ID3D12GraphicsCommandList1 *This, 5497 UINT root_parameter_index, 5498 UINT data, 5499 UINT dst_offset); 5500 5501 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 5502 ID3D12GraphicsCommandList1 *This, 5503 UINT root_parameter_index, 5504 UINT data, 5505 UINT dst_offset); 5506 5507 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 5508 ID3D12GraphicsCommandList1 *This, 5509 UINT root_parameter_index, 5510 UINT constant_count, 5511 const void *data, 5512 UINT dst_offset); 5513 5514 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 5515 ID3D12GraphicsCommandList1 *This, 5516 UINT root_parameter_index, 5517 UINT constant_count, 5518 const void *data, 5519 UINT dst_offset); 5520 5521 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 5522 ID3D12GraphicsCommandList1 *This, 5523 UINT root_parameter_index, 5524 D3D12_GPU_VIRTUAL_ADDRESS address); 5525 5526 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 5527 ID3D12GraphicsCommandList1 *This, 5528 UINT root_parameter_index, 5529 D3D12_GPU_VIRTUAL_ADDRESS address); 5530 5531 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 5532 ID3D12GraphicsCommandList1 *This, 5533 UINT root_parameter_index, 5534 D3D12_GPU_VIRTUAL_ADDRESS address); 5535 5536 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 5537 ID3D12GraphicsCommandList1 *This, 5538 UINT root_parameter_index, 5539 D3D12_GPU_VIRTUAL_ADDRESS address); 5540 5541 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 5542 ID3D12GraphicsCommandList1 *This, 5543 UINT root_parameter_index, 5544 D3D12_GPU_VIRTUAL_ADDRESS address); 5545 5546 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 5547 ID3D12GraphicsCommandList1 *This, 5548 UINT root_parameter_index, 5549 D3D12_GPU_VIRTUAL_ADDRESS address); 5550 5551 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 5552 ID3D12GraphicsCommandList1 *This, 5553 const D3D12_INDEX_BUFFER_VIEW *view); 5554 5555 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 5556 ID3D12GraphicsCommandList1 *This, 5557 UINT start_slot, 5558 UINT view_count, 5559 const D3D12_VERTEX_BUFFER_VIEW *views); 5560 5561 void (STDMETHODCALLTYPE *SOSetTargets)( 5562 ID3D12GraphicsCommandList1 *This, 5563 UINT start_slot, 5564 UINT view_count, 5565 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 5566 5567 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 5568 ID3D12GraphicsCommandList1 *This, 5569 UINT render_target_descriptor_count, 5570 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 5571 WINBOOL single_descriptor_handle, 5572 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 5573 5574 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 5575 ID3D12GraphicsCommandList1 *This, 5576 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 5577 D3D12_CLEAR_FLAGS flags, 5578 FLOAT depth, 5579 UINT8 stencil, 5580 UINT rect_count, 5581 const D3D12_RECT *rects); 5582 5583 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 5584 ID3D12GraphicsCommandList1 *This, 5585 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 5586 const FLOAT color[4], 5587 UINT rect_count, 5588 const D3D12_RECT *rects); 5589 5590 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 5591 ID3D12GraphicsCommandList1 *This, 5592 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 5593 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 5594 ID3D12Resource *resource, 5595 const UINT values[4], 5596 UINT rect_count, 5597 const D3D12_RECT *rects); 5598 5599 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 5600 ID3D12GraphicsCommandList1 *This, 5601 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 5602 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 5603 ID3D12Resource *resource, 5604 const float values[4], 5605 UINT rect_count, 5606 const D3D12_RECT *rects); 5607 5608 void (STDMETHODCALLTYPE *DiscardResource)( 5609 ID3D12GraphicsCommandList1 *This, 5610 ID3D12Resource *resource, 5611 const D3D12_DISCARD_REGION *region); 5612 5613 void (STDMETHODCALLTYPE *BeginQuery)( 5614 ID3D12GraphicsCommandList1 *This, 5615 ID3D12QueryHeap *heap, 5616 D3D12_QUERY_TYPE type, 5617 UINT index); 5618 5619 void (STDMETHODCALLTYPE *EndQuery)( 5620 ID3D12GraphicsCommandList1 *This, 5621 ID3D12QueryHeap *heap, 5622 D3D12_QUERY_TYPE type, 5623 UINT index); 5624 5625 void (STDMETHODCALLTYPE *ResolveQueryData)( 5626 ID3D12GraphicsCommandList1 *This, 5627 ID3D12QueryHeap *heap, 5628 D3D12_QUERY_TYPE type, 5629 UINT start_index, 5630 UINT query_count, 5631 ID3D12Resource *dst_buffer, 5632 UINT64 aligned_dst_buffer_offset); 5633 5634 void (STDMETHODCALLTYPE *SetPredication)( 5635 ID3D12GraphicsCommandList1 *This, 5636 ID3D12Resource *buffer, 5637 UINT64 aligned_buffer_offset, 5638 D3D12_PREDICATION_OP operation); 5639 5640 void (STDMETHODCALLTYPE *SetMarker)( 5641 ID3D12GraphicsCommandList1 *This, 5642 UINT metadata, 5643 const void *data, 5644 UINT size); 5645 5646 void (STDMETHODCALLTYPE *BeginEvent)( 5647 ID3D12GraphicsCommandList1 *This, 5648 UINT metadata, 5649 const void *data, 5650 UINT size); 5651 5652 void (STDMETHODCALLTYPE *EndEvent)( 5653 ID3D12GraphicsCommandList1 *This); 5654 5655 void (STDMETHODCALLTYPE *ExecuteIndirect)( 5656 ID3D12GraphicsCommandList1 *This, 5657 ID3D12CommandSignature *command_signature, 5658 UINT max_command_count, 5659 ID3D12Resource *arg_buffer, 5660 UINT64 arg_buffer_offset, 5661 ID3D12Resource *count_buffer, 5662 UINT64 count_buffer_offset); 5663 5664 /*** ID3D12GraphicsCommandList1 methods ***/ 5665 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 5666 ID3D12GraphicsCommandList1 *This, 5667 ID3D12Resource *dst_buffer, 5668 UINT64 dst_offset, 5669 ID3D12Resource *src_buffer, 5670 UINT64 src_offset, 5671 UINT dependent_resource_count, 5672 ID3D12Resource *const *dependent_resources, 5673 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 5674 5675 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 5676 ID3D12GraphicsCommandList1 *This, 5677 ID3D12Resource *dst_buffer, 5678 UINT64 dst_offset, 5679 ID3D12Resource *src_buffer, 5680 UINT64 src_offset, 5681 UINT dependent_resource_count, 5682 ID3D12Resource *const *dependent_resources, 5683 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 5684 5685 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 5686 ID3D12GraphicsCommandList1 *This, 5687 FLOAT min, 5688 FLOAT max); 5689 5690 void (STDMETHODCALLTYPE *SetSamplePositions)( 5691 ID3D12GraphicsCommandList1 *This, 5692 UINT sample_count, 5693 UINT pixel_count, 5694 D3D12_SAMPLE_POSITION *sample_positions); 5695 5696 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 5697 ID3D12GraphicsCommandList1 *This, 5698 ID3D12Resource *dst_resource, 5699 UINT dst_sub_resource_idx, 5700 UINT dst_x, 5701 UINT dst_y, 5702 ID3D12Resource *src_resource, 5703 UINT src_sub_resource_idx, 5704 D3D12_RECT *src_rect, 5705 DXGI_FORMAT format, 5706 D3D12_RESOLVE_MODE mode); 5707 5708 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 5709 ID3D12GraphicsCommandList1 *This, 5710 UINT mask); 5711 5712 END_INTERFACE 5713 } ID3D12GraphicsCommandList1Vtbl; 5714 5715 interface ID3D12GraphicsCommandList1 { 5716 CONST_VTBL ID3D12GraphicsCommandList1Vtbl* lpVtbl; 5717 }; 5718 5719 #ifdef COBJMACROS 5720 #ifndef WIDL_C_INLINE_WRAPPERS 5721 /*** IUnknown methods ***/ 5722 #define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5723 #define ID3D12GraphicsCommandList1_AddRef(This) (This)->lpVtbl->AddRef(This) 5724 #define ID3D12GraphicsCommandList1_Release(This) (This)->lpVtbl->Release(This) 5725 /*** ID3D12Object methods ***/ 5726 #define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 5727 #define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 5728 #define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 5729 #define ID3D12GraphicsCommandList1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 5730 /*** ID3D12DeviceChild methods ***/ 5731 #define ID3D12GraphicsCommandList1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 5732 /*** ID3D12CommandList methods ***/ 5733 #define ID3D12GraphicsCommandList1_GetType(This) (This)->lpVtbl->GetType(This) 5734 /*** ID3D12GraphicsCommandList methods ***/ 5735 #define ID3D12GraphicsCommandList1_Close(This) (This)->lpVtbl->Close(This) 5736 #define ID3D12GraphicsCommandList1_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 5737 #define ID3D12GraphicsCommandList1_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 5738 #define ID3D12GraphicsCommandList1_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 5739 #define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 5740 #define ID3D12GraphicsCommandList1_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 5741 #define ID3D12GraphicsCommandList1_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 5742 #define ID3D12GraphicsCommandList1_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 5743 #define ID3D12GraphicsCommandList1_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 5744 #define ID3D12GraphicsCommandList1_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 5745 #define ID3D12GraphicsCommandList1_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 5746 #define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 5747 #define ID3D12GraphicsCommandList1_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 5748 #define ID3D12GraphicsCommandList1_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 5749 #define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 5750 #define ID3D12GraphicsCommandList1_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 5751 #define ID3D12GraphicsCommandList1_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 5752 #define ID3D12GraphicsCommandList1_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 5753 #define ID3D12GraphicsCommandList1_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 5754 #define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 5755 #define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 5756 #define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 5757 #define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 5758 #define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 5759 #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 5760 #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 5761 #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 5762 #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 5763 #define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 5764 #define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 5765 #define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 5766 #define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 5767 #define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 5768 #define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 5769 #define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 5770 #define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 5771 #define ID3D12GraphicsCommandList1_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 5772 #define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 5773 #define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 5774 #define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 5775 #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 5776 #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 5777 #define ID3D12GraphicsCommandList1_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 5778 #define ID3D12GraphicsCommandList1_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 5779 #define ID3D12GraphicsCommandList1_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 5780 #define ID3D12GraphicsCommandList1_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 5781 #define ID3D12GraphicsCommandList1_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 5782 #define ID3D12GraphicsCommandList1_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 5783 #define ID3D12GraphicsCommandList1_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 5784 #define ID3D12GraphicsCommandList1_EndEvent(This) (This)->lpVtbl->EndEvent(This) 5785 #define ID3D12GraphicsCommandList1_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 5786 /*** ID3D12GraphicsCommandList1 methods ***/ 5787 #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 5788 #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 5789 #define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 5790 #define ID3D12GraphicsCommandList1_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 5791 #define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 5792 #define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 5793 #else 5794 /*** IUnknown methods ***/ 5795 static inline HRESULT ID3D12GraphicsCommandList1_QueryInterface(ID3D12GraphicsCommandList1* This,REFIID riid,void **ppvObject) { 5796 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5797 } 5798 static inline ULONG ID3D12GraphicsCommandList1_AddRef(ID3D12GraphicsCommandList1* This) { 5799 return This->lpVtbl->AddRef(This); 5800 } 5801 static inline ULONG ID3D12GraphicsCommandList1_Release(ID3D12GraphicsCommandList1* This) { 5802 return This->lpVtbl->Release(This); 5803 } 5804 /*** ID3D12Object methods ***/ 5805 static inline HRESULT ID3D12GraphicsCommandList1_GetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT *data_size,void *data) { 5806 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 5807 } 5808 static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT data_size,const void *data) { 5809 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 5810 } 5811 static inline HRESULT ID3D12GraphicsCommandList1_SetPrivateDataInterface(ID3D12GraphicsCommandList1* This,REFGUID guid,const IUnknown *data) { 5812 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 5813 } 5814 static inline HRESULT ID3D12GraphicsCommandList1_SetName(ID3D12GraphicsCommandList1* This,const WCHAR *name) { 5815 return This->lpVtbl->SetName(This,name); 5816 } 5817 /*** ID3D12DeviceChild methods ***/ 5818 static inline HRESULT ID3D12GraphicsCommandList1_GetDevice(ID3D12GraphicsCommandList1* This,REFIID riid,void **device) { 5819 return This->lpVtbl->GetDevice(This,riid,device); 5820 } 5821 /*** ID3D12CommandList methods ***/ 5822 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList1_GetType(ID3D12GraphicsCommandList1* This) { 5823 return This->lpVtbl->GetType(This); 5824 } 5825 /*** ID3D12GraphicsCommandList methods ***/ 5826 static inline HRESULT ID3D12GraphicsCommandList1_Close(ID3D12GraphicsCommandList1* This) { 5827 return This->lpVtbl->Close(This); 5828 } 5829 static inline HRESULT ID3D12GraphicsCommandList1_Reset(ID3D12GraphicsCommandList1* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 5830 return This->lpVtbl->Reset(This,allocator,initial_state); 5831 } 5832 static inline void ID3D12GraphicsCommandList1_ClearState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) { 5833 This->lpVtbl->ClearState(This,pipeline_state); 5834 } 5835 static inline void ID3D12GraphicsCommandList1_DrawInstanced(ID3D12GraphicsCommandList1* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 5836 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 5837 } 5838 static inline void ID3D12GraphicsCommandList1_DrawIndexedInstanced(ID3D12GraphicsCommandList1* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 5839 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 5840 } 5841 static inline void ID3D12GraphicsCommandList1_Dispatch(ID3D12GraphicsCommandList1* This,UINT x,UINT u,UINT z) { 5842 This->lpVtbl->Dispatch(This,x,u,z); 5843 } 5844 static inline void ID3D12GraphicsCommandList1_CopyBufferRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 5845 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 5846 } 5847 static inline void ID3D12GraphicsCommandList1_CopyTextureRegion(ID3D12GraphicsCommandList1* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 5848 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 5849 } 5850 static inline void ID3D12GraphicsCommandList1_CopyResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 5851 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 5852 } 5853 static inline void ID3D12GraphicsCommandList1_CopyTiles(ID3D12GraphicsCommandList1* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 5854 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 5855 } 5856 static inline void ID3D12GraphicsCommandList1_ResolveSubresource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 5857 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 5858 } 5859 static inline void ID3D12GraphicsCommandList1_IASetPrimitiveTopology(ID3D12GraphicsCommandList1* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 5860 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 5861 } 5862 static inline void ID3D12GraphicsCommandList1_RSSetViewports(ID3D12GraphicsCommandList1* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 5863 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 5864 } 5865 static inline void ID3D12GraphicsCommandList1_RSSetScissorRects(ID3D12GraphicsCommandList1* This,UINT rect_count,const D3D12_RECT *rects) { 5866 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 5867 } 5868 static inline void ID3D12GraphicsCommandList1_OMSetBlendFactor(ID3D12GraphicsCommandList1* This,const FLOAT blend_factor[4]) { 5869 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 5870 } 5871 static inline void ID3D12GraphicsCommandList1_OMSetStencilRef(ID3D12GraphicsCommandList1* This,UINT stencil_ref) { 5872 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 5873 } 5874 static inline void ID3D12GraphicsCommandList1_SetPipelineState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) { 5875 This->lpVtbl->SetPipelineState(This,pipeline_state); 5876 } 5877 static inline void ID3D12GraphicsCommandList1_ResourceBarrier(ID3D12GraphicsCommandList1* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 5878 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 5879 } 5880 static inline void ID3D12GraphicsCommandList1_ExecuteBundle(ID3D12GraphicsCommandList1* This,ID3D12GraphicsCommandList *command_list) { 5881 This->lpVtbl->ExecuteBundle(This,command_list); 5882 } 5883 static inline void ID3D12GraphicsCommandList1_SetDescriptorHeaps(ID3D12GraphicsCommandList1* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 5884 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 5885 } 5886 static inline void ID3D12GraphicsCommandList1_SetComputeRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) { 5887 This->lpVtbl->SetComputeRootSignature(This,root_signature); 5888 } 5889 static inline void ID3D12GraphicsCommandList1_SetGraphicsRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) { 5890 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 5891 } 5892 static inline void ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 5893 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 5894 } 5895 static inline void ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 5896 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 5897 } 5898 static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 5899 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 5900 } 5901 static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 5902 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 5903 } 5904 static inline void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 5905 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 5906 } 5907 static inline void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 5908 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 5909 } 5910 static inline void ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5911 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 5912 } 5913 static inline void ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5914 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 5915 } 5916 static inline void ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5917 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 5918 } 5919 static inline void ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5920 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 5921 } 5922 static inline void ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5923 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 5924 } 5925 static inline void ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 5926 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 5927 } 5928 static inline void ID3D12GraphicsCommandList1_IASetIndexBuffer(ID3D12GraphicsCommandList1* This,const D3D12_INDEX_BUFFER_VIEW *view) { 5929 This->lpVtbl->IASetIndexBuffer(This,view); 5930 } 5931 static inline void ID3D12GraphicsCommandList1_IASetVertexBuffers(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 5932 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 5933 } 5934 static inline void ID3D12GraphicsCommandList1_SOSetTargets(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 5935 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 5936 } 5937 static inline void ID3D12GraphicsCommandList1_OMSetRenderTargets(ID3D12GraphicsCommandList1* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 5938 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 5939 } 5940 static inline void ID3D12GraphicsCommandList1_ClearDepthStencilView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 5941 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 5942 } 5943 static inline void ID3D12GraphicsCommandList1_ClearRenderTargetView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 5944 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 5945 } 5946 static inline void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 5947 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 5948 } 5949 static inline void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 5950 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 5951 } 5952 static inline void ID3D12GraphicsCommandList1_DiscardResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 5953 This->lpVtbl->DiscardResource(This,resource,region); 5954 } 5955 static inline void ID3D12GraphicsCommandList1_BeginQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 5956 This->lpVtbl->BeginQuery(This,heap,type,index); 5957 } 5958 static inline void ID3D12GraphicsCommandList1_EndQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 5959 This->lpVtbl->EndQuery(This,heap,type,index); 5960 } 5961 static inline void ID3D12GraphicsCommandList1_ResolveQueryData(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 5962 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 5963 } 5964 static inline void ID3D12GraphicsCommandList1_SetPredication(ID3D12GraphicsCommandList1* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 5965 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 5966 } 5967 static inline void ID3D12GraphicsCommandList1_SetMarker(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) { 5968 This->lpVtbl->SetMarker(This,metadata,data,size); 5969 } 5970 static inline void ID3D12GraphicsCommandList1_BeginEvent(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) { 5971 This->lpVtbl->BeginEvent(This,metadata,data,size); 5972 } 5973 static inline void ID3D12GraphicsCommandList1_EndEvent(ID3D12GraphicsCommandList1* This) { 5974 This->lpVtbl->EndEvent(This); 5975 } 5976 static inline void ID3D12GraphicsCommandList1_ExecuteIndirect(ID3D12GraphicsCommandList1* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 5977 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 5978 } 5979 /*** ID3D12GraphicsCommandList1 methods ***/ 5980 static inline void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 5981 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 5982 } 5983 static inline void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 5984 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 5985 } 5986 static inline void ID3D12GraphicsCommandList1_OMSetDepthBounds(ID3D12GraphicsCommandList1* This,FLOAT min,FLOAT max) { 5987 This->lpVtbl->OMSetDepthBounds(This,min,max); 5988 } 5989 static inline void ID3D12GraphicsCommandList1_SetSamplePositions(ID3D12GraphicsCommandList1* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 5990 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 5991 } 5992 static inline void ID3D12GraphicsCommandList1_ResolveSubresourceRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 5993 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 5994 } 5995 static inline void ID3D12GraphicsCommandList1_SetViewInstanceMask(ID3D12GraphicsCommandList1* This,UINT mask) { 5996 This->lpVtbl->SetViewInstanceMask(This,mask); 5997 } 5998 #endif 5999 #endif 6000 6001 #endif 6002 6003 6004 #endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ 6005 6006 /***************************************************************************** 6007 * ID3D12GraphicsCommandList2 interface 6008 */ 6009 #ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ 6010 #define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ 6011 6012 DEFINE_GUID(IID_ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28); 6013 #if defined(__cplusplus) && !defined(CINTERFACE) 6014 MIDL_INTERFACE("38c3e585-ff17-412c-9150-4fc6f9d72a28") 6015 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1 6016 { 6017 virtual void STDMETHODCALLTYPE WriteBufferImmediate( 6018 UINT count, 6019 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 6020 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) = 0; 6021 6022 }; 6023 #ifdef __CRT_UUID_DECL 6024 __CRT_UUID_DECL(ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28) 6025 #endif 6026 #else 6027 typedef struct ID3D12GraphicsCommandList2Vtbl { 6028 BEGIN_INTERFACE 6029 6030 /*** IUnknown methods ***/ 6031 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6032 ID3D12GraphicsCommandList2 *This, 6033 REFIID riid, 6034 void **ppvObject); 6035 6036 ULONG (STDMETHODCALLTYPE *AddRef)( 6037 ID3D12GraphicsCommandList2 *This); 6038 6039 ULONG (STDMETHODCALLTYPE *Release)( 6040 ID3D12GraphicsCommandList2 *This); 6041 6042 /*** ID3D12Object methods ***/ 6043 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 6044 ID3D12GraphicsCommandList2 *This, 6045 REFGUID guid, 6046 UINT *data_size, 6047 void *data); 6048 6049 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 6050 ID3D12GraphicsCommandList2 *This, 6051 REFGUID guid, 6052 UINT data_size, 6053 const void *data); 6054 6055 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 6056 ID3D12GraphicsCommandList2 *This, 6057 REFGUID guid, 6058 const IUnknown *data); 6059 6060 HRESULT (STDMETHODCALLTYPE *SetName)( 6061 ID3D12GraphicsCommandList2 *This, 6062 const WCHAR *name); 6063 6064 /*** ID3D12DeviceChild methods ***/ 6065 HRESULT (STDMETHODCALLTYPE *GetDevice)( 6066 ID3D12GraphicsCommandList2 *This, 6067 REFIID riid, 6068 void **device); 6069 6070 /*** ID3D12CommandList methods ***/ 6071 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 6072 ID3D12GraphicsCommandList2 *This); 6073 6074 /*** ID3D12GraphicsCommandList methods ***/ 6075 HRESULT (STDMETHODCALLTYPE *Close)( 6076 ID3D12GraphicsCommandList2 *This); 6077 6078 HRESULT (STDMETHODCALLTYPE *Reset)( 6079 ID3D12GraphicsCommandList2 *This, 6080 ID3D12CommandAllocator *allocator, 6081 ID3D12PipelineState *initial_state); 6082 6083 void (STDMETHODCALLTYPE *ClearState)( 6084 ID3D12GraphicsCommandList2 *This, 6085 ID3D12PipelineState *pipeline_state); 6086 6087 void (STDMETHODCALLTYPE *DrawInstanced)( 6088 ID3D12GraphicsCommandList2 *This, 6089 UINT vertex_count_per_instance, 6090 UINT instance_count, 6091 UINT start_vertex_location, 6092 UINT start_instance_location); 6093 6094 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 6095 ID3D12GraphicsCommandList2 *This, 6096 UINT index_count_per_instance, 6097 UINT instance_count, 6098 UINT start_vertex_location, 6099 INT base_vertex_location, 6100 UINT start_instance_location); 6101 6102 void (STDMETHODCALLTYPE *Dispatch)( 6103 ID3D12GraphicsCommandList2 *This, 6104 UINT x, 6105 UINT u, 6106 UINT z); 6107 6108 void (STDMETHODCALLTYPE *CopyBufferRegion)( 6109 ID3D12GraphicsCommandList2 *This, 6110 ID3D12Resource *dst_buffer, 6111 UINT64 dst_offset, 6112 ID3D12Resource *src_buffer, 6113 UINT64 src_offset, 6114 UINT64 byte_count); 6115 6116 void (STDMETHODCALLTYPE *CopyTextureRegion)( 6117 ID3D12GraphicsCommandList2 *This, 6118 const D3D12_TEXTURE_COPY_LOCATION *dst, 6119 UINT dst_x, 6120 UINT dst_y, 6121 UINT dst_z, 6122 const D3D12_TEXTURE_COPY_LOCATION *src, 6123 const D3D12_BOX *src_box); 6124 6125 void (STDMETHODCALLTYPE *CopyResource)( 6126 ID3D12GraphicsCommandList2 *This, 6127 ID3D12Resource *dst_resource, 6128 ID3D12Resource *src_resource); 6129 6130 void (STDMETHODCALLTYPE *CopyTiles)( 6131 ID3D12GraphicsCommandList2 *This, 6132 ID3D12Resource *tiled_resource, 6133 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 6134 const D3D12_TILE_REGION_SIZE *tile_region_size, 6135 ID3D12Resource *buffer, 6136 UINT64 buffer_offset, 6137 D3D12_TILE_COPY_FLAGS flags); 6138 6139 void (STDMETHODCALLTYPE *ResolveSubresource)( 6140 ID3D12GraphicsCommandList2 *This, 6141 ID3D12Resource *dst_resource, 6142 UINT dst_sub_resource, 6143 ID3D12Resource *src_resource, 6144 UINT src_sub_resource, 6145 DXGI_FORMAT format); 6146 6147 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 6148 ID3D12GraphicsCommandList2 *This, 6149 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 6150 6151 void (STDMETHODCALLTYPE *RSSetViewports)( 6152 ID3D12GraphicsCommandList2 *This, 6153 UINT viewport_count, 6154 const D3D12_VIEWPORT *viewports); 6155 6156 void (STDMETHODCALLTYPE *RSSetScissorRects)( 6157 ID3D12GraphicsCommandList2 *This, 6158 UINT rect_count, 6159 const D3D12_RECT *rects); 6160 6161 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 6162 ID3D12GraphicsCommandList2 *This, 6163 const FLOAT blend_factor[4]); 6164 6165 void (STDMETHODCALLTYPE *OMSetStencilRef)( 6166 ID3D12GraphicsCommandList2 *This, 6167 UINT stencil_ref); 6168 6169 void (STDMETHODCALLTYPE *SetPipelineState)( 6170 ID3D12GraphicsCommandList2 *This, 6171 ID3D12PipelineState *pipeline_state); 6172 6173 void (STDMETHODCALLTYPE *ResourceBarrier)( 6174 ID3D12GraphicsCommandList2 *This, 6175 UINT barrier_count, 6176 const D3D12_RESOURCE_BARRIER *barriers); 6177 6178 void (STDMETHODCALLTYPE *ExecuteBundle)( 6179 ID3D12GraphicsCommandList2 *This, 6180 ID3D12GraphicsCommandList *command_list); 6181 6182 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 6183 ID3D12GraphicsCommandList2 *This, 6184 UINT heap_count, 6185 ID3D12DescriptorHeap *const *heaps); 6186 6187 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 6188 ID3D12GraphicsCommandList2 *This, 6189 ID3D12RootSignature *root_signature); 6190 6191 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 6192 ID3D12GraphicsCommandList2 *This, 6193 ID3D12RootSignature *root_signature); 6194 6195 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 6196 ID3D12GraphicsCommandList2 *This, 6197 UINT root_parameter_index, 6198 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 6199 6200 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 6201 ID3D12GraphicsCommandList2 *This, 6202 UINT root_parameter_index, 6203 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 6204 6205 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 6206 ID3D12GraphicsCommandList2 *This, 6207 UINT root_parameter_index, 6208 UINT data, 6209 UINT dst_offset); 6210 6211 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 6212 ID3D12GraphicsCommandList2 *This, 6213 UINT root_parameter_index, 6214 UINT data, 6215 UINT dst_offset); 6216 6217 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 6218 ID3D12GraphicsCommandList2 *This, 6219 UINT root_parameter_index, 6220 UINT constant_count, 6221 const void *data, 6222 UINT dst_offset); 6223 6224 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 6225 ID3D12GraphicsCommandList2 *This, 6226 UINT root_parameter_index, 6227 UINT constant_count, 6228 const void *data, 6229 UINT dst_offset); 6230 6231 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 6232 ID3D12GraphicsCommandList2 *This, 6233 UINT root_parameter_index, 6234 D3D12_GPU_VIRTUAL_ADDRESS address); 6235 6236 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 6237 ID3D12GraphicsCommandList2 *This, 6238 UINT root_parameter_index, 6239 D3D12_GPU_VIRTUAL_ADDRESS address); 6240 6241 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 6242 ID3D12GraphicsCommandList2 *This, 6243 UINT root_parameter_index, 6244 D3D12_GPU_VIRTUAL_ADDRESS address); 6245 6246 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 6247 ID3D12GraphicsCommandList2 *This, 6248 UINT root_parameter_index, 6249 D3D12_GPU_VIRTUAL_ADDRESS address); 6250 6251 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 6252 ID3D12GraphicsCommandList2 *This, 6253 UINT root_parameter_index, 6254 D3D12_GPU_VIRTUAL_ADDRESS address); 6255 6256 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 6257 ID3D12GraphicsCommandList2 *This, 6258 UINT root_parameter_index, 6259 D3D12_GPU_VIRTUAL_ADDRESS address); 6260 6261 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 6262 ID3D12GraphicsCommandList2 *This, 6263 const D3D12_INDEX_BUFFER_VIEW *view); 6264 6265 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 6266 ID3D12GraphicsCommandList2 *This, 6267 UINT start_slot, 6268 UINT view_count, 6269 const D3D12_VERTEX_BUFFER_VIEW *views); 6270 6271 void (STDMETHODCALLTYPE *SOSetTargets)( 6272 ID3D12GraphicsCommandList2 *This, 6273 UINT start_slot, 6274 UINT view_count, 6275 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 6276 6277 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 6278 ID3D12GraphicsCommandList2 *This, 6279 UINT render_target_descriptor_count, 6280 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 6281 WINBOOL single_descriptor_handle, 6282 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 6283 6284 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 6285 ID3D12GraphicsCommandList2 *This, 6286 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 6287 D3D12_CLEAR_FLAGS flags, 6288 FLOAT depth, 6289 UINT8 stencil, 6290 UINT rect_count, 6291 const D3D12_RECT *rects); 6292 6293 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 6294 ID3D12GraphicsCommandList2 *This, 6295 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 6296 const FLOAT color[4], 6297 UINT rect_count, 6298 const D3D12_RECT *rects); 6299 6300 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 6301 ID3D12GraphicsCommandList2 *This, 6302 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 6303 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 6304 ID3D12Resource *resource, 6305 const UINT values[4], 6306 UINT rect_count, 6307 const D3D12_RECT *rects); 6308 6309 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 6310 ID3D12GraphicsCommandList2 *This, 6311 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 6312 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 6313 ID3D12Resource *resource, 6314 const float values[4], 6315 UINT rect_count, 6316 const D3D12_RECT *rects); 6317 6318 void (STDMETHODCALLTYPE *DiscardResource)( 6319 ID3D12GraphicsCommandList2 *This, 6320 ID3D12Resource *resource, 6321 const D3D12_DISCARD_REGION *region); 6322 6323 void (STDMETHODCALLTYPE *BeginQuery)( 6324 ID3D12GraphicsCommandList2 *This, 6325 ID3D12QueryHeap *heap, 6326 D3D12_QUERY_TYPE type, 6327 UINT index); 6328 6329 void (STDMETHODCALLTYPE *EndQuery)( 6330 ID3D12GraphicsCommandList2 *This, 6331 ID3D12QueryHeap *heap, 6332 D3D12_QUERY_TYPE type, 6333 UINT index); 6334 6335 void (STDMETHODCALLTYPE *ResolveQueryData)( 6336 ID3D12GraphicsCommandList2 *This, 6337 ID3D12QueryHeap *heap, 6338 D3D12_QUERY_TYPE type, 6339 UINT start_index, 6340 UINT query_count, 6341 ID3D12Resource *dst_buffer, 6342 UINT64 aligned_dst_buffer_offset); 6343 6344 void (STDMETHODCALLTYPE *SetPredication)( 6345 ID3D12GraphicsCommandList2 *This, 6346 ID3D12Resource *buffer, 6347 UINT64 aligned_buffer_offset, 6348 D3D12_PREDICATION_OP operation); 6349 6350 void (STDMETHODCALLTYPE *SetMarker)( 6351 ID3D12GraphicsCommandList2 *This, 6352 UINT metadata, 6353 const void *data, 6354 UINT size); 6355 6356 void (STDMETHODCALLTYPE *BeginEvent)( 6357 ID3D12GraphicsCommandList2 *This, 6358 UINT metadata, 6359 const void *data, 6360 UINT size); 6361 6362 void (STDMETHODCALLTYPE *EndEvent)( 6363 ID3D12GraphicsCommandList2 *This); 6364 6365 void (STDMETHODCALLTYPE *ExecuteIndirect)( 6366 ID3D12GraphicsCommandList2 *This, 6367 ID3D12CommandSignature *command_signature, 6368 UINT max_command_count, 6369 ID3D12Resource *arg_buffer, 6370 UINT64 arg_buffer_offset, 6371 ID3D12Resource *count_buffer, 6372 UINT64 count_buffer_offset); 6373 6374 /*** ID3D12GraphicsCommandList1 methods ***/ 6375 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 6376 ID3D12GraphicsCommandList2 *This, 6377 ID3D12Resource *dst_buffer, 6378 UINT64 dst_offset, 6379 ID3D12Resource *src_buffer, 6380 UINT64 src_offset, 6381 UINT dependent_resource_count, 6382 ID3D12Resource *const *dependent_resources, 6383 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 6384 6385 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 6386 ID3D12GraphicsCommandList2 *This, 6387 ID3D12Resource *dst_buffer, 6388 UINT64 dst_offset, 6389 ID3D12Resource *src_buffer, 6390 UINT64 src_offset, 6391 UINT dependent_resource_count, 6392 ID3D12Resource *const *dependent_resources, 6393 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 6394 6395 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 6396 ID3D12GraphicsCommandList2 *This, 6397 FLOAT min, 6398 FLOAT max); 6399 6400 void (STDMETHODCALLTYPE *SetSamplePositions)( 6401 ID3D12GraphicsCommandList2 *This, 6402 UINT sample_count, 6403 UINT pixel_count, 6404 D3D12_SAMPLE_POSITION *sample_positions); 6405 6406 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 6407 ID3D12GraphicsCommandList2 *This, 6408 ID3D12Resource *dst_resource, 6409 UINT dst_sub_resource_idx, 6410 UINT dst_x, 6411 UINT dst_y, 6412 ID3D12Resource *src_resource, 6413 UINT src_sub_resource_idx, 6414 D3D12_RECT *src_rect, 6415 DXGI_FORMAT format, 6416 D3D12_RESOLVE_MODE mode); 6417 6418 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 6419 ID3D12GraphicsCommandList2 *This, 6420 UINT mask); 6421 6422 /*** ID3D12GraphicsCommandList2 methods ***/ 6423 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 6424 ID3D12GraphicsCommandList2 *This, 6425 UINT count, 6426 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 6427 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 6428 6429 END_INTERFACE 6430 } ID3D12GraphicsCommandList2Vtbl; 6431 6432 interface ID3D12GraphicsCommandList2 { 6433 CONST_VTBL ID3D12GraphicsCommandList2Vtbl* lpVtbl; 6434 }; 6435 6436 #ifdef COBJMACROS 6437 #ifndef WIDL_C_INLINE_WRAPPERS 6438 /*** IUnknown methods ***/ 6439 #define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6440 #define ID3D12GraphicsCommandList2_AddRef(This) (This)->lpVtbl->AddRef(This) 6441 #define ID3D12GraphicsCommandList2_Release(This) (This)->lpVtbl->Release(This) 6442 /*** ID3D12Object methods ***/ 6443 #define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 6444 #define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 6445 #define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 6446 #define ID3D12GraphicsCommandList2_SetName(This,name) (This)->lpVtbl->SetName(This,name) 6447 /*** ID3D12DeviceChild methods ***/ 6448 #define ID3D12GraphicsCommandList2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 6449 /*** ID3D12CommandList methods ***/ 6450 #define ID3D12GraphicsCommandList2_GetType(This) (This)->lpVtbl->GetType(This) 6451 /*** ID3D12GraphicsCommandList methods ***/ 6452 #define ID3D12GraphicsCommandList2_Close(This) (This)->lpVtbl->Close(This) 6453 #define ID3D12GraphicsCommandList2_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 6454 #define ID3D12GraphicsCommandList2_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 6455 #define ID3D12GraphicsCommandList2_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 6456 #define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 6457 #define ID3D12GraphicsCommandList2_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 6458 #define ID3D12GraphicsCommandList2_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 6459 #define ID3D12GraphicsCommandList2_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 6460 #define ID3D12GraphicsCommandList2_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 6461 #define ID3D12GraphicsCommandList2_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 6462 #define ID3D12GraphicsCommandList2_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 6463 #define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 6464 #define ID3D12GraphicsCommandList2_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 6465 #define ID3D12GraphicsCommandList2_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 6466 #define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 6467 #define ID3D12GraphicsCommandList2_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 6468 #define ID3D12GraphicsCommandList2_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 6469 #define ID3D12GraphicsCommandList2_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 6470 #define ID3D12GraphicsCommandList2_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 6471 #define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 6472 #define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 6473 #define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 6474 #define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 6475 #define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 6476 #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 6477 #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 6478 #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 6479 #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 6480 #define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 6481 #define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 6482 #define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 6483 #define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 6484 #define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 6485 #define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 6486 #define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 6487 #define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 6488 #define ID3D12GraphicsCommandList2_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 6489 #define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 6490 #define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 6491 #define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 6492 #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 6493 #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 6494 #define ID3D12GraphicsCommandList2_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 6495 #define ID3D12GraphicsCommandList2_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 6496 #define ID3D12GraphicsCommandList2_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 6497 #define ID3D12GraphicsCommandList2_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 6498 #define ID3D12GraphicsCommandList2_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 6499 #define ID3D12GraphicsCommandList2_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 6500 #define ID3D12GraphicsCommandList2_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 6501 #define ID3D12GraphicsCommandList2_EndEvent(This) (This)->lpVtbl->EndEvent(This) 6502 #define ID3D12GraphicsCommandList2_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 6503 /*** ID3D12GraphicsCommandList1 methods ***/ 6504 #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 6505 #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 6506 #define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 6507 #define ID3D12GraphicsCommandList2_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 6508 #define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 6509 #define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 6510 /*** ID3D12GraphicsCommandList2 methods ***/ 6511 #define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 6512 #else 6513 /*** IUnknown methods ***/ 6514 static inline HRESULT ID3D12GraphicsCommandList2_QueryInterface(ID3D12GraphicsCommandList2* This,REFIID riid,void **ppvObject) { 6515 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6516 } 6517 static inline ULONG ID3D12GraphicsCommandList2_AddRef(ID3D12GraphicsCommandList2* This) { 6518 return This->lpVtbl->AddRef(This); 6519 } 6520 static inline ULONG ID3D12GraphicsCommandList2_Release(ID3D12GraphicsCommandList2* This) { 6521 return This->lpVtbl->Release(This); 6522 } 6523 /*** ID3D12Object methods ***/ 6524 static inline HRESULT ID3D12GraphicsCommandList2_GetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT *data_size,void *data) { 6525 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 6526 } 6527 static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT data_size,const void *data) { 6528 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 6529 } 6530 static inline HRESULT ID3D12GraphicsCommandList2_SetPrivateDataInterface(ID3D12GraphicsCommandList2* This,REFGUID guid,const IUnknown *data) { 6531 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 6532 } 6533 static inline HRESULT ID3D12GraphicsCommandList2_SetName(ID3D12GraphicsCommandList2* This,const WCHAR *name) { 6534 return This->lpVtbl->SetName(This,name); 6535 } 6536 /*** ID3D12DeviceChild methods ***/ 6537 static inline HRESULT ID3D12GraphicsCommandList2_GetDevice(ID3D12GraphicsCommandList2* This,REFIID riid,void **device) { 6538 return This->lpVtbl->GetDevice(This,riid,device); 6539 } 6540 /*** ID3D12CommandList methods ***/ 6541 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList2_GetType(ID3D12GraphicsCommandList2* This) { 6542 return This->lpVtbl->GetType(This); 6543 } 6544 /*** ID3D12GraphicsCommandList methods ***/ 6545 static inline HRESULT ID3D12GraphicsCommandList2_Close(ID3D12GraphicsCommandList2* This) { 6546 return This->lpVtbl->Close(This); 6547 } 6548 static inline HRESULT ID3D12GraphicsCommandList2_Reset(ID3D12GraphicsCommandList2* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 6549 return This->lpVtbl->Reset(This,allocator,initial_state); 6550 } 6551 static inline void ID3D12GraphicsCommandList2_ClearState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) { 6552 This->lpVtbl->ClearState(This,pipeline_state); 6553 } 6554 static inline void ID3D12GraphicsCommandList2_DrawInstanced(ID3D12GraphicsCommandList2* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 6555 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 6556 } 6557 static inline void ID3D12GraphicsCommandList2_DrawIndexedInstanced(ID3D12GraphicsCommandList2* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 6558 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 6559 } 6560 static inline void ID3D12GraphicsCommandList2_Dispatch(ID3D12GraphicsCommandList2* This,UINT x,UINT u,UINT z) { 6561 This->lpVtbl->Dispatch(This,x,u,z); 6562 } 6563 static inline void ID3D12GraphicsCommandList2_CopyBufferRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 6564 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 6565 } 6566 static inline void ID3D12GraphicsCommandList2_CopyTextureRegion(ID3D12GraphicsCommandList2* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 6567 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 6568 } 6569 static inline void ID3D12GraphicsCommandList2_CopyResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 6570 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 6571 } 6572 static inline void ID3D12GraphicsCommandList2_CopyTiles(ID3D12GraphicsCommandList2* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 6573 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 6574 } 6575 static inline void ID3D12GraphicsCommandList2_ResolveSubresource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 6576 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 6577 } 6578 static inline void ID3D12GraphicsCommandList2_IASetPrimitiveTopology(ID3D12GraphicsCommandList2* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 6579 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 6580 } 6581 static inline void ID3D12GraphicsCommandList2_RSSetViewports(ID3D12GraphicsCommandList2* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 6582 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 6583 } 6584 static inline void ID3D12GraphicsCommandList2_RSSetScissorRects(ID3D12GraphicsCommandList2* This,UINT rect_count,const D3D12_RECT *rects) { 6585 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 6586 } 6587 static inline void ID3D12GraphicsCommandList2_OMSetBlendFactor(ID3D12GraphicsCommandList2* This,const FLOAT blend_factor[4]) { 6588 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 6589 } 6590 static inline void ID3D12GraphicsCommandList2_OMSetStencilRef(ID3D12GraphicsCommandList2* This,UINT stencil_ref) { 6591 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 6592 } 6593 static inline void ID3D12GraphicsCommandList2_SetPipelineState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) { 6594 This->lpVtbl->SetPipelineState(This,pipeline_state); 6595 } 6596 static inline void ID3D12GraphicsCommandList2_ResourceBarrier(ID3D12GraphicsCommandList2* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 6597 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 6598 } 6599 static inline void ID3D12GraphicsCommandList2_ExecuteBundle(ID3D12GraphicsCommandList2* This,ID3D12GraphicsCommandList *command_list) { 6600 This->lpVtbl->ExecuteBundle(This,command_list); 6601 } 6602 static inline void ID3D12GraphicsCommandList2_SetDescriptorHeaps(ID3D12GraphicsCommandList2* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 6603 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 6604 } 6605 static inline void ID3D12GraphicsCommandList2_SetComputeRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) { 6606 This->lpVtbl->SetComputeRootSignature(This,root_signature); 6607 } 6608 static inline void ID3D12GraphicsCommandList2_SetGraphicsRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) { 6609 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 6610 } 6611 static inline void ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 6612 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 6613 } 6614 static inline void ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 6615 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 6616 } 6617 static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 6618 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 6619 } 6620 static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 6621 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 6622 } 6623 static inline void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 6624 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 6625 } 6626 static inline void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 6627 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 6628 } 6629 static inline void ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6630 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 6631 } 6632 static inline void ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6633 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 6634 } 6635 static inline void ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6636 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 6637 } 6638 static inline void ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6639 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 6640 } 6641 static inline void ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6642 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 6643 } 6644 static inline void ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 6645 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 6646 } 6647 static inline void ID3D12GraphicsCommandList2_IASetIndexBuffer(ID3D12GraphicsCommandList2* This,const D3D12_INDEX_BUFFER_VIEW *view) { 6648 This->lpVtbl->IASetIndexBuffer(This,view); 6649 } 6650 static inline void ID3D12GraphicsCommandList2_IASetVertexBuffers(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 6651 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 6652 } 6653 static inline void ID3D12GraphicsCommandList2_SOSetTargets(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 6654 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 6655 } 6656 static inline void ID3D12GraphicsCommandList2_OMSetRenderTargets(ID3D12GraphicsCommandList2* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 6657 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 6658 } 6659 static inline void ID3D12GraphicsCommandList2_ClearDepthStencilView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 6660 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 6661 } 6662 static inline void ID3D12GraphicsCommandList2_ClearRenderTargetView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 6663 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 6664 } 6665 static inline void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 6666 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 6667 } 6668 static inline void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 6669 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 6670 } 6671 static inline void ID3D12GraphicsCommandList2_DiscardResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 6672 This->lpVtbl->DiscardResource(This,resource,region); 6673 } 6674 static inline void ID3D12GraphicsCommandList2_BeginQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 6675 This->lpVtbl->BeginQuery(This,heap,type,index); 6676 } 6677 static inline void ID3D12GraphicsCommandList2_EndQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 6678 This->lpVtbl->EndQuery(This,heap,type,index); 6679 } 6680 static inline void ID3D12GraphicsCommandList2_ResolveQueryData(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 6681 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 6682 } 6683 static inline void ID3D12GraphicsCommandList2_SetPredication(ID3D12GraphicsCommandList2* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 6684 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 6685 } 6686 static inline void ID3D12GraphicsCommandList2_SetMarker(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) { 6687 This->lpVtbl->SetMarker(This,metadata,data,size); 6688 } 6689 static inline void ID3D12GraphicsCommandList2_BeginEvent(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) { 6690 This->lpVtbl->BeginEvent(This,metadata,data,size); 6691 } 6692 static inline void ID3D12GraphicsCommandList2_EndEvent(ID3D12GraphicsCommandList2* This) { 6693 This->lpVtbl->EndEvent(This); 6694 } 6695 static inline void ID3D12GraphicsCommandList2_ExecuteIndirect(ID3D12GraphicsCommandList2* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 6696 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 6697 } 6698 /*** ID3D12GraphicsCommandList1 methods ***/ 6699 static inline void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 6700 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 6701 } 6702 static inline void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 6703 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 6704 } 6705 static inline void ID3D12GraphicsCommandList2_OMSetDepthBounds(ID3D12GraphicsCommandList2* This,FLOAT min,FLOAT max) { 6706 This->lpVtbl->OMSetDepthBounds(This,min,max); 6707 } 6708 static inline void ID3D12GraphicsCommandList2_SetSamplePositions(ID3D12GraphicsCommandList2* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 6709 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 6710 } 6711 static inline void ID3D12GraphicsCommandList2_ResolveSubresourceRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 6712 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 6713 } 6714 static inline void ID3D12GraphicsCommandList2_SetViewInstanceMask(ID3D12GraphicsCommandList2* This,UINT mask) { 6715 This->lpVtbl->SetViewInstanceMask(This,mask); 6716 } 6717 /*** ID3D12GraphicsCommandList2 methods ***/ 6718 static inline void ID3D12GraphicsCommandList2_WriteBufferImmediate(ID3D12GraphicsCommandList2* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 6719 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 6720 } 6721 #endif 6722 #endif 6723 6724 #endif 6725 6726 6727 #endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */ 6728 6729 /***************************************************************************** 6730 * ID3D12ProtectedSession interface 6731 */ 6732 #ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ 6733 #define __ID3D12ProtectedSession_INTERFACE_DEFINED__ 6734 6735 DEFINE_GUID(IID_ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b); 6736 #if defined(__cplusplus) && !defined(CINTERFACE) 6737 MIDL_INTERFACE("a1533d18-0ac1-4084-85b9-89a96116806b") 6738 ID3D12ProtectedSession : public ID3D12DeviceChild 6739 { 6740 virtual HRESULT STDMETHODCALLTYPE GetStatusFence( 6741 REFIID riid, 6742 void **fence) = 0; 6743 6744 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( 6745 ) = 0; 6746 6747 }; 6748 #ifdef __CRT_UUID_DECL 6749 __CRT_UUID_DECL(ID3D12ProtectedSession, 0xa1533d18, 0x0ac1, 0x4084, 0x85,0xb9, 0x89,0xa9,0x61,0x16,0x80,0x6b) 6750 #endif 6751 #else 6752 typedef struct ID3D12ProtectedSessionVtbl { 6753 BEGIN_INTERFACE 6754 6755 /*** IUnknown methods ***/ 6756 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6757 ID3D12ProtectedSession *This, 6758 REFIID riid, 6759 void **ppvObject); 6760 6761 ULONG (STDMETHODCALLTYPE *AddRef)( 6762 ID3D12ProtectedSession *This); 6763 6764 ULONG (STDMETHODCALLTYPE *Release)( 6765 ID3D12ProtectedSession *This); 6766 6767 /*** ID3D12Object methods ***/ 6768 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 6769 ID3D12ProtectedSession *This, 6770 REFGUID guid, 6771 UINT *data_size, 6772 void *data); 6773 6774 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 6775 ID3D12ProtectedSession *This, 6776 REFGUID guid, 6777 UINT data_size, 6778 const void *data); 6779 6780 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 6781 ID3D12ProtectedSession *This, 6782 REFGUID guid, 6783 const IUnknown *data); 6784 6785 HRESULT (STDMETHODCALLTYPE *SetName)( 6786 ID3D12ProtectedSession *This, 6787 const WCHAR *name); 6788 6789 /*** ID3D12DeviceChild methods ***/ 6790 HRESULT (STDMETHODCALLTYPE *GetDevice)( 6791 ID3D12ProtectedSession *This, 6792 REFIID riid, 6793 void **device); 6794 6795 /*** ID3D12ProtectedSession methods ***/ 6796 HRESULT (STDMETHODCALLTYPE *GetStatusFence)( 6797 ID3D12ProtectedSession *This, 6798 REFIID riid, 6799 void **fence); 6800 6801 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)( 6802 ID3D12ProtectedSession *This); 6803 6804 END_INTERFACE 6805 } ID3D12ProtectedSessionVtbl; 6806 6807 interface ID3D12ProtectedSession { 6808 CONST_VTBL ID3D12ProtectedSessionVtbl* lpVtbl; 6809 }; 6810 6811 #ifdef COBJMACROS 6812 #ifndef WIDL_C_INLINE_WRAPPERS 6813 /*** IUnknown methods ***/ 6814 #define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6815 #define ID3D12ProtectedSession_AddRef(This) (This)->lpVtbl->AddRef(This) 6816 #define ID3D12ProtectedSession_Release(This) (This)->lpVtbl->Release(This) 6817 /*** ID3D12Object methods ***/ 6818 #define ID3D12ProtectedSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 6819 #define ID3D12ProtectedSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 6820 #define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 6821 #define ID3D12ProtectedSession_SetName(This,name) (This)->lpVtbl->SetName(This,name) 6822 /*** ID3D12DeviceChild methods ***/ 6823 #define ID3D12ProtectedSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 6824 /*** ID3D12ProtectedSession methods ***/ 6825 #define ID3D12ProtectedSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence) 6826 #define ID3D12ProtectedSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This) 6827 #else 6828 /*** IUnknown methods ***/ 6829 static inline HRESULT ID3D12ProtectedSession_QueryInterface(ID3D12ProtectedSession* This,REFIID riid,void **ppvObject) { 6830 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6831 } 6832 static inline ULONG ID3D12ProtectedSession_AddRef(ID3D12ProtectedSession* This) { 6833 return This->lpVtbl->AddRef(This); 6834 } 6835 static inline ULONG ID3D12ProtectedSession_Release(ID3D12ProtectedSession* This) { 6836 return This->lpVtbl->Release(This); 6837 } 6838 /*** ID3D12Object methods ***/ 6839 static inline HRESULT ID3D12ProtectedSession_GetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT *data_size,void *data) { 6840 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 6841 } 6842 static inline HRESULT ID3D12ProtectedSession_SetPrivateData(ID3D12ProtectedSession* This,REFGUID guid,UINT data_size,const void *data) { 6843 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 6844 } 6845 static inline HRESULT ID3D12ProtectedSession_SetPrivateDataInterface(ID3D12ProtectedSession* This,REFGUID guid,const IUnknown *data) { 6846 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 6847 } 6848 static inline HRESULT ID3D12ProtectedSession_SetName(ID3D12ProtectedSession* This,const WCHAR *name) { 6849 return This->lpVtbl->SetName(This,name); 6850 } 6851 /*** ID3D12DeviceChild methods ***/ 6852 static inline HRESULT ID3D12ProtectedSession_GetDevice(ID3D12ProtectedSession* This,REFIID riid,void **device) { 6853 return This->lpVtbl->GetDevice(This,riid,device); 6854 } 6855 /*** ID3D12ProtectedSession methods ***/ 6856 static inline HRESULT ID3D12ProtectedSession_GetStatusFence(ID3D12ProtectedSession* This,REFIID riid,void **fence) { 6857 return This->lpVtbl->GetStatusFence(This,riid,fence); 6858 } 6859 static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedSession_GetSessionStatus(ID3D12ProtectedSession* This) { 6860 return This->lpVtbl->GetSessionStatus(This); 6861 } 6862 #endif 6863 #endif 6864 6865 #endif 6866 6867 6868 #endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ 6869 6870 typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS { 6871 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0, 6872 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1 6873 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; 6874 DEFINE_ENUM_FLAG_OPERATORS(D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS); 6875 typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT { 6876 UINT NodeIndex; 6877 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; 6878 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; 6879 /***************************************************************************** 6880 * ID3D12ProtectedResourceSession interface 6881 */ 6882 #ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ 6883 #define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ 6884 6885 DEFINE_GUID(IID_ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d); 6886 #if defined(__cplusplus) && !defined(CINTERFACE) 6887 MIDL_INTERFACE("6cd696f4-f289-40cc-8091-5a6c0a099c3d") 6888 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession 6889 { 6890 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 6891 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC* STDMETHODCALLTYPE GetDesc( 6892 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret) = 0; 6893 D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( 6894 ) 6895 { 6896 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret; 6897 return *GetDesc(&__ret); 6898 } 6899 #else 6900 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( 6901 ) = 0; 6902 #endif 6903 6904 }; 6905 #ifdef __CRT_UUID_DECL 6906 __CRT_UUID_DECL(ID3D12ProtectedResourceSession, 0x6cd696f4, 0xf289, 0x40cc, 0x80,0x91, 0x5a,0x6c,0x0a,0x09,0x9c,0x3d) 6907 #endif 6908 #else 6909 typedef struct ID3D12ProtectedResourceSessionVtbl { 6910 BEGIN_INTERFACE 6911 6912 /*** IUnknown methods ***/ 6913 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6914 ID3D12ProtectedResourceSession *This, 6915 REFIID riid, 6916 void **ppvObject); 6917 6918 ULONG (STDMETHODCALLTYPE *AddRef)( 6919 ID3D12ProtectedResourceSession *This); 6920 6921 ULONG (STDMETHODCALLTYPE *Release)( 6922 ID3D12ProtectedResourceSession *This); 6923 6924 /*** ID3D12Object methods ***/ 6925 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 6926 ID3D12ProtectedResourceSession *This, 6927 REFGUID guid, 6928 UINT *data_size, 6929 void *data); 6930 6931 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 6932 ID3D12ProtectedResourceSession *This, 6933 REFGUID guid, 6934 UINT data_size, 6935 const void *data); 6936 6937 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 6938 ID3D12ProtectedResourceSession *This, 6939 REFGUID guid, 6940 const IUnknown *data); 6941 6942 HRESULT (STDMETHODCALLTYPE *SetName)( 6943 ID3D12ProtectedResourceSession *This, 6944 const WCHAR *name); 6945 6946 /*** ID3D12DeviceChild methods ***/ 6947 HRESULT (STDMETHODCALLTYPE *GetDevice)( 6948 ID3D12ProtectedResourceSession *This, 6949 REFIID riid, 6950 void **device); 6951 6952 /*** ID3D12ProtectedSession methods ***/ 6953 HRESULT (STDMETHODCALLTYPE *GetStatusFence)( 6954 ID3D12ProtectedResourceSession *This, 6955 REFIID riid, 6956 void **fence); 6957 6958 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)( 6959 ID3D12ProtectedResourceSession *This); 6960 6961 /*** ID3D12ProtectedResourceSession methods ***/ 6962 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)( 6963 ID3D12ProtectedResourceSession *This, 6964 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret); 6965 6966 END_INTERFACE 6967 } ID3D12ProtectedResourceSessionVtbl; 6968 6969 interface ID3D12ProtectedResourceSession { 6970 CONST_VTBL ID3D12ProtectedResourceSessionVtbl* lpVtbl; 6971 }; 6972 6973 #ifdef COBJMACROS 6974 #ifndef WIDL_C_INLINE_WRAPPERS 6975 /*** IUnknown methods ***/ 6976 #define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6977 #define ID3D12ProtectedResourceSession_AddRef(This) (This)->lpVtbl->AddRef(This) 6978 #define ID3D12ProtectedResourceSession_Release(This) (This)->lpVtbl->Release(This) 6979 /*** ID3D12Object methods ***/ 6980 #define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 6981 #define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 6982 #define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 6983 #define ID3D12ProtectedResourceSession_SetName(This,name) (This)->lpVtbl->SetName(This,name) 6984 /*** ID3D12DeviceChild methods ***/ 6985 #define ID3D12ProtectedResourceSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 6986 /*** ID3D12ProtectedSession methods ***/ 6987 #define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence) 6988 #define ID3D12ProtectedResourceSession_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This) 6989 /*** ID3D12ProtectedResourceSession methods ***/ 6990 #define ID3D12ProtectedResourceSession_GetDesc(This) ID3D12ProtectedResourceSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 6991 #else 6992 /*** IUnknown methods ***/ 6993 static inline HRESULT ID3D12ProtectedResourceSession_QueryInterface(ID3D12ProtectedResourceSession* This,REFIID riid,void **ppvObject) { 6994 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6995 } 6996 static inline ULONG ID3D12ProtectedResourceSession_AddRef(ID3D12ProtectedResourceSession* This) { 6997 return This->lpVtbl->AddRef(This); 6998 } 6999 static inline ULONG ID3D12ProtectedResourceSession_Release(ID3D12ProtectedResourceSession* This) { 7000 return This->lpVtbl->Release(This); 7001 } 7002 /*** ID3D12Object methods ***/ 7003 static inline HRESULT ID3D12ProtectedResourceSession_GetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT *data_size,void *data) { 7004 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 7005 } 7006 static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateData(ID3D12ProtectedResourceSession* This,REFGUID guid,UINT data_size,const void *data) { 7007 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 7008 } 7009 static inline HRESULT ID3D12ProtectedResourceSession_SetPrivateDataInterface(ID3D12ProtectedResourceSession* This,REFGUID guid,const IUnknown *data) { 7010 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 7011 } 7012 static inline HRESULT ID3D12ProtectedResourceSession_SetName(ID3D12ProtectedResourceSession* This,const WCHAR *name) { 7013 return This->lpVtbl->SetName(This,name); 7014 } 7015 /*** ID3D12DeviceChild methods ***/ 7016 static inline HRESULT ID3D12ProtectedResourceSession_GetDevice(ID3D12ProtectedResourceSession* This,REFIID riid,void **device) { 7017 return This->lpVtbl->GetDevice(This,riid,device); 7018 } 7019 /*** ID3D12ProtectedSession methods ***/ 7020 static inline HRESULT ID3D12ProtectedResourceSession_GetStatusFence(ID3D12ProtectedResourceSession* This,REFIID riid,void **fence) { 7021 return This->lpVtbl->GetStatusFence(This,riid,fence); 7022 } 7023 static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession_GetSessionStatus(ID3D12ProtectedResourceSession* This) { 7024 return This->lpVtbl->GetSessionStatus(This); 7025 } 7026 /*** ID3D12ProtectedResourceSession methods ***/ 7027 static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession_GetDesc(ID3D12ProtectedResourceSession* This) { 7028 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret; 7029 return *This->lpVtbl->GetDesc(This,&__ret); 7030 } 7031 #endif 7032 #endif 7033 7034 #endif 7035 7036 7037 #endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */ 7038 7039 /***************************************************************************** 7040 * ID3D12GraphicsCommandList3 interface 7041 */ 7042 #ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ 7043 #define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ 7044 7045 DEFINE_GUID(IID_ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d); 7046 #if defined(__cplusplus) && !defined(CINTERFACE) 7047 MIDL_INTERFACE("6fda83a7-b84c-4e38-9ac8-c7bd22016b3d") 7048 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2 7049 { 7050 virtual void STDMETHODCALLTYPE SetProtectedResourceSession( 7051 ID3D12ProtectedResourceSession *protected_resource_session) = 0; 7052 7053 }; 7054 #ifdef __CRT_UUID_DECL 7055 __CRT_UUID_DECL(ID3D12GraphicsCommandList3, 0x6fda83a7, 0xb84c, 0x4e38, 0x9a,0xc8, 0xc7,0xbd,0x22,0x01,0x6b,0x3d) 7056 #endif 7057 #else 7058 typedef struct ID3D12GraphicsCommandList3Vtbl { 7059 BEGIN_INTERFACE 7060 7061 /*** IUnknown methods ***/ 7062 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7063 ID3D12GraphicsCommandList3 *This, 7064 REFIID riid, 7065 void **ppvObject); 7066 7067 ULONG (STDMETHODCALLTYPE *AddRef)( 7068 ID3D12GraphicsCommandList3 *This); 7069 7070 ULONG (STDMETHODCALLTYPE *Release)( 7071 ID3D12GraphicsCommandList3 *This); 7072 7073 /*** ID3D12Object methods ***/ 7074 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 7075 ID3D12GraphicsCommandList3 *This, 7076 REFGUID guid, 7077 UINT *data_size, 7078 void *data); 7079 7080 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 7081 ID3D12GraphicsCommandList3 *This, 7082 REFGUID guid, 7083 UINT data_size, 7084 const void *data); 7085 7086 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 7087 ID3D12GraphicsCommandList3 *This, 7088 REFGUID guid, 7089 const IUnknown *data); 7090 7091 HRESULT (STDMETHODCALLTYPE *SetName)( 7092 ID3D12GraphicsCommandList3 *This, 7093 const WCHAR *name); 7094 7095 /*** ID3D12DeviceChild methods ***/ 7096 HRESULT (STDMETHODCALLTYPE *GetDevice)( 7097 ID3D12GraphicsCommandList3 *This, 7098 REFIID riid, 7099 void **device); 7100 7101 /*** ID3D12CommandList methods ***/ 7102 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 7103 ID3D12GraphicsCommandList3 *This); 7104 7105 /*** ID3D12GraphicsCommandList methods ***/ 7106 HRESULT (STDMETHODCALLTYPE *Close)( 7107 ID3D12GraphicsCommandList3 *This); 7108 7109 HRESULT (STDMETHODCALLTYPE *Reset)( 7110 ID3D12GraphicsCommandList3 *This, 7111 ID3D12CommandAllocator *allocator, 7112 ID3D12PipelineState *initial_state); 7113 7114 void (STDMETHODCALLTYPE *ClearState)( 7115 ID3D12GraphicsCommandList3 *This, 7116 ID3D12PipelineState *pipeline_state); 7117 7118 void (STDMETHODCALLTYPE *DrawInstanced)( 7119 ID3D12GraphicsCommandList3 *This, 7120 UINT vertex_count_per_instance, 7121 UINT instance_count, 7122 UINT start_vertex_location, 7123 UINT start_instance_location); 7124 7125 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 7126 ID3D12GraphicsCommandList3 *This, 7127 UINT index_count_per_instance, 7128 UINT instance_count, 7129 UINT start_vertex_location, 7130 INT base_vertex_location, 7131 UINT start_instance_location); 7132 7133 void (STDMETHODCALLTYPE *Dispatch)( 7134 ID3D12GraphicsCommandList3 *This, 7135 UINT x, 7136 UINT u, 7137 UINT z); 7138 7139 void (STDMETHODCALLTYPE *CopyBufferRegion)( 7140 ID3D12GraphicsCommandList3 *This, 7141 ID3D12Resource *dst_buffer, 7142 UINT64 dst_offset, 7143 ID3D12Resource *src_buffer, 7144 UINT64 src_offset, 7145 UINT64 byte_count); 7146 7147 void (STDMETHODCALLTYPE *CopyTextureRegion)( 7148 ID3D12GraphicsCommandList3 *This, 7149 const D3D12_TEXTURE_COPY_LOCATION *dst, 7150 UINT dst_x, 7151 UINT dst_y, 7152 UINT dst_z, 7153 const D3D12_TEXTURE_COPY_LOCATION *src, 7154 const D3D12_BOX *src_box); 7155 7156 void (STDMETHODCALLTYPE *CopyResource)( 7157 ID3D12GraphicsCommandList3 *This, 7158 ID3D12Resource *dst_resource, 7159 ID3D12Resource *src_resource); 7160 7161 void (STDMETHODCALLTYPE *CopyTiles)( 7162 ID3D12GraphicsCommandList3 *This, 7163 ID3D12Resource *tiled_resource, 7164 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 7165 const D3D12_TILE_REGION_SIZE *tile_region_size, 7166 ID3D12Resource *buffer, 7167 UINT64 buffer_offset, 7168 D3D12_TILE_COPY_FLAGS flags); 7169 7170 void (STDMETHODCALLTYPE *ResolveSubresource)( 7171 ID3D12GraphicsCommandList3 *This, 7172 ID3D12Resource *dst_resource, 7173 UINT dst_sub_resource, 7174 ID3D12Resource *src_resource, 7175 UINT src_sub_resource, 7176 DXGI_FORMAT format); 7177 7178 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 7179 ID3D12GraphicsCommandList3 *This, 7180 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 7181 7182 void (STDMETHODCALLTYPE *RSSetViewports)( 7183 ID3D12GraphicsCommandList3 *This, 7184 UINT viewport_count, 7185 const D3D12_VIEWPORT *viewports); 7186 7187 void (STDMETHODCALLTYPE *RSSetScissorRects)( 7188 ID3D12GraphicsCommandList3 *This, 7189 UINT rect_count, 7190 const D3D12_RECT *rects); 7191 7192 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 7193 ID3D12GraphicsCommandList3 *This, 7194 const FLOAT blend_factor[4]); 7195 7196 void (STDMETHODCALLTYPE *OMSetStencilRef)( 7197 ID3D12GraphicsCommandList3 *This, 7198 UINT stencil_ref); 7199 7200 void (STDMETHODCALLTYPE *SetPipelineState)( 7201 ID3D12GraphicsCommandList3 *This, 7202 ID3D12PipelineState *pipeline_state); 7203 7204 void (STDMETHODCALLTYPE *ResourceBarrier)( 7205 ID3D12GraphicsCommandList3 *This, 7206 UINT barrier_count, 7207 const D3D12_RESOURCE_BARRIER *barriers); 7208 7209 void (STDMETHODCALLTYPE *ExecuteBundle)( 7210 ID3D12GraphicsCommandList3 *This, 7211 ID3D12GraphicsCommandList *command_list); 7212 7213 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 7214 ID3D12GraphicsCommandList3 *This, 7215 UINT heap_count, 7216 ID3D12DescriptorHeap *const *heaps); 7217 7218 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 7219 ID3D12GraphicsCommandList3 *This, 7220 ID3D12RootSignature *root_signature); 7221 7222 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 7223 ID3D12GraphicsCommandList3 *This, 7224 ID3D12RootSignature *root_signature); 7225 7226 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 7227 ID3D12GraphicsCommandList3 *This, 7228 UINT root_parameter_index, 7229 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 7230 7231 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 7232 ID3D12GraphicsCommandList3 *This, 7233 UINT root_parameter_index, 7234 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 7235 7236 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 7237 ID3D12GraphicsCommandList3 *This, 7238 UINT root_parameter_index, 7239 UINT data, 7240 UINT dst_offset); 7241 7242 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 7243 ID3D12GraphicsCommandList3 *This, 7244 UINT root_parameter_index, 7245 UINT data, 7246 UINT dst_offset); 7247 7248 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 7249 ID3D12GraphicsCommandList3 *This, 7250 UINT root_parameter_index, 7251 UINT constant_count, 7252 const void *data, 7253 UINT dst_offset); 7254 7255 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 7256 ID3D12GraphicsCommandList3 *This, 7257 UINT root_parameter_index, 7258 UINT constant_count, 7259 const void *data, 7260 UINT dst_offset); 7261 7262 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 7263 ID3D12GraphicsCommandList3 *This, 7264 UINT root_parameter_index, 7265 D3D12_GPU_VIRTUAL_ADDRESS address); 7266 7267 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 7268 ID3D12GraphicsCommandList3 *This, 7269 UINT root_parameter_index, 7270 D3D12_GPU_VIRTUAL_ADDRESS address); 7271 7272 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 7273 ID3D12GraphicsCommandList3 *This, 7274 UINT root_parameter_index, 7275 D3D12_GPU_VIRTUAL_ADDRESS address); 7276 7277 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 7278 ID3D12GraphicsCommandList3 *This, 7279 UINT root_parameter_index, 7280 D3D12_GPU_VIRTUAL_ADDRESS address); 7281 7282 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 7283 ID3D12GraphicsCommandList3 *This, 7284 UINT root_parameter_index, 7285 D3D12_GPU_VIRTUAL_ADDRESS address); 7286 7287 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 7288 ID3D12GraphicsCommandList3 *This, 7289 UINT root_parameter_index, 7290 D3D12_GPU_VIRTUAL_ADDRESS address); 7291 7292 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 7293 ID3D12GraphicsCommandList3 *This, 7294 const D3D12_INDEX_BUFFER_VIEW *view); 7295 7296 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 7297 ID3D12GraphicsCommandList3 *This, 7298 UINT start_slot, 7299 UINT view_count, 7300 const D3D12_VERTEX_BUFFER_VIEW *views); 7301 7302 void (STDMETHODCALLTYPE *SOSetTargets)( 7303 ID3D12GraphicsCommandList3 *This, 7304 UINT start_slot, 7305 UINT view_count, 7306 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 7307 7308 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 7309 ID3D12GraphicsCommandList3 *This, 7310 UINT render_target_descriptor_count, 7311 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 7312 WINBOOL single_descriptor_handle, 7313 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 7314 7315 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 7316 ID3D12GraphicsCommandList3 *This, 7317 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 7318 D3D12_CLEAR_FLAGS flags, 7319 FLOAT depth, 7320 UINT8 stencil, 7321 UINT rect_count, 7322 const D3D12_RECT *rects); 7323 7324 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 7325 ID3D12GraphicsCommandList3 *This, 7326 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 7327 const FLOAT color[4], 7328 UINT rect_count, 7329 const D3D12_RECT *rects); 7330 7331 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 7332 ID3D12GraphicsCommandList3 *This, 7333 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 7334 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 7335 ID3D12Resource *resource, 7336 const UINT values[4], 7337 UINT rect_count, 7338 const D3D12_RECT *rects); 7339 7340 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 7341 ID3D12GraphicsCommandList3 *This, 7342 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 7343 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 7344 ID3D12Resource *resource, 7345 const float values[4], 7346 UINT rect_count, 7347 const D3D12_RECT *rects); 7348 7349 void (STDMETHODCALLTYPE *DiscardResource)( 7350 ID3D12GraphicsCommandList3 *This, 7351 ID3D12Resource *resource, 7352 const D3D12_DISCARD_REGION *region); 7353 7354 void (STDMETHODCALLTYPE *BeginQuery)( 7355 ID3D12GraphicsCommandList3 *This, 7356 ID3D12QueryHeap *heap, 7357 D3D12_QUERY_TYPE type, 7358 UINT index); 7359 7360 void (STDMETHODCALLTYPE *EndQuery)( 7361 ID3D12GraphicsCommandList3 *This, 7362 ID3D12QueryHeap *heap, 7363 D3D12_QUERY_TYPE type, 7364 UINT index); 7365 7366 void (STDMETHODCALLTYPE *ResolveQueryData)( 7367 ID3D12GraphicsCommandList3 *This, 7368 ID3D12QueryHeap *heap, 7369 D3D12_QUERY_TYPE type, 7370 UINT start_index, 7371 UINT query_count, 7372 ID3D12Resource *dst_buffer, 7373 UINT64 aligned_dst_buffer_offset); 7374 7375 void (STDMETHODCALLTYPE *SetPredication)( 7376 ID3D12GraphicsCommandList3 *This, 7377 ID3D12Resource *buffer, 7378 UINT64 aligned_buffer_offset, 7379 D3D12_PREDICATION_OP operation); 7380 7381 void (STDMETHODCALLTYPE *SetMarker)( 7382 ID3D12GraphicsCommandList3 *This, 7383 UINT metadata, 7384 const void *data, 7385 UINT size); 7386 7387 void (STDMETHODCALLTYPE *BeginEvent)( 7388 ID3D12GraphicsCommandList3 *This, 7389 UINT metadata, 7390 const void *data, 7391 UINT size); 7392 7393 void (STDMETHODCALLTYPE *EndEvent)( 7394 ID3D12GraphicsCommandList3 *This); 7395 7396 void (STDMETHODCALLTYPE *ExecuteIndirect)( 7397 ID3D12GraphicsCommandList3 *This, 7398 ID3D12CommandSignature *command_signature, 7399 UINT max_command_count, 7400 ID3D12Resource *arg_buffer, 7401 UINT64 arg_buffer_offset, 7402 ID3D12Resource *count_buffer, 7403 UINT64 count_buffer_offset); 7404 7405 /*** ID3D12GraphicsCommandList1 methods ***/ 7406 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 7407 ID3D12GraphicsCommandList3 *This, 7408 ID3D12Resource *dst_buffer, 7409 UINT64 dst_offset, 7410 ID3D12Resource *src_buffer, 7411 UINT64 src_offset, 7412 UINT dependent_resource_count, 7413 ID3D12Resource *const *dependent_resources, 7414 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 7415 7416 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 7417 ID3D12GraphicsCommandList3 *This, 7418 ID3D12Resource *dst_buffer, 7419 UINT64 dst_offset, 7420 ID3D12Resource *src_buffer, 7421 UINT64 src_offset, 7422 UINT dependent_resource_count, 7423 ID3D12Resource *const *dependent_resources, 7424 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 7425 7426 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 7427 ID3D12GraphicsCommandList3 *This, 7428 FLOAT min, 7429 FLOAT max); 7430 7431 void (STDMETHODCALLTYPE *SetSamplePositions)( 7432 ID3D12GraphicsCommandList3 *This, 7433 UINT sample_count, 7434 UINT pixel_count, 7435 D3D12_SAMPLE_POSITION *sample_positions); 7436 7437 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 7438 ID3D12GraphicsCommandList3 *This, 7439 ID3D12Resource *dst_resource, 7440 UINT dst_sub_resource_idx, 7441 UINT dst_x, 7442 UINT dst_y, 7443 ID3D12Resource *src_resource, 7444 UINT src_sub_resource_idx, 7445 D3D12_RECT *src_rect, 7446 DXGI_FORMAT format, 7447 D3D12_RESOLVE_MODE mode); 7448 7449 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 7450 ID3D12GraphicsCommandList3 *This, 7451 UINT mask); 7452 7453 /*** ID3D12GraphicsCommandList2 methods ***/ 7454 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 7455 ID3D12GraphicsCommandList3 *This, 7456 UINT count, 7457 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 7458 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 7459 7460 /*** ID3D12GraphicsCommandList3 methods ***/ 7461 void (STDMETHODCALLTYPE *SetProtectedResourceSession)( 7462 ID3D12GraphicsCommandList3 *This, 7463 ID3D12ProtectedResourceSession *protected_resource_session); 7464 7465 END_INTERFACE 7466 } ID3D12GraphicsCommandList3Vtbl; 7467 7468 interface ID3D12GraphicsCommandList3 { 7469 CONST_VTBL ID3D12GraphicsCommandList3Vtbl* lpVtbl; 7470 }; 7471 7472 #ifdef COBJMACROS 7473 #ifndef WIDL_C_INLINE_WRAPPERS 7474 /*** IUnknown methods ***/ 7475 #define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7476 #define ID3D12GraphicsCommandList3_AddRef(This) (This)->lpVtbl->AddRef(This) 7477 #define ID3D12GraphicsCommandList3_Release(This) (This)->lpVtbl->Release(This) 7478 /*** ID3D12Object methods ***/ 7479 #define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 7480 #define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 7481 #define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 7482 #define ID3D12GraphicsCommandList3_SetName(This,name) (This)->lpVtbl->SetName(This,name) 7483 /*** ID3D12DeviceChild methods ***/ 7484 #define ID3D12GraphicsCommandList3_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 7485 /*** ID3D12CommandList methods ***/ 7486 #define ID3D12GraphicsCommandList3_GetType(This) (This)->lpVtbl->GetType(This) 7487 /*** ID3D12GraphicsCommandList methods ***/ 7488 #define ID3D12GraphicsCommandList3_Close(This) (This)->lpVtbl->Close(This) 7489 #define ID3D12GraphicsCommandList3_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 7490 #define ID3D12GraphicsCommandList3_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 7491 #define ID3D12GraphicsCommandList3_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 7492 #define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 7493 #define ID3D12GraphicsCommandList3_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 7494 #define ID3D12GraphicsCommandList3_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 7495 #define ID3D12GraphicsCommandList3_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 7496 #define ID3D12GraphicsCommandList3_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 7497 #define ID3D12GraphicsCommandList3_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 7498 #define ID3D12GraphicsCommandList3_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 7499 #define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 7500 #define ID3D12GraphicsCommandList3_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 7501 #define ID3D12GraphicsCommandList3_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 7502 #define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 7503 #define ID3D12GraphicsCommandList3_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 7504 #define ID3D12GraphicsCommandList3_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 7505 #define ID3D12GraphicsCommandList3_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 7506 #define ID3D12GraphicsCommandList3_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 7507 #define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 7508 #define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 7509 #define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 7510 #define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 7511 #define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 7512 #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 7513 #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 7514 #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 7515 #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 7516 #define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 7517 #define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 7518 #define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 7519 #define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 7520 #define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 7521 #define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 7522 #define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 7523 #define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 7524 #define ID3D12GraphicsCommandList3_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 7525 #define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 7526 #define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 7527 #define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 7528 #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 7529 #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 7530 #define ID3D12GraphicsCommandList3_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 7531 #define ID3D12GraphicsCommandList3_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 7532 #define ID3D12GraphicsCommandList3_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 7533 #define ID3D12GraphicsCommandList3_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 7534 #define ID3D12GraphicsCommandList3_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 7535 #define ID3D12GraphicsCommandList3_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 7536 #define ID3D12GraphicsCommandList3_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 7537 #define ID3D12GraphicsCommandList3_EndEvent(This) (This)->lpVtbl->EndEvent(This) 7538 #define ID3D12GraphicsCommandList3_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 7539 /*** ID3D12GraphicsCommandList1 methods ***/ 7540 #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 7541 #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 7542 #define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 7543 #define ID3D12GraphicsCommandList3_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 7544 #define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 7545 #define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 7546 /*** ID3D12GraphicsCommandList2 methods ***/ 7547 #define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 7548 /*** ID3D12GraphicsCommandList3 methods ***/ 7549 #define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session) 7550 #else 7551 /*** IUnknown methods ***/ 7552 static inline HRESULT ID3D12GraphicsCommandList3_QueryInterface(ID3D12GraphicsCommandList3* This,REFIID riid,void **ppvObject) { 7553 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7554 } 7555 static inline ULONG ID3D12GraphicsCommandList3_AddRef(ID3D12GraphicsCommandList3* This) { 7556 return This->lpVtbl->AddRef(This); 7557 } 7558 static inline ULONG ID3D12GraphicsCommandList3_Release(ID3D12GraphicsCommandList3* This) { 7559 return This->lpVtbl->Release(This); 7560 } 7561 /*** ID3D12Object methods ***/ 7562 static inline HRESULT ID3D12GraphicsCommandList3_GetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT *data_size,void *data) { 7563 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 7564 } 7565 static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateData(ID3D12GraphicsCommandList3* This,REFGUID guid,UINT data_size,const void *data) { 7566 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 7567 } 7568 static inline HRESULT ID3D12GraphicsCommandList3_SetPrivateDataInterface(ID3D12GraphicsCommandList3* This,REFGUID guid,const IUnknown *data) { 7569 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 7570 } 7571 static inline HRESULT ID3D12GraphicsCommandList3_SetName(ID3D12GraphicsCommandList3* This,const WCHAR *name) { 7572 return This->lpVtbl->SetName(This,name); 7573 } 7574 /*** ID3D12DeviceChild methods ***/ 7575 static inline HRESULT ID3D12GraphicsCommandList3_GetDevice(ID3D12GraphicsCommandList3* This,REFIID riid,void **device) { 7576 return This->lpVtbl->GetDevice(This,riid,device); 7577 } 7578 /*** ID3D12CommandList methods ***/ 7579 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList3_GetType(ID3D12GraphicsCommandList3* This) { 7580 return This->lpVtbl->GetType(This); 7581 } 7582 /*** ID3D12GraphicsCommandList methods ***/ 7583 static inline HRESULT ID3D12GraphicsCommandList3_Close(ID3D12GraphicsCommandList3* This) { 7584 return This->lpVtbl->Close(This); 7585 } 7586 static inline HRESULT ID3D12GraphicsCommandList3_Reset(ID3D12GraphicsCommandList3* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 7587 return This->lpVtbl->Reset(This,allocator,initial_state); 7588 } 7589 static inline void ID3D12GraphicsCommandList3_ClearState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) { 7590 This->lpVtbl->ClearState(This,pipeline_state); 7591 } 7592 static inline void ID3D12GraphicsCommandList3_DrawInstanced(ID3D12GraphicsCommandList3* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 7593 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 7594 } 7595 static inline void ID3D12GraphicsCommandList3_DrawIndexedInstanced(ID3D12GraphicsCommandList3* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 7596 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 7597 } 7598 static inline void ID3D12GraphicsCommandList3_Dispatch(ID3D12GraphicsCommandList3* This,UINT x,UINT u,UINT z) { 7599 This->lpVtbl->Dispatch(This,x,u,z); 7600 } 7601 static inline void ID3D12GraphicsCommandList3_CopyBufferRegion(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 7602 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 7603 } 7604 static inline void ID3D12GraphicsCommandList3_CopyTextureRegion(ID3D12GraphicsCommandList3* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 7605 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 7606 } 7607 static inline void ID3D12GraphicsCommandList3_CopyResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 7608 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 7609 } 7610 static inline void ID3D12GraphicsCommandList3_CopyTiles(ID3D12GraphicsCommandList3* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 7611 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 7612 } 7613 static inline void ID3D12GraphicsCommandList3_ResolveSubresource(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 7614 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 7615 } 7616 static inline void ID3D12GraphicsCommandList3_IASetPrimitiveTopology(ID3D12GraphicsCommandList3* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 7617 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 7618 } 7619 static inline void ID3D12GraphicsCommandList3_RSSetViewports(ID3D12GraphicsCommandList3* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 7620 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 7621 } 7622 static inline void ID3D12GraphicsCommandList3_RSSetScissorRects(ID3D12GraphicsCommandList3* This,UINT rect_count,const D3D12_RECT *rects) { 7623 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 7624 } 7625 static inline void ID3D12GraphicsCommandList3_OMSetBlendFactor(ID3D12GraphicsCommandList3* This,const FLOAT blend_factor[4]) { 7626 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 7627 } 7628 static inline void ID3D12GraphicsCommandList3_OMSetStencilRef(ID3D12GraphicsCommandList3* This,UINT stencil_ref) { 7629 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 7630 } 7631 static inline void ID3D12GraphicsCommandList3_SetPipelineState(ID3D12GraphicsCommandList3* This,ID3D12PipelineState *pipeline_state) { 7632 This->lpVtbl->SetPipelineState(This,pipeline_state); 7633 } 7634 static inline void ID3D12GraphicsCommandList3_ResourceBarrier(ID3D12GraphicsCommandList3* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 7635 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 7636 } 7637 static inline void ID3D12GraphicsCommandList3_ExecuteBundle(ID3D12GraphicsCommandList3* This,ID3D12GraphicsCommandList *command_list) { 7638 This->lpVtbl->ExecuteBundle(This,command_list); 7639 } 7640 static inline void ID3D12GraphicsCommandList3_SetDescriptorHeaps(ID3D12GraphicsCommandList3* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 7641 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 7642 } 7643 static inline void ID3D12GraphicsCommandList3_SetComputeRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) { 7644 This->lpVtbl->SetComputeRootSignature(This,root_signature); 7645 } 7646 static inline void ID3D12GraphicsCommandList3_SetGraphicsRootSignature(ID3D12GraphicsCommandList3* This,ID3D12RootSignature *root_signature) { 7647 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 7648 } 7649 static inline void ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 7650 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 7651 } 7652 static inline void ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 7653 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 7654 } 7655 static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 7656 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 7657 } 7658 static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 7659 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 7660 } 7661 static inline void ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 7662 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 7663 } 7664 static inline void ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 7665 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 7666 } 7667 static inline void ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7668 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 7669 } 7670 static inline void ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7671 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 7672 } 7673 static inline void ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7674 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 7675 } 7676 static inline void ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7677 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 7678 } 7679 static inline void ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7680 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 7681 } 7682 static inline void ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList3* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 7683 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 7684 } 7685 static inline void ID3D12GraphicsCommandList3_IASetIndexBuffer(ID3D12GraphicsCommandList3* This,const D3D12_INDEX_BUFFER_VIEW *view) { 7686 This->lpVtbl->IASetIndexBuffer(This,view); 7687 } 7688 static inline void ID3D12GraphicsCommandList3_IASetVertexBuffers(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 7689 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 7690 } 7691 static inline void ID3D12GraphicsCommandList3_SOSetTargets(ID3D12GraphicsCommandList3* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 7692 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 7693 } 7694 static inline void ID3D12GraphicsCommandList3_OMSetRenderTargets(ID3D12GraphicsCommandList3* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 7695 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 7696 } 7697 static inline void ID3D12GraphicsCommandList3_ClearDepthStencilView(ID3D12GraphicsCommandList3* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 7698 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 7699 } 7700 static inline void ID3D12GraphicsCommandList3_ClearRenderTargetView(ID3D12GraphicsCommandList3* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 7701 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 7702 } 7703 static inline void ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList3* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 7704 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 7705 } 7706 static inline void ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList3* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 7707 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 7708 } 7709 static inline void ID3D12GraphicsCommandList3_DiscardResource(ID3D12GraphicsCommandList3* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 7710 This->lpVtbl->DiscardResource(This,resource,region); 7711 } 7712 static inline void ID3D12GraphicsCommandList3_BeginQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 7713 This->lpVtbl->BeginQuery(This,heap,type,index); 7714 } 7715 static inline void ID3D12GraphicsCommandList3_EndQuery(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 7716 This->lpVtbl->EndQuery(This,heap,type,index); 7717 } 7718 static inline void ID3D12GraphicsCommandList3_ResolveQueryData(ID3D12GraphicsCommandList3* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 7719 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 7720 } 7721 static inline void ID3D12GraphicsCommandList3_SetPredication(ID3D12GraphicsCommandList3* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 7722 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 7723 } 7724 static inline void ID3D12GraphicsCommandList3_SetMarker(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) { 7725 This->lpVtbl->SetMarker(This,metadata,data,size); 7726 } 7727 static inline void ID3D12GraphicsCommandList3_BeginEvent(ID3D12GraphicsCommandList3* This,UINT metadata,const void *data,UINT size) { 7728 This->lpVtbl->BeginEvent(This,metadata,data,size); 7729 } 7730 static inline void ID3D12GraphicsCommandList3_EndEvent(ID3D12GraphicsCommandList3* This) { 7731 This->lpVtbl->EndEvent(This); 7732 } 7733 static inline void ID3D12GraphicsCommandList3_ExecuteIndirect(ID3D12GraphicsCommandList3* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 7734 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 7735 } 7736 /*** ID3D12GraphicsCommandList1 methods ***/ 7737 static inline void ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 7738 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 7739 } 7740 static inline void ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 7741 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 7742 } 7743 static inline void ID3D12GraphicsCommandList3_OMSetDepthBounds(ID3D12GraphicsCommandList3* This,FLOAT min,FLOAT max) { 7744 This->lpVtbl->OMSetDepthBounds(This,min,max); 7745 } 7746 static inline void ID3D12GraphicsCommandList3_SetSamplePositions(ID3D12GraphicsCommandList3* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 7747 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 7748 } 7749 static inline void ID3D12GraphicsCommandList3_ResolveSubresourceRegion(ID3D12GraphicsCommandList3* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 7750 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 7751 } 7752 static inline void ID3D12GraphicsCommandList3_SetViewInstanceMask(ID3D12GraphicsCommandList3* This,UINT mask) { 7753 This->lpVtbl->SetViewInstanceMask(This,mask); 7754 } 7755 /*** ID3D12GraphicsCommandList2 methods ***/ 7756 static inline void ID3D12GraphicsCommandList3_WriteBufferImmediate(ID3D12GraphicsCommandList3* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 7757 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 7758 } 7759 /*** ID3D12GraphicsCommandList3 methods ***/ 7760 static inline void ID3D12GraphicsCommandList3_SetProtectedResourceSession(ID3D12GraphicsCommandList3* This,ID3D12ProtectedResourceSession *protected_resource_session) { 7761 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session); 7762 } 7763 #endif 7764 #endif 7765 7766 #endif 7767 7768 7769 #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ 7770 7771 typedef enum D3D12_TILE_RANGE_FLAGS { 7772 D3D12_TILE_RANGE_FLAG_NONE = 0x0, 7773 D3D12_TILE_RANGE_FLAG_NULL = 0x1, 7774 D3D12_TILE_RANGE_FLAG_SKIP = 0x2, 7775 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4 7776 } D3D12_TILE_RANGE_FLAGS; 7777 typedef enum D3D12_TILE_MAPPING_FLAGS { 7778 D3D12_TILE_MAPPING_FLAG_NONE = 0x0, 7779 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 7780 } D3D12_TILE_MAPPING_FLAGS; 7781 DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS); 7782 /***************************************************************************** 7783 * ID3D12CommandQueue interface 7784 */ 7785 #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ 7786 #define __ID3D12CommandQueue_INTERFACE_DEFINED__ 7787 7788 DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed); 7789 #if defined(__cplusplus) && !defined(CINTERFACE) 7790 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") 7791 ID3D12CommandQueue : public ID3D12Pageable 7792 { 7793 virtual void STDMETHODCALLTYPE UpdateTileMappings( 7794 ID3D12Resource *resource, 7795 UINT region_count, 7796 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates, 7797 const D3D12_TILE_REGION_SIZE *region_sizes, 7798 ID3D12Heap *heap, 7799 UINT range_count, 7800 const D3D12_TILE_RANGE_FLAGS *range_flags, 7801 const UINT *heap_range_offsets, 7802 const UINT *range_tile_counts, 7803 D3D12_TILE_MAPPING_FLAGS flags) = 0; 7804 7805 virtual void STDMETHODCALLTYPE CopyTileMappings( 7806 ID3D12Resource *dst_resource, 7807 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate, 7808 ID3D12Resource *src_resource, 7809 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate, 7810 const D3D12_TILE_REGION_SIZE *region_size, 7811 D3D12_TILE_MAPPING_FLAGS flags) = 0; 7812 7813 virtual void STDMETHODCALLTYPE ExecuteCommandLists( 7814 UINT command_list_count, 7815 ID3D12CommandList *const *command_lists) = 0; 7816 7817 virtual void STDMETHODCALLTYPE SetMarker( 7818 UINT metadata, 7819 const void *data, 7820 UINT size) = 0; 7821 7822 virtual void STDMETHODCALLTYPE BeginEvent( 7823 UINT metadata, 7824 const void *data, 7825 UINT size) = 0; 7826 7827 virtual void STDMETHODCALLTYPE EndEvent( 7828 ) = 0; 7829 7830 virtual HRESULT STDMETHODCALLTYPE Signal( 7831 ID3D12Fence *fence, 7832 UINT64 value) = 0; 7833 7834 virtual HRESULT STDMETHODCALLTYPE Wait( 7835 ID3D12Fence *fence, 7836 UINT64 value) = 0; 7837 7838 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( 7839 UINT64 *frequency) = 0; 7840 7841 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( 7842 UINT64 *gpu_timestamp, 7843 UINT64 *cpu_timestamp) = 0; 7844 7845 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 7846 virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc( 7847 D3D12_COMMAND_QUEUE_DESC *__ret) = 0; 7848 D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( 7849 ) 7850 { 7851 D3D12_COMMAND_QUEUE_DESC __ret; 7852 return *GetDesc(&__ret); 7853 } 7854 #else 7855 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( 7856 ) = 0; 7857 #endif 7858 7859 }; 7860 #ifdef __CRT_UUID_DECL 7861 __CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed) 7862 #endif 7863 #else 7864 typedef struct ID3D12CommandQueueVtbl { 7865 BEGIN_INTERFACE 7866 7867 /*** IUnknown methods ***/ 7868 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7869 ID3D12CommandQueue *This, 7870 REFIID riid, 7871 void **ppvObject); 7872 7873 ULONG (STDMETHODCALLTYPE *AddRef)( 7874 ID3D12CommandQueue *This); 7875 7876 ULONG (STDMETHODCALLTYPE *Release)( 7877 ID3D12CommandQueue *This); 7878 7879 /*** ID3D12Object methods ***/ 7880 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 7881 ID3D12CommandQueue *This, 7882 REFGUID guid, 7883 UINT *data_size, 7884 void *data); 7885 7886 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 7887 ID3D12CommandQueue *This, 7888 REFGUID guid, 7889 UINT data_size, 7890 const void *data); 7891 7892 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 7893 ID3D12CommandQueue *This, 7894 REFGUID guid, 7895 const IUnknown *data); 7896 7897 HRESULT (STDMETHODCALLTYPE *SetName)( 7898 ID3D12CommandQueue *This, 7899 const WCHAR *name); 7900 7901 /*** ID3D12DeviceChild methods ***/ 7902 HRESULT (STDMETHODCALLTYPE *GetDevice)( 7903 ID3D12CommandQueue *This, 7904 REFIID riid, 7905 void **device); 7906 7907 /*** ID3D12CommandQueue methods ***/ 7908 void (STDMETHODCALLTYPE *UpdateTileMappings)( 7909 ID3D12CommandQueue *This, 7910 ID3D12Resource *resource, 7911 UINT region_count, 7912 const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates, 7913 const D3D12_TILE_REGION_SIZE *region_sizes, 7914 ID3D12Heap *heap, 7915 UINT range_count, 7916 const D3D12_TILE_RANGE_FLAGS *range_flags, 7917 const UINT *heap_range_offsets, 7918 const UINT *range_tile_counts, 7919 D3D12_TILE_MAPPING_FLAGS flags); 7920 7921 void (STDMETHODCALLTYPE *CopyTileMappings)( 7922 ID3D12CommandQueue *This, 7923 ID3D12Resource *dst_resource, 7924 const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate, 7925 ID3D12Resource *src_resource, 7926 const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate, 7927 const D3D12_TILE_REGION_SIZE *region_size, 7928 D3D12_TILE_MAPPING_FLAGS flags); 7929 7930 void (STDMETHODCALLTYPE *ExecuteCommandLists)( 7931 ID3D12CommandQueue *This, 7932 UINT command_list_count, 7933 ID3D12CommandList *const *command_lists); 7934 7935 void (STDMETHODCALLTYPE *SetMarker)( 7936 ID3D12CommandQueue *This, 7937 UINT metadata, 7938 const void *data, 7939 UINT size); 7940 7941 void (STDMETHODCALLTYPE *BeginEvent)( 7942 ID3D12CommandQueue *This, 7943 UINT metadata, 7944 const void *data, 7945 UINT size); 7946 7947 void (STDMETHODCALLTYPE *EndEvent)( 7948 ID3D12CommandQueue *This); 7949 7950 HRESULT (STDMETHODCALLTYPE *Signal)( 7951 ID3D12CommandQueue *This, 7952 ID3D12Fence *fence, 7953 UINT64 value); 7954 7955 HRESULT (STDMETHODCALLTYPE *Wait)( 7956 ID3D12CommandQueue *This, 7957 ID3D12Fence *fence, 7958 UINT64 value); 7959 7960 HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)( 7961 ID3D12CommandQueue *This, 7962 UINT64 *frequency); 7963 7964 HRESULT (STDMETHODCALLTYPE *GetClockCalibration)( 7965 ID3D12CommandQueue *This, 7966 UINT64 *gpu_timestamp, 7967 UINT64 *cpu_timestamp); 7968 7969 D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)( 7970 ID3D12CommandQueue *This, 7971 D3D12_COMMAND_QUEUE_DESC *__ret); 7972 7973 END_INTERFACE 7974 } ID3D12CommandQueueVtbl; 7975 7976 interface ID3D12CommandQueue { 7977 CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl; 7978 }; 7979 7980 #ifdef COBJMACROS 7981 #ifndef WIDL_C_INLINE_WRAPPERS 7982 /*** IUnknown methods ***/ 7983 #define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7984 #define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This) 7985 #define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This) 7986 /*** ID3D12Object methods ***/ 7987 #define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 7988 #define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 7989 #define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 7990 #define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name) 7991 /*** ID3D12DeviceChild methods ***/ 7992 #define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 7993 /*** ID3D12CommandQueue methods ***/ 7994 #define ID3D12CommandQueue_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) 7995 #define ID3D12CommandQueue_CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) 7996 #define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists) 7997 #define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 7998 #define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 7999 #define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This) 8000 #define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value) 8001 #define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value) 8002 #define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency) 8003 #define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp) 8004 #define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 8005 #else 8006 /*** IUnknown methods ***/ 8007 static inline HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) { 8008 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8009 } 8010 static inline ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) { 8011 return This->lpVtbl->AddRef(This); 8012 } 8013 static inline ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) { 8014 return This->lpVtbl->Release(This); 8015 } 8016 /*** ID3D12Object methods ***/ 8017 static inline HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) { 8018 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8019 } 8020 static inline HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) { 8021 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8022 } 8023 static inline HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) { 8024 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8025 } 8026 static inline HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) { 8027 return This->lpVtbl->SetName(This,name); 8028 } 8029 /*** ID3D12DeviceChild methods ***/ 8030 static inline HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) { 8031 return This->lpVtbl->GetDevice(This,riid,device); 8032 } 8033 /*** ID3D12CommandQueue methods ***/ 8034 static inline void ID3D12CommandQueue_UpdateTileMappings(ID3D12CommandQueue* This,ID3D12Resource *resource,UINT region_count,const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D12_TILE_REGION_SIZE *region_sizes,ID3D12Heap *heap,UINT range_count,const D3D12_TILE_RANGE_FLAGS *range_flags,const UINT *heap_range_offsets,const UINT *range_tile_counts,D3D12_TILE_MAPPING_FLAGS flags) { 8035 This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,heap,range_count,range_flags,heap_range_offsets,range_tile_counts,flags); 8036 } 8037 static inline void ID3D12CommandQueue_CopyTileMappings(ID3D12CommandQueue* This,ID3D12Resource *dst_resource,const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,ID3D12Resource *src_resource,const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,const D3D12_TILE_REGION_SIZE *region_size,D3D12_TILE_MAPPING_FLAGS flags) { 8038 This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags); 8039 } 8040 static inline void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) { 8041 This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists); 8042 } 8043 static inline void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) { 8044 This->lpVtbl->SetMarker(This,metadata,data,size); 8045 } 8046 static inline void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) { 8047 This->lpVtbl->BeginEvent(This,metadata,data,size); 8048 } 8049 static inline void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) { 8050 This->lpVtbl->EndEvent(This); 8051 } 8052 static inline HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) { 8053 return This->lpVtbl->Signal(This,fence,value); 8054 } 8055 static inline HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) { 8056 return This->lpVtbl->Wait(This,fence,value); 8057 } 8058 static inline HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) { 8059 return This->lpVtbl->GetTimestampFrequency(This,frequency); 8060 } 8061 static inline HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) { 8062 return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp); 8063 } 8064 static inline D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) { 8065 D3D12_COMMAND_QUEUE_DESC __ret; 8066 return *This->lpVtbl->GetDesc(This,&__ret); 8067 } 8068 #endif 8069 #endif 8070 8071 #endif 8072 8073 8074 #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ 8075 8076 typedef enum D3D12_FENCE_FLAGS { 8077 D3D12_FENCE_FLAG_NONE = 0x0, 8078 D3D12_FENCE_FLAG_SHARED = 0x1, 8079 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, 8080 D3D12_FENCE_FLAG_NON_MONITORED = 0x4 8081 } D3D12_FENCE_FLAGS; 8082 DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS); 8083 typedef enum D3D12_QUERY_HEAP_TYPE { 8084 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, 8085 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, 8086 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, 8087 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, 8088 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, 8089 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, 8090 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7 8091 } D3D12_QUERY_HEAP_TYPE; 8092 typedef struct D3D12_QUERY_HEAP_DESC { 8093 D3D12_QUERY_HEAP_TYPE Type; 8094 UINT Count; 8095 UINT NodeMask; 8096 } D3D12_QUERY_HEAP_DESC; 8097 typedef enum D3D12_INDIRECT_ARGUMENT_TYPE { 8098 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, 8099 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1, 8100 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2, 8101 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3, 8102 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4, 8103 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5, 8104 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6, 8105 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7, 8106 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8, 8107 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = 9, 8108 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = 10 8109 } D3D12_INDIRECT_ARGUMENT_TYPE; 8110 typedef struct D3D12_INDIRECT_ARGUMENT_DESC { 8111 D3D12_INDIRECT_ARGUMENT_TYPE Type; 8112 __C89_NAMELESS union { 8113 struct { 8114 UINT Slot; 8115 } VertexBuffer; 8116 struct { 8117 UINT RootParameterIndex; 8118 UINT DestOffsetIn32BitValues; 8119 UINT Num32BitValuesToSet; 8120 } Constant; 8121 struct { 8122 UINT RootParameterIndex; 8123 } ConstantBufferView; 8124 struct { 8125 UINT RootParameterIndex; 8126 } ShaderResourceView; 8127 struct { 8128 UINT RootParameterIndex; 8129 } UnorderedAccessView; 8130 } __C89_NAMELESSUNIONNAME; 8131 } D3D12_INDIRECT_ARGUMENT_DESC; 8132 typedef struct D3D12_COMMAND_SIGNATURE_DESC { 8133 UINT ByteStride; 8134 UINT NumArgumentDescs; 8135 const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; 8136 UINT NodeMask; 8137 } D3D12_COMMAND_SIGNATURE_DESC; 8138 /***************************************************************************** 8139 * ID3D12RootSignature interface 8140 */ 8141 #ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ 8142 #define __ID3D12RootSignature_INTERFACE_DEFINED__ 8143 8144 DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14); 8145 #if defined(__cplusplus) && !defined(CINTERFACE) 8146 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") 8147 ID3D12RootSignature : public ID3D12DeviceChild 8148 { 8149 }; 8150 #ifdef __CRT_UUID_DECL 8151 __CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14) 8152 #endif 8153 #else 8154 typedef struct ID3D12RootSignatureVtbl { 8155 BEGIN_INTERFACE 8156 8157 /*** IUnknown methods ***/ 8158 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8159 ID3D12RootSignature *This, 8160 REFIID riid, 8161 void **ppvObject); 8162 8163 ULONG (STDMETHODCALLTYPE *AddRef)( 8164 ID3D12RootSignature *This); 8165 8166 ULONG (STDMETHODCALLTYPE *Release)( 8167 ID3D12RootSignature *This); 8168 8169 /*** ID3D12Object methods ***/ 8170 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 8171 ID3D12RootSignature *This, 8172 REFGUID guid, 8173 UINT *data_size, 8174 void *data); 8175 8176 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 8177 ID3D12RootSignature *This, 8178 REFGUID guid, 8179 UINT data_size, 8180 const void *data); 8181 8182 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 8183 ID3D12RootSignature *This, 8184 REFGUID guid, 8185 const IUnknown *data); 8186 8187 HRESULT (STDMETHODCALLTYPE *SetName)( 8188 ID3D12RootSignature *This, 8189 const WCHAR *name); 8190 8191 /*** ID3D12DeviceChild methods ***/ 8192 HRESULT (STDMETHODCALLTYPE *GetDevice)( 8193 ID3D12RootSignature *This, 8194 REFIID riid, 8195 void **device); 8196 8197 END_INTERFACE 8198 } ID3D12RootSignatureVtbl; 8199 8200 interface ID3D12RootSignature { 8201 CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl; 8202 }; 8203 8204 #ifdef COBJMACROS 8205 #ifndef WIDL_C_INLINE_WRAPPERS 8206 /*** IUnknown methods ***/ 8207 #define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8208 #define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This) 8209 #define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This) 8210 /*** ID3D12Object methods ***/ 8211 #define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 8212 #define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 8213 #define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 8214 #define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name) 8215 /*** ID3D12DeviceChild methods ***/ 8216 #define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 8217 #else 8218 /*** IUnknown methods ***/ 8219 static inline HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) { 8220 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8221 } 8222 static inline ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) { 8223 return This->lpVtbl->AddRef(This); 8224 } 8225 static inline ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) { 8226 return This->lpVtbl->Release(This); 8227 } 8228 /*** ID3D12Object methods ***/ 8229 static inline HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) { 8230 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8231 } 8232 static inline HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) { 8233 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8234 } 8235 static inline HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) { 8236 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8237 } 8238 static inline HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) { 8239 return This->lpVtbl->SetName(This,name); 8240 } 8241 /*** ID3D12DeviceChild methods ***/ 8242 static inline HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) { 8243 return This->lpVtbl->GetDevice(This,riid,device); 8244 } 8245 #endif 8246 #endif 8247 8248 #endif 8249 8250 8251 #endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ 8252 8253 /***************************************************************************** 8254 * ID3D12PipelineState interface 8255 */ 8256 #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ 8257 #define __ID3D12PipelineState_INTERFACE_DEFINED__ 8258 8259 DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45); 8260 #if defined(__cplusplus) && !defined(CINTERFACE) 8261 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") 8262 ID3D12PipelineState : public ID3D12Pageable 8263 { 8264 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( 8265 ID3DBlob **blob) = 0; 8266 8267 }; 8268 #ifdef __CRT_UUID_DECL 8269 __CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45) 8270 #endif 8271 #else 8272 typedef struct ID3D12PipelineStateVtbl { 8273 BEGIN_INTERFACE 8274 8275 /*** IUnknown methods ***/ 8276 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8277 ID3D12PipelineState *This, 8278 REFIID riid, 8279 void **ppvObject); 8280 8281 ULONG (STDMETHODCALLTYPE *AddRef)( 8282 ID3D12PipelineState *This); 8283 8284 ULONG (STDMETHODCALLTYPE *Release)( 8285 ID3D12PipelineState *This); 8286 8287 /*** ID3D12Object methods ***/ 8288 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 8289 ID3D12PipelineState *This, 8290 REFGUID guid, 8291 UINT *data_size, 8292 void *data); 8293 8294 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 8295 ID3D12PipelineState *This, 8296 REFGUID guid, 8297 UINT data_size, 8298 const void *data); 8299 8300 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 8301 ID3D12PipelineState *This, 8302 REFGUID guid, 8303 const IUnknown *data); 8304 8305 HRESULT (STDMETHODCALLTYPE *SetName)( 8306 ID3D12PipelineState *This, 8307 const WCHAR *name); 8308 8309 /*** ID3D12DeviceChild methods ***/ 8310 HRESULT (STDMETHODCALLTYPE *GetDevice)( 8311 ID3D12PipelineState *This, 8312 REFIID riid, 8313 void **device); 8314 8315 /*** ID3D12PipelineState methods ***/ 8316 HRESULT (STDMETHODCALLTYPE *GetCachedBlob)( 8317 ID3D12PipelineState *This, 8318 ID3DBlob **blob); 8319 8320 END_INTERFACE 8321 } ID3D12PipelineStateVtbl; 8322 8323 interface ID3D12PipelineState { 8324 CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl; 8325 }; 8326 8327 #ifdef COBJMACROS 8328 #ifndef WIDL_C_INLINE_WRAPPERS 8329 /*** IUnknown methods ***/ 8330 #define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8331 #define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This) 8332 #define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This) 8333 /*** ID3D12Object methods ***/ 8334 #define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 8335 #define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 8336 #define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 8337 #define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name) 8338 /*** ID3D12DeviceChild methods ***/ 8339 #define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 8340 /*** ID3D12PipelineState methods ***/ 8341 #define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob) 8342 #else 8343 /*** IUnknown methods ***/ 8344 static inline HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) { 8345 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8346 } 8347 static inline ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) { 8348 return This->lpVtbl->AddRef(This); 8349 } 8350 static inline ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) { 8351 return This->lpVtbl->Release(This); 8352 } 8353 /*** ID3D12Object methods ***/ 8354 static inline HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) { 8355 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8356 } 8357 static inline HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) { 8358 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8359 } 8360 static inline HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) { 8361 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8362 } 8363 static inline HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) { 8364 return This->lpVtbl->SetName(This,name); 8365 } 8366 /*** ID3D12DeviceChild methods ***/ 8367 static inline HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) { 8368 return This->lpVtbl->GetDevice(This,riid,device); 8369 } 8370 /*** ID3D12PipelineState methods ***/ 8371 static inline HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) { 8372 return This->lpVtbl->GetCachedBlob(This,blob); 8373 } 8374 #endif 8375 #endif 8376 8377 #endif 8378 8379 8380 #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ 8381 8382 /***************************************************************************** 8383 * ID3D12Fence interface 8384 */ 8385 #ifndef __ID3D12Fence_INTERFACE_DEFINED__ 8386 #define __ID3D12Fence_INTERFACE_DEFINED__ 8387 8388 DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76); 8389 #if defined(__cplusplus) && !defined(CINTERFACE) 8390 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") 8391 ID3D12Fence : public ID3D12Pageable 8392 { 8393 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( 8394 ) = 0; 8395 8396 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( 8397 UINT64 value, 8398 HANDLE event) = 0; 8399 8400 virtual HRESULT STDMETHODCALLTYPE Signal( 8401 UINT64 value) = 0; 8402 8403 }; 8404 #ifdef __CRT_UUID_DECL 8405 __CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76) 8406 #endif 8407 #else 8408 typedef struct ID3D12FenceVtbl { 8409 BEGIN_INTERFACE 8410 8411 /*** IUnknown methods ***/ 8412 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8413 ID3D12Fence *This, 8414 REFIID riid, 8415 void **ppvObject); 8416 8417 ULONG (STDMETHODCALLTYPE *AddRef)( 8418 ID3D12Fence *This); 8419 8420 ULONG (STDMETHODCALLTYPE *Release)( 8421 ID3D12Fence *This); 8422 8423 /*** ID3D12Object methods ***/ 8424 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 8425 ID3D12Fence *This, 8426 REFGUID guid, 8427 UINT *data_size, 8428 void *data); 8429 8430 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 8431 ID3D12Fence *This, 8432 REFGUID guid, 8433 UINT data_size, 8434 const void *data); 8435 8436 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 8437 ID3D12Fence *This, 8438 REFGUID guid, 8439 const IUnknown *data); 8440 8441 HRESULT (STDMETHODCALLTYPE *SetName)( 8442 ID3D12Fence *This, 8443 const WCHAR *name); 8444 8445 /*** ID3D12DeviceChild methods ***/ 8446 HRESULT (STDMETHODCALLTYPE *GetDevice)( 8447 ID3D12Fence *This, 8448 REFIID riid, 8449 void **device); 8450 8451 /*** ID3D12Fence methods ***/ 8452 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)( 8453 ID3D12Fence *This); 8454 8455 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)( 8456 ID3D12Fence *This, 8457 UINT64 value, 8458 HANDLE event); 8459 8460 HRESULT (STDMETHODCALLTYPE *Signal)( 8461 ID3D12Fence *This, 8462 UINT64 value); 8463 8464 END_INTERFACE 8465 } ID3D12FenceVtbl; 8466 8467 interface ID3D12Fence { 8468 CONST_VTBL ID3D12FenceVtbl* lpVtbl; 8469 }; 8470 8471 #ifdef COBJMACROS 8472 #ifndef WIDL_C_INLINE_WRAPPERS 8473 /*** IUnknown methods ***/ 8474 #define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8475 #define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This) 8476 #define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This) 8477 /*** ID3D12Object methods ***/ 8478 #define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 8479 #define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 8480 #define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 8481 #define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name) 8482 /*** ID3D12DeviceChild methods ***/ 8483 #define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 8484 /*** ID3D12Fence methods ***/ 8485 #define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This) 8486 #define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event) 8487 #define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value) 8488 #else 8489 /*** IUnknown methods ***/ 8490 static inline HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) { 8491 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8492 } 8493 static inline ULONG ID3D12Fence_AddRef(ID3D12Fence* This) { 8494 return This->lpVtbl->AddRef(This); 8495 } 8496 static inline ULONG ID3D12Fence_Release(ID3D12Fence* This) { 8497 return This->lpVtbl->Release(This); 8498 } 8499 /*** ID3D12Object methods ***/ 8500 static inline HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) { 8501 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8502 } 8503 static inline HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) { 8504 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8505 } 8506 static inline HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) { 8507 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8508 } 8509 static inline HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) { 8510 return This->lpVtbl->SetName(This,name); 8511 } 8512 /*** ID3D12DeviceChild methods ***/ 8513 static inline HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) { 8514 return This->lpVtbl->GetDevice(This,riid,device); 8515 } 8516 /*** ID3D12Fence methods ***/ 8517 static inline UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) { 8518 return This->lpVtbl->GetCompletedValue(This); 8519 } 8520 static inline HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) { 8521 return This->lpVtbl->SetEventOnCompletion(This,value,event); 8522 } 8523 static inline HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) { 8524 return This->lpVtbl->Signal(This,value); 8525 } 8526 #endif 8527 #endif 8528 8529 #endif 8530 8531 8532 #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ 8533 8534 /***************************************************************************** 8535 * ID3D12Fence1 interface 8536 */ 8537 #ifndef __ID3D12Fence1_INTERFACE_DEFINED__ 8538 #define __ID3D12Fence1_INTERFACE_DEFINED__ 8539 8540 DEFINE_GUID(IID_ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); 8541 #if defined(__cplusplus) && !defined(CINTERFACE) 8542 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a") 8543 ID3D12Fence1 : public ID3D12Fence 8544 { 8545 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( 8546 ) = 0; 8547 8548 }; 8549 #ifdef __CRT_UUID_DECL 8550 __CRT_UUID_DECL(ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8,0xdb, 0xb5,0xb4,0xf4,0xdd,0x0e,0x4a) 8551 #endif 8552 #else 8553 typedef struct ID3D12Fence1Vtbl { 8554 BEGIN_INTERFACE 8555 8556 /*** IUnknown methods ***/ 8557 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8558 ID3D12Fence1 *This, 8559 REFIID riid, 8560 void **ppvObject); 8561 8562 ULONG (STDMETHODCALLTYPE *AddRef)( 8563 ID3D12Fence1 *This); 8564 8565 ULONG (STDMETHODCALLTYPE *Release)( 8566 ID3D12Fence1 *This); 8567 8568 /*** ID3D12Object methods ***/ 8569 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 8570 ID3D12Fence1 *This, 8571 REFGUID guid, 8572 UINT *data_size, 8573 void *data); 8574 8575 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 8576 ID3D12Fence1 *This, 8577 REFGUID guid, 8578 UINT data_size, 8579 const void *data); 8580 8581 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 8582 ID3D12Fence1 *This, 8583 REFGUID guid, 8584 const IUnknown *data); 8585 8586 HRESULT (STDMETHODCALLTYPE *SetName)( 8587 ID3D12Fence1 *This, 8588 const WCHAR *name); 8589 8590 /*** ID3D12DeviceChild methods ***/ 8591 HRESULT (STDMETHODCALLTYPE *GetDevice)( 8592 ID3D12Fence1 *This, 8593 REFIID riid, 8594 void **device); 8595 8596 /*** ID3D12Fence methods ***/ 8597 UINT64 (STDMETHODCALLTYPE *GetCompletedValue)( 8598 ID3D12Fence1 *This); 8599 8600 HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)( 8601 ID3D12Fence1 *This, 8602 UINT64 value, 8603 HANDLE event); 8604 8605 HRESULT (STDMETHODCALLTYPE *Signal)( 8606 ID3D12Fence1 *This, 8607 UINT64 value); 8608 8609 /*** ID3D12Fence1 methods ***/ 8610 D3D12_FENCE_FLAGS (STDMETHODCALLTYPE *GetCreationFlags)( 8611 ID3D12Fence1 *This); 8612 8613 END_INTERFACE 8614 } ID3D12Fence1Vtbl; 8615 8616 interface ID3D12Fence1 { 8617 CONST_VTBL ID3D12Fence1Vtbl* lpVtbl; 8618 }; 8619 8620 #ifdef COBJMACROS 8621 #ifndef WIDL_C_INLINE_WRAPPERS 8622 /*** IUnknown methods ***/ 8623 #define ID3D12Fence1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8624 #define ID3D12Fence1_AddRef(This) (This)->lpVtbl->AddRef(This) 8625 #define ID3D12Fence1_Release(This) (This)->lpVtbl->Release(This) 8626 /*** ID3D12Object methods ***/ 8627 #define ID3D12Fence1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 8628 #define ID3D12Fence1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 8629 #define ID3D12Fence1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 8630 #define ID3D12Fence1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 8631 /*** ID3D12DeviceChild methods ***/ 8632 #define ID3D12Fence1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 8633 /*** ID3D12Fence methods ***/ 8634 #define ID3D12Fence1_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This) 8635 #define ID3D12Fence1_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event) 8636 #define ID3D12Fence1_Signal(This,value) (This)->lpVtbl->Signal(This,value) 8637 /*** ID3D12Fence1 methods ***/ 8638 #define ID3D12Fence1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) 8639 #else 8640 /*** IUnknown methods ***/ 8641 static inline HRESULT ID3D12Fence1_QueryInterface(ID3D12Fence1* This,REFIID riid,void **ppvObject) { 8642 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8643 } 8644 static inline ULONG ID3D12Fence1_AddRef(ID3D12Fence1* This) { 8645 return This->lpVtbl->AddRef(This); 8646 } 8647 static inline ULONG ID3D12Fence1_Release(ID3D12Fence1* This) { 8648 return This->lpVtbl->Release(This); 8649 } 8650 /*** ID3D12Object methods ***/ 8651 static inline HRESULT ID3D12Fence1_GetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT *data_size,void *data) { 8652 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8653 } 8654 static inline HRESULT ID3D12Fence1_SetPrivateData(ID3D12Fence1* This,REFGUID guid,UINT data_size,const void *data) { 8655 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8656 } 8657 static inline HRESULT ID3D12Fence1_SetPrivateDataInterface(ID3D12Fence1* This,REFGUID guid,const IUnknown *data) { 8658 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8659 } 8660 static inline HRESULT ID3D12Fence1_SetName(ID3D12Fence1* This,const WCHAR *name) { 8661 return This->lpVtbl->SetName(This,name); 8662 } 8663 /*** ID3D12DeviceChild methods ***/ 8664 static inline HRESULT ID3D12Fence1_GetDevice(ID3D12Fence1* This,REFIID riid,void **device) { 8665 return This->lpVtbl->GetDevice(This,riid,device); 8666 } 8667 /*** ID3D12Fence methods ***/ 8668 static inline UINT64 ID3D12Fence1_GetCompletedValue(ID3D12Fence1* This) { 8669 return This->lpVtbl->GetCompletedValue(This); 8670 } 8671 static inline HRESULT ID3D12Fence1_SetEventOnCompletion(ID3D12Fence1* This,UINT64 value,HANDLE event) { 8672 return This->lpVtbl->SetEventOnCompletion(This,value,event); 8673 } 8674 static inline HRESULT ID3D12Fence1_Signal(ID3D12Fence1* This,UINT64 value) { 8675 return This->lpVtbl->Signal(This,value); 8676 } 8677 /*** ID3D12Fence1 methods ***/ 8678 static inline D3D12_FENCE_FLAGS ID3D12Fence1_GetCreationFlags(ID3D12Fence1* This) { 8679 return This->lpVtbl->GetCreationFlags(This); 8680 } 8681 #endif 8682 #endif 8683 8684 #endif 8685 8686 8687 #endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */ 8688 8689 /***************************************************************************** 8690 * ID3D12CommandAllocator interface 8691 */ 8692 #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ 8693 #define __ID3D12CommandAllocator_INTERFACE_DEFINED__ 8694 8695 DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24); 8696 #if defined(__cplusplus) && !defined(CINTERFACE) 8697 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") 8698 ID3D12CommandAllocator : public ID3D12Pageable 8699 { 8700 virtual HRESULT STDMETHODCALLTYPE Reset( 8701 ) = 0; 8702 8703 }; 8704 #ifdef __CRT_UUID_DECL 8705 __CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24) 8706 #endif 8707 #else 8708 typedef struct ID3D12CommandAllocatorVtbl { 8709 BEGIN_INTERFACE 8710 8711 /*** IUnknown methods ***/ 8712 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8713 ID3D12CommandAllocator *This, 8714 REFIID riid, 8715 void **ppvObject); 8716 8717 ULONG (STDMETHODCALLTYPE *AddRef)( 8718 ID3D12CommandAllocator *This); 8719 8720 ULONG (STDMETHODCALLTYPE *Release)( 8721 ID3D12CommandAllocator *This); 8722 8723 /*** ID3D12Object methods ***/ 8724 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 8725 ID3D12CommandAllocator *This, 8726 REFGUID guid, 8727 UINT *data_size, 8728 void *data); 8729 8730 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 8731 ID3D12CommandAllocator *This, 8732 REFGUID guid, 8733 UINT data_size, 8734 const void *data); 8735 8736 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 8737 ID3D12CommandAllocator *This, 8738 REFGUID guid, 8739 const IUnknown *data); 8740 8741 HRESULT (STDMETHODCALLTYPE *SetName)( 8742 ID3D12CommandAllocator *This, 8743 const WCHAR *name); 8744 8745 /*** ID3D12DeviceChild methods ***/ 8746 HRESULT (STDMETHODCALLTYPE *GetDevice)( 8747 ID3D12CommandAllocator *This, 8748 REFIID riid, 8749 void **device); 8750 8751 /*** ID3D12CommandAllocator methods ***/ 8752 HRESULT (STDMETHODCALLTYPE *Reset)( 8753 ID3D12CommandAllocator *This); 8754 8755 END_INTERFACE 8756 } ID3D12CommandAllocatorVtbl; 8757 8758 interface ID3D12CommandAllocator { 8759 CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl; 8760 }; 8761 8762 #ifdef COBJMACROS 8763 #ifndef WIDL_C_INLINE_WRAPPERS 8764 /*** IUnknown methods ***/ 8765 #define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8766 #define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) 8767 #define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This) 8768 /*** ID3D12Object methods ***/ 8769 #define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 8770 #define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 8771 #define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 8772 #define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name) 8773 /*** ID3D12DeviceChild methods ***/ 8774 #define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 8775 /*** ID3D12CommandAllocator methods ***/ 8776 #define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This) 8777 #else 8778 /*** IUnknown methods ***/ 8779 static inline HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) { 8780 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8781 } 8782 static inline ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) { 8783 return This->lpVtbl->AddRef(This); 8784 } 8785 static inline ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) { 8786 return This->lpVtbl->Release(This); 8787 } 8788 /*** ID3D12Object methods ***/ 8789 static inline HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) { 8790 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 8791 } 8792 static inline HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) { 8793 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 8794 } 8795 static inline HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) { 8796 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 8797 } 8798 static inline HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) { 8799 return This->lpVtbl->SetName(This,name); 8800 } 8801 /*** ID3D12DeviceChild methods ***/ 8802 static inline HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) { 8803 return This->lpVtbl->GetDevice(This,riid,device); 8804 } 8805 /*** ID3D12CommandAllocator methods ***/ 8806 static inline HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) { 8807 return This->lpVtbl->Reset(This); 8808 } 8809 #endif 8810 #endif 8811 8812 #endif 8813 8814 8815 #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ 8816 8817 /***************************************************************************** 8818 * ID3D12Device interface 8819 */ 8820 #ifndef __ID3D12Device_INTERFACE_DEFINED__ 8821 #define __ID3D12Device_INTERFACE_DEFINED__ 8822 8823 DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7); 8824 #if defined(__cplusplus) && !defined(CINTERFACE) 8825 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") 8826 ID3D12Device : public ID3D12Object 8827 { 8828 virtual UINT STDMETHODCALLTYPE GetNodeCount( 8829 ) = 0; 8830 8831 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( 8832 const D3D12_COMMAND_QUEUE_DESC *desc, 8833 REFIID riid, 8834 void **command_queue) = 0; 8835 8836 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( 8837 D3D12_COMMAND_LIST_TYPE type, 8838 REFIID riid, 8839 void **command_allocator) = 0; 8840 8841 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( 8842 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 8843 REFIID riid, 8844 void **pipeline_state) = 0; 8845 8846 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( 8847 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 8848 REFIID riid, 8849 void **pipeline_state) = 0; 8850 8851 virtual HRESULT STDMETHODCALLTYPE CreateCommandList( 8852 UINT node_mask, 8853 D3D12_COMMAND_LIST_TYPE type, 8854 ID3D12CommandAllocator *command_allocator, 8855 ID3D12PipelineState *initial_pipeline_state, 8856 REFIID riid, 8857 void **command_list) = 0; 8858 8859 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( 8860 D3D12_FEATURE feature, 8861 void *feature_data, 8862 UINT feature_data_size) = 0; 8863 8864 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( 8865 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 8866 REFIID riid, 8867 void **descriptor_heap) = 0; 8868 8869 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( 8870 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0; 8871 8872 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( 8873 UINT node_mask, 8874 const void *bytecode, 8875 SIZE_T bytecode_length, 8876 REFIID riid, 8877 void **root_signature) = 0; 8878 8879 virtual void STDMETHODCALLTYPE CreateConstantBufferView( 8880 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 8881 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8882 8883 virtual void STDMETHODCALLTYPE CreateShaderResourceView( 8884 ID3D12Resource *resource, 8885 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 8886 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8887 8888 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( 8889 ID3D12Resource *resource, 8890 ID3D12Resource *counter_resource, 8891 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 8892 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8893 8894 virtual void STDMETHODCALLTYPE CreateRenderTargetView( 8895 ID3D12Resource *resource, 8896 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 8897 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8898 8899 virtual void STDMETHODCALLTYPE CreateDepthStencilView( 8900 ID3D12Resource *resource, 8901 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 8902 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8903 8904 virtual void STDMETHODCALLTYPE CreateSampler( 8905 const D3D12_SAMPLER_DESC *desc, 8906 D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0; 8907 8908 virtual void STDMETHODCALLTYPE CopyDescriptors( 8909 UINT dst_descriptor_range_count, 8910 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 8911 const UINT *dst_descriptor_range_sizes, 8912 UINT src_descriptor_range_count, 8913 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 8914 const UINT *src_descriptor_range_sizes, 8915 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0; 8916 8917 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( 8918 UINT descriptor_count, 8919 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 8920 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 8921 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0; 8922 8923 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 8924 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo( 8925 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 8926 UINT visible_mask, 8927 UINT reource_desc_count, 8928 const D3D12_RESOURCE_DESC *resource_descs) = 0; 8929 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( 8930 UINT visible_mask, 8931 UINT reource_desc_count, 8932 const D3D12_RESOURCE_DESC *resource_descs) 8933 { 8934 D3D12_RESOURCE_ALLOCATION_INFO __ret; 8935 return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs); 8936 } 8937 #else 8938 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( 8939 UINT visible_mask, 8940 UINT reource_desc_count, 8941 const D3D12_RESOURCE_DESC *resource_descs) = 0; 8942 #endif 8943 8944 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 8945 virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties( 8946 D3D12_HEAP_PROPERTIES *__ret, 8947 UINT node_mask, 8948 D3D12_HEAP_TYPE heap_type) = 0; 8949 D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( 8950 UINT node_mask, 8951 D3D12_HEAP_TYPE heap_type) 8952 { 8953 D3D12_HEAP_PROPERTIES __ret; 8954 return *GetCustomHeapProperties(&__ret, node_mask, heap_type); 8955 } 8956 #else 8957 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( 8958 UINT node_mask, 8959 D3D12_HEAP_TYPE heap_type) = 0; 8960 #endif 8961 8962 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( 8963 const D3D12_HEAP_PROPERTIES *heap_properties, 8964 D3D12_HEAP_FLAGS heap_flags, 8965 const D3D12_RESOURCE_DESC *desc, 8966 D3D12_RESOURCE_STATES initial_state, 8967 const D3D12_CLEAR_VALUE *optimized_clear_value, 8968 REFIID riid, 8969 void **resource) = 0; 8970 8971 virtual HRESULT STDMETHODCALLTYPE CreateHeap( 8972 const D3D12_HEAP_DESC *desc, 8973 REFIID riid, 8974 void **heap) = 0; 8975 8976 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( 8977 ID3D12Heap *heap, 8978 UINT64 heap_offset, 8979 const D3D12_RESOURCE_DESC *desc, 8980 D3D12_RESOURCE_STATES initial_state, 8981 const D3D12_CLEAR_VALUE *optimized_clear_value, 8982 REFIID riid, 8983 void **resource) = 0; 8984 8985 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( 8986 const D3D12_RESOURCE_DESC *desc, 8987 D3D12_RESOURCE_STATES initial_state, 8988 const D3D12_CLEAR_VALUE *optimized_clear_value, 8989 REFIID riid, 8990 void **resource) = 0; 8991 8992 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( 8993 ID3D12DeviceChild *object, 8994 const SECURITY_ATTRIBUTES *attributes, 8995 DWORD access, 8996 const WCHAR *name, 8997 HANDLE *handle) = 0; 8998 8999 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( 9000 HANDLE handle, 9001 REFIID riid, 9002 void **object) = 0; 9003 9004 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( 9005 const WCHAR *name, 9006 DWORD access, 9007 HANDLE *handle) = 0; 9008 9009 virtual HRESULT STDMETHODCALLTYPE MakeResident( 9010 UINT object_count, 9011 ID3D12Pageable *const *objects) = 0; 9012 9013 virtual HRESULT STDMETHODCALLTYPE Evict( 9014 UINT object_count, 9015 ID3D12Pageable *const *objects) = 0; 9016 9017 virtual HRESULT STDMETHODCALLTYPE CreateFence( 9018 UINT64 initial_value, 9019 D3D12_FENCE_FLAGS flags, 9020 REFIID riid, 9021 void **fence) = 0; 9022 9023 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( 9024 ) = 0; 9025 9026 virtual void STDMETHODCALLTYPE GetCopyableFootprints( 9027 const D3D12_RESOURCE_DESC *desc, 9028 UINT first_sub_resource, 9029 UINT sub_resource_count, 9030 UINT64 base_offset, 9031 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 9032 UINT *row_count, 9033 UINT64 *row_size, 9034 UINT64 *total_bytes) = 0; 9035 9036 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( 9037 const D3D12_QUERY_HEAP_DESC *desc, 9038 REFIID riid, 9039 void **heap) = 0; 9040 9041 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( 9042 WINBOOL enable) = 0; 9043 9044 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( 9045 const D3D12_COMMAND_SIGNATURE_DESC *desc, 9046 ID3D12RootSignature *root_signature, 9047 REFIID riid, 9048 void **command_signature) = 0; 9049 9050 virtual void STDMETHODCALLTYPE GetResourceTiling( 9051 ID3D12Resource *resource, 9052 UINT *total_tile_count, 9053 D3D12_PACKED_MIP_INFO *packed_mip_info, 9054 D3D12_TILE_SHAPE *standard_tile_shape, 9055 UINT *sub_resource_tiling_count, 9056 UINT first_sub_resource_tiling, 9057 D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0; 9058 9059 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 9060 virtual LUID* STDMETHODCALLTYPE GetAdapterLuid( 9061 LUID *__ret) = 0; 9062 LUID STDMETHODCALLTYPE GetAdapterLuid( 9063 ) 9064 { 9065 LUID __ret; 9066 return *GetAdapterLuid(&__ret); 9067 } 9068 #else 9069 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( 9070 ) = 0; 9071 #endif 9072 9073 }; 9074 #ifdef __CRT_UUID_DECL 9075 __CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7) 9076 #endif 9077 #else 9078 typedef struct ID3D12DeviceVtbl { 9079 BEGIN_INTERFACE 9080 9081 /*** IUnknown methods ***/ 9082 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9083 ID3D12Device *This, 9084 REFIID riid, 9085 void **ppvObject); 9086 9087 ULONG (STDMETHODCALLTYPE *AddRef)( 9088 ID3D12Device *This); 9089 9090 ULONG (STDMETHODCALLTYPE *Release)( 9091 ID3D12Device *This); 9092 9093 /*** ID3D12Object methods ***/ 9094 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 9095 ID3D12Device *This, 9096 REFGUID guid, 9097 UINT *data_size, 9098 void *data); 9099 9100 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 9101 ID3D12Device *This, 9102 REFGUID guid, 9103 UINT data_size, 9104 const void *data); 9105 9106 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 9107 ID3D12Device *This, 9108 REFGUID guid, 9109 const IUnknown *data); 9110 9111 HRESULT (STDMETHODCALLTYPE *SetName)( 9112 ID3D12Device *This, 9113 const WCHAR *name); 9114 9115 /*** ID3D12Device methods ***/ 9116 UINT (STDMETHODCALLTYPE *GetNodeCount)( 9117 ID3D12Device *This); 9118 9119 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 9120 ID3D12Device *This, 9121 const D3D12_COMMAND_QUEUE_DESC *desc, 9122 REFIID riid, 9123 void **command_queue); 9124 9125 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 9126 ID3D12Device *This, 9127 D3D12_COMMAND_LIST_TYPE type, 9128 REFIID riid, 9129 void **command_allocator); 9130 9131 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 9132 ID3D12Device *This, 9133 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 9134 REFIID riid, 9135 void **pipeline_state); 9136 9137 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 9138 ID3D12Device *This, 9139 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 9140 REFIID riid, 9141 void **pipeline_state); 9142 9143 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 9144 ID3D12Device *This, 9145 UINT node_mask, 9146 D3D12_COMMAND_LIST_TYPE type, 9147 ID3D12CommandAllocator *command_allocator, 9148 ID3D12PipelineState *initial_pipeline_state, 9149 REFIID riid, 9150 void **command_list); 9151 9152 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 9153 ID3D12Device *This, 9154 D3D12_FEATURE feature, 9155 void *feature_data, 9156 UINT feature_data_size); 9157 9158 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 9159 ID3D12Device *This, 9160 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 9161 REFIID riid, 9162 void **descriptor_heap); 9163 9164 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 9165 ID3D12Device *This, 9166 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 9167 9168 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 9169 ID3D12Device *This, 9170 UINT node_mask, 9171 const void *bytecode, 9172 SIZE_T bytecode_length, 9173 REFIID riid, 9174 void **root_signature); 9175 9176 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 9177 ID3D12Device *This, 9178 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 9179 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9180 9181 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 9182 ID3D12Device *This, 9183 ID3D12Resource *resource, 9184 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 9185 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9186 9187 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 9188 ID3D12Device *This, 9189 ID3D12Resource *resource, 9190 ID3D12Resource *counter_resource, 9191 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 9192 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9193 9194 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 9195 ID3D12Device *This, 9196 ID3D12Resource *resource, 9197 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 9198 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9199 9200 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 9201 ID3D12Device *This, 9202 ID3D12Resource *resource, 9203 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 9204 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9205 9206 void (STDMETHODCALLTYPE *CreateSampler)( 9207 ID3D12Device *This, 9208 const D3D12_SAMPLER_DESC *desc, 9209 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 9210 9211 void (STDMETHODCALLTYPE *CopyDescriptors)( 9212 ID3D12Device *This, 9213 UINT dst_descriptor_range_count, 9214 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 9215 const UINT *dst_descriptor_range_sizes, 9216 UINT src_descriptor_range_count, 9217 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 9218 const UINT *src_descriptor_range_sizes, 9219 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 9220 9221 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 9222 ID3D12Device *This, 9223 UINT descriptor_count, 9224 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 9225 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 9226 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 9227 9228 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 9229 ID3D12Device *This, 9230 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 9231 UINT visible_mask, 9232 UINT reource_desc_count, 9233 const D3D12_RESOURCE_DESC *resource_descs); 9234 9235 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 9236 ID3D12Device *This, 9237 D3D12_HEAP_PROPERTIES *__ret, 9238 UINT node_mask, 9239 D3D12_HEAP_TYPE heap_type); 9240 9241 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 9242 ID3D12Device *This, 9243 const D3D12_HEAP_PROPERTIES *heap_properties, 9244 D3D12_HEAP_FLAGS heap_flags, 9245 const D3D12_RESOURCE_DESC *desc, 9246 D3D12_RESOURCE_STATES initial_state, 9247 const D3D12_CLEAR_VALUE *optimized_clear_value, 9248 REFIID riid, 9249 void **resource); 9250 9251 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 9252 ID3D12Device *This, 9253 const D3D12_HEAP_DESC *desc, 9254 REFIID riid, 9255 void **heap); 9256 9257 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 9258 ID3D12Device *This, 9259 ID3D12Heap *heap, 9260 UINT64 heap_offset, 9261 const D3D12_RESOURCE_DESC *desc, 9262 D3D12_RESOURCE_STATES initial_state, 9263 const D3D12_CLEAR_VALUE *optimized_clear_value, 9264 REFIID riid, 9265 void **resource); 9266 9267 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 9268 ID3D12Device *This, 9269 const D3D12_RESOURCE_DESC *desc, 9270 D3D12_RESOURCE_STATES initial_state, 9271 const D3D12_CLEAR_VALUE *optimized_clear_value, 9272 REFIID riid, 9273 void **resource); 9274 9275 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 9276 ID3D12Device *This, 9277 ID3D12DeviceChild *object, 9278 const SECURITY_ATTRIBUTES *attributes, 9279 DWORD access, 9280 const WCHAR *name, 9281 HANDLE *handle); 9282 9283 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 9284 ID3D12Device *This, 9285 HANDLE handle, 9286 REFIID riid, 9287 void **object); 9288 9289 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 9290 ID3D12Device *This, 9291 const WCHAR *name, 9292 DWORD access, 9293 HANDLE *handle); 9294 9295 HRESULT (STDMETHODCALLTYPE *MakeResident)( 9296 ID3D12Device *This, 9297 UINT object_count, 9298 ID3D12Pageable *const *objects); 9299 9300 HRESULT (STDMETHODCALLTYPE *Evict)( 9301 ID3D12Device *This, 9302 UINT object_count, 9303 ID3D12Pageable *const *objects); 9304 9305 HRESULT (STDMETHODCALLTYPE *CreateFence)( 9306 ID3D12Device *This, 9307 UINT64 initial_value, 9308 D3D12_FENCE_FLAGS flags, 9309 REFIID riid, 9310 void **fence); 9311 9312 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 9313 ID3D12Device *This); 9314 9315 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 9316 ID3D12Device *This, 9317 const D3D12_RESOURCE_DESC *desc, 9318 UINT first_sub_resource, 9319 UINT sub_resource_count, 9320 UINT64 base_offset, 9321 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 9322 UINT *row_count, 9323 UINT64 *row_size, 9324 UINT64 *total_bytes); 9325 9326 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 9327 ID3D12Device *This, 9328 const D3D12_QUERY_HEAP_DESC *desc, 9329 REFIID riid, 9330 void **heap); 9331 9332 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 9333 ID3D12Device *This, 9334 WINBOOL enable); 9335 9336 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 9337 ID3D12Device *This, 9338 const D3D12_COMMAND_SIGNATURE_DESC *desc, 9339 ID3D12RootSignature *root_signature, 9340 REFIID riid, 9341 void **command_signature); 9342 9343 void (STDMETHODCALLTYPE *GetResourceTiling)( 9344 ID3D12Device *This, 9345 ID3D12Resource *resource, 9346 UINT *total_tile_count, 9347 D3D12_PACKED_MIP_INFO *packed_mip_info, 9348 D3D12_TILE_SHAPE *standard_tile_shape, 9349 UINT *sub_resource_tiling_count, 9350 UINT first_sub_resource_tiling, 9351 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 9352 9353 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 9354 ID3D12Device *This, 9355 LUID *__ret); 9356 9357 END_INTERFACE 9358 } ID3D12DeviceVtbl; 9359 9360 interface ID3D12Device { 9361 CONST_VTBL ID3D12DeviceVtbl* lpVtbl; 9362 }; 9363 9364 #ifdef COBJMACROS 9365 #ifndef WIDL_C_INLINE_WRAPPERS 9366 /*** IUnknown methods ***/ 9367 #define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9368 #define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This) 9369 #define ID3D12Device_Release(This) (This)->lpVtbl->Release(This) 9370 /*** ID3D12Object methods ***/ 9371 #define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 9372 #define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 9373 #define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 9374 #define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name) 9375 /*** ID3D12Device methods ***/ 9376 #define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 9377 #define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 9378 #define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 9379 #define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 9380 #define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 9381 #define ID3D12Device_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 9382 #define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 9383 #define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 9384 #define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 9385 #define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 9386 #define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 9387 #define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 9388 #define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 9389 #define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 9390 #define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 9391 #define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 9392 #define ID3D12Device_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 9393 #define ID3D12Device_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 9394 #define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 9395 #define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 9396 #define ID3D12Device_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 9397 #define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 9398 #define ID3D12Device_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 9399 #define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 9400 #define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 9401 #define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 9402 #define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 9403 #define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 9404 #define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 9405 #define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 9406 #define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 9407 #define ID3D12Device_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 9408 #define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 9409 #define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 9410 #define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 9411 #define ID3D12Device_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 9412 #define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 9413 #else 9414 /*** IUnknown methods ***/ 9415 static inline HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) { 9416 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9417 } 9418 static inline ULONG ID3D12Device_AddRef(ID3D12Device* This) { 9419 return This->lpVtbl->AddRef(This); 9420 } 9421 static inline ULONG ID3D12Device_Release(ID3D12Device* This) { 9422 return This->lpVtbl->Release(This); 9423 } 9424 /*** ID3D12Object methods ***/ 9425 static inline HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) { 9426 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 9427 } 9428 static inline HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) { 9429 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 9430 } 9431 static inline HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) { 9432 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 9433 } 9434 static inline HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) { 9435 return This->lpVtbl->SetName(This,name); 9436 } 9437 /*** ID3D12Device methods ***/ 9438 static inline UINT ID3D12Device_GetNodeCount(ID3D12Device* This) { 9439 return This->lpVtbl->GetNodeCount(This); 9440 } 9441 static inline HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 9442 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 9443 } 9444 static inline HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 9445 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 9446 } 9447 static inline HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9448 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 9449 } 9450 static inline HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9451 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 9452 } 9453 static inline HRESULT ID3D12Device_CreateCommandList(ID3D12Device* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 9454 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 9455 } 9456 static inline HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 9457 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 9458 } 9459 static inline HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 9460 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 9461 } 9462 static inline UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 9463 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 9464 } 9465 static inline HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 9466 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 9467 } 9468 static inline void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9469 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 9470 } 9471 static inline void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9472 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 9473 } 9474 static inline void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9475 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 9476 } 9477 static inline void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9478 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 9479 } 9480 static inline void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9481 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 9482 } 9483 static inline void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 9484 This->lpVtbl->CreateSampler(This,desc,descriptor); 9485 } 9486 static inline void ID3D12Device_CopyDescriptors(ID3D12Device* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 9487 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 9488 } 9489 static inline void ID3D12Device_CopyDescriptorsSimple(ID3D12Device* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 9490 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 9491 } 9492 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 9493 D3D12_RESOURCE_ALLOCATION_INFO __ret; 9494 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 9495 } 9496 static inline D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 9497 D3D12_HEAP_PROPERTIES __ret; 9498 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 9499 } 9500 static inline HRESULT ID3D12Device_CreateCommittedResource(ID3D12Device* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 9501 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 9502 } 9503 static inline HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 9504 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 9505 } 9506 static inline HRESULT ID3D12Device_CreatePlacedResource(ID3D12Device* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 9507 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 9508 } 9509 static inline HRESULT ID3D12Device_CreateReservedResource(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 9510 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 9511 } 9512 static inline HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 9513 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 9514 } 9515 static inline HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) { 9516 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 9517 } 9518 static inline HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) { 9519 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 9520 } 9521 static inline HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) { 9522 return This->lpVtbl->MakeResident(This,object_count,objects); 9523 } 9524 static inline HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) { 9525 return This->lpVtbl->Evict(This,object_count,objects); 9526 } 9527 static inline HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 9528 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 9529 } 9530 static inline HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) { 9531 return This->lpVtbl->GetDeviceRemovedReason(This); 9532 } 9533 static inline void ID3D12Device_GetCopyableFootprints(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 9534 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 9535 } 9536 static inline HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 9537 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 9538 } 9539 static inline HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) { 9540 return This->lpVtbl->SetStablePowerState(This,enable); 9541 } 9542 static inline HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 9543 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 9544 } 9545 static inline void ID3D12Device_GetResourceTiling(ID3D12Device* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 9546 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 9547 } 9548 static inline LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) { 9549 LUID __ret; 9550 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 9551 } 9552 #endif 9553 #endif 9554 9555 #endif 9556 9557 9558 #endif /* __ID3D12Device_INTERFACE_DEFINED__ */ 9559 9560 /***************************************************************************** 9561 * ID3D12PipelineLibrary interface 9562 */ 9563 #ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__ 9564 #define __ID3D12PipelineLibrary_INTERFACE_DEFINED__ 9565 9566 DEFINE_GUID(IID_ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f); 9567 #if defined(__cplusplus) && !defined(CINTERFACE) 9568 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f") 9569 ID3D12PipelineLibrary : public ID3D12DeviceChild 9570 { 9571 virtual HRESULT STDMETHODCALLTYPE StorePipeline( 9572 const WCHAR *name, 9573 ID3D12PipelineState *pipeline) = 0; 9574 9575 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline( 9576 const WCHAR *name, 9577 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 9578 REFIID riid, 9579 void **pipeline_state) = 0; 9580 9581 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline( 9582 const WCHAR *name, 9583 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 9584 REFIID riid, 9585 void **pipeline_state) = 0; 9586 9587 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( 9588 ) = 0; 9589 9590 virtual HRESULT STDMETHODCALLTYPE Serialize( 9591 void *data, 9592 SIZE_T data_size_in_bytes) = 0; 9593 9594 }; 9595 #ifdef __CRT_UUID_DECL 9596 __CRT_UUID_DECL(ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4,0xcc, 0x53,0xfb,0x9f,0xf7,0x41,0x4f) 9597 #endif 9598 #else 9599 typedef struct ID3D12PipelineLibraryVtbl { 9600 BEGIN_INTERFACE 9601 9602 /*** IUnknown methods ***/ 9603 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9604 ID3D12PipelineLibrary *This, 9605 REFIID riid, 9606 void **ppvObject); 9607 9608 ULONG (STDMETHODCALLTYPE *AddRef)( 9609 ID3D12PipelineLibrary *This); 9610 9611 ULONG (STDMETHODCALLTYPE *Release)( 9612 ID3D12PipelineLibrary *This); 9613 9614 /*** ID3D12Object methods ***/ 9615 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 9616 ID3D12PipelineLibrary *This, 9617 REFGUID guid, 9618 UINT *data_size, 9619 void *data); 9620 9621 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 9622 ID3D12PipelineLibrary *This, 9623 REFGUID guid, 9624 UINT data_size, 9625 const void *data); 9626 9627 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 9628 ID3D12PipelineLibrary *This, 9629 REFGUID guid, 9630 const IUnknown *data); 9631 9632 HRESULT (STDMETHODCALLTYPE *SetName)( 9633 ID3D12PipelineLibrary *This, 9634 const WCHAR *name); 9635 9636 /*** ID3D12DeviceChild methods ***/ 9637 HRESULT (STDMETHODCALLTYPE *GetDevice)( 9638 ID3D12PipelineLibrary *This, 9639 REFIID riid, 9640 void **device); 9641 9642 /*** ID3D12PipelineLibrary methods ***/ 9643 HRESULT (STDMETHODCALLTYPE *StorePipeline)( 9644 ID3D12PipelineLibrary *This, 9645 const WCHAR *name, 9646 ID3D12PipelineState *pipeline); 9647 9648 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)( 9649 ID3D12PipelineLibrary *This, 9650 const WCHAR *name, 9651 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 9652 REFIID riid, 9653 void **pipeline_state); 9654 9655 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)( 9656 ID3D12PipelineLibrary *This, 9657 const WCHAR *name, 9658 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 9659 REFIID riid, 9660 void **pipeline_state); 9661 9662 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)( 9663 ID3D12PipelineLibrary *This); 9664 9665 HRESULT (STDMETHODCALLTYPE *Serialize)( 9666 ID3D12PipelineLibrary *This, 9667 void *data, 9668 SIZE_T data_size_in_bytes); 9669 9670 END_INTERFACE 9671 } ID3D12PipelineLibraryVtbl; 9672 9673 interface ID3D12PipelineLibrary { 9674 CONST_VTBL ID3D12PipelineLibraryVtbl* lpVtbl; 9675 }; 9676 9677 #ifdef COBJMACROS 9678 #ifndef WIDL_C_INLINE_WRAPPERS 9679 /*** IUnknown methods ***/ 9680 #define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9681 #define ID3D12PipelineLibrary_AddRef(This) (This)->lpVtbl->AddRef(This) 9682 #define ID3D12PipelineLibrary_Release(This) (This)->lpVtbl->Release(This) 9683 /*** ID3D12Object methods ***/ 9684 #define ID3D12PipelineLibrary_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 9685 #define ID3D12PipelineLibrary_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 9686 #define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 9687 #define ID3D12PipelineLibrary_SetName(This,name) (This)->lpVtbl->SetName(This,name) 9688 /*** ID3D12DeviceChild methods ***/ 9689 #define ID3D12PipelineLibrary_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 9690 /*** ID3D12PipelineLibrary methods ***/ 9691 #define ID3D12PipelineLibrary_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline) 9692 #define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) 9693 #define ID3D12PipelineLibrary_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state) 9694 #define ID3D12PipelineLibrary_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This) 9695 #define ID3D12PipelineLibrary_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes) 9696 #else 9697 /*** IUnknown methods ***/ 9698 static inline HRESULT ID3D12PipelineLibrary_QueryInterface(ID3D12PipelineLibrary* This,REFIID riid,void **ppvObject) { 9699 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9700 } 9701 static inline ULONG ID3D12PipelineLibrary_AddRef(ID3D12PipelineLibrary* This) { 9702 return This->lpVtbl->AddRef(This); 9703 } 9704 static inline ULONG ID3D12PipelineLibrary_Release(ID3D12PipelineLibrary* This) { 9705 return This->lpVtbl->Release(This); 9706 } 9707 /*** ID3D12Object methods ***/ 9708 static inline HRESULT ID3D12PipelineLibrary_GetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT *data_size,void *data) { 9709 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 9710 } 9711 static inline HRESULT ID3D12PipelineLibrary_SetPrivateData(ID3D12PipelineLibrary* This,REFGUID guid,UINT data_size,const void *data) { 9712 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 9713 } 9714 static inline HRESULT ID3D12PipelineLibrary_SetPrivateDataInterface(ID3D12PipelineLibrary* This,REFGUID guid,const IUnknown *data) { 9715 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 9716 } 9717 static inline HRESULT ID3D12PipelineLibrary_SetName(ID3D12PipelineLibrary* This,const WCHAR *name) { 9718 return This->lpVtbl->SetName(This,name); 9719 } 9720 /*** ID3D12DeviceChild methods ***/ 9721 static inline HRESULT ID3D12PipelineLibrary_GetDevice(ID3D12PipelineLibrary* This,REFIID riid,void **device) { 9722 return This->lpVtbl->GetDevice(This,riid,device); 9723 } 9724 /*** ID3D12PipelineLibrary methods ***/ 9725 static inline HRESULT ID3D12PipelineLibrary_StorePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,ID3D12PipelineState *pipeline) { 9726 return This->lpVtbl->StorePipeline(This,name,pipeline); 9727 } 9728 static inline HRESULT ID3D12PipelineLibrary_LoadGraphicsPipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9729 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state); 9730 } 9731 static inline HRESULT ID3D12PipelineLibrary_LoadComputePipeline(ID3D12PipelineLibrary* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9732 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state); 9733 } 9734 static inline SIZE_T ID3D12PipelineLibrary_GetSerializedSize(ID3D12PipelineLibrary* This) { 9735 return This->lpVtbl->GetSerializedSize(This); 9736 } 9737 static inline HRESULT ID3D12PipelineLibrary_Serialize(ID3D12PipelineLibrary* This,void *data,SIZE_T data_size_in_bytes) { 9738 return This->lpVtbl->Serialize(This,data,data_size_in_bytes); 9739 } 9740 #endif 9741 #endif 9742 9743 #endif 9744 9745 9746 #endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */ 9747 9748 /***************************************************************************** 9749 * ID3D12PipelineLibrary1 interface 9750 */ 9751 #ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ 9752 #define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ 9753 9754 DEFINE_GUID(IID_ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3); 9755 #if defined(__cplusplus) && !defined(CINTERFACE) 9756 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3") 9757 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary 9758 { 9759 virtual HRESULT STDMETHODCALLTYPE LoadPipeline( 9760 const WCHAR *name, 9761 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 9762 REFIID riid, 9763 void **pipeline_state) = 0; 9764 9765 }; 9766 #ifdef __CRT_UUID_DECL 9767 __CRT_UUID_DECL(ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd,0x82, 0xc3,0x7f,0x86,0x96,0x1d,0xc3) 9768 #endif 9769 #else 9770 typedef struct ID3D12PipelineLibrary1Vtbl { 9771 BEGIN_INTERFACE 9772 9773 /*** IUnknown methods ***/ 9774 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9775 ID3D12PipelineLibrary1 *This, 9776 REFIID riid, 9777 void **ppvObject); 9778 9779 ULONG (STDMETHODCALLTYPE *AddRef)( 9780 ID3D12PipelineLibrary1 *This); 9781 9782 ULONG (STDMETHODCALLTYPE *Release)( 9783 ID3D12PipelineLibrary1 *This); 9784 9785 /*** ID3D12Object methods ***/ 9786 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 9787 ID3D12PipelineLibrary1 *This, 9788 REFGUID guid, 9789 UINT *data_size, 9790 void *data); 9791 9792 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 9793 ID3D12PipelineLibrary1 *This, 9794 REFGUID guid, 9795 UINT data_size, 9796 const void *data); 9797 9798 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 9799 ID3D12PipelineLibrary1 *This, 9800 REFGUID guid, 9801 const IUnknown *data); 9802 9803 HRESULT (STDMETHODCALLTYPE *SetName)( 9804 ID3D12PipelineLibrary1 *This, 9805 const WCHAR *name); 9806 9807 /*** ID3D12DeviceChild methods ***/ 9808 HRESULT (STDMETHODCALLTYPE *GetDevice)( 9809 ID3D12PipelineLibrary1 *This, 9810 REFIID riid, 9811 void **device); 9812 9813 /*** ID3D12PipelineLibrary methods ***/ 9814 HRESULT (STDMETHODCALLTYPE *StorePipeline)( 9815 ID3D12PipelineLibrary1 *This, 9816 const WCHAR *name, 9817 ID3D12PipelineState *pipeline); 9818 9819 HRESULT (STDMETHODCALLTYPE *LoadGraphicsPipeline)( 9820 ID3D12PipelineLibrary1 *This, 9821 const WCHAR *name, 9822 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 9823 REFIID riid, 9824 void **pipeline_state); 9825 9826 HRESULT (STDMETHODCALLTYPE *LoadComputePipeline)( 9827 ID3D12PipelineLibrary1 *This, 9828 const WCHAR *name, 9829 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 9830 REFIID riid, 9831 void **pipeline_state); 9832 9833 SIZE_T (STDMETHODCALLTYPE *GetSerializedSize)( 9834 ID3D12PipelineLibrary1 *This); 9835 9836 HRESULT (STDMETHODCALLTYPE *Serialize)( 9837 ID3D12PipelineLibrary1 *This, 9838 void *data, 9839 SIZE_T data_size_in_bytes); 9840 9841 /*** ID3D12PipelineLibrary1 methods ***/ 9842 HRESULT (STDMETHODCALLTYPE *LoadPipeline)( 9843 ID3D12PipelineLibrary1 *This, 9844 const WCHAR *name, 9845 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 9846 REFIID riid, 9847 void **pipeline_state); 9848 9849 END_INTERFACE 9850 } ID3D12PipelineLibrary1Vtbl; 9851 9852 interface ID3D12PipelineLibrary1 { 9853 CONST_VTBL ID3D12PipelineLibrary1Vtbl* lpVtbl; 9854 }; 9855 9856 #ifdef COBJMACROS 9857 #ifndef WIDL_C_INLINE_WRAPPERS 9858 /*** IUnknown methods ***/ 9859 #define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9860 #define ID3D12PipelineLibrary1_AddRef(This) (This)->lpVtbl->AddRef(This) 9861 #define ID3D12PipelineLibrary1_Release(This) (This)->lpVtbl->Release(This) 9862 /*** ID3D12Object methods ***/ 9863 #define ID3D12PipelineLibrary1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 9864 #define ID3D12PipelineLibrary1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 9865 #define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 9866 #define ID3D12PipelineLibrary1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 9867 /*** ID3D12DeviceChild methods ***/ 9868 #define ID3D12PipelineLibrary1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 9869 /*** ID3D12PipelineLibrary methods ***/ 9870 #define ID3D12PipelineLibrary1_StorePipeline(This,name,pipeline) (This)->lpVtbl->StorePipeline(This,name,pipeline) 9871 #define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state) 9872 #define ID3D12PipelineLibrary1_LoadComputePipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state) 9873 #define ID3D12PipelineLibrary1_GetSerializedSize(This) (This)->lpVtbl->GetSerializedSize(This) 9874 #define ID3D12PipelineLibrary1_Serialize(This,data,data_size_in_bytes) (This)->lpVtbl->Serialize(This,data,data_size_in_bytes) 9875 /*** ID3D12PipelineLibrary1 methods ***/ 9876 #define ID3D12PipelineLibrary1_LoadPipeline(This,name,desc,riid,pipeline_state) (This)->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state) 9877 #else 9878 /*** IUnknown methods ***/ 9879 static inline HRESULT ID3D12PipelineLibrary1_QueryInterface(ID3D12PipelineLibrary1* This,REFIID riid,void **ppvObject) { 9880 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9881 } 9882 static inline ULONG ID3D12PipelineLibrary1_AddRef(ID3D12PipelineLibrary1* This) { 9883 return This->lpVtbl->AddRef(This); 9884 } 9885 static inline ULONG ID3D12PipelineLibrary1_Release(ID3D12PipelineLibrary1* This) { 9886 return This->lpVtbl->Release(This); 9887 } 9888 /*** ID3D12Object methods ***/ 9889 static inline HRESULT ID3D12PipelineLibrary1_GetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT *data_size,void *data) { 9890 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 9891 } 9892 static inline HRESULT ID3D12PipelineLibrary1_SetPrivateData(ID3D12PipelineLibrary1* This,REFGUID guid,UINT data_size,const void *data) { 9893 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 9894 } 9895 static inline HRESULT ID3D12PipelineLibrary1_SetPrivateDataInterface(ID3D12PipelineLibrary1* This,REFGUID guid,const IUnknown *data) { 9896 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 9897 } 9898 static inline HRESULT ID3D12PipelineLibrary1_SetName(ID3D12PipelineLibrary1* This,const WCHAR *name) { 9899 return This->lpVtbl->SetName(This,name); 9900 } 9901 /*** ID3D12DeviceChild methods ***/ 9902 static inline HRESULT ID3D12PipelineLibrary1_GetDevice(ID3D12PipelineLibrary1* This,REFIID riid,void **device) { 9903 return This->lpVtbl->GetDevice(This,riid,device); 9904 } 9905 /*** ID3D12PipelineLibrary methods ***/ 9906 static inline HRESULT ID3D12PipelineLibrary1_StorePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,ID3D12PipelineState *pipeline) { 9907 return This->lpVtbl->StorePipeline(This,name,pipeline); 9908 } 9909 static inline HRESULT ID3D12PipelineLibrary1_LoadGraphicsPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9910 return This->lpVtbl->LoadGraphicsPipeline(This,name,desc,riid,pipeline_state); 9911 } 9912 static inline HRESULT ID3D12PipelineLibrary1_LoadComputePipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 9913 return This->lpVtbl->LoadComputePipeline(This,name,desc,riid,pipeline_state); 9914 } 9915 static inline SIZE_T ID3D12PipelineLibrary1_GetSerializedSize(ID3D12PipelineLibrary1* This) { 9916 return This->lpVtbl->GetSerializedSize(This); 9917 } 9918 static inline HRESULT ID3D12PipelineLibrary1_Serialize(ID3D12PipelineLibrary1* This,void *data,SIZE_T data_size_in_bytes) { 9919 return This->lpVtbl->Serialize(This,data,data_size_in_bytes); 9920 } 9921 /*** ID3D12PipelineLibrary1 methods ***/ 9922 static inline HRESULT ID3D12PipelineLibrary1_LoadPipeline(ID3D12PipelineLibrary1* This,const WCHAR *name,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 9923 return This->lpVtbl->LoadPipeline(This,name,desc,riid,pipeline_state); 9924 } 9925 #endif 9926 #endif 9927 9928 #endif 9929 9930 9931 #endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ 9932 9933 /***************************************************************************** 9934 * ID3D12Device1 interface 9935 */ 9936 #ifndef __ID3D12Device1_INTERFACE_DEFINED__ 9937 #define __ID3D12Device1_INTERFACE_DEFINED__ 9938 9939 DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e); 9940 #if defined(__cplusplus) && !defined(CINTERFACE) 9941 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e") 9942 ID3D12Device1 : public ID3D12Device 9943 { 9944 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary( 9945 const void *blob, 9946 SIZE_T blob_size, 9947 REFIID iid, 9948 void **lib) = 0; 9949 9950 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion( 9951 ID3D12Fence *const *fences, 9952 const UINT64 *values, 9953 UINT fence_count, 9954 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 9955 HANDLE event) = 0; 9956 9957 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority( 9958 UINT object_count, 9959 ID3D12Pageable *const *objects, 9960 const D3D12_RESIDENCY_PRIORITY *priorities) = 0; 9961 9962 }; 9963 #ifdef __CRT_UUID_DECL 9964 __CRT_UUID_DECL(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e) 9965 #endif 9966 #else 9967 typedef struct ID3D12Device1Vtbl { 9968 BEGIN_INTERFACE 9969 9970 /*** IUnknown methods ***/ 9971 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9972 ID3D12Device1 *This, 9973 REFIID riid, 9974 void **ppvObject); 9975 9976 ULONG (STDMETHODCALLTYPE *AddRef)( 9977 ID3D12Device1 *This); 9978 9979 ULONG (STDMETHODCALLTYPE *Release)( 9980 ID3D12Device1 *This); 9981 9982 /*** ID3D12Object methods ***/ 9983 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 9984 ID3D12Device1 *This, 9985 REFGUID guid, 9986 UINT *data_size, 9987 void *data); 9988 9989 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 9990 ID3D12Device1 *This, 9991 REFGUID guid, 9992 UINT data_size, 9993 const void *data); 9994 9995 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 9996 ID3D12Device1 *This, 9997 REFGUID guid, 9998 const IUnknown *data); 9999 10000 HRESULT (STDMETHODCALLTYPE *SetName)( 10001 ID3D12Device1 *This, 10002 const WCHAR *name); 10003 10004 /*** ID3D12Device methods ***/ 10005 UINT (STDMETHODCALLTYPE *GetNodeCount)( 10006 ID3D12Device1 *This); 10007 10008 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 10009 ID3D12Device1 *This, 10010 const D3D12_COMMAND_QUEUE_DESC *desc, 10011 REFIID riid, 10012 void **command_queue); 10013 10014 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 10015 ID3D12Device1 *This, 10016 D3D12_COMMAND_LIST_TYPE type, 10017 REFIID riid, 10018 void **command_allocator); 10019 10020 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 10021 ID3D12Device1 *This, 10022 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 10023 REFIID riid, 10024 void **pipeline_state); 10025 10026 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 10027 ID3D12Device1 *This, 10028 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 10029 REFIID riid, 10030 void **pipeline_state); 10031 10032 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 10033 ID3D12Device1 *This, 10034 UINT node_mask, 10035 D3D12_COMMAND_LIST_TYPE type, 10036 ID3D12CommandAllocator *command_allocator, 10037 ID3D12PipelineState *initial_pipeline_state, 10038 REFIID riid, 10039 void **command_list); 10040 10041 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 10042 ID3D12Device1 *This, 10043 D3D12_FEATURE feature, 10044 void *feature_data, 10045 UINT feature_data_size); 10046 10047 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 10048 ID3D12Device1 *This, 10049 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 10050 REFIID riid, 10051 void **descriptor_heap); 10052 10053 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 10054 ID3D12Device1 *This, 10055 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10056 10057 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 10058 ID3D12Device1 *This, 10059 UINT node_mask, 10060 const void *bytecode, 10061 SIZE_T bytecode_length, 10062 REFIID riid, 10063 void **root_signature); 10064 10065 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 10066 ID3D12Device1 *This, 10067 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 10068 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10069 10070 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 10071 ID3D12Device1 *This, 10072 ID3D12Resource *resource, 10073 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 10074 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10075 10076 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 10077 ID3D12Device1 *This, 10078 ID3D12Resource *resource, 10079 ID3D12Resource *counter_resource, 10080 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 10081 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10082 10083 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 10084 ID3D12Device1 *This, 10085 ID3D12Resource *resource, 10086 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 10087 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10088 10089 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 10090 ID3D12Device1 *This, 10091 ID3D12Resource *resource, 10092 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 10093 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10094 10095 void (STDMETHODCALLTYPE *CreateSampler)( 10096 ID3D12Device1 *This, 10097 const D3D12_SAMPLER_DESC *desc, 10098 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10099 10100 void (STDMETHODCALLTYPE *CopyDescriptors)( 10101 ID3D12Device1 *This, 10102 UINT dst_descriptor_range_count, 10103 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 10104 const UINT *dst_descriptor_range_sizes, 10105 UINT src_descriptor_range_count, 10106 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 10107 const UINT *src_descriptor_range_sizes, 10108 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10109 10110 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 10111 ID3D12Device1 *This, 10112 UINT descriptor_count, 10113 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 10114 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 10115 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10116 10117 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 10118 ID3D12Device1 *This, 10119 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 10120 UINT visible_mask, 10121 UINT reource_desc_count, 10122 const D3D12_RESOURCE_DESC *resource_descs); 10123 10124 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 10125 ID3D12Device1 *This, 10126 D3D12_HEAP_PROPERTIES *__ret, 10127 UINT node_mask, 10128 D3D12_HEAP_TYPE heap_type); 10129 10130 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 10131 ID3D12Device1 *This, 10132 const D3D12_HEAP_PROPERTIES *heap_properties, 10133 D3D12_HEAP_FLAGS heap_flags, 10134 const D3D12_RESOURCE_DESC *desc, 10135 D3D12_RESOURCE_STATES initial_state, 10136 const D3D12_CLEAR_VALUE *optimized_clear_value, 10137 REFIID riid, 10138 void **resource); 10139 10140 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 10141 ID3D12Device1 *This, 10142 const D3D12_HEAP_DESC *desc, 10143 REFIID riid, 10144 void **heap); 10145 10146 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 10147 ID3D12Device1 *This, 10148 ID3D12Heap *heap, 10149 UINT64 heap_offset, 10150 const D3D12_RESOURCE_DESC *desc, 10151 D3D12_RESOURCE_STATES initial_state, 10152 const D3D12_CLEAR_VALUE *optimized_clear_value, 10153 REFIID riid, 10154 void **resource); 10155 10156 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 10157 ID3D12Device1 *This, 10158 const D3D12_RESOURCE_DESC *desc, 10159 D3D12_RESOURCE_STATES initial_state, 10160 const D3D12_CLEAR_VALUE *optimized_clear_value, 10161 REFIID riid, 10162 void **resource); 10163 10164 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 10165 ID3D12Device1 *This, 10166 ID3D12DeviceChild *object, 10167 const SECURITY_ATTRIBUTES *attributes, 10168 DWORD access, 10169 const WCHAR *name, 10170 HANDLE *handle); 10171 10172 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 10173 ID3D12Device1 *This, 10174 HANDLE handle, 10175 REFIID riid, 10176 void **object); 10177 10178 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 10179 ID3D12Device1 *This, 10180 const WCHAR *name, 10181 DWORD access, 10182 HANDLE *handle); 10183 10184 HRESULT (STDMETHODCALLTYPE *MakeResident)( 10185 ID3D12Device1 *This, 10186 UINT object_count, 10187 ID3D12Pageable *const *objects); 10188 10189 HRESULT (STDMETHODCALLTYPE *Evict)( 10190 ID3D12Device1 *This, 10191 UINT object_count, 10192 ID3D12Pageable *const *objects); 10193 10194 HRESULT (STDMETHODCALLTYPE *CreateFence)( 10195 ID3D12Device1 *This, 10196 UINT64 initial_value, 10197 D3D12_FENCE_FLAGS flags, 10198 REFIID riid, 10199 void **fence); 10200 10201 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 10202 ID3D12Device1 *This); 10203 10204 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 10205 ID3D12Device1 *This, 10206 const D3D12_RESOURCE_DESC *desc, 10207 UINT first_sub_resource, 10208 UINT sub_resource_count, 10209 UINT64 base_offset, 10210 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 10211 UINT *row_count, 10212 UINT64 *row_size, 10213 UINT64 *total_bytes); 10214 10215 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 10216 ID3D12Device1 *This, 10217 const D3D12_QUERY_HEAP_DESC *desc, 10218 REFIID riid, 10219 void **heap); 10220 10221 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 10222 ID3D12Device1 *This, 10223 WINBOOL enable); 10224 10225 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 10226 ID3D12Device1 *This, 10227 const D3D12_COMMAND_SIGNATURE_DESC *desc, 10228 ID3D12RootSignature *root_signature, 10229 REFIID riid, 10230 void **command_signature); 10231 10232 void (STDMETHODCALLTYPE *GetResourceTiling)( 10233 ID3D12Device1 *This, 10234 ID3D12Resource *resource, 10235 UINT *total_tile_count, 10236 D3D12_PACKED_MIP_INFO *packed_mip_info, 10237 D3D12_TILE_SHAPE *standard_tile_shape, 10238 UINT *sub_resource_tiling_count, 10239 UINT first_sub_resource_tiling, 10240 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 10241 10242 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 10243 ID3D12Device1 *This, 10244 LUID *__ret); 10245 10246 /*** ID3D12Device1 methods ***/ 10247 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 10248 ID3D12Device1 *This, 10249 const void *blob, 10250 SIZE_T blob_size, 10251 REFIID iid, 10252 void **lib); 10253 10254 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 10255 ID3D12Device1 *This, 10256 ID3D12Fence *const *fences, 10257 const UINT64 *values, 10258 UINT fence_count, 10259 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 10260 HANDLE event); 10261 10262 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 10263 ID3D12Device1 *This, 10264 UINT object_count, 10265 ID3D12Pageable *const *objects, 10266 const D3D12_RESIDENCY_PRIORITY *priorities); 10267 10268 END_INTERFACE 10269 } ID3D12Device1Vtbl; 10270 10271 interface ID3D12Device1 { 10272 CONST_VTBL ID3D12Device1Vtbl* lpVtbl; 10273 }; 10274 10275 #ifdef COBJMACROS 10276 #ifndef WIDL_C_INLINE_WRAPPERS 10277 /*** IUnknown methods ***/ 10278 #define ID3D12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10279 #define ID3D12Device1_AddRef(This) (This)->lpVtbl->AddRef(This) 10280 #define ID3D12Device1_Release(This) (This)->lpVtbl->Release(This) 10281 /*** ID3D12Object methods ***/ 10282 #define ID3D12Device1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 10283 #define ID3D12Device1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 10284 #define ID3D12Device1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 10285 #define ID3D12Device1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 10286 /*** ID3D12Device methods ***/ 10287 #define ID3D12Device1_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 10288 #define ID3D12Device1_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 10289 #define ID3D12Device1_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 10290 #define ID3D12Device1_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 10291 #define ID3D12Device1_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 10292 #define ID3D12Device1_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 10293 #define ID3D12Device1_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 10294 #define ID3D12Device1_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 10295 #define ID3D12Device1_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 10296 #define ID3D12Device1_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 10297 #define ID3D12Device1_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 10298 #define ID3D12Device1_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 10299 #define ID3D12Device1_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 10300 #define ID3D12Device1_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 10301 #define ID3D12Device1_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 10302 #define ID3D12Device1_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 10303 #define ID3D12Device1_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 10304 #define ID3D12Device1_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 10305 #define ID3D12Device1_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device1_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10306 #define ID3D12Device1_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device1_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10307 #define ID3D12Device1_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 10308 #define ID3D12Device1_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 10309 #define ID3D12Device1_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 10310 #define ID3D12Device1_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 10311 #define ID3D12Device1_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 10312 #define ID3D12Device1_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 10313 #define ID3D12Device1_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 10314 #define ID3D12Device1_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 10315 #define ID3D12Device1_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 10316 #define ID3D12Device1_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 10317 #define ID3D12Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 10318 #define ID3D12Device1_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 10319 #define ID3D12Device1_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 10320 #define ID3D12Device1_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 10321 #define ID3D12Device1_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 10322 #define ID3D12Device1_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 10323 #define ID3D12Device1_GetAdapterLuid(This) ID3D12Device1_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10324 /*** ID3D12Device1 methods ***/ 10325 #define ID3D12Device1_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 10326 #define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 10327 #define ID3D12Device1_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 10328 #else 10329 /*** IUnknown methods ***/ 10330 static inline HRESULT ID3D12Device1_QueryInterface(ID3D12Device1* This,REFIID riid,void **ppvObject) { 10331 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10332 } 10333 static inline ULONG ID3D12Device1_AddRef(ID3D12Device1* This) { 10334 return This->lpVtbl->AddRef(This); 10335 } 10336 static inline ULONG ID3D12Device1_Release(ID3D12Device1* This) { 10337 return This->lpVtbl->Release(This); 10338 } 10339 /*** ID3D12Object methods ***/ 10340 static inline HRESULT ID3D12Device1_GetPrivateData(ID3D12Device1* This,REFGUID guid,UINT *data_size,void *data) { 10341 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 10342 } 10343 static inline HRESULT ID3D12Device1_SetPrivateData(ID3D12Device1* This,REFGUID guid,UINT data_size,const void *data) { 10344 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 10345 } 10346 static inline HRESULT ID3D12Device1_SetPrivateDataInterface(ID3D12Device1* This,REFGUID guid,const IUnknown *data) { 10347 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 10348 } 10349 static inline HRESULT ID3D12Device1_SetName(ID3D12Device1* This,const WCHAR *name) { 10350 return This->lpVtbl->SetName(This,name); 10351 } 10352 /*** ID3D12Device methods ***/ 10353 static inline UINT ID3D12Device1_GetNodeCount(ID3D12Device1* This) { 10354 return This->lpVtbl->GetNodeCount(This); 10355 } 10356 static inline HRESULT ID3D12Device1_CreateCommandQueue(ID3D12Device1* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 10357 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 10358 } 10359 static inline HRESULT ID3D12Device1_CreateCommandAllocator(ID3D12Device1* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 10360 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 10361 } 10362 static inline HRESULT ID3D12Device1_CreateGraphicsPipelineState(ID3D12Device1* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 10363 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 10364 } 10365 static inline HRESULT ID3D12Device1_CreateComputePipelineState(ID3D12Device1* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 10366 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 10367 } 10368 static inline HRESULT ID3D12Device1_CreateCommandList(ID3D12Device1* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 10369 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 10370 } 10371 static inline HRESULT ID3D12Device1_CheckFeatureSupport(ID3D12Device1* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 10372 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 10373 } 10374 static inline HRESULT ID3D12Device1_CreateDescriptorHeap(ID3D12Device1* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 10375 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 10376 } 10377 static inline UINT ID3D12Device1_GetDescriptorHandleIncrementSize(ID3D12Device1* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10378 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 10379 } 10380 static inline HRESULT ID3D12Device1_CreateRootSignature(ID3D12Device1* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 10381 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 10382 } 10383 static inline void ID3D12Device1_CreateConstantBufferView(ID3D12Device1* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10384 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 10385 } 10386 static inline void ID3D12Device1_CreateShaderResourceView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10387 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 10388 } 10389 static inline void ID3D12Device1_CreateUnorderedAccessView(ID3D12Device1* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10390 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 10391 } 10392 static inline void ID3D12Device1_CreateRenderTargetView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10393 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 10394 } 10395 static inline void ID3D12Device1_CreateDepthStencilView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10396 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 10397 } 10398 static inline void ID3D12Device1_CreateSampler(ID3D12Device1* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10399 This->lpVtbl->CreateSampler(This,desc,descriptor); 10400 } 10401 static inline void ID3D12Device1_CopyDescriptors(ID3D12Device1* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10402 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 10403 } 10404 static inline void ID3D12Device1_CopyDescriptorsSimple(ID3D12Device1* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10405 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 10406 } 10407 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device1_GetResourceAllocationInfo(ID3D12Device1* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 10408 D3D12_RESOURCE_ALLOCATION_INFO __ret; 10409 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 10410 } 10411 static inline D3D12_HEAP_PROPERTIES ID3D12Device1_GetCustomHeapProperties(ID3D12Device1* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 10412 D3D12_HEAP_PROPERTIES __ret; 10413 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 10414 } 10415 static inline HRESULT ID3D12Device1_CreateCommittedResource(ID3D12Device1* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10416 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 10417 } 10418 static inline HRESULT ID3D12Device1_CreateHeap(ID3D12Device1* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 10419 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 10420 } 10421 static inline HRESULT ID3D12Device1_CreatePlacedResource(ID3D12Device1* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10422 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 10423 } 10424 static inline HRESULT ID3D12Device1_CreateReservedResource(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10425 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 10426 } 10427 static inline HRESULT ID3D12Device1_CreateSharedHandle(ID3D12Device1* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 10428 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 10429 } 10430 static inline HRESULT ID3D12Device1_OpenSharedHandle(ID3D12Device1* This,HANDLE handle,REFIID riid,void **object) { 10431 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 10432 } 10433 static inline HRESULT ID3D12Device1_OpenSharedHandleByName(ID3D12Device1* This,const WCHAR *name,DWORD access,HANDLE *handle) { 10434 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 10435 } 10436 static inline HRESULT ID3D12Device1_MakeResident(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) { 10437 return This->lpVtbl->MakeResident(This,object_count,objects); 10438 } 10439 static inline HRESULT ID3D12Device1_Evict(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) { 10440 return This->lpVtbl->Evict(This,object_count,objects); 10441 } 10442 static inline HRESULT ID3D12Device1_CreateFence(ID3D12Device1* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 10443 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 10444 } 10445 static inline HRESULT ID3D12Device1_GetDeviceRemovedReason(ID3D12Device1* This) { 10446 return This->lpVtbl->GetDeviceRemovedReason(This); 10447 } 10448 static inline void ID3D12Device1_GetCopyableFootprints(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 10449 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 10450 } 10451 static inline HRESULT ID3D12Device1_CreateQueryHeap(ID3D12Device1* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 10452 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 10453 } 10454 static inline HRESULT ID3D12Device1_SetStablePowerState(ID3D12Device1* This,WINBOOL enable) { 10455 return This->lpVtbl->SetStablePowerState(This,enable); 10456 } 10457 static inline HRESULT ID3D12Device1_CreateCommandSignature(ID3D12Device1* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 10458 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 10459 } 10460 static inline void ID3D12Device1_GetResourceTiling(ID3D12Device1* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 10461 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 10462 } 10463 static inline LUID ID3D12Device1_GetAdapterLuid(ID3D12Device1* This) { 10464 LUID __ret; 10465 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 10466 } 10467 /*** ID3D12Device1 methods ***/ 10468 static inline HRESULT ID3D12Device1_CreatePipelineLibrary(ID3D12Device1* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 10469 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 10470 } 10471 static inline HRESULT ID3D12Device1_SetEventOnMultipleFenceCompletion(ID3D12Device1* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 10472 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 10473 } 10474 static inline HRESULT ID3D12Device1_SetResidencyPriority(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 10475 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 10476 } 10477 #endif 10478 #endif 10479 10480 #endif 10481 10482 10483 #endif /* __ID3D12Device1_INTERFACE_DEFINED__ */ 10484 10485 /***************************************************************************** 10486 * ID3D12Device2 interface 10487 */ 10488 #ifndef __ID3D12Device2_INTERFACE_DEFINED__ 10489 #define __ID3D12Device2_INTERFACE_DEFINED__ 10490 10491 DEFINE_GUID(IID_ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28); 10492 #if defined(__cplusplus) && !defined(CINTERFACE) 10493 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328") 10494 ID3D12Device2 : public ID3D12Device1 10495 { 10496 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState( 10497 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 10498 REFIID riid, 10499 void **pipeline_state) = 0; 10500 10501 }; 10502 #ifdef __CRT_UUID_DECL 10503 __CRT_UUID_DECL(ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0,0xbb, 0x1a,0xf5,0xc5,0xb6,0x43,0x28) 10504 #endif 10505 #else 10506 typedef struct ID3D12Device2Vtbl { 10507 BEGIN_INTERFACE 10508 10509 /*** IUnknown methods ***/ 10510 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10511 ID3D12Device2 *This, 10512 REFIID riid, 10513 void **ppvObject); 10514 10515 ULONG (STDMETHODCALLTYPE *AddRef)( 10516 ID3D12Device2 *This); 10517 10518 ULONG (STDMETHODCALLTYPE *Release)( 10519 ID3D12Device2 *This); 10520 10521 /*** ID3D12Object methods ***/ 10522 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 10523 ID3D12Device2 *This, 10524 REFGUID guid, 10525 UINT *data_size, 10526 void *data); 10527 10528 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 10529 ID3D12Device2 *This, 10530 REFGUID guid, 10531 UINT data_size, 10532 const void *data); 10533 10534 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 10535 ID3D12Device2 *This, 10536 REFGUID guid, 10537 const IUnknown *data); 10538 10539 HRESULT (STDMETHODCALLTYPE *SetName)( 10540 ID3D12Device2 *This, 10541 const WCHAR *name); 10542 10543 /*** ID3D12Device methods ***/ 10544 UINT (STDMETHODCALLTYPE *GetNodeCount)( 10545 ID3D12Device2 *This); 10546 10547 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 10548 ID3D12Device2 *This, 10549 const D3D12_COMMAND_QUEUE_DESC *desc, 10550 REFIID riid, 10551 void **command_queue); 10552 10553 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 10554 ID3D12Device2 *This, 10555 D3D12_COMMAND_LIST_TYPE type, 10556 REFIID riid, 10557 void **command_allocator); 10558 10559 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 10560 ID3D12Device2 *This, 10561 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 10562 REFIID riid, 10563 void **pipeline_state); 10564 10565 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 10566 ID3D12Device2 *This, 10567 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 10568 REFIID riid, 10569 void **pipeline_state); 10570 10571 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 10572 ID3D12Device2 *This, 10573 UINT node_mask, 10574 D3D12_COMMAND_LIST_TYPE type, 10575 ID3D12CommandAllocator *command_allocator, 10576 ID3D12PipelineState *initial_pipeline_state, 10577 REFIID riid, 10578 void **command_list); 10579 10580 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 10581 ID3D12Device2 *This, 10582 D3D12_FEATURE feature, 10583 void *feature_data, 10584 UINT feature_data_size); 10585 10586 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 10587 ID3D12Device2 *This, 10588 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 10589 REFIID riid, 10590 void **descriptor_heap); 10591 10592 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 10593 ID3D12Device2 *This, 10594 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10595 10596 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 10597 ID3D12Device2 *This, 10598 UINT node_mask, 10599 const void *bytecode, 10600 SIZE_T bytecode_length, 10601 REFIID riid, 10602 void **root_signature); 10603 10604 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 10605 ID3D12Device2 *This, 10606 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 10607 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10608 10609 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 10610 ID3D12Device2 *This, 10611 ID3D12Resource *resource, 10612 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 10613 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10614 10615 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 10616 ID3D12Device2 *This, 10617 ID3D12Resource *resource, 10618 ID3D12Resource *counter_resource, 10619 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 10620 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10621 10622 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 10623 ID3D12Device2 *This, 10624 ID3D12Resource *resource, 10625 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 10626 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10627 10628 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 10629 ID3D12Device2 *This, 10630 ID3D12Resource *resource, 10631 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 10632 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10633 10634 void (STDMETHODCALLTYPE *CreateSampler)( 10635 ID3D12Device2 *This, 10636 const D3D12_SAMPLER_DESC *desc, 10637 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 10638 10639 void (STDMETHODCALLTYPE *CopyDescriptors)( 10640 ID3D12Device2 *This, 10641 UINT dst_descriptor_range_count, 10642 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 10643 const UINT *dst_descriptor_range_sizes, 10644 UINT src_descriptor_range_count, 10645 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 10646 const UINT *src_descriptor_range_sizes, 10647 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10648 10649 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 10650 ID3D12Device2 *This, 10651 UINT descriptor_count, 10652 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 10653 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 10654 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 10655 10656 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 10657 ID3D12Device2 *This, 10658 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 10659 UINT visible_mask, 10660 UINT reource_desc_count, 10661 const D3D12_RESOURCE_DESC *resource_descs); 10662 10663 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 10664 ID3D12Device2 *This, 10665 D3D12_HEAP_PROPERTIES *__ret, 10666 UINT node_mask, 10667 D3D12_HEAP_TYPE heap_type); 10668 10669 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 10670 ID3D12Device2 *This, 10671 const D3D12_HEAP_PROPERTIES *heap_properties, 10672 D3D12_HEAP_FLAGS heap_flags, 10673 const D3D12_RESOURCE_DESC *desc, 10674 D3D12_RESOURCE_STATES initial_state, 10675 const D3D12_CLEAR_VALUE *optimized_clear_value, 10676 REFIID riid, 10677 void **resource); 10678 10679 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 10680 ID3D12Device2 *This, 10681 const D3D12_HEAP_DESC *desc, 10682 REFIID riid, 10683 void **heap); 10684 10685 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 10686 ID3D12Device2 *This, 10687 ID3D12Heap *heap, 10688 UINT64 heap_offset, 10689 const D3D12_RESOURCE_DESC *desc, 10690 D3D12_RESOURCE_STATES initial_state, 10691 const D3D12_CLEAR_VALUE *optimized_clear_value, 10692 REFIID riid, 10693 void **resource); 10694 10695 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 10696 ID3D12Device2 *This, 10697 const D3D12_RESOURCE_DESC *desc, 10698 D3D12_RESOURCE_STATES initial_state, 10699 const D3D12_CLEAR_VALUE *optimized_clear_value, 10700 REFIID riid, 10701 void **resource); 10702 10703 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 10704 ID3D12Device2 *This, 10705 ID3D12DeviceChild *object, 10706 const SECURITY_ATTRIBUTES *attributes, 10707 DWORD access, 10708 const WCHAR *name, 10709 HANDLE *handle); 10710 10711 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 10712 ID3D12Device2 *This, 10713 HANDLE handle, 10714 REFIID riid, 10715 void **object); 10716 10717 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 10718 ID3D12Device2 *This, 10719 const WCHAR *name, 10720 DWORD access, 10721 HANDLE *handle); 10722 10723 HRESULT (STDMETHODCALLTYPE *MakeResident)( 10724 ID3D12Device2 *This, 10725 UINT object_count, 10726 ID3D12Pageable *const *objects); 10727 10728 HRESULT (STDMETHODCALLTYPE *Evict)( 10729 ID3D12Device2 *This, 10730 UINT object_count, 10731 ID3D12Pageable *const *objects); 10732 10733 HRESULT (STDMETHODCALLTYPE *CreateFence)( 10734 ID3D12Device2 *This, 10735 UINT64 initial_value, 10736 D3D12_FENCE_FLAGS flags, 10737 REFIID riid, 10738 void **fence); 10739 10740 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 10741 ID3D12Device2 *This); 10742 10743 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 10744 ID3D12Device2 *This, 10745 const D3D12_RESOURCE_DESC *desc, 10746 UINT first_sub_resource, 10747 UINT sub_resource_count, 10748 UINT64 base_offset, 10749 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 10750 UINT *row_count, 10751 UINT64 *row_size, 10752 UINT64 *total_bytes); 10753 10754 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 10755 ID3D12Device2 *This, 10756 const D3D12_QUERY_HEAP_DESC *desc, 10757 REFIID riid, 10758 void **heap); 10759 10760 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 10761 ID3D12Device2 *This, 10762 WINBOOL enable); 10763 10764 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 10765 ID3D12Device2 *This, 10766 const D3D12_COMMAND_SIGNATURE_DESC *desc, 10767 ID3D12RootSignature *root_signature, 10768 REFIID riid, 10769 void **command_signature); 10770 10771 void (STDMETHODCALLTYPE *GetResourceTiling)( 10772 ID3D12Device2 *This, 10773 ID3D12Resource *resource, 10774 UINT *total_tile_count, 10775 D3D12_PACKED_MIP_INFO *packed_mip_info, 10776 D3D12_TILE_SHAPE *standard_tile_shape, 10777 UINT *sub_resource_tiling_count, 10778 UINT first_sub_resource_tiling, 10779 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 10780 10781 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 10782 ID3D12Device2 *This, 10783 LUID *__ret); 10784 10785 /*** ID3D12Device1 methods ***/ 10786 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 10787 ID3D12Device2 *This, 10788 const void *blob, 10789 SIZE_T blob_size, 10790 REFIID iid, 10791 void **lib); 10792 10793 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 10794 ID3D12Device2 *This, 10795 ID3D12Fence *const *fences, 10796 const UINT64 *values, 10797 UINT fence_count, 10798 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 10799 HANDLE event); 10800 10801 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 10802 ID3D12Device2 *This, 10803 UINT object_count, 10804 ID3D12Pageable *const *objects, 10805 const D3D12_RESIDENCY_PRIORITY *priorities); 10806 10807 /*** ID3D12Device2 methods ***/ 10808 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 10809 ID3D12Device2 *This, 10810 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 10811 REFIID riid, 10812 void **pipeline_state); 10813 10814 END_INTERFACE 10815 } ID3D12Device2Vtbl; 10816 10817 interface ID3D12Device2 { 10818 CONST_VTBL ID3D12Device2Vtbl* lpVtbl; 10819 }; 10820 10821 #ifdef COBJMACROS 10822 #ifndef WIDL_C_INLINE_WRAPPERS 10823 /*** IUnknown methods ***/ 10824 #define ID3D12Device2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10825 #define ID3D12Device2_AddRef(This) (This)->lpVtbl->AddRef(This) 10826 #define ID3D12Device2_Release(This) (This)->lpVtbl->Release(This) 10827 /*** ID3D12Object methods ***/ 10828 #define ID3D12Device2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 10829 #define ID3D12Device2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 10830 #define ID3D12Device2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 10831 #define ID3D12Device2_SetName(This,name) (This)->lpVtbl->SetName(This,name) 10832 /*** ID3D12Device methods ***/ 10833 #define ID3D12Device2_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 10834 #define ID3D12Device2_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 10835 #define ID3D12Device2_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 10836 #define ID3D12Device2_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 10837 #define ID3D12Device2_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 10838 #define ID3D12Device2_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 10839 #define ID3D12Device2_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 10840 #define ID3D12Device2_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 10841 #define ID3D12Device2_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 10842 #define ID3D12Device2_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 10843 #define ID3D12Device2_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 10844 #define ID3D12Device2_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 10845 #define ID3D12Device2_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 10846 #define ID3D12Device2_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 10847 #define ID3D12Device2_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 10848 #define ID3D12Device2_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 10849 #define ID3D12Device2_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 10850 #define ID3D12Device2_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 10851 #define ID3D12Device2_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device2_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10852 #define ID3D12Device2_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device2_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10853 #define ID3D12Device2_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 10854 #define ID3D12Device2_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 10855 #define ID3D12Device2_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 10856 #define ID3D12Device2_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 10857 #define ID3D12Device2_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 10858 #define ID3D12Device2_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 10859 #define ID3D12Device2_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 10860 #define ID3D12Device2_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 10861 #define ID3D12Device2_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 10862 #define ID3D12Device2_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 10863 #define ID3D12Device2_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 10864 #define ID3D12Device2_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 10865 #define ID3D12Device2_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 10866 #define ID3D12Device2_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 10867 #define ID3D12Device2_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 10868 #define ID3D12Device2_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 10869 #define ID3D12Device2_GetAdapterLuid(This) ID3D12Device2_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 10870 /*** ID3D12Device1 methods ***/ 10871 #define ID3D12Device2_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 10872 #define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 10873 #define ID3D12Device2_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 10874 /*** ID3D12Device2 methods ***/ 10875 #define ID3D12Device2_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 10876 #else 10877 /*** IUnknown methods ***/ 10878 static inline HRESULT ID3D12Device2_QueryInterface(ID3D12Device2* This,REFIID riid,void **ppvObject) { 10879 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10880 } 10881 static inline ULONG ID3D12Device2_AddRef(ID3D12Device2* This) { 10882 return This->lpVtbl->AddRef(This); 10883 } 10884 static inline ULONG ID3D12Device2_Release(ID3D12Device2* This) { 10885 return This->lpVtbl->Release(This); 10886 } 10887 /*** ID3D12Object methods ***/ 10888 static inline HRESULT ID3D12Device2_GetPrivateData(ID3D12Device2* This,REFGUID guid,UINT *data_size,void *data) { 10889 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 10890 } 10891 static inline HRESULT ID3D12Device2_SetPrivateData(ID3D12Device2* This,REFGUID guid,UINT data_size,const void *data) { 10892 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 10893 } 10894 static inline HRESULT ID3D12Device2_SetPrivateDataInterface(ID3D12Device2* This,REFGUID guid,const IUnknown *data) { 10895 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 10896 } 10897 static inline HRESULT ID3D12Device2_SetName(ID3D12Device2* This,const WCHAR *name) { 10898 return This->lpVtbl->SetName(This,name); 10899 } 10900 /*** ID3D12Device methods ***/ 10901 static inline UINT ID3D12Device2_GetNodeCount(ID3D12Device2* This) { 10902 return This->lpVtbl->GetNodeCount(This); 10903 } 10904 static inline HRESULT ID3D12Device2_CreateCommandQueue(ID3D12Device2* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 10905 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 10906 } 10907 static inline HRESULT ID3D12Device2_CreateCommandAllocator(ID3D12Device2* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 10908 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 10909 } 10910 static inline HRESULT ID3D12Device2_CreateGraphicsPipelineState(ID3D12Device2* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 10911 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 10912 } 10913 static inline HRESULT ID3D12Device2_CreateComputePipelineState(ID3D12Device2* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 10914 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 10915 } 10916 static inline HRESULT ID3D12Device2_CreateCommandList(ID3D12Device2* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 10917 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 10918 } 10919 static inline HRESULT ID3D12Device2_CheckFeatureSupport(ID3D12Device2* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 10920 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 10921 } 10922 static inline HRESULT ID3D12Device2_CreateDescriptorHeap(ID3D12Device2* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 10923 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 10924 } 10925 static inline UINT ID3D12Device2_GetDescriptorHandleIncrementSize(ID3D12Device2* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10926 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 10927 } 10928 static inline HRESULT ID3D12Device2_CreateRootSignature(ID3D12Device2* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 10929 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 10930 } 10931 static inline void ID3D12Device2_CreateConstantBufferView(ID3D12Device2* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10932 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 10933 } 10934 static inline void ID3D12Device2_CreateShaderResourceView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10935 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 10936 } 10937 static inline void ID3D12Device2_CreateUnorderedAccessView(ID3D12Device2* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10938 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 10939 } 10940 static inline void ID3D12Device2_CreateRenderTargetView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10941 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 10942 } 10943 static inline void ID3D12Device2_CreateDepthStencilView(ID3D12Device2* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10944 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 10945 } 10946 static inline void ID3D12Device2_CreateSampler(ID3D12Device2* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 10947 This->lpVtbl->CreateSampler(This,desc,descriptor); 10948 } 10949 static inline void ID3D12Device2_CopyDescriptors(ID3D12Device2* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10950 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 10951 } 10952 static inline void ID3D12Device2_CopyDescriptorsSimple(ID3D12Device2* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 10953 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 10954 } 10955 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device2_GetResourceAllocationInfo(ID3D12Device2* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 10956 D3D12_RESOURCE_ALLOCATION_INFO __ret; 10957 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 10958 } 10959 static inline D3D12_HEAP_PROPERTIES ID3D12Device2_GetCustomHeapProperties(ID3D12Device2* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 10960 D3D12_HEAP_PROPERTIES __ret; 10961 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 10962 } 10963 static inline HRESULT ID3D12Device2_CreateCommittedResource(ID3D12Device2* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10964 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 10965 } 10966 static inline HRESULT ID3D12Device2_CreateHeap(ID3D12Device2* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 10967 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 10968 } 10969 static inline HRESULT ID3D12Device2_CreatePlacedResource(ID3D12Device2* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10970 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 10971 } 10972 static inline HRESULT ID3D12Device2_CreateReservedResource(ID3D12Device2* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 10973 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 10974 } 10975 static inline HRESULT ID3D12Device2_CreateSharedHandle(ID3D12Device2* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 10976 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 10977 } 10978 static inline HRESULT ID3D12Device2_OpenSharedHandle(ID3D12Device2* This,HANDLE handle,REFIID riid,void **object) { 10979 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 10980 } 10981 static inline HRESULT ID3D12Device2_OpenSharedHandleByName(ID3D12Device2* This,const WCHAR *name,DWORD access,HANDLE *handle) { 10982 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 10983 } 10984 static inline HRESULT ID3D12Device2_MakeResident(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) { 10985 return This->lpVtbl->MakeResident(This,object_count,objects); 10986 } 10987 static inline HRESULT ID3D12Device2_Evict(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects) { 10988 return This->lpVtbl->Evict(This,object_count,objects); 10989 } 10990 static inline HRESULT ID3D12Device2_CreateFence(ID3D12Device2* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 10991 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 10992 } 10993 static inline HRESULT ID3D12Device2_GetDeviceRemovedReason(ID3D12Device2* This) { 10994 return This->lpVtbl->GetDeviceRemovedReason(This); 10995 } 10996 static inline void ID3D12Device2_GetCopyableFootprints(ID3D12Device2* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 10997 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 10998 } 10999 static inline HRESULT ID3D12Device2_CreateQueryHeap(ID3D12Device2* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 11000 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 11001 } 11002 static inline HRESULT ID3D12Device2_SetStablePowerState(ID3D12Device2* This,WINBOOL enable) { 11003 return This->lpVtbl->SetStablePowerState(This,enable); 11004 } 11005 static inline HRESULT ID3D12Device2_CreateCommandSignature(ID3D12Device2* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 11006 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 11007 } 11008 static inline void ID3D12Device2_GetResourceTiling(ID3D12Device2* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 11009 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 11010 } 11011 static inline LUID ID3D12Device2_GetAdapterLuid(ID3D12Device2* This) { 11012 LUID __ret; 11013 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 11014 } 11015 /*** ID3D12Device1 methods ***/ 11016 static inline HRESULT ID3D12Device2_CreatePipelineLibrary(ID3D12Device2* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 11017 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 11018 } 11019 static inline HRESULT ID3D12Device2_SetEventOnMultipleFenceCompletion(ID3D12Device2* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 11020 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 11021 } 11022 static inline HRESULT ID3D12Device2_SetResidencyPriority(ID3D12Device2* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 11023 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 11024 } 11025 /*** ID3D12Device2 methods ***/ 11026 static inline HRESULT ID3D12Device2_CreatePipelineState(ID3D12Device2* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 11027 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 11028 } 11029 #endif 11030 #endif 11031 11032 #endif 11033 11034 11035 #endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ 11036 11037 /***************************************************************************** 11038 * ID3D12Device3 interface 11039 */ 11040 #ifndef __ID3D12Device3_INTERFACE_DEFINED__ 11041 #define __ID3D12Device3_INTERFACE_DEFINED__ 11042 11043 DEFINE_GUID(IID_ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98); 11044 #if defined(__cplusplus) && !defined(CINTERFACE) 11045 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98") 11046 ID3D12Device3 : public ID3D12Device2 11047 { 11048 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress( 11049 const void *address, 11050 REFIID riid, 11051 void **heap) = 0; 11052 11053 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping( 11054 HANDLE file_mapping, 11055 REFIID riid, 11056 void **heap) = 0; 11057 11058 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident( 11059 D3D12_RESIDENCY_FLAGS flags, 11060 UINT num_objects, 11061 ID3D12Pageable *const *objects, 11062 ID3D12Fence *fence, 11063 UINT64 fence_value) = 0; 11064 11065 }; 11066 #ifdef __CRT_UUID_DECL 11067 __CRT_UUID_DECL(ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93,0xc5, 0x10,0x13,0x45,0xc4,0xaa,0x98) 11068 #endif 11069 #else 11070 typedef struct ID3D12Device3Vtbl { 11071 BEGIN_INTERFACE 11072 11073 /*** IUnknown methods ***/ 11074 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 11075 ID3D12Device3 *This, 11076 REFIID riid, 11077 void **ppvObject); 11078 11079 ULONG (STDMETHODCALLTYPE *AddRef)( 11080 ID3D12Device3 *This); 11081 11082 ULONG (STDMETHODCALLTYPE *Release)( 11083 ID3D12Device3 *This); 11084 11085 /*** ID3D12Object methods ***/ 11086 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 11087 ID3D12Device3 *This, 11088 REFGUID guid, 11089 UINT *data_size, 11090 void *data); 11091 11092 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 11093 ID3D12Device3 *This, 11094 REFGUID guid, 11095 UINT data_size, 11096 const void *data); 11097 11098 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 11099 ID3D12Device3 *This, 11100 REFGUID guid, 11101 const IUnknown *data); 11102 11103 HRESULT (STDMETHODCALLTYPE *SetName)( 11104 ID3D12Device3 *This, 11105 const WCHAR *name); 11106 11107 /*** ID3D12Device methods ***/ 11108 UINT (STDMETHODCALLTYPE *GetNodeCount)( 11109 ID3D12Device3 *This); 11110 11111 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 11112 ID3D12Device3 *This, 11113 const D3D12_COMMAND_QUEUE_DESC *desc, 11114 REFIID riid, 11115 void **command_queue); 11116 11117 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 11118 ID3D12Device3 *This, 11119 D3D12_COMMAND_LIST_TYPE type, 11120 REFIID riid, 11121 void **command_allocator); 11122 11123 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 11124 ID3D12Device3 *This, 11125 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 11126 REFIID riid, 11127 void **pipeline_state); 11128 11129 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 11130 ID3D12Device3 *This, 11131 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 11132 REFIID riid, 11133 void **pipeline_state); 11134 11135 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 11136 ID3D12Device3 *This, 11137 UINT node_mask, 11138 D3D12_COMMAND_LIST_TYPE type, 11139 ID3D12CommandAllocator *command_allocator, 11140 ID3D12PipelineState *initial_pipeline_state, 11141 REFIID riid, 11142 void **command_list); 11143 11144 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 11145 ID3D12Device3 *This, 11146 D3D12_FEATURE feature, 11147 void *feature_data, 11148 UINT feature_data_size); 11149 11150 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 11151 ID3D12Device3 *This, 11152 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 11153 REFIID riid, 11154 void **descriptor_heap); 11155 11156 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 11157 ID3D12Device3 *This, 11158 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 11159 11160 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 11161 ID3D12Device3 *This, 11162 UINT node_mask, 11163 const void *bytecode, 11164 SIZE_T bytecode_length, 11165 REFIID riid, 11166 void **root_signature); 11167 11168 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 11169 ID3D12Device3 *This, 11170 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 11171 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11172 11173 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 11174 ID3D12Device3 *This, 11175 ID3D12Resource *resource, 11176 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 11177 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11178 11179 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 11180 ID3D12Device3 *This, 11181 ID3D12Resource *resource, 11182 ID3D12Resource *counter_resource, 11183 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 11184 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11185 11186 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 11187 ID3D12Device3 *This, 11188 ID3D12Resource *resource, 11189 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 11190 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11191 11192 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 11193 ID3D12Device3 *This, 11194 ID3D12Resource *resource, 11195 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 11196 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11197 11198 void (STDMETHODCALLTYPE *CreateSampler)( 11199 ID3D12Device3 *This, 11200 const D3D12_SAMPLER_DESC *desc, 11201 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11202 11203 void (STDMETHODCALLTYPE *CopyDescriptors)( 11204 ID3D12Device3 *This, 11205 UINT dst_descriptor_range_count, 11206 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 11207 const UINT *dst_descriptor_range_sizes, 11208 UINT src_descriptor_range_count, 11209 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 11210 const UINT *src_descriptor_range_sizes, 11211 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 11212 11213 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 11214 ID3D12Device3 *This, 11215 UINT descriptor_count, 11216 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 11217 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 11218 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 11219 11220 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 11221 ID3D12Device3 *This, 11222 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 11223 UINT visible_mask, 11224 UINT reource_desc_count, 11225 const D3D12_RESOURCE_DESC *resource_descs); 11226 11227 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 11228 ID3D12Device3 *This, 11229 D3D12_HEAP_PROPERTIES *__ret, 11230 UINT node_mask, 11231 D3D12_HEAP_TYPE heap_type); 11232 11233 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 11234 ID3D12Device3 *This, 11235 const D3D12_HEAP_PROPERTIES *heap_properties, 11236 D3D12_HEAP_FLAGS heap_flags, 11237 const D3D12_RESOURCE_DESC *desc, 11238 D3D12_RESOURCE_STATES initial_state, 11239 const D3D12_CLEAR_VALUE *optimized_clear_value, 11240 REFIID riid, 11241 void **resource); 11242 11243 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 11244 ID3D12Device3 *This, 11245 const D3D12_HEAP_DESC *desc, 11246 REFIID riid, 11247 void **heap); 11248 11249 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 11250 ID3D12Device3 *This, 11251 ID3D12Heap *heap, 11252 UINT64 heap_offset, 11253 const D3D12_RESOURCE_DESC *desc, 11254 D3D12_RESOURCE_STATES initial_state, 11255 const D3D12_CLEAR_VALUE *optimized_clear_value, 11256 REFIID riid, 11257 void **resource); 11258 11259 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 11260 ID3D12Device3 *This, 11261 const D3D12_RESOURCE_DESC *desc, 11262 D3D12_RESOURCE_STATES initial_state, 11263 const D3D12_CLEAR_VALUE *optimized_clear_value, 11264 REFIID riid, 11265 void **resource); 11266 11267 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 11268 ID3D12Device3 *This, 11269 ID3D12DeviceChild *object, 11270 const SECURITY_ATTRIBUTES *attributes, 11271 DWORD access, 11272 const WCHAR *name, 11273 HANDLE *handle); 11274 11275 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 11276 ID3D12Device3 *This, 11277 HANDLE handle, 11278 REFIID riid, 11279 void **object); 11280 11281 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 11282 ID3D12Device3 *This, 11283 const WCHAR *name, 11284 DWORD access, 11285 HANDLE *handle); 11286 11287 HRESULT (STDMETHODCALLTYPE *MakeResident)( 11288 ID3D12Device3 *This, 11289 UINT object_count, 11290 ID3D12Pageable *const *objects); 11291 11292 HRESULT (STDMETHODCALLTYPE *Evict)( 11293 ID3D12Device3 *This, 11294 UINT object_count, 11295 ID3D12Pageable *const *objects); 11296 11297 HRESULT (STDMETHODCALLTYPE *CreateFence)( 11298 ID3D12Device3 *This, 11299 UINT64 initial_value, 11300 D3D12_FENCE_FLAGS flags, 11301 REFIID riid, 11302 void **fence); 11303 11304 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 11305 ID3D12Device3 *This); 11306 11307 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 11308 ID3D12Device3 *This, 11309 const D3D12_RESOURCE_DESC *desc, 11310 UINT first_sub_resource, 11311 UINT sub_resource_count, 11312 UINT64 base_offset, 11313 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 11314 UINT *row_count, 11315 UINT64 *row_size, 11316 UINT64 *total_bytes); 11317 11318 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 11319 ID3D12Device3 *This, 11320 const D3D12_QUERY_HEAP_DESC *desc, 11321 REFIID riid, 11322 void **heap); 11323 11324 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 11325 ID3D12Device3 *This, 11326 WINBOOL enable); 11327 11328 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 11329 ID3D12Device3 *This, 11330 const D3D12_COMMAND_SIGNATURE_DESC *desc, 11331 ID3D12RootSignature *root_signature, 11332 REFIID riid, 11333 void **command_signature); 11334 11335 void (STDMETHODCALLTYPE *GetResourceTiling)( 11336 ID3D12Device3 *This, 11337 ID3D12Resource *resource, 11338 UINT *total_tile_count, 11339 D3D12_PACKED_MIP_INFO *packed_mip_info, 11340 D3D12_TILE_SHAPE *standard_tile_shape, 11341 UINT *sub_resource_tiling_count, 11342 UINT first_sub_resource_tiling, 11343 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 11344 11345 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 11346 ID3D12Device3 *This, 11347 LUID *__ret); 11348 11349 /*** ID3D12Device1 methods ***/ 11350 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 11351 ID3D12Device3 *This, 11352 const void *blob, 11353 SIZE_T blob_size, 11354 REFIID iid, 11355 void **lib); 11356 11357 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 11358 ID3D12Device3 *This, 11359 ID3D12Fence *const *fences, 11360 const UINT64 *values, 11361 UINT fence_count, 11362 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 11363 HANDLE event); 11364 11365 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 11366 ID3D12Device3 *This, 11367 UINT object_count, 11368 ID3D12Pageable *const *objects, 11369 const D3D12_RESIDENCY_PRIORITY *priorities); 11370 11371 /*** ID3D12Device2 methods ***/ 11372 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 11373 ID3D12Device3 *This, 11374 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 11375 REFIID riid, 11376 void **pipeline_state); 11377 11378 /*** ID3D12Device3 methods ***/ 11379 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 11380 ID3D12Device3 *This, 11381 const void *address, 11382 REFIID riid, 11383 void **heap); 11384 11385 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 11386 ID3D12Device3 *This, 11387 HANDLE file_mapping, 11388 REFIID riid, 11389 void **heap); 11390 11391 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 11392 ID3D12Device3 *This, 11393 D3D12_RESIDENCY_FLAGS flags, 11394 UINT num_objects, 11395 ID3D12Pageable *const *objects, 11396 ID3D12Fence *fence, 11397 UINT64 fence_value); 11398 11399 END_INTERFACE 11400 } ID3D12Device3Vtbl; 11401 11402 interface ID3D12Device3 { 11403 CONST_VTBL ID3D12Device3Vtbl* lpVtbl; 11404 }; 11405 11406 #ifdef COBJMACROS 11407 #ifndef WIDL_C_INLINE_WRAPPERS 11408 /*** IUnknown methods ***/ 11409 #define ID3D12Device3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 11410 #define ID3D12Device3_AddRef(This) (This)->lpVtbl->AddRef(This) 11411 #define ID3D12Device3_Release(This) (This)->lpVtbl->Release(This) 11412 /*** ID3D12Object methods ***/ 11413 #define ID3D12Device3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 11414 #define ID3D12Device3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 11415 #define ID3D12Device3_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 11416 #define ID3D12Device3_SetName(This,name) (This)->lpVtbl->SetName(This,name) 11417 /*** ID3D12Device methods ***/ 11418 #define ID3D12Device3_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 11419 #define ID3D12Device3_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 11420 #define ID3D12Device3_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 11421 #define ID3D12Device3_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 11422 #define ID3D12Device3_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 11423 #define ID3D12Device3_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 11424 #define ID3D12Device3_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 11425 #define ID3D12Device3_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 11426 #define ID3D12Device3_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 11427 #define ID3D12Device3_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 11428 #define ID3D12Device3_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 11429 #define ID3D12Device3_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 11430 #define ID3D12Device3_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 11431 #define ID3D12Device3_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 11432 #define ID3D12Device3_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 11433 #define ID3D12Device3_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 11434 #define ID3D12Device3_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 11435 #define ID3D12Device3_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 11436 #define ID3D12Device3_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device3_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 11437 #define ID3D12Device3_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device3_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 11438 #define ID3D12Device3_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 11439 #define ID3D12Device3_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 11440 #define ID3D12Device3_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 11441 #define ID3D12Device3_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 11442 #define ID3D12Device3_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 11443 #define ID3D12Device3_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 11444 #define ID3D12Device3_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 11445 #define ID3D12Device3_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 11446 #define ID3D12Device3_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 11447 #define ID3D12Device3_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 11448 #define ID3D12Device3_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 11449 #define ID3D12Device3_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 11450 #define ID3D12Device3_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 11451 #define ID3D12Device3_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 11452 #define ID3D12Device3_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 11453 #define ID3D12Device3_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 11454 #define ID3D12Device3_GetAdapterLuid(This) ID3D12Device3_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 11455 /*** ID3D12Device1 methods ***/ 11456 #define ID3D12Device3_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 11457 #define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 11458 #define ID3D12Device3_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 11459 /*** ID3D12Device2 methods ***/ 11460 #define ID3D12Device3_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 11461 /*** ID3D12Device3 methods ***/ 11462 #define ID3D12Device3_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 11463 #define ID3D12Device3_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 11464 #define ID3D12Device3_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 11465 #else 11466 /*** IUnknown methods ***/ 11467 static inline HRESULT ID3D12Device3_QueryInterface(ID3D12Device3* This,REFIID riid,void **ppvObject) { 11468 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 11469 } 11470 static inline ULONG ID3D12Device3_AddRef(ID3D12Device3* This) { 11471 return This->lpVtbl->AddRef(This); 11472 } 11473 static inline ULONG ID3D12Device3_Release(ID3D12Device3* This) { 11474 return This->lpVtbl->Release(This); 11475 } 11476 /*** ID3D12Object methods ***/ 11477 static inline HRESULT ID3D12Device3_GetPrivateData(ID3D12Device3* This,REFGUID guid,UINT *data_size,void *data) { 11478 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 11479 } 11480 static inline HRESULT ID3D12Device3_SetPrivateData(ID3D12Device3* This,REFGUID guid,UINT data_size,const void *data) { 11481 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 11482 } 11483 static inline HRESULT ID3D12Device3_SetPrivateDataInterface(ID3D12Device3* This,REFGUID guid,const IUnknown *data) { 11484 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 11485 } 11486 static inline HRESULT ID3D12Device3_SetName(ID3D12Device3* This,const WCHAR *name) { 11487 return This->lpVtbl->SetName(This,name); 11488 } 11489 /*** ID3D12Device methods ***/ 11490 static inline UINT ID3D12Device3_GetNodeCount(ID3D12Device3* This) { 11491 return This->lpVtbl->GetNodeCount(This); 11492 } 11493 static inline HRESULT ID3D12Device3_CreateCommandQueue(ID3D12Device3* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 11494 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 11495 } 11496 static inline HRESULT ID3D12Device3_CreateCommandAllocator(ID3D12Device3* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 11497 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 11498 } 11499 static inline HRESULT ID3D12Device3_CreateGraphicsPipelineState(ID3D12Device3* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 11500 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 11501 } 11502 static inline HRESULT ID3D12Device3_CreateComputePipelineState(ID3D12Device3* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 11503 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 11504 } 11505 static inline HRESULT ID3D12Device3_CreateCommandList(ID3D12Device3* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 11506 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 11507 } 11508 static inline HRESULT ID3D12Device3_CheckFeatureSupport(ID3D12Device3* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 11509 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 11510 } 11511 static inline HRESULT ID3D12Device3_CreateDescriptorHeap(ID3D12Device3* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 11512 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 11513 } 11514 static inline UINT ID3D12Device3_GetDescriptorHandleIncrementSize(ID3D12Device3* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 11515 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 11516 } 11517 static inline HRESULT ID3D12Device3_CreateRootSignature(ID3D12Device3* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 11518 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 11519 } 11520 static inline void ID3D12Device3_CreateConstantBufferView(ID3D12Device3* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11521 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 11522 } 11523 static inline void ID3D12Device3_CreateShaderResourceView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11524 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 11525 } 11526 static inline void ID3D12Device3_CreateUnorderedAccessView(ID3D12Device3* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11527 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 11528 } 11529 static inline void ID3D12Device3_CreateRenderTargetView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11530 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 11531 } 11532 static inline void ID3D12Device3_CreateDepthStencilView(ID3D12Device3* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11533 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 11534 } 11535 static inline void ID3D12Device3_CreateSampler(ID3D12Device3* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 11536 This->lpVtbl->CreateSampler(This,desc,descriptor); 11537 } 11538 static inline void ID3D12Device3_CopyDescriptors(ID3D12Device3* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 11539 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 11540 } 11541 static inline void ID3D12Device3_CopyDescriptorsSimple(ID3D12Device3* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 11542 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 11543 } 11544 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device3_GetResourceAllocationInfo(ID3D12Device3* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 11545 D3D12_RESOURCE_ALLOCATION_INFO __ret; 11546 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 11547 } 11548 static inline D3D12_HEAP_PROPERTIES ID3D12Device3_GetCustomHeapProperties(ID3D12Device3* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 11549 D3D12_HEAP_PROPERTIES __ret; 11550 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 11551 } 11552 static inline HRESULT ID3D12Device3_CreateCommittedResource(ID3D12Device3* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 11553 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 11554 } 11555 static inline HRESULT ID3D12Device3_CreateHeap(ID3D12Device3* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 11556 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 11557 } 11558 static inline HRESULT ID3D12Device3_CreatePlacedResource(ID3D12Device3* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 11559 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 11560 } 11561 static inline HRESULT ID3D12Device3_CreateReservedResource(ID3D12Device3* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 11562 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 11563 } 11564 static inline HRESULT ID3D12Device3_CreateSharedHandle(ID3D12Device3* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 11565 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 11566 } 11567 static inline HRESULT ID3D12Device3_OpenSharedHandle(ID3D12Device3* This,HANDLE handle,REFIID riid,void **object) { 11568 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 11569 } 11570 static inline HRESULT ID3D12Device3_OpenSharedHandleByName(ID3D12Device3* This,const WCHAR *name,DWORD access,HANDLE *handle) { 11571 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 11572 } 11573 static inline HRESULT ID3D12Device3_MakeResident(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) { 11574 return This->lpVtbl->MakeResident(This,object_count,objects); 11575 } 11576 static inline HRESULT ID3D12Device3_Evict(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects) { 11577 return This->lpVtbl->Evict(This,object_count,objects); 11578 } 11579 static inline HRESULT ID3D12Device3_CreateFence(ID3D12Device3* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 11580 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 11581 } 11582 static inline HRESULT ID3D12Device3_GetDeviceRemovedReason(ID3D12Device3* This) { 11583 return This->lpVtbl->GetDeviceRemovedReason(This); 11584 } 11585 static inline void ID3D12Device3_GetCopyableFootprints(ID3D12Device3* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 11586 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 11587 } 11588 static inline HRESULT ID3D12Device3_CreateQueryHeap(ID3D12Device3* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 11589 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 11590 } 11591 static inline HRESULT ID3D12Device3_SetStablePowerState(ID3D12Device3* This,WINBOOL enable) { 11592 return This->lpVtbl->SetStablePowerState(This,enable); 11593 } 11594 static inline HRESULT ID3D12Device3_CreateCommandSignature(ID3D12Device3* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 11595 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 11596 } 11597 static inline void ID3D12Device3_GetResourceTiling(ID3D12Device3* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 11598 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 11599 } 11600 static inline LUID ID3D12Device3_GetAdapterLuid(ID3D12Device3* This) { 11601 LUID __ret; 11602 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 11603 } 11604 /*** ID3D12Device1 methods ***/ 11605 static inline HRESULT ID3D12Device3_CreatePipelineLibrary(ID3D12Device3* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 11606 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 11607 } 11608 static inline HRESULT ID3D12Device3_SetEventOnMultipleFenceCompletion(ID3D12Device3* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 11609 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 11610 } 11611 static inline HRESULT ID3D12Device3_SetResidencyPriority(ID3D12Device3* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 11612 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 11613 } 11614 /*** ID3D12Device2 methods ***/ 11615 static inline HRESULT ID3D12Device3_CreatePipelineState(ID3D12Device3* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 11616 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 11617 } 11618 /*** ID3D12Device3 methods ***/ 11619 static inline HRESULT ID3D12Device3_OpenExistingHeapFromAddress(ID3D12Device3* This,const void *address,REFIID riid,void **heap) { 11620 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 11621 } 11622 static inline HRESULT ID3D12Device3_OpenExistingHeapFromFileMapping(ID3D12Device3* This,HANDLE file_mapping,REFIID riid,void **heap) { 11623 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 11624 } 11625 static inline HRESULT ID3D12Device3_EnqueueMakeResident(ID3D12Device3* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 11626 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 11627 } 11628 #endif 11629 #endif 11630 11631 #endif 11632 11633 11634 #endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ 11635 11636 /***************************************************************************** 11637 * ID3D12RootSignatureDeserializer interface 11638 */ 11639 #ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ 11640 #define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ 11641 11642 DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46); 11643 #if defined(__cplusplus) && !defined(CINTERFACE) 11644 MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046") 11645 ID3D12RootSignatureDeserializer : public IUnknown 11646 { 11647 virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc( 11648 ) = 0; 11649 11650 }; 11651 #ifdef __CRT_UUID_DECL 11652 __CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46) 11653 #endif 11654 #else 11655 typedef struct ID3D12RootSignatureDeserializerVtbl { 11656 BEGIN_INTERFACE 11657 11658 /*** IUnknown methods ***/ 11659 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 11660 ID3D12RootSignatureDeserializer *This, 11661 REFIID riid, 11662 void **ppvObject); 11663 11664 ULONG (STDMETHODCALLTYPE *AddRef)( 11665 ID3D12RootSignatureDeserializer *This); 11666 11667 ULONG (STDMETHODCALLTYPE *Release)( 11668 ID3D12RootSignatureDeserializer *This); 11669 11670 /*** ID3D12RootSignatureDeserializer methods ***/ 11671 const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)( 11672 ID3D12RootSignatureDeserializer *This); 11673 11674 END_INTERFACE 11675 } ID3D12RootSignatureDeserializerVtbl; 11676 11677 interface ID3D12RootSignatureDeserializer { 11678 CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl; 11679 }; 11680 11681 #ifdef COBJMACROS 11682 #ifndef WIDL_C_INLINE_WRAPPERS 11683 /*** IUnknown methods ***/ 11684 #define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 11685 #define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This) 11686 #define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This) 11687 /*** ID3D12RootSignatureDeserializer methods ***/ 11688 #define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This) 11689 #else 11690 /*** IUnknown methods ***/ 11691 static inline HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) { 11692 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 11693 } 11694 static inline ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) { 11695 return This->lpVtbl->AddRef(This); 11696 } 11697 static inline ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) { 11698 return This->lpVtbl->Release(This); 11699 } 11700 /*** ID3D12RootSignatureDeserializer methods ***/ 11701 static inline const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) { 11702 return This->lpVtbl->GetRootSignatureDesc(This); 11703 } 11704 #endif 11705 #endif 11706 11707 #endif 11708 11709 11710 #endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ 11711 11712 /***************************************************************************** 11713 * ID3D12VersionedRootSignatureDeserializer interface 11714 */ 11715 #ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ 11716 #define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ 11717 11718 DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0); 11719 #if defined(__cplusplus) && !defined(CINTERFACE) 11720 MIDL_INTERFACE("7f91ce67-090c-4bb7-b78e-ed8ff2e31da0") 11721 ID3D12VersionedRootSignatureDeserializer : public IUnknown 11722 { 11723 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion( 11724 D3D_ROOT_SIGNATURE_VERSION version, 11725 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) = 0; 11726 11727 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( 11728 ) = 0; 11729 11730 }; 11731 #ifdef __CRT_UUID_DECL 11732 __CRT_UUID_DECL(ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0) 11733 #endif 11734 #else 11735 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl { 11736 BEGIN_INTERFACE 11737 11738 /*** IUnknown methods ***/ 11739 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 11740 ID3D12VersionedRootSignatureDeserializer *This, 11741 REFIID riid, 11742 void **ppvObject); 11743 11744 ULONG (STDMETHODCALLTYPE *AddRef)( 11745 ID3D12VersionedRootSignatureDeserializer *This); 11746 11747 ULONG (STDMETHODCALLTYPE *Release)( 11748 ID3D12VersionedRootSignatureDeserializer *This); 11749 11750 /*** ID3D12VersionedRootSignatureDeserializer methods ***/ 11751 HRESULT (STDMETHODCALLTYPE *GetRootSignatureDescAtVersion)( 11752 ID3D12VersionedRootSignatureDeserializer *This, 11753 D3D_ROOT_SIGNATURE_VERSION version, 11754 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc); 11755 11756 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc)( 11757 ID3D12VersionedRootSignatureDeserializer *This); 11758 11759 END_INTERFACE 11760 } ID3D12VersionedRootSignatureDeserializerVtbl; 11761 11762 interface ID3D12VersionedRootSignatureDeserializer { 11763 CONST_VTBL ID3D12VersionedRootSignatureDeserializerVtbl* lpVtbl; 11764 }; 11765 11766 #ifdef COBJMACROS 11767 #ifndef WIDL_C_INLINE_WRAPPERS 11768 /*** IUnknown methods ***/ 11769 #define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 11770 #define ID3D12VersionedRootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This) 11771 #define ID3D12VersionedRootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This) 11772 /*** ID3D12VersionedRootSignatureDeserializer methods ***/ 11773 #define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,version,desc) (This)->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc) 11774 #define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) (This)->lpVtbl->GetUnconvertedRootSignatureDesc(This) 11775 #else 11776 /*** IUnknown methods ***/ 11777 static inline HRESULT ID3D12VersionedRootSignatureDeserializer_QueryInterface(ID3D12VersionedRootSignatureDeserializer* This,REFIID riid,void **ppvObject) { 11778 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 11779 } 11780 static inline ULONG ID3D12VersionedRootSignatureDeserializer_AddRef(ID3D12VersionedRootSignatureDeserializer* This) { 11781 return This->lpVtbl->AddRef(This); 11782 } 11783 static inline ULONG ID3D12VersionedRootSignatureDeserializer_Release(ID3D12VersionedRootSignatureDeserializer* This) { 11784 return This->lpVtbl->Release(This); 11785 } 11786 /*** ID3D12VersionedRootSignatureDeserializer methods ***/ 11787 static inline HRESULT ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(ID3D12VersionedRootSignatureDeserializer* This,D3D_ROOT_SIGNATURE_VERSION version,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) { 11788 return This->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc); 11789 } 11790 static inline const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer* This) { 11791 return This->lpVtbl->GetUnconvertedRootSignatureDesc(This); 11792 } 11793 #endif 11794 #endif 11795 11796 #endif 11797 11798 11799 #endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */ 11800 11801 typedef enum D3D12_COMMAND_LIST_FLAGS { 11802 D3D12_COMMAND_LIST_FLAG_NONE = 0x0 11803 } D3D12_COMMAND_LIST_FLAGS; 11804 DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_FLAGS); 11805 typedef enum D3D12_COMMAND_POOL_FLAGS { 11806 D3D12_COMMAND_POOL_FLAG_NONE = 0x0 11807 } D3D12_COMMAND_POOL_FLAGS; 11808 DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_POOL_FLAGS); 11809 typedef enum D3D12_COMMAND_RECORDER_FLAGS { 11810 D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0 11811 } D3D12_COMMAND_RECORDER_FLAGS; 11812 DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_RECORDER_FLAGS); 11813 /***************************************************************************** 11814 * ID3D12Device4 interface 11815 */ 11816 #ifndef __ID3D12Device4_INTERFACE_DEFINED__ 11817 #define __ID3D12Device4_INTERFACE_DEFINED__ 11818 11819 DEFINE_GUID(IID_ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5); 11820 #if defined(__cplusplus) && !defined(CINTERFACE) 11821 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5") 11822 ID3D12Device4 : public ID3D12Device3 11823 { 11824 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1( 11825 UINT node_mask, 11826 D3D12_COMMAND_LIST_TYPE type, 11827 D3D12_COMMAND_LIST_FLAGS flags, 11828 REFIID riid, 11829 void **command_list) = 0; 11830 11831 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession( 11832 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 11833 REFIID riid, 11834 void **session) = 0; 11835 11836 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1( 11837 const D3D12_HEAP_PROPERTIES *heap_properties, 11838 D3D12_HEAP_FLAGS heap_flags, 11839 const D3D12_RESOURCE_DESC *desc, 11840 D3D12_RESOURCE_STATES initial_resource_state, 11841 const D3D12_CLEAR_VALUE *optimized_clear_value, 11842 ID3D12ProtectedResourceSession *protected_session, 11843 REFIID riid_resource, 11844 void **resource) = 0; 11845 11846 virtual HRESULT STDMETHODCALLTYPE CreateHeap1( 11847 const D3D12_HEAP_DESC *desc, 11848 ID3D12ProtectedResourceSession *protected_session, 11849 REFIID riid, 11850 void **heap) = 0; 11851 11852 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1( 11853 const D3D12_RESOURCE_DESC *desc, 11854 D3D12_RESOURCE_STATES initial_state, 11855 const D3D12_CLEAR_VALUE *optimized_clear_value, 11856 ID3D12ProtectedResourceSession *protected_session, 11857 REFIID riid, 11858 void **resource) = 0; 11859 11860 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 11861 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo1( 11862 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 11863 UINT visible_mask, 11864 UINT resource_descs_count, 11865 const D3D12_RESOURCE_DESC *resource_descs, 11866 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0; 11867 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1( 11868 UINT visible_mask, 11869 UINT resource_descs_count, 11870 const D3D12_RESOURCE_DESC *resource_descs, 11871 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) 11872 { 11873 D3D12_RESOURCE_ALLOCATION_INFO __ret; 11874 return *GetResourceAllocationInfo1(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1); 11875 } 11876 #else 11877 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1( 11878 UINT visible_mask, 11879 UINT resource_descs_count, 11880 const D3D12_RESOURCE_DESC *resource_descs, 11881 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0; 11882 #endif 11883 11884 }; 11885 #ifdef __CRT_UUID_DECL 11886 __CRT_UUID_DECL(ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4,0x63, 0x30,0x98,0x31,0x5a,0xa2,0xe5) 11887 #endif 11888 #else 11889 typedef struct ID3D12Device4Vtbl { 11890 BEGIN_INTERFACE 11891 11892 /*** IUnknown methods ***/ 11893 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 11894 ID3D12Device4 *This, 11895 REFIID riid, 11896 void **ppvObject); 11897 11898 ULONG (STDMETHODCALLTYPE *AddRef)( 11899 ID3D12Device4 *This); 11900 11901 ULONG (STDMETHODCALLTYPE *Release)( 11902 ID3D12Device4 *This); 11903 11904 /*** ID3D12Object methods ***/ 11905 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 11906 ID3D12Device4 *This, 11907 REFGUID guid, 11908 UINT *data_size, 11909 void *data); 11910 11911 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 11912 ID3D12Device4 *This, 11913 REFGUID guid, 11914 UINT data_size, 11915 const void *data); 11916 11917 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 11918 ID3D12Device4 *This, 11919 REFGUID guid, 11920 const IUnknown *data); 11921 11922 HRESULT (STDMETHODCALLTYPE *SetName)( 11923 ID3D12Device4 *This, 11924 const WCHAR *name); 11925 11926 /*** ID3D12Device methods ***/ 11927 UINT (STDMETHODCALLTYPE *GetNodeCount)( 11928 ID3D12Device4 *This); 11929 11930 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 11931 ID3D12Device4 *This, 11932 const D3D12_COMMAND_QUEUE_DESC *desc, 11933 REFIID riid, 11934 void **command_queue); 11935 11936 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 11937 ID3D12Device4 *This, 11938 D3D12_COMMAND_LIST_TYPE type, 11939 REFIID riid, 11940 void **command_allocator); 11941 11942 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 11943 ID3D12Device4 *This, 11944 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 11945 REFIID riid, 11946 void **pipeline_state); 11947 11948 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 11949 ID3D12Device4 *This, 11950 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 11951 REFIID riid, 11952 void **pipeline_state); 11953 11954 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 11955 ID3D12Device4 *This, 11956 UINT node_mask, 11957 D3D12_COMMAND_LIST_TYPE type, 11958 ID3D12CommandAllocator *command_allocator, 11959 ID3D12PipelineState *initial_pipeline_state, 11960 REFIID riid, 11961 void **command_list); 11962 11963 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 11964 ID3D12Device4 *This, 11965 D3D12_FEATURE feature, 11966 void *feature_data, 11967 UINT feature_data_size); 11968 11969 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 11970 ID3D12Device4 *This, 11971 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 11972 REFIID riid, 11973 void **descriptor_heap); 11974 11975 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 11976 ID3D12Device4 *This, 11977 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 11978 11979 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 11980 ID3D12Device4 *This, 11981 UINT node_mask, 11982 const void *bytecode, 11983 SIZE_T bytecode_length, 11984 REFIID riid, 11985 void **root_signature); 11986 11987 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 11988 ID3D12Device4 *This, 11989 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 11990 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11991 11992 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 11993 ID3D12Device4 *This, 11994 ID3D12Resource *resource, 11995 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 11996 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 11997 11998 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 11999 ID3D12Device4 *This, 12000 ID3D12Resource *resource, 12001 ID3D12Resource *counter_resource, 12002 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 12003 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 12004 12005 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 12006 ID3D12Device4 *This, 12007 ID3D12Resource *resource, 12008 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 12009 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 12010 12011 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 12012 ID3D12Device4 *This, 12013 ID3D12Resource *resource, 12014 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 12015 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 12016 12017 void (STDMETHODCALLTYPE *CreateSampler)( 12018 ID3D12Device4 *This, 12019 const D3D12_SAMPLER_DESC *desc, 12020 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 12021 12022 void (STDMETHODCALLTYPE *CopyDescriptors)( 12023 ID3D12Device4 *This, 12024 UINT dst_descriptor_range_count, 12025 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 12026 const UINT *dst_descriptor_range_sizes, 12027 UINT src_descriptor_range_count, 12028 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 12029 const UINT *src_descriptor_range_sizes, 12030 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 12031 12032 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 12033 ID3D12Device4 *This, 12034 UINT descriptor_count, 12035 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 12036 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 12037 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 12038 12039 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 12040 ID3D12Device4 *This, 12041 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 12042 UINT visible_mask, 12043 UINT reource_desc_count, 12044 const D3D12_RESOURCE_DESC *resource_descs); 12045 12046 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 12047 ID3D12Device4 *This, 12048 D3D12_HEAP_PROPERTIES *__ret, 12049 UINT node_mask, 12050 D3D12_HEAP_TYPE heap_type); 12051 12052 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 12053 ID3D12Device4 *This, 12054 const D3D12_HEAP_PROPERTIES *heap_properties, 12055 D3D12_HEAP_FLAGS heap_flags, 12056 const D3D12_RESOURCE_DESC *desc, 12057 D3D12_RESOURCE_STATES initial_state, 12058 const D3D12_CLEAR_VALUE *optimized_clear_value, 12059 REFIID riid, 12060 void **resource); 12061 12062 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 12063 ID3D12Device4 *This, 12064 const D3D12_HEAP_DESC *desc, 12065 REFIID riid, 12066 void **heap); 12067 12068 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 12069 ID3D12Device4 *This, 12070 ID3D12Heap *heap, 12071 UINT64 heap_offset, 12072 const D3D12_RESOURCE_DESC *desc, 12073 D3D12_RESOURCE_STATES initial_state, 12074 const D3D12_CLEAR_VALUE *optimized_clear_value, 12075 REFIID riid, 12076 void **resource); 12077 12078 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 12079 ID3D12Device4 *This, 12080 const D3D12_RESOURCE_DESC *desc, 12081 D3D12_RESOURCE_STATES initial_state, 12082 const D3D12_CLEAR_VALUE *optimized_clear_value, 12083 REFIID riid, 12084 void **resource); 12085 12086 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 12087 ID3D12Device4 *This, 12088 ID3D12DeviceChild *object, 12089 const SECURITY_ATTRIBUTES *attributes, 12090 DWORD access, 12091 const WCHAR *name, 12092 HANDLE *handle); 12093 12094 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 12095 ID3D12Device4 *This, 12096 HANDLE handle, 12097 REFIID riid, 12098 void **object); 12099 12100 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 12101 ID3D12Device4 *This, 12102 const WCHAR *name, 12103 DWORD access, 12104 HANDLE *handle); 12105 12106 HRESULT (STDMETHODCALLTYPE *MakeResident)( 12107 ID3D12Device4 *This, 12108 UINT object_count, 12109 ID3D12Pageable *const *objects); 12110 12111 HRESULT (STDMETHODCALLTYPE *Evict)( 12112 ID3D12Device4 *This, 12113 UINT object_count, 12114 ID3D12Pageable *const *objects); 12115 12116 HRESULT (STDMETHODCALLTYPE *CreateFence)( 12117 ID3D12Device4 *This, 12118 UINT64 initial_value, 12119 D3D12_FENCE_FLAGS flags, 12120 REFIID riid, 12121 void **fence); 12122 12123 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 12124 ID3D12Device4 *This); 12125 12126 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 12127 ID3D12Device4 *This, 12128 const D3D12_RESOURCE_DESC *desc, 12129 UINT first_sub_resource, 12130 UINT sub_resource_count, 12131 UINT64 base_offset, 12132 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 12133 UINT *row_count, 12134 UINT64 *row_size, 12135 UINT64 *total_bytes); 12136 12137 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 12138 ID3D12Device4 *This, 12139 const D3D12_QUERY_HEAP_DESC *desc, 12140 REFIID riid, 12141 void **heap); 12142 12143 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 12144 ID3D12Device4 *This, 12145 WINBOOL enable); 12146 12147 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 12148 ID3D12Device4 *This, 12149 const D3D12_COMMAND_SIGNATURE_DESC *desc, 12150 ID3D12RootSignature *root_signature, 12151 REFIID riid, 12152 void **command_signature); 12153 12154 void (STDMETHODCALLTYPE *GetResourceTiling)( 12155 ID3D12Device4 *This, 12156 ID3D12Resource *resource, 12157 UINT *total_tile_count, 12158 D3D12_PACKED_MIP_INFO *packed_mip_info, 12159 D3D12_TILE_SHAPE *standard_tile_shape, 12160 UINT *sub_resource_tiling_count, 12161 UINT first_sub_resource_tiling, 12162 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 12163 12164 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 12165 ID3D12Device4 *This, 12166 LUID *__ret); 12167 12168 /*** ID3D12Device1 methods ***/ 12169 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 12170 ID3D12Device4 *This, 12171 const void *blob, 12172 SIZE_T blob_size, 12173 REFIID iid, 12174 void **lib); 12175 12176 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 12177 ID3D12Device4 *This, 12178 ID3D12Fence *const *fences, 12179 const UINT64 *values, 12180 UINT fence_count, 12181 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 12182 HANDLE event); 12183 12184 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 12185 ID3D12Device4 *This, 12186 UINT object_count, 12187 ID3D12Pageable *const *objects, 12188 const D3D12_RESIDENCY_PRIORITY *priorities); 12189 12190 /*** ID3D12Device2 methods ***/ 12191 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 12192 ID3D12Device4 *This, 12193 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 12194 REFIID riid, 12195 void **pipeline_state); 12196 12197 /*** ID3D12Device3 methods ***/ 12198 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 12199 ID3D12Device4 *This, 12200 const void *address, 12201 REFIID riid, 12202 void **heap); 12203 12204 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 12205 ID3D12Device4 *This, 12206 HANDLE file_mapping, 12207 REFIID riid, 12208 void **heap); 12209 12210 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 12211 ID3D12Device4 *This, 12212 D3D12_RESIDENCY_FLAGS flags, 12213 UINT num_objects, 12214 ID3D12Pageable *const *objects, 12215 ID3D12Fence *fence, 12216 UINT64 fence_value); 12217 12218 /*** ID3D12Device4 methods ***/ 12219 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 12220 ID3D12Device4 *This, 12221 UINT node_mask, 12222 D3D12_COMMAND_LIST_TYPE type, 12223 D3D12_COMMAND_LIST_FLAGS flags, 12224 REFIID riid, 12225 void **command_list); 12226 12227 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 12228 ID3D12Device4 *This, 12229 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 12230 REFIID riid, 12231 void **session); 12232 12233 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 12234 ID3D12Device4 *This, 12235 const D3D12_HEAP_PROPERTIES *heap_properties, 12236 D3D12_HEAP_FLAGS heap_flags, 12237 const D3D12_RESOURCE_DESC *desc, 12238 D3D12_RESOURCE_STATES initial_resource_state, 12239 const D3D12_CLEAR_VALUE *optimized_clear_value, 12240 ID3D12ProtectedResourceSession *protected_session, 12241 REFIID riid_resource, 12242 void **resource); 12243 12244 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 12245 ID3D12Device4 *This, 12246 const D3D12_HEAP_DESC *desc, 12247 ID3D12ProtectedResourceSession *protected_session, 12248 REFIID riid, 12249 void **heap); 12250 12251 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 12252 ID3D12Device4 *This, 12253 const D3D12_RESOURCE_DESC *desc, 12254 D3D12_RESOURCE_STATES initial_state, 12255 const D3D12_CLEAR_VALUE *optimized_clear_value, 12256 ID3D12ProtectedResourceSession *protected_session, 12257 REFIID riid, 12258 void **resource); 12259 12260 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 12261 ID3D12Device4 *This, 12262 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 12263 UINT visible_mask, 12264 UINT resource_descs_count, 12265 const D3D12_RESOURCE_DESC *resource_descs, 12266 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 12267 12268 END_INTERFACE 12269 } ID3D12Device4Vtbl; 12270 12271 interface ID3D12Device4 { 12272 CONST_VTBL ID3D12Device4Vtbl* lpVtbl; 12273 }; 12274 12275 #ifdef COBJMACROS 12276 #ifndef WIDL_C_INLINE_WRAPPERS 12277 /*** IUnknown methods ***/ 12278 #define ID3D12Device4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 12279 #define ID3D12Device4_AddRef(This) (This)->lpVtbl->AddRef(This) 12280 #define ID3D12Device4_Release(This) (This)->lpVtbl->Release(This) 12281 /*** ID3D12Object methods ***/ 12282 #define ID3D12Device4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 12283 #define ID3D12Device4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 12284 #define ID3D12Device4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 12285 #define ID3D12Device4_SetName(This,name) (This)->lpVtbl->SetName(This,name) 12286 /*** ID3D12Device methods ***/ 12287 #define ID3D12Device4_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 12288 #define ID3D12Device4_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 12289 #define ID3D12Device4_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 12290 #define ID3D12Device4_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 12291 #define ID3D12Device4_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 12292 #define ID3D12Device4_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 12293 #define ID3D12Device4_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 12294 #define ID3D12Device4_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 12295 #define ID3D12Device4_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 12296 #define ID3D12Device4_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 12297 #define ID3D12Device4_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 12298 #define ID3D12Device4_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 12299 #define ID3D12Device4_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 12300 #define ID3D12Device4_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 12301 #define ID3D12Device4_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 12302 #define ID3D12Device4_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 12303 #define ID3D12Device4_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 12304 #define ID3D12Device4_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 12305 #define ID3D12Device4_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device4_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 12306 #define ID3D12Device4_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device4_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 12307 #define ID3D12Device4_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 12308 #define ID3D12Device4_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 12309 #define ID3D12Device4_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 12310 #define ID3D12Device4_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 12311 #define ID3D12Device4_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 12312 #define ID3D12Device4_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 12313 #define ID3D12Device4_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 12314 #define ID3D12Device4_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 12315 #define ID3D12Device4_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 12316 #define ID3D12Device4_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 12317 #define ID3D12Device4_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 12318 #define ID3D12Device4_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 12319 #define ID3D12Device4_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 12320 #define ID3D12Device4_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 12321 #define ID3D12Device4_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 12322 #define ID3D12Device4_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 12323 #define ID3D12Device4_GetAdapterLuid(This) ID3D12Device4_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 12324 /*** ID3D12Device1 methods ***/ 12325 #define ID3D12Device4_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 12326 #define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 12327 #define ID3D12Device4_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 12328 /*** ID3D12Device2 methods ***/ 12329 #define ID3D12Device4_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 12330 /*** ID3D12Device3 methods ***/ 12331 #define ID3D12Device4_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 12332 #define ID3D12Device4_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 12333 #define ID3D12Device4_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 12334 /*** ID3D12Device4 methods ***/ 12335 #define ID3D12Device4_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 12336 #define ID3D12Device4_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 12337 #define ID3D12Device4_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 12338 #define ID3D12Device4_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 12339 #define ID3D12Device4_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 12340 #define ID3D12Device4_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device4_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 12341 #else 12342 /*** IUnknown methods ***/ 12343 static inline HRESULT ID3D12Device4_QueryInterface(ID3D12Device4* This,REFIID riid,void **ppvObject) { 12344 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 12345 } 12346 static inline ULONG ID3D12Device4_AddRef(ID3D12Device4* This) { 12347 return This->lpVtbl->AddRef(This); 12348 } 12349 static inline ULONG ID3D12Device4_Release(ID3D12Device4* This) { 12350 return This->lpVtbl->Release(This); 12351 } 12352 /*** ID3D12Object methods ***/ 12353 static inline HRESULT ID3D12Device4_GetPrivateData(ID3D12Device4* This,REFGUID guid,UINT *data_size,void *data) { 12354 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 12355 } 12356 static inline HRESULT ID3D12Device4_SetPrivateData(ID3D12Device4* This,REFGUID guid,UINT data_size,const void *data) { 12357 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 12358 } 12359 static inline HRESULT ID3D12Device4_SetPrivateDataInterface(ID3D12Device4* This,REFGUID guid,const IUnknown *data) { 12360 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 12361 } 12362 static inline HRESULT ID3D12Device4_SetName(ID3D12Device4* This,const WCHAR *name) { 12363 return This->lpVtbl->SetName(This,name); 12364 } 12365 /*** ID3D12Device methods ***/ 12366 static inline UINT ID3D12Device4_GetNodeCount(ID3D12Device4* This) { 12367 return This->lpVtbl->GetNodeCount(This); 12368 } 12369 static inline HRESULT ID3D12Device4_CreateCommandQueue(ID3D12Device4* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 12370 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 12371 } 12372 static inline HRESULT ID3D12Device4_CreateCommandAllocator(ID3D12Device4* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 12373 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 12374 } 12375 static inline HRESULT ID3D12Device4_CreateGraphicsPipelineState(ID3D12Device4* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 12376 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 12377 } 12378 static inline HRESULT ID3D12Device4_CreateComputePipelineState(ID3D12Device4* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 12379 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 12380 } 12381 static inline HRESULT ID3D12Device4_CreateCommandList(ID3D12Device4* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 12382 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 12383 } 12384 static inline HRESULT ID3D12Device4_CheckFeatureSupport(ID3D12Device4* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 12385 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 12386 } 12387 static inline HRESULT ID3D12Device4_CreateDescriptorHeap(ID3D12Device4* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 12388 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 12389 } 12390 static inline UINT ID3D12Device4_GetDescriptorHandleIncrementSize(ID3D12Device4* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 12391 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 12392 } 12393 static inline HRESULT ID3D12Device4_CreateRootSignature(ID3D12Device4* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 12394 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 12395 } 12396 static inline void ID3D12Device4_CreateConstantBufferView(ID3D12Device4* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12397 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 12398 } 12399 static inline void ID3D12Device4_CreateShaderResourceView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12400 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 12401 } 12402 static inline void ID3D12Device4_CreateUnorderedAccessView(ID3D12Device4* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12403 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 12404 } 12405 static inline void ID3D12Device4_CreateRenderTargetView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12406 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 12407 } 12408 static inline void ID3D12Device4_CreateDepthStencilView(ID3D12Device4* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12409 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 12410 } 12411 static inline void ID3D12Device4_CreateSampler(ID3D12Device4* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 12412 This->lpVtbl->CreateSampler(This,desc,descriptor); 12413 } 12414 static inline void ID3D12Device4_CopyDescriptors(ID3D12Device4* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 12415 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 12416 } 12417 static inline void ID3D12Device4_CopyDescriptorsSimple(ID3D12Device4* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 12418 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 12419 } 12420 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device4_GetResourceAllocationInfo(ID3D12Device4* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 12421 D3D12_RESOURCE_ALLOCATION_INFO __ret; 12422 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 12423 } 12424 static inline D3D12_HEAP_PROPERTIES ID3D12Device4_GetCustomHeapProperties(ID3D12Device4* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 12425 D3D12_HEAP_PROPERTIES __ret; 12426 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 12427 } 12428 static inline HRESULT ID3D12Device4_CreateCommittedResource(ID3D12Device4* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 12429 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 12430 } 12431 static inline HRESULT ID3D12Device4_CreateHeap(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 12432 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 12433 } 12434 static inline HRESULT ID3D12Device4_CreatePlacedResource(ID3D12Device4* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 12435 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 12436 } 12437 static inline HRESULT ID3D12Device4_CreateReservedResource(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 12438 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 12439 } 12440 static inline HRESULT ID3D12Device4_CreateSharedHandle(ID3D12Device4* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 12441 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 12442 } 12443 static inline HRESULT ID3D12Device4_OpenSharedHandle(ID3D12Device4* This,HANDLE handle,REFIID riid,void **object) { 12444 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 12445 } 12446 static inline HRESULT ID3D12Device4_OpenSharedHandleByName(ID3D12Device4* This,const WCHAR *name,DWORD access,HANDLE *handle) { 12447 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 12448 } 12449 static inline HRESULT ID3D12Device4_MakeResident(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) { 12450 return This->lpVtbl->MakeResident(This,object_count,objects); 12451 } 12452 static inline HRESULT ID3D12Device4_Evict(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects) { 12453 return This->lpVtbl->Evict(This,object_count,objects); 12454 } 12455 static inline HRESULT ID3D12Device4_CreateFence(ID3D12Device4* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 12456 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 12457 } 12458 static inline HRESULT ID3D12Device4_GetDeviceRemovedReason(ID3D12Device4* This) { 12459 return This->lpVtbl->GetDeviceRemovedReason(This); 12460 } 12461 static inline void ID3D12Device4_GetCopyableFootprints(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 12462 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 12463 } 12464 static inline HRESULT ID3D12Device4_CreateQueryHeap(ID3D12Device4* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 12465 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 12466 } 12467 static inline HRESULT ID3D12Device4_SetStablePowerState(ID3D12Device4* This,WINBOOL enable) { 12468 return This->lpVtbl->SetStablePowerState(This,enable); 12469 } 12470 static inline HRESULT ID3D12Device4_CreateCommandSignature(ID3D12Device4* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 12471 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 12472 } 12473 static inline void ID3D12Device4_GetResourceTiling(ID3D12Device4* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 12474 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 12475 } 12476 static inline LUID ID3D12Device4_GetAdapterLuid(ID3D12Device4* This) { 12477 LUID __ret; 12478 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 12479 } 12480 /*** ID3D12Device1 methods ***/ 12481 static inline HRESULT ID3D12Device4_CreatePipelineLibrary(ID3D12Device4* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 12482 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 12483 } 12484 static inline HRESULT ID3D12Device4_SetEventOnMultipleFenceCompletion(ID3D12Device4* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 12485 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 12486 } 12487 static inline HRESULT ID3D12Device4_SetResidencyPriority(ID3D12Device4* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 12488 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 12489 } 12490 /*** ID3D12Device2 methods ***/ 12491 static inline HRESULT ID3D12Device4_CreatePipelineState(ID3D12Device4* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 12492 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 12493 } 12494 /*** ID3D12Device3 methods ***/ 12495 static inline HRESULT ID3D12Device4_OpenExistingHeapFromAddress(ID3D12Device4* This,const void *address,REFIID riid,void **heap) { 12496 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 12497 } 12498 static inline HRESULT ID3D12Device4_OpenExistingHeapFromFileMapping(ID3D12Device4* This,HANDLE file_mapping,REFIID riid,void **heap) { 12499 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 12500 } 12501 static inline HRESULT ID3D12Device4_EnqueueMakeResident(ID3D12Device4* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 12502 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 12503 } 12504 /*** ID3D12Device4 methods ***/ 12505 static inline HRESULT ID3D12Device4_CreateCommandList1(ID3D12Device4* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 12506 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 12507 } 12508 static inline HRESULT ID3D12Device4_CreateProtectedResourceSession(ID3D12Device4* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 12509 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 12510 } 12511 static inline HRESULT ID3D12Device4_CreateCommittedResource1(ID3D12Device4* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 12512 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 12513 } 12514 static inline HRESULT ID3D12Device4_CreateHeap1(ID3D12Device4* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 12515 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 12516 } 12517 static inline HRESULT ID3D12Device4_CreateReservedResource1(ID3D12Device4* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 12518 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 12519 } 12520 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device4_GetResourceAllocationInfo1(ID3D12Device4* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 12521 D3D12_RESOURCE_ALLOCATION_INFO __ret; 12522 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 12523 } 12524 #endif 12525 #endif 12526 12527 #endif 12528 12529 12530 #endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ 12531 12532 typedef enum D3D12_LIFETIME_STATE { 12533 D3D12_LIFETIME_STATE_IN_USE = 0x0, 12534 D3D12_LIFETIME_STATE_NOT_IN_USE = 0x1 12535 } D3D12_LIFETIME_STATE; 12536 /***************************************************************************** 12537 * ID3D12LifetimeOwner interface 12538 */ 12539 #ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ 12540 #define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ 12541 12542 DEFINE_GUID(IID_ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8); 12543 #if defined(__cplusplus) && !defined(CINTERFACE) 12544 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8") 12545 ID3D12LifetimeOwner : public IUnknown 12546 { 12547 virtual void STDMETHODCALLTYPE LifetimeStateUpdated( 12548 D3D12_LIFETIME_STATE NewState) = 0; 12549 12550 }; 12551 #ifdef __CRT_UUID_DECL 12552 __CRT_UUID_DECL(ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83,0xce, 0x03,0x2e,0x59,0x5d,0x70,0xa8) 12553 #endif 12554 #else 12555 typedef struct ID3D12LifetimeOwnerVtbl { 12556 BEGIN_INTERFACE 12557 12558 /*** IUnknown methods ***/ 12559 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 12560 ID3D12LifetimeOwner *This, 12561 REFIID riid, 12562 void **ppvObject); 12563 12564 ULONG (STDMETHODCALLTYPE *AddRef)( 12565 ID3D12LifetimeOwner *This); 12566 12567 ULONG (STDMETHODCALLTYPE *Release)( 12568 ID3D12LifetimeOwner *This); 12569 12570 /*** ID3D12LifetimeOwner methods ***/ 12571 void (STDMETHODCALLTYPE *LifetimeStateUpdated)( 12572 ID3D12LifetimeOwner *This, 12573 D3D12_LIFETIME_STATE NewState); 12574 12575 END_INTERFACE 12576 } ID3D12LifetimeOwnerVtbl; 12577 12578 interface ID3D12LifetimeOwner { 12579 CONST_VTBL ID3D12LifetimeOwnerVtbl* lpVtbl; 12580 }; 12581 12582 #ifdef COBJMACROS 12583 #ifndef WIDL_C_INLINE_WRAPPERS 12584 /*** IUnknown methods ***/ 12585 #define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 12586 #define ID3D12LifetimeOwner_AddRef(This) (This)->lpVtbl->AddRef(This) 12587 #define ID3D12LifetimeOwner_Release(This) (This)->lpVtbl->Release(This) 12588 /*** ID3D12LifetimeOwner methods ***/ 12589 #define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) (This)->lpVtbl->LifetimeStateUpdated(This,NewState) 12590 #else 12591 /*** IUnknown methods ***/ 12592 static inline HRESULT ID3D12LifetimeOwner_QueryInterface(ID3D12LifetimeOwner* This,REFIID riid,void **ppvObject) { 12593 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 12594 } 12595 static inline ULONG ID3D12LifetimeOwner_AddRef(ID3D12LifetimeOwner* This) { 12596 return This->lpVtbl->AddRef(This); 12597 } 12598 static inline ULONG ID3D12LifetimeOwner_Release(ID3D12LifetimeOwner* This) { 12599 return This->lpVtbl->Release(This); 12600 } 12601 /*** ID3D12LifetimeOwner methods ***/ 12602 static inline void ID3D12LifetimeOwner_LifetimeStateUpdated(ID3D12LifetimeOwner* This,D3D12_LIFETIME_STATE NewState) { 12603 This->lpVtbl->LifetimeStateUpdated(This,NewState); 12604 } 12605 #endif 12606 #endif 12607 12608 #endif 12609 12610 12611 #endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */ 12612 12613 /***************************************************************************** 12614 * ID3D12SwapChainAssistant interface 12615 */ 12616 #ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ 12617 #define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ 12618 12619 DEFINE_GUID(IID_ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f); 12620 #if defined(__cplusplus) && !defined(CINTERFACE) 12621 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f") 12622 ID3D12SwapChainAssistant : public IUnknown 12623 { 12624 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 12625 virtual LUID* STDMETHODCALLTYPE GetLUID( 12626 LUID *__ret) = 0; 12627 LUID STDMETHODCALLTYPE GetLUID( 12628 ) 12629 { 12630 LUID __ret; 12631 return *GetLUID(&__ret); 12632 } 12633 #else 12634 virtual LUID STDMETHODCALLTYPE GetLUID( 12635 ) = 0; 12636 #endif 12637 12638 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject( 12639 REFIID riid, 12640 void **ppv) = 0; 12641 12642 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue( 12643 REFIID riid_resource, 12644 void **resource, 12645 REFIID riid_queue, 12646 void **queue) = 0; 12647 12648 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( 12649 ) = 0; 12650 12651 }; 12652 #ifdef __CRT_UUID_DECL 12653 __CRT_UUID_DECL(ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88,0x07, 0xc0,0xeb,0x88,0xb4,0x5c,0x8f) 12654 #endif 12655 #else 12656 typedef struct ID3D12SwapChainAssistantVtbl { 12657 BEGIN_INTERFACE 12658 12659 /*** IUnknown methods ***/ 12660 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 12661 ID3D12SwapChainAssistant *This, 12662 REFIID riid, 12663 void **ppvObject); 12664 12665 ULONG (STDMETHODCALLTYPE *AddRef)( 12666 ID3D12SwapChainAssistant *This); 12667 12668 ULONG (STDMETHODCALLTYPE *Release)( 12669 ID3D12SwapChainAssistant *This); 12670 12671 /*** ID3D12SwapChainAssistant methods ***/ 12672 LUID * (STDMETHODCALLTYPE *GetLUID)( 12673 ID3D12SwapChainAssistant *This, 12674 LUID *__ret); 12675 12676 HRESULT (STDMETHODCALLTYPE *GetSwapChainObject)( 12677 ID3D12SwapChainAssistant *This, 12678 REFIID riid, 12679 void **ppv); 12680 12681 HRESULT (STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue)( 12682 ID3D12SwapChainAssistant *This, 12683 REFIID riid_resource, 12684 void **resource, 12685 REFIID riid_queue, 12686 void **queue); 12687 12688 HRESULT (STDMETHODCALLTYPE *InsertImplicitSync)( 12689 ID3D12SwapChainAssistant *This); 12690 12691 END_INTERFACE 12692 } ID3D12SwapChainAssistantVtbl; 12693 12694 interface ID3D12SwapChainAssistant { 12695 CONST_VTBL ID3D12SwapChainAssistantVtbl* lpVtbl; 12696 }; 12697 12698 #ifdef COBJMACROS 12699 #ifndef WIDL_C_INLINE_WRAPPERS 12700 /*** IUnknown methods ***/ 12701 #define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 12702 #define ID3D12SwapChainAssistant_AddRef(This) (This)->lpVtbl->AddRef(This) 12703 #define ID3D12SwapChainAssistant_Release(This) (This)->lpVtbl->Release(This) 12704 /*** ID3D12SwapChainAssistant methods ***/ 12705 #define ID3D12SwapChainAssistant_GetLUID(This) ID3D12SwapChainAssistant_GetLUID_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 12706 #define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) (This)->lpVtbl->GetSwapChainObject(This,riid,ppv) 12707 #define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue) (This)->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue) 12708 #define ID3D12SwapChainAssistant_InsertImplicitSync(This) (This)->lpVtbl->InsertImplicitSync(This) 12709 #else 12710 /*** IUnknown methods ***/ 12711 static inline HRESULT ID3D12SwapChainAssistant_QueryInterface(ID3D12SwapChainAssistant* This,REFIID riid,void **ppvObject) { 12712 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 12713 } 12714 static inline ULONG ID3D12SwapChainAssistant_AddRef(ID3D12SwapChainAssistant* This) { 12715 return This->lpVtbl->AddRef(This); 12716 } 12717 static inline ULONG ID3D12SwapChainAssistant_Release(ID3D12SwapChainAssistant* This) { 12718 return This->lpVtbl->Release(This); 12719 } 12720 /*** ID3D12SwapChainAssistant methods ***/ 12721 static inline LUID ID3D12SwapChainAssistant_GetLUID(ID3D12SwapChainAssistant* This) { 12722 LUID __ret; 12723 return *This->lpVtbl->GetLUID(This,&__ret); 12724 } 12725 static inline HRESULT ID3D12SwapChainAssistant_GetSwapChainObject(ID3D12SwapChainAssistant* This,REFIID riid,void **ppv) { 12726 return This->lpVtbl->GetSwapChainObject(This,riid,ppv); 12727 } 12728 static inline HRESULT ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(ID3D12SwapChainAssistant* This,REFIID riid_resource,void **resource,REFIID riid_queue,void **queue) { 12729 return This->lpVtbl->GetCurrentResourceAndCommandQueue(This,riid_resource,resource,riid_queue,queue); 12730 } 12731 static inline HRESULT ID3D12SwapChainAssistant_InsertImplicitSync(ID3D12SwapChainAssistant* This) { 12732 return This->lpVtbl->InsertImplicitSync(This); 12733 } 12734 #endif 12735 #endif 12736 12737 #endif 12738 12739 12740 #endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */ 12741 12742 /***************************************************************************** 12743 * ID3D12LifetimeTracker interface 12744 */ 12745 #ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__ 12746 #define __ID3D12LifetimeTracker_INTERFACE_DEFINED__ 12747 12748 DEFINE_GUID(IID_ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13); 12749 #if defined(__cplusplus) && !defined(CINTERFACE) 12750 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813") 12751 ID3D12LifetimeTracker : public ID3D12DeviceChild 12752 { 12753 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject( 12754 ID3D12DeviceChild *object) = 0; 12755 12756 }; 12757 #ifdef __CRT_UUID_DECL 12758 __CRT_UUID_DECL(ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5,0x82, 0x49,0x4e,0xcb,0x8b,0xa8,0x13) 12759 #endif 12760 #else 12761 typedef struct ID3D12LifetimeTrackerVtbl { 12762 BEGIN_INTERFACE 12763 12764 /*** IUnknown methods ***/ 12765 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 12766 ID3D12LifetimeTracker *This, 12767 REFIID riid, 12768 void **ppvObject); 12769 12770 ULONG (STDMETHODCALLTYPE *AddRef)( 12771 ID3D12LifetimeTracker *This); 12772 12773 ULONG (STDMETHODCALLTYPE *Release)( 12774 ID3D12LifetimeTracker *This); 12775 12776 /*** ID3D12Object methods ***/ 12777 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 12778 ID3D12LifetimeTracker *This, 12779 REFGUID guid, 12780 UINT *data_size, 12781 void *data); 12782 12783 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 12784 ID3D12LifetimeTracker *This, 12785 REFGUID guid, 12786 UINT data_size, 12787 const void *data); 12788 12789 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 12790 ID3D12LifetimeTracker *This, 12791 REFGUID guid, 12792 const IUnknown *data); 12793 12794 HRESULT (STDMETHODCALLTYPE *SetName)( 12795 ID3D12LifetimeTracker *This, 12796 const WCHAR *name); 12797 12798 /*** ID3D12DeviceChild methods ***/ 12799 HRESULT (STDMETHODCALLTYPE *GetDevice)( 12800 ID3D12LifetimeTracker *This, 12801 REFIID riid, 12802 void **device); 12803 12804 /*** ID3D12LifetimeTracker methods ***/ 12805 HRESULT (STDMETHODCALLTYPE *DestroyOwnedObject)( 12806 ID3D12LifetimeTracker *This, 12807 ID3D12DeviceChild *object); 12808 12809 END_INTERFACE 12810 } ID3D12LifetimeTrackerVtbl; 12811 12812 interface ID3D12LifetimeTracker { 12813 CONST_VTBL ID3D12LifetimeTrackerVtbl* lpVtbl; 12814 }; 12815 12816 #ifdef COBJMACROS 12817 #ifndef WIDL_C_INLINE_WRAPPERS 12818 /*** IUnknown methods ***/ 12819 #define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 12820 #define ID3D12LifetimeTracker_AddRef(This) (This)->lpVtbl->AddRef(This) 12821 #define ID3D12LifetimeTracker_Release(This) (This)->lpVtbl->Release(This) 12822 /*** ID3D12Object methods ***/ 12823 #define ID3D12LifetimeTracker_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 12824 #define ID3D12LifetimeTracker_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 12825 #define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 12826 #define ID3D12LifetimeTracker_SetName(This,name) (This)->lpVtbl->SetName(This,name) 12827 /*** ID3D12DeviceChild methods ***/ 12828 #define ID3D12LifetimeTracker_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 12829 /*** ID3D12LifetimeTracker methods ***/ 12830 #define ID3D12LifetimeTracker_DestroyOwnedObject(This,object) (This)->lpVtbl->DestroyOwnedObject(This,object) 12831 #else 12832 /*** IUnknown methods ***/ 12833 static inline HRESULT ID3D12LifetimeTracker_QueryInterface(ID3D12LifetimeTracker* This,REFIID riid,void **ppvObject) { 12834 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 12835 } 12836 static inline ULONG ID3D12LifetimeTracker_AddRef(ID3D12LifetimeTracker* This) { 12837 return This->lpVtbl->AddRef(This); 12838 } 12839 static inline ULONG ID3D12LifetimeTracker_Release(ID3D12LifetimeTracker* This) { 12840 return This->lpVtbl->Release(This); 12841 } 12842 /*** ID3D12Object methods ***/ 12843 static inline HRESULT ID3D12LifetimeTracker_GetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT *data_size,void *data) { 12844 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 12845 } 12846 static inline HRESULT ID3D12LifetimeTracker_SetPrivateData(ID3D12LifetimeTracker* This,REFGUID guid,UINT data_size,const void *data) { 12847 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 12848 } 12849 static inline HRESULT ID3D12LifetimeTracker_SetPrivateDataInterface(ID3D12LifetimeTracker* This,REFGUID guid,const IUnknown *data) { 12850 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 12851 } 12852 static inline HRESULT ID3D12LifetimeTracker_SetName(ID3D12LifetimeTracker* This,const WCHAR *name) { 12853 return This->lpVtbl->SetName(This,name); 12854 } 12855 /*** ID3D12DeviceChild methods ***/ 12856 static inline HRESULT ID3D12LifetimeTracker_GetDevice(ID3D12LifetimeTracker* This,REFIID riid,void **device) { 12857 return This->lpVtbl->GetDevice(This,riid,device); 12858 } 12859 /*** ID3D12LifetimeTracker methods ***/ 12860 static inline HRESULT ID3D12LifetimeTracker_DestroyOwnedObject(ID3D12LifetimeTracker* This,ID3D12DeviceChild *object) { 12861 return This->lpVtbl->DestroyOwnedObject(This,object); 12862 } 12863 #endif 12864 #endif 12865 12866 #endif 12867 12868 12869 #endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ 12870 12871 typedef enum D3D12_META_COMMAND_PARAMETER_TYPE { 12872 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0x0, 12873 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 0x1, 12874 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 0x2, 12875 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x3, 12876 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 0x4 12877 } D3D12_META_COMMAND_PARAMETER_TYPE; 12878 typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS { 12879 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1, 12880 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2 12881 } D3D12_META_COMMAND_PARAMETER_FLAGS; 12882 DEFINE_ENUM_FLAG_OPERATORS(D3D12_META_COMMAND_PARAMETER_FLAGS); 12883 typedef enum D3D12_META_COMMAND_PARAMETER_STAGE { 12884 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0x0, 12885 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 0x1, 12886 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 0x2 12887 } D3D12_META_COMMAND_PARAMETER_STAGE; 12888 typedef struct D3D12_META_COMMAND_PARAMETER_DESC { 12889 const WCHAR *Name; 12890 D3D12_META_COMMAND_PARAMETER_TYPE Type; 12891 D3D12_META_COMMAND_PARAMETER_FLAGS Flags; 12892 D3D12_RESOURCE_STATES RequiredResourceState; 12893 UINT StructureOffset; 12894 } D3D12_META_COMMAND_PARAMETER_DESC; 12895 typedef enum D3D12_GRAPHICS_STATES { 12896 D3D12_GRAPHICS_STATE_NONE = 0x0, 12897 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = 0x1, 12898 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = 0x2, 12899 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = 0x4, 12900 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = 0x8, 12901 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = 0x10, 12902 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = 0x20, 12903 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = 0x40, 12904 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = 0x80, 12905 D3D12_GRAPHICS_STATE_PREDICATION = 0x100, 12906 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = 0x200, 12907 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = 0x400, 12908 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = 0x800, 12909 D3D12_GRAPHICS_STATE_PIPELINE_STATE = 0x1000, 12910 D3D12_GRAPHICS_STATE_SO_TARGETS = 0x2000, 12911 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = 0x4000, 12912 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = 0x8000, 12913 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = 0x10000 12914 } D3D12_GRAPHICS_STATES; 12915 DEFINE_ENUM_FLAG_OPERATORS(D3D12_GRAPHICS_STATES); 12916 typedef struct D3D12_META_COMMAND_DESC { 12917 GUID Id; 12918 const WCHAR *Name; 12919 D3D12_GRAPHICS_STATES InitializationDirtyState; 12920 D3D12_GRAPHICS_STATES ExecutionDirtyState; 12921 } D3D12_META_COMMAND_DESC; 12922 /***************************************************************************** 12923 * ID3D12StateObject interface 12924 */ 12925 #ifndef __ID3D12StateObject_INTERFACE_DEFINED__ 12926 #define __ID3D12StateObject_INTERFACE_DEFINED__ 12927 12928 DEFINE_GUID(IID_ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d); 12929 #if defined(__cplusplus) && !defined(CINTERFACE) 12930 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d") 12931 ID3D12StateObject : public ID3D12Pageable 12932 { 12933 }; 12934 #ifdef __CRT_UUID_DECL 12935 __CRT_UUID_DECL(ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93,0xea, 0xaf,0x25,0x8b,0x55,0x34,0x6d) 12936 #endif 12937 #else 12938 typedef struct ID3D12StateObjectVtbl { 12939 BEGIN_INTERFACE 12940 12941 /*** IUnknown methods ***/ 12942 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 12943 ID3D12StateObject *This, 12944 REFIID riid, 12945 void **ppvObject); 12946 12947 ULONG (STDMETHODCALLTYPE *AddRef)( 12948 ID3D12StateObject *This); 12949 12950 ULONG (STDMETHODCALLTYPE *Release)( 12951 ID3D12StateObject *This); 12952 12953 /*** ID3D12Object methods ***/ 12954 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 12955 ID3D12StateObject *This, 12956 REFGUID guid, 12957 UINT *data_size, 12958 void *data); 12959 12960 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 12961 ID3D12StateObject *This, 12962 REFGUID guid, 12963 UINT data_size, 12964 const void *data); 12965 12966 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 12967 ID3D12StateObject *This, 12968 REFGUID guid, 12969 const IUnknown *data); 12970 12971 HRESULT (STDMETHODCALLTYPE *SetName)( 12972 ID3D12StateObject *This, 12973 const WCHAR *name); 12974 12975 /*** ID3D12DeviceChild methods ***/ 12976 HRESULT (STDMETHODCALLTYPE *GetDevice)( 12977 ID3D12StateObject *This, 12978 REFIID riid, 12979 void **device); 12980 12981 END_INTERFACE 12982 } ID3D12StateObjectVtbl; 12983 12984 interface ID3D12StateObject { 12985 CONST_VTBL ID3D12StateObjectVtbl* lpVtbl; 12986 }; 12987 12988 #ifdef COBJMACROS 12989 #ifndef WIDL_C_INLINE_WRAPPERS 12990 /*** IUnknown methods ***/ 12991 #define ID3D12StateObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 12992 #define ID3D12StateObject_AddRef(This) (This)->lpVtbl->AddRef(This) 12993 #define ID3D12StateObject_Release(This) (This)->lpVtbl->Release(This) 12994 /*** ID3D12Object methods ***/ 12995 #define ID3D12StateObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 12996 #define ID3D12StateObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 12997 #define ID3D12StateObject_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 12998 #define ID3D12StateObject_SetName(This,name) (This)->lpVtbl->SetName(This,name) 12999 /*** ID3D12DeviceChild methods ***/ 13000 #define ID3D12StateObject_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 13001 #else 13002 /*** IUnknown methods ***/ 13003 static inline HRESULT ID3D12StateObject_QueryInterface(ID3D12StateObject* This,REFIID riid,void **ppvObject) { 13004 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 13005 } 13006 static inline ULONG ID3D12StateObject_AddRef(ID3D12StateObject* This) { 13007 return This->lpVtbl->AddRef(This); 13008 } 13009 static inline ULONG ID3D12StateObject_Release(ID3D12StateObject* This) { 13010 return This->lpVtbl->Release(This); 13011 } 13012 /*** ID3D12Object methods ***/ 13013 static inline HRESULT ID3D12StateObject_GetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT *data_size,void *data) { 13014 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 13015 } 13016 static inline HRESULT ID3D12StateObject_SetPrivateData(ID3D12StateObject* This,REFGUID guid,UINT data_size,const void *data) { 13017 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 13018 } 13019 static inline HRESULT ID3D12StateObject_SetPrivateDataInterface(ID3D12StateObject* This,REFGUID guid,const IUnknown *data) { 13020 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 13021 } 13022 static inline HRESULT ID3D12StateObject_SetName(ID3D12StateObject* This,const WCHAR *name) { 13023 return This->lpVtbl->SetName(This,name); 13024 } 13025 /*** ID3D12DeviceChild methods ***/ 13026 static inline HRESULT ID3D12StateObject_GetDevice(ID3D12StateObject* This,REFIID riid,void **device) { 13027 return This->lpVtbl->GetDevice(This,riid,device); 13028 } 13029 #endif 13030 #endif 13031 13032 #endif 13033 13034 13035 #endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */ 13036 13037 /***************************************************************************** 13038 * ID3D12StateObjectProperties interface 13039 */ 13040 #ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__ 13041 #define __ID3D12StateObjectProperties_INTERFACE_DEFINED__ 13042 13043 DEFINE_GUID(IID_ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60); 13044 #if defined(__cplusplus) && !defined(CINTERFACE) 13045 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860") 13046 ID3D12StateObjectProperties : public IUnknown 13047 { 13048 virtual void * STDMETHODCALLTYPE GetShaderIdentifier( 13049 const WCHAR *export_name) = 0; 13050 13051 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize( 13052 const WCHAR *export_name) = 0; 13053 13054 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( 13055 ) = 0; 13056 13057 virtual void STDMETHODCALLTYPE SetPipelineStackSize( 13058 UINT64 pipeline_stack_size_in_bytes) = 0; 13059 13060 }; 13061 #ifdef __CRT_UUID_DECL 13062 __CRT_UUID_DECL(ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89,0xff, 0xd7,0xf5,0x6f,0xde,0x38,0x60) 13063 #endif 13064 #else 13065 typedef struct ID3D12StateObjectPropertiesVtbl { 13066 BEGIN_INTERFACE 13067 13068 /*** IUnknown methods ***/ 13069 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 13070 ID3D12StateObjectProperties *This, 13071 REFIID riid, 13072 void **ppvObject); 13073 13074 ULONG (STDMETHODCALLTYPE *AddRef)( 13075 ID3D12StateObjectProperties *This); 13076 13077 ULONG (STDMETHODCALLTYPE *Release)( 13078 ID3D12StateObjectProperties *This); 13079 13080 /*** ID3D12StateObjectProperties methods ***/ 13081 void * (STDMETHODCALLTYPE *GetShaderIdentifier)( 13082 ID3D12StateObjectProperties *This, 13083 const WCHAR *export_name); 13084 13085 UINT64 (STDMETHODCALLTYPE *GetShaderStackSize)( 13086 ID3D12StateObjectProperties *This, 13087 const WCHAR *export_name); 13088 13089 UINT64 (STDMETHODCALLTYPE *GetPipelineStackSize)( 13090 ID3D12StateObjectProperties *This); 13091 13092 void (STDMETHODCALLTYPE *SetPipelineStackSize)( 13093 ID3D12StateObjectProperties *This, 13094 UINT64 pipeline_stack_size_in_bytes); 13095 13096 END_INTERFACE 13097 } ID3D12StateObjectPropertiesVtbl; 13098 13099 interface ID3D12StateObjectProperties { 13100 CONST_VTBL ID3D12StateObjectPropertiesVtbl* lpVtbl; 13101 }; 13102 13103 #ifdef COBJMACROS 13104 #ifndef WIDL_C_INLINE_WRAPPERS 13105 /*** IUnknown methods ***/ 13106 #define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 13107 #define ID3D12StateObjectProperties_AddRef(This) (This)->lpVtbl->AddRef(This) 13108 #define ID3D12StateObjectProperties_Release(This) (This)->lpVtbl->Release(This) 13109 /*** ID3D12StateObjectProperties methods ***/ 13110 #define ID3D12StateObjectProperties_GetShaderIdentifier(This,export_name) (This)->lpVtbl->GetShaderIdentifier(This,export_name) 13111 #define ID3D12StateObjectProperties_GetShaderStackSize(This,export_name) (This)->lpVtbl->GetShaderStackSize(This,export_name) 13112 #define ID3D12StateObjectProperties_GetPipelineStackSize(This) (This)->lpVtbl->GetPipelineStackSize(This) 13113 #define ID3D12StateObjectProperties_SetPipelineStackSize(This,pipeline_stack_size_in_bytes) (This)->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes) 13114 #else 13115 /*** IUnknown methods ***/ 13116 static inline HRESULT ID3D12StateObjectProperties_QueryInterface(ID3D12StateObjectProperties* This,REFIID riid,void **ppvObject) { 13117 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 13118 } 13119 static inline ULONG ID3D12StateObjectProperties_AddRef(ID3D12StateObjectProperties* This) { 13120 return This->lpVtbl->AddRef(This); 13121 } 13122 static inline ULONG ID3D12StateObjectProperties_Release(ID3D12StateObjectProperties* This) { 13123 return This->lpVtbl->Release(This); 13124 } 13125 /*** ID3D12StateObjectProperties methods ***/ 13126 static inline void * ID3D12StateObjectProperties_GetShaderIdentifier(ID3D12StateObjectProperties* This,const WCHAR *export_name) { 13127 return This->lpVtbl->GetShaderIdentifier(This,export_name); 13128 } 13129 static inline UINT64 ID3D12StateObjectProperties_GetShaderStackSize(ID3D12StateObjectProperties* This,const WCHAR *export_name) { 13130 return This->lpVtbl->GetShaderStackSize(This,export_name); 13131 } 13132 static inline UINT64 ID3D12StateObjectProperties_GetPipelineStackSize(ID3D12StateObjectProperties* This) { 13133 return This->lpVtbl->GetPipelineStackSize(This); 13134 } 13135 static inline void ID3D12StateObjectProperties_SetPipelineStackSize(ID3D12StateObjectProperties* This,UINT64 pipeline_stack_size_in_bytes) { 13136 This->lpVtbl->SetPipelineStackSize(This,pipeline_stack_size_in_bytes); 13137 } 13138 #endif 13139 #endif 13140 13141 #endif 13142 13143 13144 #endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ 13145 13146 typedef enum D3D12_STATE_SUBOBJECT_TYPE { 13147 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0x0, 13148 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 0x1, 13149 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 0x2, 13150 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 0x3, 13151 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 0x5, 13152 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 0x6, 13153 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x7, 13154 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 0x8, 13155 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 0x9, 13156 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 0xa, 13157 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 0xb, 13158 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 0xc, 13159 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = 0xd 13160 } D3D12_STATE_SUBOBJECT_TYPE; 13161 typedef struct D3D12_STATE_SUBOBJECT { 13162 D3D12_STATE_SUBOBJECT_TYPE Type; 13163 const void *pDesc; 13164 } D3D12_STATE_SUBOBJECT; 13165 typedef enum D3D12_STATE_OBJECT_FLAGS { 13166 D3D12_STATE_OBJECT_FLAG_NONE = 0x0, 13167 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, 13168 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, 13169 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4 13170 } D3D12_STATE_OBJECT_FLAGS; 13171 DEFINE_ENUM_FLAG_OPERATORS(D3D12_STATE_OBJECT_FLAGS); 13172 typedef struct D3D12_STATE_OBJECT_CONFIG { 13173 D3D12_STATE_OBJECT_FLAGS Flags; 13174 } D3D12_STATE_OBJECT_CONFIG; 13175 typedef struct D3D12_GLOBAL_ROOT_SIGNATURE { 13176 ID3D12RootSignature *pGlobalRootSignature; 13177 } D3D12_GLOBAL_ROOT_SIGNATURE; 13178 typedef struct D3D12_LOCAL_ROOT_SIGNATURE { 13179 ID3D12RootSignature *pLocalRootSignature; 13180 } D3D12_LOCAL_ROOT_SIGNATURE; 13181 typedef struct D3D12_NODE_MASK { 13182 UINT NodeMask; 13183 } D3D12_NODE_MASK; 13184 typedef enum D3D12_EXPORT_FLAGS { 13185 D3D12_EXPORT_FLAG_NONE = 0x0 13186 } D3D12_EXPORT_FLAGS; 13187 DEFINE_ENUM_FLAG_OPERATORS(D3D12_EXPORT_FLAGS); 13188 typedef struct D3D12_EXPORT_DESC { 13189 const WCHAR *Name; 13190 const WCHAR *ExportToRename; 13191 D3D12_EXPORT_FLAGS Flags; 13192 } D3D12_EXPORT_DESC; 13193 typedef struct D3D12_DXIL_LIBRARY_DESC { 13194 D3D12_SHADER_BYTECODE DXILLibrary; 13195 UINT NumExports; 13196 D3D12_EXPORT_DESC *pExports; 13197 } D3D12_DXIL_LIBRARY_DESC; 13198 typedef struct D3D12_EXISTING_COLLECTION_DESC { 13199 ID3D12StateObject *pExistingCollection; 13200 UINT NumExports; 13201 D3D12_EXPORT_DESC *pExports; 13202 } D3D12_EXISTING_COLLECTION_DESC; 13203 typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION { 13204 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate; 13205 UINT NumExports; 13206 const WCHAR **pExports; 13207 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; 13208 typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION { 13209 const WCHAR *SubobjectToAssociate; 13210 UINT NumExports; 13211 const WCHAR **pExports; 13212 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; 13213 typedef enum D3D12_HIT_GROUP_TYPE { 13214 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0, 13215 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1 13216 } D3D12_HIT_GROUP_TYPE; 13217 typedef struct D3D12_HIT_GROUP_DESC { 13218 const WCHAR *HitGroupExport; 13219 D3D12_HIT_GROUP_TYPE Type; 13220 const WCHAR *AnyHitShaderImport; 13221 const WCHAR *ClosestHitShaderImport; 13222 const WCHAR *IntersectionShaderImport; 13223 } D3D12_HIT_GROUP_DESC; 13224 typedef struct D3D12_RAYTRACING_SHADER_CONFIG { 13225 UINT MaxPayloadSizeInBytes; 13226 UINT MaxAttributeSizeInBytes; 13227 } D3D12_RAYTRACING_SHADER_CONFIG; 13228 typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG { 13229 UINT MaxTraceRecursionDepth; 13230 } D3D12_RAYTRACING_PIPELINE_CONFIG; 13231 typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS { 13232 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0, 13233 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, 13234 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 13235 } D3D12_RAYTRACING_PIPELINE_FLAGS; 13236 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_PIPELINE_FLAGS); 13237 typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 { 13238 UINT MaxTraceRecursionDepth; 13239 D3D12_RAYTRACING_PIPELINE_FLAGS Flags; 13240 } D3D12_RAYTRACING_PIPELINE_CONFIG1; 13241 typedef enum D3D12_STATE_OBJECT_TYPE { 13242 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0x0, 13243 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 0x3 13244 } D3D12_STATE_OBJECT_TYPE; 13245 typedef struct D3D12_STATE_OBJECT_DESC { 13246 D3D12_STATE_OBJECT_TYPE Type; 13247 UINT NumSubobjects; 13248 const D3D12_STATE_SUBOBJECT *pSubobjects; 13249 } D3D12_STATE_OBJECT_DESC; 13250 typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS { 13251 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0, 13252 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, 13253 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2 13254 } D3D12_RAYTRACING_GEOMETRY_FLAGS; 13255 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_GEOMETRY_FLAGS); 13256 typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE { 13257 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0x0, 13258 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = 0x1 13259 } D3D12_RAYTRACING_GEOMETRY_TYPE; 13260 typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS { 13261 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0, 13262 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, 13263 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, 13264 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, 13265 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8 13266 } D3D12_RAYTRACING_INSTANCE_FLAGS; 13267 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_INSTANCE_FLAGS); 13268 typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE { 13269 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 13270 UINT64 StrideInBytes; 13271 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; 13272 typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE { 13273 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 13274 UINT64 SizeInBytes; 13275 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE; 13276 typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE { 13277 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 13278 UINT64 SizeInBytes; 13279 UINT64 StrideInBytes; 13280 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; 13281 typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC { 13282 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; 13283 DXGI_FORMAT IndexFormat; 13284 DXGI_FORMAT VertexFormat; 13285 UINT IndexCount; 13286 UINT VertexCount; 13287 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; 13288 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; 13289 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; 13290 typedef struct D3D12_RAYTRACING_AABB { 13291 FLOAT MinX; 13292 FLOAT MinY; 13293 FLOAT MinZ; 13294 FLOAT MaxX; 13295 FLOAT MaxY; 13296 FLOAT MaxZ; 13297 } D3D12_RAYTRACING_AABB; 13298 typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC { 13299 UINT64 AABBCount; 13300 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; 13301 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; 13302 typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS { 13303 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x0, 13304 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1, 13305 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2, 13306 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4, 13307 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8, 13308 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, 13309 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20 13310 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; 13311 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS); 13312 typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE { 13313 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0, 13314 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, 13315 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, 13316 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, 13317 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4 13318 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; 13319 typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE { 13320 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0, 13321 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1 13322 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; 13323 typedef enum D3D12_ELEMENTS_LAYOUT { 13324 D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0, 13325 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 13326 } D3D12_ELEMENTS_LAYOUT; 13327 typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE { 13328 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0, 13329 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, 13330 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, 13331 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3 13332 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; 13333 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC { 13334 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; 13335 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; 13336 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; 13337 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC { 13338 UINT64 CompactedSizeInBytes; 13339 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; 13340 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC { 13341 UINT64 DecodedSizeInBytes; 13342 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; 13343 typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER { 13344 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; 13345 UINT NumDescs; 13346 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; 13347 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC { 13348 UINT64 SerializedSizeInBytes; 13349 UINT64 NumBottomLevelAccelerationStructurePointers; 13350 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; 13351 typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER { 13352 GUID DriverOpaqueGUID; 13353 BYTE DriverOpaqueVersioningData[16]; 13354 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; 13355 typedef enum D3D12_SERIALIZED_DATA_TYPE { 13356 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0 13357 } D3D12_SERIALIZED_DATA_TYPE; 13358 typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS { 13359 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0, 13360 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, 13361 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, 13362 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, 13363 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4 13364 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; 13365 typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER { 13366 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; 13367 UINT64 SerializedSizeInBytesIncludingHeader; 13368 UINT64 DeserializedSizeInBytes; 13369 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; 13370 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; 13371 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC { 13372 UINT64 CurrentSizeInBytes; 13373 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; 13374 typedef struct D3D12_RAYTRACING_INSTANCE_DESC { 13375 FLOAT Transform[3][4]; 13376 UINT InstanceID : 24; 13377 UINT InstanceMask : 8; 13378 UINT InstanceContributionToHitGroupIndex : 24; 13379 UINT Flags : 8; 13380 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; 13381 } D3D12_RAYTRACING_INSTANCE_DESC; 13382 typedef struct D3D12_RAYTRACING_GEOMETRY_DESC { 13383 D3D12_RAYTRACING_GEOMETRY_TYPE Type; 13384 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; 13385 __C89_NAMELESS union { 13386 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; 13387 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; 13388 } __C89_NAMELESSUNIONNAME; 13389 } D3D12_RAYTRACING_GEOMETRY_DESC; 13390 typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS { 13391 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; 13392 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; 13393 UINT NumDescs; 13394 D3D12_ELEMENTS_LAYOUT DescsLayout; 13395 __C89_NAMELESS union { 13396 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; 13397 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs; 13398 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs; 13399 } __C89_NAMELESSUNIONNAME; 13400 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; 13401 typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC { 13402 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; 13403 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; 13404 D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; 13405 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; 13406 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; 13407 typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO { 13408 UINT64 ResultDataMaxSizeInBytes; 13409 UINT64 ScratchDataSizeInBytes; 13410 UINT64 UpdateScratchDataSizeInBytes; 13411 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; 13412 typedef enum D3D12_RAY_FLAGS { 13413 D3D12_RAY_FLAG_NONE = 0x0, 13414 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1, 13415 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2, 13416 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4, 13417 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8, 13418 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, 13419 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, 13420 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, 13421 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, 13422 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, 13423 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 13424 } D3D12_RAY_FLAGS; 13425 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAY_FLAGS); 13426 typedef enum D3D12_HIT_KIND { 13427 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, 13428 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff 13429 } D3D12_HIT_KIND; 13430 /***************************************************************************** 13431 * ID3D12Device5 interface 13432 */ 13433 #ifndef __ID3D12Device5_INTERFACE_DEFINED__ 13434 #define __ID3D12Device5_INTERFACE_DEFINED__ 13435 13436 DEFINE_GUID(IID_ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d); 13437 #if defined(__cplusplus) && !defined(CINTERFACE) 13438 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d") 13439 ID3D12Device5 : public ID3D12Device4 13440 { 13441 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker( 13442 ID3D12LifetimeOwner *owner, 13443 REFIID riid, 13444 void **tracker) = 0; 13445 13446 virtual void STDMETHODCALLTYPE RemoveDevice( 13447 ) = 0; 13448 13449 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands( 13450 UINT *meta_commands_count, 13451 D3D12_META_COMMAND_DESC *descs) = 0; 13452 13453 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters( 13454 REFGUID command_id, 13455 D3D12_META_COMMAND_PARAMETER_STAGE stage, 13456 UINT *total_structure_size_in_bytes, 13457 UINT *parameter_count, 13458 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) = 0; 13459 13460 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand( 13461 REFGUID command_id, 13462 UINT node_mask, 13463 const void *creation_parameters_data, 13464 SIZE_T creation_parameters_data_size_in_bytes, 13465 REFIID riid, 13466 void **meta_command) = 0; 13467 13468 virtual HRESULT STDMETHODCALLTYPE CreateStateObject( 13469 const D3D12_STATE_OBJECT_DESC *desc, 13470 REFIID riid, 13471 void **state_object) = 0; 13472 13473 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo( 13474 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 13475 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) = 0; 13476 13477 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier( 13478 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 13479 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) = 0; 13480 13481 }; 13482 #ifdef __CRT_UUID_DECL 13483 __CRT_UUID_DECL(ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f,0x58, 0x43,0x07,0x19,0x1a,0xb9,0x5d) 13484 #endif 13485 #else 13486 typedef struct ID3D12Device5Vtbl { 13487 BEGIN_INTERFACE 13488 13489 /*** IUnknown methods ***/ 13490 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 13491 ID3D12Device5 *This, 13492 REFIID riid, 13493 void **ppvObject); 13494 13495 ULONG (STDMETHODCALLTYPE *AddRef)( 13496 ID3D12Device5 *This); 13497 13498 ULONG (STDMETHODCALLTYPE *Release)( 13499 ID3D12Device5 *This); 13500 13501 /*** ID3D12Object methods ***/ 13502 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 13503 ID3D12Device5 *This, 13504 REFGUID guid, 13505 UINT *data_size, 13506 void *data); 13507 13508 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 13509 ID3D12Device5 *This, 13510 REFGUID guid, 13511 UINT data_size, 13512 const void *data); 13513 13514 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 13515 ID3D12Device5 *This, 13516 REFGUID guid, 13517 const IUnknown *data); 13518 13519 HRESULT (STDMETHODCALLTYPE *SetName)( 13520 ID3D12Device5 *This, 13521 const WCHAR *name); 13522 13523 /*** ID3D12Device methods ***/ 13524 UINT (STDMETHODCALLTYPE *GetNodeCount)( 13525 ID3D12Device5 *This); 13526 13527 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 13528 ID3D12Device5 *This, 13529 const D3D12_COMMAND_QUEUE_DESC *desc, 13530 REFIID riid, 13531 void **command_queue); 13532 13533 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 13534 ID3D12Device5 *This, 13535 D3D12_COMMAND_LIST_TYPE type, 13536 REFIID riid, 13537 void **command_allocator); 13538 13539 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 13540 ID3D12Device5 *This, 13541 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 13542 REFIID riid, 13543 void **pipeline_state); 13544 13545 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 13546 ID3D12Device5 *This, 13547 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 13548 REFIID riid, 13549 void **pipeline_state); 13550 13551 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 13552 ID3D12Device5 *This, 13553 UINT node_mask, 13554 D3D12_COMMAND_LIST_TYPE type, 13555 ID3D12CommandAllocator *command_allocator, 13556 ID3D12PipelineState *initial_pipeline_state, 13557 REFIID riid, 13558 void **command_list); 13559 13560 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 13561 ID3D12Device5 *This, 13562 D3D12_FEATURE feature, 13563 void *feature_data, 13564 UINT feature_data_size); 13565 13566 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 13567 ID3D12Device5 *This, 13568 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 13569 REFIID riid, 13570 void **descriptor_heap); 13571 13572 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 13573 ID3D12Device5 *This, 13574 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 13575 13576 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 13577 ID3D12Device5 *This, 13578 UINT node_mask, 13579 const void *bytecode, 13580 SIZE_T bytecode_length, 13581 REFIID riid, 13582 void **root_signature); 13583 13584 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 13585 ID3D12Device5 *This, 13586 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 13587 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13588 13589 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 13590 ID3D12Device5 *This, 13591 ID3D12Resource *resource, 13592 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 13593 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13594 13595 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 13596 ID3D12Device5 *This, 13597 ID3D12Resource *resource, 13598 ID3D12Resource *counter_resource, 13599 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 13600 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13601 13602 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 13603 ID3D12Device5 *This, 13604 ID3D12Resource *resource, 13605 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 13606 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13607 13608 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 13609 ID3D12Device5 *This, 13610 ID3D12Resource *resource, 13611 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 13612 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13613 13614 void (STDMETHODCALLTYPE *CreateSampler)( 13615 ID3D12Device5 *This, 13616 const D3D12_SAMPLER_DESC *desc, 13617 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 13618 13619 void (STDMETHODCALLTYPE *CopyDescriptors)( 13620 ID3D12Device5 *This, 13621 UINT dst_descriptor_range_count, 13622 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 13623 const UINT *dst_descriptor_range_sizes, 13624 UINT src_descriptor_range_count, 13625 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 13626 const UINT *src_descriptor_range_sizes, 13627 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 13628 13629 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 13630 ID3D12Device5 *This, 13631 UINT descriptor_count, 13632 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 13633 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 13634 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 13635 13636 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 13637 ID3D12Device5 *This, 13638 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 13639 UINT visible_mask, 13640 UINT reource_desc_count, 13641 const D3D12_RESOURCE_DESC *resource_descs); 13642 13643 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 13644 ID3D12Device5 *This, 13645 D3D12_HEAP_PROPERTIES *__ret, 13646 UINT node_mask, 13647 D3D12_HEAP_TYPE heap_type); 13648 13649 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 13650 ID3D12Device5 *This, 13651 const D3D12_HEAP_PROPERTIES *heap_properties, 13652 D3D12_HEAP_FLAGS heap_flags, 13653 const D3D12_RESOURCE_DESC *desc, 13654 D3D12_RESOURCE_STATES initial_state, 13655 const D3D12_CLEAR_VALUE *optimized_clear_value, 13656 REFIID riid, 13657 void **resource); 13658 13659 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 13660 ID3D12Device5 *This, 13661 const D3D12_HEAP_DESC *desc, 13662 REFIID riid, 13663 void **heap); 13664 13665 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 13666 ID3D12Device5 *This, 13667 ID3D12Heap *heap, 13668 UINT64 heap_offset, 13669 const D3D12_RESOURCE_DESC *desc, 13670 D3D12_RESOURCE_STATES initial_state, 13671 const D3D12_CLEAR_VALUE *optimized_clear_value, 13672 REFIID riid, 13673 void **resource); 13674 13675 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 13676 ID3D12Device5 *This, 13677 const D3D12_RESOURCE_DESC *desc, 13678 D3D12_RESOURCE_STATES initial_state, 13679 const D3D12_CLEAR_VALUE *optimized_clear_value, 13680 REFIID riid, 13681 void **resource); 13682 13683 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 13684 ID3D12Device5 *This, 13685 ID3D12DeviceChild *object, 13686 const SECURITY_ATTRIBUTES *attributes, 13687 DWORD access, 13688 const WCHAR *name, 13689 HANDLE *handle); 13690 13691 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 13692 ID3D12Device5 *This, 13693 HANDLE handle, 13694 REFIID riid, 13695 void **object); 13696 13697 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 13698 ID3D12Device5 *This, 13699 const WCHAR *name, 13700 DWORD access, 13701 HANDLE *handle); 13702 13703 HRESULT (STDMETHODCALLTYPE *MakeResident)( 13704 ID3D12Device5 *This, 13705 UINT object_count, 13706 ID3D12Pageable *const *objects); 13707 13708 HRESULT (STDMETHODCALLTYPE *Evict)( 13709 ID3D12Device5 *This, 13710 UINT object_count, 13711 ID3D12Pageable *const *objects); 13712 13713 HRESULT (STDMETHODCALLTYPE *CreateFence)( 13714 ID3D12Device5 *This, 13715 UINT64 initial_value, 13716 D3D12_FENCE_FLAGS flags, 13717 REFIID riid, 13718 void **fence); 13719 13720 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 13721 ID3D12Device5 *This); 13722 13723 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 13724 ID3D12Device5 *This, 13725 const D3D12_RESOURCE_DESC *desc, 13726 UINT first_sub_resource, 13727 UINT sub_resource_count, 13728 UINT64 base_offset, 13729 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 13730 UINT *row_count, 13731 UINT64 *row_size, 13732 UINT64 *total_bytes); 13733 13734 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 13735 ID3D12Device5 *This, 13736 const D3D12_QUERY_HEAP_DESC *desc, 13737 REFIID riid, 13738 void **heap); 13739 13740 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 13741 ID3D12Device5 *This, 13742 WINBOOL enable); 13743 13744 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 13745 ID3D12Device5 *This, 13746 const D3D12_COMMAND_SIGNATURE_DESC *desc, 13747 ID3D12RootSignature *root_signature, 13748 REFIID riid, 13749 void **command_signature); 13750 13751 void (STDMETHODCALLTYPE *GetResourceTiling)( 13752 ID3D12Device5 *This, 13753 ID3D12Resource *resource, 13754 UINT *total_tile_count, 13755 D3D12_PACKED_MIP_INFO *packed_mip_info, 13756 D3D12_TILE_SHAPE *standard_tile_shape, 13757 UINT *sub_resource_tiling_count, 13758 UINT first_sub_resource_tiling, 13759 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 13760 13761 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 13762 ID3D12Device5 *This, 13763 LUID *__ret); 13764 13765 /*** ID3D12Device1 methods ***/ 13766 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 13767 ID3D12Device5 *This, 13768 const void *blob, 13769 SIZE_T blob_size, 13770 REFIID iid, 13771 void **lib); 13772 13773 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 13774 ID3D12Device5 *This, 13775 ID3D12Fence *const *fences, 13776 const UINT64 *values, 13777 UINT fence_count, 13778 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 13779 HANDLE event); 13780 13781 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 13782 ID3D12Device5 *This, 13783 UINT object_count, 13784 ID3D12Pageable *const *objects, 13785 const D3D12_RESIDENCY_PRIORITY *priorities); 13786 13787 /*** ID3D12Device2 methods ***/ 13788 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 13789 ID3D12Device5 *This, 13790 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 13791 REFIID riid, 13792 void **pipeline_state); 13793 13794 /*** ID3D12Device3 methods ***/ 13795 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 13796 ID3D12Device5 *This, 13797 const void *address, 13798 REFIID riid, 13799 void **heap); 13800 13801 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 13802 ID3D12Device5 *This, 13803 HANDLE file_mapping, 13804 REFIID riid, 13805 void **heap); 13806 13807 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 13808 ID3D12Device5 *This, 13809 D3D12_RESIDENCY_FLAGS flags, 13810 UINT num_objects, 13811 ID3D12Pageable *const *objects, 13812 ID3D12Fence *fence, 13813 UINT64 fence_value); 13814 13815 /*** ID3D12Device4 methods ***/ 13816 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 13817 ID3D12Device5 *This, 13818 UINT node_mask, 13819 D3D12_COMMAND_LIST_TYPE type, 13820 D3D12_COMMAND_LIST_FLAGS flags, 13821 REFIID riid, 13822 void **command_list); 13823 13824 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 13825 ID3D12Device5 *This, 13826 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 13827 REFIID riid, 13828 void **session); 13829 13830 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 13831 ID3D12Device5 *This, 13832 const D3D12_HEAP_PROPERTIES *heap_properties, 13833 D3D12_HEAP_FLAGS heap_flags, 13834 const D3D12_RESOURCE_DESC *desc, 13835 D3D12_RESOURCE_STATES initial_resource_state, 13836 const D3D12_CLEAR_VALUE *optimized_clear_value, 13837 ID3D12ProtectedResourceSession *protected_session, 13838 REFIID riid_resource, 13839 void **resource); 13840 13841 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 13842 ID3D12Device5 *This, 13843 const D3D12_HEAP_DESC *desc, 13844 ID3D12ProtectedResourceSession *protected_session, 13845 REFIID riid, 13846 void **heap); 13847 13848 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 13849 ID3D12Device5 *This, 13850 const D3D12_RESOURCE_DESC *desc, 13851 D3D12_RESOURCE_STATES initial_state, 13852 const D3D12_CLEAR_VALUE *optimized_clear_value, 13853 ID3D12ProtectedResourceSession *protected_session, 13854 REFIID riid, 13855 void **resource); 13856 13857 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 13858 ID3D12Device5 *This, 13859 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 13860 UINT visible_mask, 13861 UINT resource_descs_count, 13862 const D3D12_RESOURCE_DESC *resource_descs, 13863 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 13864 13865 /*** ID3D12Device5 methods ***/ 13866 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 13867 ID3D12Device5 *This, 13868 ID3D12LifetimeOwner *owner, 13869 REFIID riid, 13870 void **tracker); 13871 13872 void (STDMETHODCALLTYPE *RemoveDevice)( 13873 ID3D12Device5 *This); 13874 13875 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 13876 ID3D12Device5 *This, 13877 UINT *meta_commands_count, 13878 D3D12_META_COMMAND_DESC *descs); 13879 13880 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 13881 ID3D12Device5 *This, 13882 REFGUID command_id, 13883 D3D12_META_COMMAND_PARAMETER_STAGE stage, 13884 UINT *total_structure_size_in_bytes, 13885 UINT *parameter_count, 13886 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 13887 13888 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 13889 ID3D12Device5 *This, 13890 REFGUID command_id, 13891 UINT node_mask, 13892 const void *creation_parameters_data, 13893 SIZE_T creation_parameters_data_size_in_bytes, 13894 REFIID riid, 13895 void **meta_command); 13896 13897 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 13898 ID3D12Device5 *This, 13899 const D3D12_STATE_OBJECT_DESC *desc, 13900 REFIID riid, 13901 void **state_object); 13902 13903 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 13904 ID3D12Device5 *This, 13905 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 13906 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 13907 13908 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 13909 ID3D12Device5 *This, 13910 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 13911 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 13912 13913 END_INTERFACE 13914 } ID3D12Device5Vtbl; 13915 13916 interface ID3D12Device5 { 13917 CONST_VTBL ID3D12Device5Vtbl* lpVtbl; 13918 }; 13919 13920 #ifdef COBJMACROS 13921 #ifndef WIDL_C_INLINE_WRAPPERS 13922 /*** IUnknown methods ***/ 13923 #define ID3D12Device5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 13924 #define ID3D12Device5_AddRef(This) (This)->lpVtbl->AddRef(This) 13925 #define ID3D12Device5_Release(This) (This)->lpVtbl->Release(This) 13926 /*** ID3D12Object methods ***/ 13927 #define ID3D12Device5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 13928 #define ID3D12Device5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 13929 #define ID3D12Device5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 13930 #define ID3D12Device5_SetName(This,name) (This)->lpVtbl->SetName(This,name) 13931 /*** ID3D12Device methods ***/ 13932 #define ID3D12Device5_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 13933 #define ID3D12Device5_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 13934 #define ID3D12Device5_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 13935 #define ID3D12Device5_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 13936 #define ID3D12Device5_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 13937 #define ID3D12Device5_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 13938 #define ID3D12Device5_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 13939 #define ID3D12Device5_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 13940 #define ID3D12Device5_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 13941 #define ID3D12Device5_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 13942 #define ID3D12Device5_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 13943 #define ID3D12Device5_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 13944 #define ID3D12Device5_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 13945 #define ID3D12Device5_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 13946 #define ID3D12Device5_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 13947 #define ID3D12Device5_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 13948 #define ID3D12Device5_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 13949 #define ID3D12Device5_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 13950 #define ID3D12Device5_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device5_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 13951 #define ID3D12Device5_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device5_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 13952 #define ID3D12Device5_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 13953 #define ID3D12Device5_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 13954 #define ID3D12Device5_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 13955 #define ID3D12Device5_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 13956 #define ID3D12Device5_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 13957 #define ID3D12Device5_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 13958 #define ID3D12Device5_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 13959 #define ID3D12Device5_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 13960 #define ID3D12Device5_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 13961 #define ID3D12Device5_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 13962 #define ID3D12Device5_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 13963 #define ID3D12Device5_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 13964 #define ID3D12Device5_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 13965 #define ID3D12Device5_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 13966 #define ID3D12Device5_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 13967 #define ID3D12Device5_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 13968 #define ID3D12Device5_GetAdapterLuid(This) ID3D12Device5_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 13969 /*** ID3D12Device1 methods ***/ 13970 #define ID3D12Device5_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 13971 #define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 13972 #define ID3D12Device5_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 13973 /*** ID3D12Device2 methods ***/ 13974 #define ID3D12Device5_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 13975 /*** ID3D12Device3 methods ***/ 13976 #define ID3D12Device5_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 13977 #define ID3D12Device5_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 13978 #define ID3D12Device5_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 13979 /*** ID3D12Device4 methods ***/ 13980 #define ID3D12Device5_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 13981 #define ID3D12Device5_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 13982 #define ID3D12Device5_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 13983 #define ID3D12Device5_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 13984 #define ID3D12Device5_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 13985 #define ID3D12Device5_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device5_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 13986 /*** ID3D12Device5 methods ***/ 13987 #define ID3D12Device5_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 13988 #define ID3D12Device5_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 13989 #define ID3D12Device5_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 13990 #define ID3D12Device5_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 13991 #define ID3D12Device5_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 13992 #define ID3D12Device5_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 13993 #define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 13994 #define ID3D12Device5_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 13995 #else 13996 /*** IUnknown methods ***/ 13997 static inline HRESULT ID3D12Device5_QueryInterface(ID3D12Device5* This,REFIID riid,void **ppvObject) { 13998 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 13999 } 14000 static inline ULONG ID3D12Device5_AddRef(ID3D12Device5* This) { 14001 return This->lpVtbl->AddRef(This); 14002 } 14003 static inline ULONG ID3D12Device5_Release(ID3D12Device5* This) { 14004 return This->lpVtbl->Release(This); 14005 } 14006 /*** ID3D12Object methods ***/ 14007 static inline HRESULT ID3D12Device5_GetPrivateData(ID3D12Device5* This,REFGUID guid,UINT *data_size,void *data) { 14008 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 14009 } 14010 static inline HRESULT ID3D12Device5_SetPrivateData(ID3D12Device5* This,REFGUID guid,UINT data_size,const void *data) { 14011 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 14012 } 14013 static inline HRESULT ID3D12Device5_SetPrivateDataInterface(ID3D12Device5* This,REFGUID guid,const IUnknown *data) { 14014 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 14015 } 14016 static inline HRESULT ID3D12Device5_SetName(ID3D12Device5* This,const WCHAR *name) { 14017 return This->lpVtbl->SetName(This,name); 14018 } 14019 /*** ID3D12Device methods ***/ 14020 static inline UINT ID3D12Device5_GetNodeCount(ID3D12Device5* This) { 14021 return This->lpVtbl->GetNodeCount(This); 14022 } 14023 static inline HRESULT ID3D12Device5_CreateCommandQueue(ID3D12Device5* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 14024 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 14025 } 14026 static inline HRESULT ID3D12Device5_CreateCommandAllocator(ID3D12Device5* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 14027 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 14028 } 14029 static inline HRESULT ID3D12Device5_CreateGraphicsPipelineState(ID3D12Device5* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 14030 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 14031 } 14032 static inline HRESULT ID3D12Device5_CreateComputePipelineState(ID3D12Device5* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 14033 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 14034 } 14035 static inline HRESULT ID3D12Device5_CreateCommandList(ID3D12Device5* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 14036 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 14037 } 14038 static inline HRESULT ID3D12Device5_CheckFeatureSupport(ID3D12Device5* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 14039 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 14040 } 14041 static inline HRESULT ID3D12Device5_CreateDescriptorHeap(ID3D12Device5* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 14042 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 14043 } 14044 static inline UINT ID3D12Device5_GetDescriptorHandleIncrementSize(ID3D12Device5* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 14045 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 14046 } 14047 static inline HRESULT ID3D12Device5_CreateRootSignature(ID3D12Device5* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 14048 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 14049 } 14050 static inline void ID3D12Device5_CreateConstantBufferView(ID3D12Device5* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14051 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 14052 } 14053 static inline void ID3D12Device5_CreateShaderResourceView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14054 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 14055 } 14056 static inline void ID3D12Device5_CreateUnorderedAccessView(ID3D12Device5* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14057 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 14058 } 14059 static inline void ID3D12Device5_CreateRenderTargetView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14060 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 14061 } 14062 static inline void ID3D12Device5_CreateDepthStencilView(ID3D12Device5* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14063 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 14064 } 14065 static inline void ID3D12Device5_CreateSampler(ID3D12Device5* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 14066 This->lpVtbl->CreateSampler(This,desc,descriptor); 14067 } 14068 static inline void ID3D12Device5_CopyDescriptors(ID3D12Device5* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 14069 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 14070 } 14071 static inline void ID3D12Device5_CopyDescriptorsSimple(ID3D12Device5* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 14072 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 14073 } 14074 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device5_GetResourceAllocationInfo(ID3D12Device5* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 14075 D3D12_RESOURCE_ALLOCATION_INFO __ret; 14076 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 14077 } 14078 static inline D3D12_HEAP_PROPERTIES ID3D12Device5_GetCustomHeapProperties(ID3D12Device5* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 14079 D3D12_HEAP_PROPERTIES __ret; 14080 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 14081 } 14082 static inline HRESULT ID3D12Device5_CreateCommittedResource(ID3D12Device5* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 14083 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 14084 } 14085 static inline HRESULT ID3D12Device5_CreateHeap(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 14086 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 14087 } 14088 static inline HRESULT ID3D12Device5_CreatePlacedResource(ID3D12Device5* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 14089 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 14090 } 14091 static inline HRESULT ID3D12Device5_CreateReservedResource(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 14092 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 14093 } 14094 static inline HRESULT ID3D12Device5_CreateSharedHandle(ID3D12Device5* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 14095 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 14096 } 14097 static inline HRESULT ID3D12Device5_OpenSharedHandle(ID3D12Device5* This,HANDLE handle,REFIID riid,void **object) { 14098 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 14099 } 14100 static inline HRESULT ID3D12Device5_OpenSharedHandleByName(ID3D12Device5* This,const WCHAR *name,DWORD access,HANDLE *handle) { 14101 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 14102 } 14103 static inline HRESULT ID3D12Device5_MakeResident(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) { 14104 return This->lpVtbl->MakeResident(This,object_count,objects); 14105 } 14106 static inline HRESULT ID3D12Device5_Evict(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects) { 14107 return This->lpVtbl->Evict(This,object_count,objects); 14108 } 14109 static inline HRESULT ID3D12Device5_CreateFence(ID3D12Device5* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 14110 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 14111 } 14112 static inline HRESULT ID3D12Device5_GetDeviceRemovedReason(ID3D12Device5* This) { 14113 return This->lpVtbl->GetDeviceRemovedReason(This); 14114 } 14115 static inline void ID3D12Device5_GetCopyableFootprints(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 14116 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 14117 } 14118 static inline HRESULT ID3D12Device5_CreateQueryHeap(ID3D12Device5* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 14119 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 14120 } 14121 static inline HRESULT ID3D12Device5_SetStablePowerState(ID3D12Device5* This,WINBOOL enable) { 14122 return This->lpVtbl->SetStablePowerState(This,enable); 14123 } 14124 static inline HRESULT ID3D12Device5_CreateCommandSignature(ID3D12Device5* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 14125 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 14126 } 14127 static inline void ID3D12Device5_GetResourceTiling(ID3D12Device5* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 14128 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 14129 } 14130 static inline LUID ID3D12Device5_GetAdapterLuid(ID3D12Device5* This) { 14131 LUID __ret; 14132 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 14133 } 14134 /*** ID3D12Device1 methods ***/ 14135 static inline HRESULT ID3D12Device5_CreatePipelineLibrary(ID3D12Device5* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 14136 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 14137 } 14138 static inline HRESULT ID3D12Device5_SetEventOnMultipleFenceCompletion(ID3D12Device5* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 14139 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 14140 } 14141 static inline HRESULT ID3D12Device5_SetResidencyPriority(ID3D12Device5* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 14142 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 14143 } 14144 /*** ID3D12Device2 methods ***/ 14145 static inline HRESULT ID3D12Device5_CreatePipelineState(ID3D12Device5* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 14146 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 14147 } 14148 /*** ID3D12Device3 methods ***/ 14149 static inline HRESULT ID3D12Device5_OpenExistingHeapFromAddress(ID3D12Device5* This,const void *address,REFIID riid,void **heap) { 14150 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 14151 } 14152 static inline HRESULT ID3D12Device5_OpenExistingHeapFromFileMapping(ID3D12Device5* This,HANDLE file_mapping,REFIID riid,void **heap) { 14153 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 14154 } 14155 static inline HRESULT ID3D12Device5_EnqueueMakeResident(ID3D12Device5* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 14156 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 14157 } 14158 /*** ID3D12Device4 methods ***/ 14159 static inline HRESULT ID3D12Device5_CreateCommandList1(ID3D12Device5* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 14160 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 14161 } 14162 static inline HRESULT ID3D12Device5_CreateProtectedResourceSession(ID3D12Device5* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 14163 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 14164 } 14165 static inline HRESULT ID3D12Device5_CreateCommittedResource1(ID3D12Device5* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 14166 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 14167 } 14168 static inline HRESULT ID3D12Device5_CreateHeap1(ID3D12Device5* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 14169 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 14170 } 14171 static inline HRESULT ID3D12Device5_CreateReservedResource1(ID3D12Device5* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 14172 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 14173 } 14174 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device5_GetResourceAllocationInfo1(ID3D12Device5* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 14175 D3D12_RESOURCE_ALLOCATION_INFO __ret; 14176 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 14177 } 14178 /*** ID3D12Device5 methods ***/ 14179 static inline HRESULT ID3D12Device5_CreateLifetimeTracker(ID3D12Device5* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 14180 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 14181 } 14182 static inline void ID3D12Device5_RemoveDevice(ID3D12Device5* This) { 14183 This->lpVtbl->RemoveDevice(This); 14184 } 14185 static inline HRESULT ID3D12Device5_EnumerateMetaCommands(ID3D12Device5* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 14186 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 14187 } 14188 static inline HRESULT ID3D12Device5_EnumerateMetaCommandParameters(ID3D12Device5* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 14189 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 14190 } 14191 static inline HRESULT ID3D12Device5_CreateMetaCommand(ID3D12Device5* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 14192 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 14193 } 14194 static inline HRESULT ID3D12Device5_CreateStateObject(ID3D12Device5* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 14195 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 14196 } 14197 static inline void ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device5* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 14198 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 14199 } 14200 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device5_CheckDriverMatchingIdentifier(ID3D12Device5* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 14201 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 14202 } 14203 #endif 14204 #endif 14205 14206 #endif 14207 14208 14209 #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ 14210 14211 typedef enum D3D12_AUTO_BREADCRUMB_OP { 14212 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0x0, 14213 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 0x1, 14214 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 0x2, 14215 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 0x3, 14216 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 0x4, 14217 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 0x5, 14218 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 0x6, 14219 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 0x7, 14220 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 0x8, 14221 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 0x9, 14222 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 0xa, 14223 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 0xb, 14224 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 0xc, 14225 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 0xd, 14226 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 0xe, 14227 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 0xf, 14228 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 0x10, 14229 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 0x11, 14230 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 0x12, 14231 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 0x13, 14232 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 0x14, 14233 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 0x15, 14234 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 0x16, 14235 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 0x17, 14236 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 0x18, 14237 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 0x19, 14238 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 0x1a, 14239 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 0x1b, 14240 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 0x1c, 14241 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 0x1d, 14242 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 0x1e, 14243 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 0x1f, 14244 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 0x20, 14245 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 0x21, 14246 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 0x22, 14247 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 0x23, 14248 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 0x24, 14249 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 0x25, 14250 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 0x26, 14251 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 0x27, 14252 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 0x28, 14253 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 0x29, 14254 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 0x2a, 14255 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 0x2b, 14256 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 0x2c 14257 } D3D12_AUTO_BREADCRUMB_OP; 14258 typedef struct D3D12_AUTO_BREADCRUMB_NODE { 14259 const char *pCommandListDebugNameA; 14260 const WCHAR *pCommandListDebugNameW; 14261 const char *pCommandQueueDebugNameA; 14262 const WCHAR *pCommandQueueDebugNameW; 14263 ID3D12GraphicsCommandList *pCommandList; 14264 ID3D12CommandQueue *pCommandQueue; 14265 UINT32 BreadcrumbCount; 14266 const UINT32 *pLastBreadcrumbValue; 14267 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; 14268 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; 14269 } D3D12_AUTO_BREADCRUMB_NODE; 14270 typedef struct D3D12_DRED_BREADCRUMB_CONTEXT { 14271 UINT BreadcrumbIndex; 14272 const WCHAR *pContextString; 14273 } D3D12_DRED_BREADCRUMB_CONTEXT; 14274 typedef struct D3D12_AUTO_BREADCRUMB_NODE1 { 14275 const char *pCommandListDebugNameA; 14276 const WCHAR *pCommandListDebugNameW; 14277 const char *pCommandQueueDebugNameA; 14278 const WCHAR *pCommandQueueDebugNameW; 14279 ID3D12GraphicsCommandList *pCommandList; 14280 ID3D12CommandQueue *pCommandQueue; 14281 UINT BreadcrumbCount; 14282 const UINT *pLastBreadcrumbValue; 14283 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; 14284 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; 14285 UINT BreadcrumbContextsCount; 14286 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; 14287 } D3D12_AUTO_BREADCRUMB_NODE1; 14288 typedef enum D3D12_DRED_VERSION { 14289 D3D12_DRED_VERSION_1_0 = 0x1, 14290 D3D12_DRED_VERSION_1_1 = 0x2, 14291 D3D12_DRED_VERSION_1_2 = 0x3, 14292 D3D12_DRED_VERSION_1_3 = 0x4 14293 } D3D12_DRED_VERSION; 14294 typedef enum D3D12_DRED_FLAGS { 14295 D3D12_DRED_FLAG_NONE = 0x0, 14296 D3D12_DRED_FLAG_FORCE_ENABLE = 0x1, 14297 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 0x2 14298 } D3D12_DRED_FLAGS; 14299 DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_FLAGS); 14300 typedef enum D3D12_DRED_ENABLEMENT { 14301 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0x0, 14302 D3D12_DRED_ENABLEMENT_FORCED_OFF = 0x1, 14303 D3D12_DRED_ENABLEMENT_FORCED_ON = 0x2 14304 } D3D12_DRED_ENABLEMENT; 14305 typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA { 14306 D3D12_DRED_FLAGS Flags; 14307 D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; 14308 } D3D12_DEVICE_REMOVED_EXTENDED_DATA; 14309 typedef enum D3D12_DRED_ALLOCATION_TYPE { 14310 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 0x13, 14311 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 0x14, 14312 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 0x15, 14313 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 0x16, 14314 D3D12_DRED_ALLOCATION_TYPE_FENCE = 0x17, 14315 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 0x18, 14316 D3D12_DRED_ALLOCATION_TYPE_HEAP = 0x19, 14317 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 0x1b, 14318 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 0x1c, 14319 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 0x1d, 14320 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 0x1e, 14321 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 0x20, 14322 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 0x22, 14323 D3D12_DRED_ALLOCATION_TYPE_PASS = 0x23, 14324 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 0x24, 14325 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 0x25, 14326 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 0x26, 14327 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 0x27, 14328 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 0x28, 14329 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 0x29, 14330 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 0x2a, 14331 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 0x2b, 14332 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 0x2c, 14333 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 0x2d, 14334 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 0x2e, 14335 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 0x2f, 14336 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 0x30, 14337 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 0x31, 14338 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff 14339 } D3D12_DRED_ALLOCATION_TYPE; 14340 typedef struct D3D12_DRED_ALLOCATION_NODE { 14341 const char *ObjectNameA; 14342 const WCHAR *ObjectNameW; 14343 D3D12_DRED_ALLOCATION_TYPE AllocationType; 14344 const struct D3D12_DRED_ALLOCATION_NODE *pNext; 14345 } D3D12_DRED_ALLOCATION_NODE; 14346 typedef struct D3D12_DRED_ALLOCATION_NODE1 { 14347 const char *ObjectNameA; 14348 const WCHAR *ObjectNameW; 14349 D3D12_DRED_ALLOCATION_TYPE AllocationType; 14350 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; 14351 const IUnknown *pObject; 14352 } D3D12_DRED_ALLOCATION_NODE1; 14353 typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT { 14354 const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; 14355 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; 14356 typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 { 14357 const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; 14358 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; 14359 typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT { 14360 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 14361 const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; 14362 const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; 14363 } D3D12_DRED_PAGE_FAULT_OUTPUT; 14364 typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 { 14365 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 14366 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; 14367 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; 14368 } D3D12_DRED_PAGE_FAULT_OUTPUT1; 14369 typedef enum D3D12_DRED_PAGE_FAULT_FLAGS { 14370 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0x0 14371 } D3D12_DRED_PAGE_FAULT_FLAGS; 14372 DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_PAGE_FAULT_FLAGS); 14373 typedef enum D3D12_DRED_DEVICE_STATE { 14374 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0x0, 14375 D3D12_DRED_DEVICE_STATE_HUNG = 0x3, 14376 D3D12_DRED_DEVICE_STATE_FAULT = 0x6, 14377 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 0x7 14378 } D3D12_DRED_DEVICE_STATE; 14379 typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 { 14380 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 14381 const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; 14382 const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; 14383 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; 14384 } D3D12_DRED_PAGE_FAULT_OUTPUT2; 14385 typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 { 14386 HRESULT DeviceRemovedReason; 14387 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; 14388 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; 14389 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1; 14390 typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 { 14391 HRESULT DeviceRemovedReason; 14392 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; 14393 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; 14394 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2; 14395 typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 { 14396 HRESULT DeviceRemovedReason; 14397 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; 14398 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; 14399 D3D12_DRED_DEVICE_STATE DeviceState; 14400 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3; 14401 typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA { 14402 D3D12_DRED_VERSION Version; 14403 __C89_NAMELESS union { 14404 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; 14405 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; 14406 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; 14407 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; 14408 } __C89_NAMELESSUNIONNAME; 14409 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; 14410 /***************************************************************************** 14411 * ID3D12DeviceRemovedExtendedDataSettings interface 14412 */ 14413 #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ 14414 #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ 14415 14416 DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63); 14417 #if defined(__cplusplus) && !defined(CINTERFACE) 14418 MIDL_INTERFACE("82bc481c-6b9b-4030-aedb-7ee3d1df1e63") 14419 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown 14420 { 14421 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement( 14422 D3D12_DRED_ENABLEMENT enablement) = 0; 14423 14424 virtual void STDMETHODCALLTYPE SetPageFaultEnablement( 14425 D3D12_DRED_ENABLEMENT enablement) = 0; 14426 14427 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement( 14428 D3D12_DRED_ENABLEMENT enablement) = 0; 14429 14430 }; 14431 #ifdef __CRT_UUID_DECL 14432 __CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings, 0x82bc481c, 0x6b9b, 0x4030, 0xae,0xdb, 0x7e,0xe3,0xd1,0xdf,0x1e,0x63) 14433 #endif 14434 #else 14435 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl { 14436 BEGIN_INTERFACE 14437 14438 /*** IUnknown methods ***/ 14439 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14440 ID3D12DeviceRemovedExtendedDataSettings *This, 14441 REFIID riid, 14442 void **ppvObject); 14443 14444 ULONG (STDMETHODCALLTYPE *AddRef)( 14445 ID3D12DeviceRemovedExtendedDataSettings *This); 14446 14447 ULONG (STDMETHODCALLTYPE *Release)( 14448 ID3D12DeviceRemovedExtendedDataSettings *This); 14449 14450 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14451 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)( 14452 ID3D12DeviceRemovedExtendedDataSettings *This, 14453 D3D12_DRED_ENABLEMENT enablement); 14454 14455 void (STDMETHODCALLTYPE *SetPageFaultEnablement)( 14456 ID3D12DeviceRemovedExtendedDataSettings *This, 14457 D3D12_DRED_ENABLEMENT enablement); 14458 14459 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)( 14460 ID3D12DeviceRemovedExtendedDataSettings *This, 14461 D3D12_DRED_ENABLEMENT enablement); 14462 14463 END_INTERFACE 14464 } ID3D12DeviceRemovedExtendedDataSettingsVtbl; 14465 14466 interface ID3D12DeviceRemovedExtendedDataSettings { 14467 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettingsVtbl* lpVtbl; 14468 }; 14469 14470 #ifdef COBJMACROS 14471 #ifndef WIDL_C_INLINE_WRAPPERS 14472 /*** IUnknown methods ***/ 14473 #define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 14474 #define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) (This)->lpVtbl->AddRef(This) 14475 #define ID3D12DeviceRemovedExtendedDataSettings_Release(This) (This)->lpVtbl->Release(This) 14476 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14477 #define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement) 14478 #define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement) 14479 #define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement) 14480 #else 14481 /*** IUnknown methods ***/ 14482 static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings* This,REFIID riid,void **ppvObject) { 14483 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 14484 } 14485 static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_AddRef(ID3D12DeviceRemovedExtendedDataSettings* This) { 14486 return This->lpVtbl->AddRef(This); 14487 } 14488 static inline ULONG ID3D12DeviceRemovedExtendedDataSettings_Release(ID3D12DeviceRemovedExtendedDataSettings* This) { 14489 return This->lpVtbl->Release(This); 14490 } 14491 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14492 static inline void ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) { 14493 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement); 14494 } 14495 static inline void ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) { 14496 This->lpVtbl->SetPageFaultEnablement(This,enablement); 14497 } 14498 static inline void ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings* This,D3D12_DRED_ENABLEMENT enablement) { 14499 This->lpVtbl->SetWatsonDumpEnablement(This,enablement); 14500 } 14501 #endif 14502 #endif 14503 14504 #endif 14505 14506 14507 #endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */ 14508 14509 /***************************************************************************** 14510 * ID3D12DeviceRemovedExtendedDataSettings1 interface 14511 */ 14512 #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ 14513 #define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ 14514 14515 DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b); 14516 #if defined(__cplusplus) && !defined(CINTERFACE) 14517 MIDL_INTERFACE("dbd5ae51-3317-4f0a-adf9-1d7cedcaae0b") 14518 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings 14519 { 14520 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement( 14521 D3D12_DRED_ENABLEMENT enablement) = 0; 14522 14523 }; 14524 #ifdef __CRT_UUID_DECL 14525 __CRT_UUID_DECL(ID3D12DeviceRemovedExtendedDataSettings1, 0xdbd5ae51, 0x3317, 0x4f0a, 0xad,0xf9, 0x1d,0x7c,0xed,0xca,0xae,0x0b) 14526 #endif 14527 #else 14528 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl { 14529 BEGIN_INTERFACE 14530 14531 /*** IUnknown methods ***/ 14532 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14533 ID3D12DeviceRemovedExtendedDataSettings1 *This, 14534 REFIID riid, 14535 void **ppvObject); 14536 14537 ULONG (STDMETHODCALLTYPE *AddRef)( 14538 ID3D12DeviceRemovedExtendedDataSettings1 *This); 14539 14540 ULONG (STDMETHODCALLTYPE *Release)( 14541 ID3D12DeviceRemovedExtendedDataSettings1 *This); 14542 14543 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14544 void (STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement)( 14545 ID3D12DeviceRemovedExtendedDataSettings1 *This, 14546 D3D12_DRED_ENABLEMENT enablement); 14547 14548 void (STDMETHODCALLTYPE *SetPageFaultEnablement)( 14549 ID3D12DeviceRemovedExtendedDataSettings1 *This, 14550 D3D12_DRED_ENABLEMENT enablement); 14551 14552 void (STDMETHODCALLTYPE *SetWatsonDumpEnablement)( 14553 ID3D12DeviceRemovedExtendedDataSettings1 *This, 14554 D3D12_DRED_ENABLEMENT enablement); 14555 14556 /*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/ 14557 void (STDMETHODCALLTYPE *SetBreadcrumbContextEnablement)( 14558 ID3D12DeviceRemovedExtendedDataSettings1 *This, 14559 D3D12_DRED_ENABLEMENT enablement); 14560 14561 END_INTERFACE 14562 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl; 14563 14564 interface ID3D12DeviceRemovedExtendedDataSettings1 { 14565 CONST_VTBL ID3D12DeviceRemovedExtendedDataSettings1Vtbl* lpVtbl; 14566 }; 14567 14568 #ifdef COBJMACROS 14569 #ifndef WIDL_C_INLINE_WRAPPERS 14570 /*** IUnknown methods ***/ 14571 #define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 14572 #define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) (This)->lpVtbl->AddRef(This) 14573 #define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) (This)->lpVtbl->Release(This) 14574 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14575 #define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,enablement) (This)->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement) 14576 #define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,enablement) (This)->lpVtbl->SetPageFaultEnablement(This,enablement) 14577 #define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,enablement) (This)->lpVtbl->SetWatsonDumpEnablement(This,enablement) 14578 /*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/ 14579 #define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,enablement) (This)->lpVtbl->SetBreadcrumbContextEnablement(This,enablement) 14580 #else 14581 /*** IUnknown methods ***/ 14582 static inline HRESULT ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(ID3D12DeviceRemovedExtendedDataSettings1* This,REFIID riid,void **ppvObject) { 14583 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 14584 } 14585 static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_AddRef(ID3D12DeviceRemovedExtendedDataSettings1* This) { 14586 return This->lpVtbl->AddRef(This); 14587 } 14588 static inline ULONG ID3D12DeviceRemovedExtendedDataSettings1_Release(ID3D12DeviceRemovedExtendedDataSettings1* This) { 14589 return This->lpVtbl->Release(This); 14590 } 14591 /*** ID3D12DeviceRemovedExtendedDataSettings methods ***/ 14592 static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) { 14593 This->lpVtbl->SetAutoBreadcrumbsEnablement(This,enablement); 14594 } 14595 static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) { 14596 This->lpVtbl->SetPageFaultEnablement(This,enablement); 14597 } 14598 static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) { 14599 This->lpVtbl->SetWatsonDumpEnablement(This,enablement); 14600 } 14601 /*** ID3D12DeviceRemovedExtendedDataSettings1 methods ***/ 14602 static inline void ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(ID3D12DeviceRemovedExtendedDataSettings1* This,D3D12_DRED_ENABLEMENT enablement) { 14603 This->lpVtbl->SetBreadcrumbContextEnablement(This,enablement); 14604 } 14605 #endif 14606 #endif 14607 14608 #endif 14609 14610 14611 #endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */ 14612 14613 /***************************************************************************** 14614 * ID3D12DeviceRemovedExtendedData interface 14615 */ 14616 #ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ 14617 #define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ 14618 14619 DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71); 14620 #if defined(__cplusplus) && !defined(CINTERFACE) 14621 MIDL_INTERFACE("98931d33-5ae8-4791-aa3c-1a73a2934e71") 14622 ID3D12DeviceRemovedExtendedData : public IUnknown 14623 { 14624 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput( 14625 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) = 0; 14626 14627 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput( 14628 D3D12_DRED_PAGE_FAULT_OUTPUT *output) = 0; 14629 14630 }; 14631 #ifdef __CRT_UUID_DECL 14632 __CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData, 0x98931d33, 0x5ae8, 0x4791, 0xaa,0x3c, 0x1a,0x73,0xa2,0x93,0x4e,0x71) 14633 #endif 14634 #else 14635 typedef struct ID3D12DeviceRemovedExtendedDataVtbl { 14636 BEGIN_INTERFACE 14637 14638 /*** IUnknown methods ***/ 14639 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14640 ID3D12DeviceRemovedExtendedData *This, 14641 REFIID riid, 14642 void **ppvObject); 14643 14644 ULONG (STDMETHODCALLTYPE *AddRef)( 14645 ID3D12DeviceRemovedExtendedData *This); 14646 14647 ULONG (STDMETHODCALLTYPE *Release)( 14648 ID3D12DeviceRemovedExtendedData *This); 14649 14650 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14651 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)( 14652 ID3D12DeviceRemovedExtendedData *This, 14653 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output); 14654 14655 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)( 14656 ID3D12DeviceRemovedExtendedData *This, 14657 D3D12_DRED_PAGE_FAULT_OUTPUT *output); 14658 14659 END_INTERFACE 14660 } ID3D12DeviceRemovedExtendedDataVtbl; 14661 14662 interface ID3D12DeviceRemovedExtendedData { 14663 CONST_VTBL ID3D12DeviceRemovedExtendedDataVtbl* lpVtbl; 14664 }; 14665 14666 #ifdef COBJMACROS 14667 #ifndef WIDL_C_INLINE_WRAPPERS 14668 /*** IUnknown methods ***/ 14669 #define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 14670 #define ID3D12DeviceRemovedExtendedData_AddRef(This) (This)->lpVtbl->AddRef(This) 14671 #define ID3D12DeviceRemovedExtendedData_Release(This) (This)->lpVtbl->Release(This) 14672 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14673 #define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output) 14674 #define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output) 14675 #else 14676 /*** IUnknown methods ***/ 14677 static inline HRESULT ID3D12DeviceRemovedExtendedData_QueryInterface(ID3D12DeviceRemovedExtendedData* This,REFIID riid,void **ppvObject) { 14678 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 14679 } 14680 static inline ULONG ID3D12DeviceRemovedExtendedData_AddRef(ID3D12DeviceRemovedExtendedData* This) { 14681 return This->lpVtbl->AddRef(This); 14682 } 14683 static inline ULONG ID3D12DeviceRemovedExtendedData_Release(ID3D12DeviceRemovedExtendedData* This) { 14684 return This->lpVtbl->Release(This); 14685 } 14686 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14687 static inline HRESULT ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) { 14688 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output); 14689 } 14690 static inline HRESULT ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) { 14691 return This->lpVtbl->GetPageFaultAllocationOutput(This,output); 14692 } 14693 #endif 14694 #endif 14695 14696 #endif 14697 14698 14699 #endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */ 14700 14701 /***************************************************************************** 14702 * ID3D12DeviceRemovedExtendedData1 interface 14703 */ 14704 #ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ 14705 #define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ 14706 14707 DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06); 14708 #if defined(__cplusplus) && !defined(CINTERFACE) 14709 MIDL_INTERFACE("9727a022-cf1d-4dda-9eba-effa653fc506") 14710 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData 14711 { 14712 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1( 14713 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) = 0; 14714 14715 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1( 14716 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) = 0; 14717 14718 }; 14719 #ifdef __CRT_UUID_DECL 14720 __CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData1, 0x9727a022, 0xcf1d, 0x4dda, 0x9e,0xba, 0xef,0xfa,0x65,0x3f,0xc5,0x06) 14721 #endif 14722 #else 14723 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl { 14724 BEGIN_INTERFACE 14725 14726 /*** IUnknown methods ***/ 14727 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14728 ID3D12DeviceRemovedExtendedData1 *This, 14729 REFIID riid, 14730 void **ppvObject); 14731 14732 ULONG (STDMETHODCALLTYPE *AddRef)( 14733 ID3D12DeviceRemovedExtendedData1 *This); 14734 14735 ULONG (STDMETHODCALLTYPE *Release)( 14736 ID3D12DeviceRemovedExtendedData1 *This); 14737 14738 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14739 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)( 14740 ID3D12DeviceRemovedExtendedData1 *This, 14741 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output); 14742 14743 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)( 14744 ID3D12DeviceRemovedExtendedData1 *This, 14745 D3D12_DRED_PAGE_FAULT_OUTPUT *output); 14746 14747 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14748 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)( 14749 ID3D12DeviceRemovedExtendedData1 *This, 14750 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output); 14751 14752 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)( 14753 ID3D12DeviceRemovedExtendedData1 *This, 14754 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output); 14755 14756 END_INTERFACE 14757 } ID3D12DeviceRemovedExtendedData1Vtbl; 14758 14759 interface ID3D12DeviceRemovedExtendedData1 { 14760 CONST_VTBL ID3D12DeviceRemovedExtendedData1Vtbl* lpVtbl; 14761 }; 14762 14763 #ifdef COBJMACROS 14764 #ifndef WIDL_C_INLINE_WRAPPERS 14765 /*** IUnknown methods ***/ 14766 #define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 14767 #define ID3D12DeviceRemovedExtendedData1_AddRef(This) (This)->lpVtbl->AddRef(This) 14768 #define ID3D12DeviceRemovedExtendedData1_Release(This) (This)->lpVtbl->Release(This) 14769 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14770 #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output) 14771 #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output) 14772 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14773 #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output) 14774 #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output) 14775 #else 14776 /*** IUnknown methods ***/ 14777 static inline HRESULT ID3D12DeviceRemovedExtendedData1_QueryInterface(ID3D12DeviceRemovedExtendedData1* This,REFIID riid,void **ppvObject) { 14778 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 14779 } 14780 static inline ULONG ID3D12DeviceRemovedExtendedData1_AddRef(ID3D12DeviceRemovedExtendedData1* This) { 14781 return This->lpVtbl->AddRef(This); 14782 } 14783 static inline ULONG ID3D12DeviceRemovedExtendedData1_Release(ID3D12DeviceRemovedExtendedData1* This) { 14784 return This->lpVtbl->Release(This); 14785 } 14786 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14787 static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) { 14788 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output); 14789 } 14790 static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) { 14791 return This->lpVtbl->GetPageFaultAllocationOutput(This,output); 14792 } 14793 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14794 static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) { 14795 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output); 14796 } 14797 static inline HRESULT ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData1* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) { 14798 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output); 14799 } 14800 #endif 14801 #endif 14802 14803 #endif 14804 14805 14806 #endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */ 14807 14808 /***************************************************************************** 14809 * ID3D12DeviceRemovedExtendedData2 interface 14810 */ 14811 #ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ 14812 #define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ 14813 14814 DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54); 14815 #if defined(__cplusplus) && !defined(CINTERFACE) 14816 MIDL_INTERFACE("67fc5816-e4ca-4915-bf18-42541272da54") 14817 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1 14818 { 14819 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2( 14820 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) = 0; 14821 14822 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( 14823 ) = 0; 14824 14825 }; 14826 #ifdef __CRT_UUID_DECL 14827 __CRT_UUID_DECL(ID3D12DeviceRemovedExtendedData2, 0x67fc5816, 0xe4ca, 0x4915, 0xbf,0x18, 0x42,0x54,0x12,0x72,0xda,0x54) 14828 #endif 14829 #else 14830 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl { 14831 BEGIN_INTERFACE 14832 14833 /*** IUnknown methods ***/ 14834 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14835 ID3D12DeviceRemovedExtendedData2 *This, 14836 REFIID riid, 14837 void **ppvObject); 14838 14839 ULONG (STDMETHODCALLTYPE *AddRef)( 14840 ID3D12DeviceRemovedExtendedData2 *This); 14841 14842 ULONG (STDMETHODCALLTYPE *Release)( 14843 ID3D12DeviceRemovedExtendedData2 *This); 14844 14845 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14846 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput)( 14847 ID3D12DeviceRemovedExtendedData2 *This, 14848 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output); 14849 14850 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput)( 14851 ID3D12DeviceRemovedExtendedData2 *This, 14852 D3D12_DRED_PAGE_FAULT_OUTPUT *output); 14853 14854 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14855 HRESULT (STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1)( 14856 ID3D12DeviceRemovedExtendedData2 *This, 14857 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output); 14858 14859 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput1)( 14860 ID3D12DeviceRemovedExtendedData2 *This, 14861 D3D12_DRED_PAGE_FAULT_OUTPUT1 *output); 14862 14863 /*** ID3D12DeviceRemovedExtendedData2 methods ***/ 14864 HRESULT (STDMETHODCALLTYPE *GetPageFaultAllocationOutput2)( 14865 ID3D12DeviceRemovedExtendedData2 *This, 14866 D3D12_DRED_PAGE_FAULT_OUTPUT2 *output); 14867 14868 D3D12_DRED_DEVICE_STATE (STDMETHODCALLTYPE *GetDeviceState)( 14869 ID3D12DeviceRemovedExtendedData2 *This); 14870 14871 END_INTERFACE 14872 } ID3D12DeviceRemovedExtendedData2Vtbl; 14873 14874 interface ID3D12DeviceRemovedExtendedData2 { 14875 CONST_VTBL ID3D12DeviceRemovedExtendedData2Vtbl* lpVtbl; 14876 }; 14877 14878 #ifdef COBJMACROS 14879 #ifndef WIDL_C_INLINE_WRAPPERS 14880 /*** IUnknown methods ***/ 14881 #define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 14882 #define ID3D12DeviceRemovedExtendedData2_AddRef(This) (This)->lpVtbl->AddRef(This) 14883 #define ID3D12DeviceRemovedExtendedData2_Release(This) (This)->lpVtbl->Release(This) 14884 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14885 #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput(This,output) 14886 #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput(This,output) 14887 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14888 #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,output) (This)->lpVtbl->GetAutoBreadcrumbsOutput1(This,output) 14889 #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput1(This,output) 14890 /*** ID3D12DeviceRemovedExtendedData2 methods ***/ 14891 #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,output) (This)->lpVtbl->GetPageFaultAllocationOutput2(This,output) 14892 #define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) (This)->lpVtbl->GetDeviceState(This) 14893 #else 14894 /*** IUnknown methods ***/ 14895 static inline HRESULT ID3D12DeviceRemovedExtendedData2_QueryInterface(ID3D12DeviceRemovedExtendedData2* This,REFIID riid,void **ppvObject) { 14896 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 14897 } 14898 static inline ULONG ID3D12DeviceRemovedExtendedData2_AddRef(ID3D12DeviceRemovedExtendedData2* This) { 14899 return This->lpVtbl->AddRef(This); 14900 } 14901 static inline ULONG ID3D12DeviceRemovedExtendedData2_Release(ID3D12DeviceRemovedExtendedData2* This) { 14902 return This->lpVtbl->Release(This); 14903 } 14904 /*** ID3D12DeviceRemovedExtendedData methods ***/ 14905 static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output) { 14906 return This->lpVtbl->GetAutoBreadcrumbsOutput(This,output); 14907 } 14908 static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT *output) { 14909 return This->lpVtbl->GetPageFaultAllocationOutput(This,output); 14910 } 14911 /*** ID3D12DeviceRemovedExtendedData1 methods ***/ 14912 static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output) { 14913 return This->lpVtbl->GetAutoBreadcrumbsOutput1(This,output); 14914 } 14915 static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT1 *output) { 14916 return This->lpVtbl->GetPageFaultAllocationOutput1(This,output); 14917 } 14918 /*** ID3D12DeviceRemovedExtendedData2 methods ***/ 14919 static inline HRESULT ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(ID3D12DeviceRemovedExtendedData2* This,D3D12_DRED_PAGE_FAULT_OUTPUT2 *output) { 14920 return This->lpVtbl->GetPageFaultAllocationOutput2(This,output); 14921 } 14922 static inline D3D12_DRED_DEVICE_STATE ID3D12DeviceRemovedExtendedData2_GetDeviceState(ID3D12DeviceRemovedExtendedData2* This) { 14923 return This->lpVtbl->GetDeviceState(This); 14924 } 14925 #endif 14926 #endif 14927 14928 #endif 14929 14930 14931 #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ 14932 14933 typedef enum D3D12_BACKGROUND_PROCESSING_MODE { 14934 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0x0, 14935 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = 0x1, 14936 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = 0x2, 14937 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = 0x3 14938 } D3D12_BACKGROUND_PROCESSING_MODE; 14939 typedef enum D3D12_MEASUREMENTS_ACTION { 14940 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0x0, 14941 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = 0x1, 14942 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = 0x2, 14943 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = 0x3 14944 } D3D12_MEASUREMENTS_ACTION; 14945 /***************************************************************************** 14946 * ID3D12Device6 interface 14947 */ 14948 #ifndef __ID3D12Device6_INTERFACE_DEFINED__ 14949 #define __ID3D12Device6_INTERFACE_DEFINED__ 14950 14951 DEFINE_GUID(IID_ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc); 14952 #if defined(__cplusplus) && !defined(CINTERFACE) 14953 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc") 14954 ID3D12Device6 : public ID3D12Device5 14955 { 14956 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode( 14957 D3D12_BACKGROUND_PROCESSING_MODE mode, 14958 D3D12_MEASUREMENTS_ACTION action, 14959 HANDLE event, 14960 WINBOOL *further_measurements_desired) = 0; 14961 14962 }; 14963 #ifdef __CRT_UUID_DECL 14964 __CRT_UUID_DECL(ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89,0xaf, 0x02,0x5a,0x07,0x27,0xa6,0xdc) 14965 #endif 14966 #else 14967 typedef struct ID3D12Device6Vtbl { 14968 BEGIN_INTERFACE 14969 14970 /*** IUnknown methods ***/ 14971 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 14972 ID3D12Device6 *This, 14973 REFIID riid, 14974 void **ppvObject); 14975 14976 ULONG (STDMETHODCALLTYPE *AddRef)( 14977 ID3D12Device6 *This); 14978 14979 ULONG (STDMETHODCALLTYPE *Release)( 14980 ID3D12Device6 *This); 14981 14982 /*** ID3D12Object methods ***/ 14983 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 14984 ID3D12Device6 *This, 14985 REFGUID guid, 14986 UINT *data_size, 14987 void *data); 14988 14989 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 14990 ID3D12Device6 *This, 14991 REFGUID guid, 14992 UINT data_size, 14993 const void *data); 14994 14995 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 14996 ID3D12Device6 *This, 14997 REFGUID guid, 14998 const IUnknown *data); 14999 15000 HRESULT (STDMETHODCALLTYPE *SetName)( 15001 ID3D12Device6 *This, 15002 const WCHAR *name); 15003 15004 /*** ID3D12Device methods ***/ 15005 UINT (STDMETHODCALLTYPE *GetNodeCount)( 15006 ID3D12Device6 *This); 15007 15008 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 15009 ID3D12Device6 *This, 15010 const D3D12_COMMAND_QUEUE_DESC *desc, 15011 REFIID riid, 15012 void **command_queue); 15013 15014 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 15015 ID3D12Device6 *This, 15016 D3D12_COMMAND_LIST_TYPE type, 15017 REFIID riid, 15018 void **command_allocator); 15019 15020 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 15021 ID3D12Device6 *This, 15022 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 15023 REFIID riid, 15024 void **pipeline_state); 15025 15026 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 15027 ID3D12Device6 *This, 15028 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 15029 REFIID riid, 15030 void **pipeline_state); 15031 15032 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 15033 ID3D12Device6 *This, 15034 UINT node_mask, 15035 D3D12_COMMAND_LIST_TYPE type, 15036 ID3D12CommandAllocator *command_allocator, 15037 ID3D12PipelineState *initial_pipeline_state, 15038 REFIID riid, 15039 void **command_list); 15040 15041 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 15042 ID3D12Device6 *This, 15043 D3D12_FEATURE feature, 15044 void *feature_data, 15045 UINT feature_data_size); 15046 15047 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 15048 ID3D12Device6 *This, 15049 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 15050 REFIID riid, 15051 void **descriptor_heap); 15052 15053 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 15054 ID3D12Device6 *This, 15055 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 15056 15057 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 15058 ID3D12Device6 *This, 15059 UINT node_mask, 15060 const void *bytecode, 15061 SIZE_T bytecode_length, 15062 REFIID riid, 15063 void **root_signature); 15064 15065 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 15066 ID3D12Device6 *This, 15067 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 15068 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15069 15070 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 15071 ID3D12Device6 *This, 15072 ID3D12Resource *resource, 15073 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 15074 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15075 15076 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 15077 ID3D12Device6 *This, 15078 ID3D12Resource *resource, 15079 ID3D12Resource *counter_resource, 15080 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 15081 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15082 15083 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 15084 ID3D12Device6 *This, 15085 ID3D12Resource *resource, 15086 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 15087 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15088 15089 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 15090 ID3D12Device6 *This, 15091 ID3D12Resource *resource, 15092 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 15093 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15094 15095 void (STDMETHODCALLTYPE *CreateSampler)( 15096 ID3D12Device6 *This, 15097 const D3D12_SAMPLER_DESC *desc, 15098 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 15099 15100 void (STDMETHODCALLTYPE *CopyDescriptors)( 15101 ID3D12Device6 *This, 15102 UINT dst_descriptor_range_count, 15103 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 15104 const UINT *dst_descriptor_range_sizes, 15105 UINT src_descriptor_range_count, 15106 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 15107 const UINT *src_descriptor_range_sizes, 15108 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 15109 15110 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 15111 ID3D12Device6 *This, 15112 UINT descriptor_count, 15113 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 15114 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 15115 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 15116 15117 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 15118 ID3D12Device6 *This, 15119 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 15120 UINT visible_mask, 15121 UINT reource_desc_count, 15122 const D3D12_RESOURCE_DESC *resource_descs); 15123 15124 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 15125 ID3D12Device6 *This, 15126 D3D12_HEAP_PROPERTIES *__ret, 15127 UINT node_mask, 15128 D3D12_HEAP_TYPE heap_type); 15129 15130 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 15131 ID3D12Device6 *This, 15132 const D3D12_HEAP_PROPERTIES *heap_properties, 15133 D3D12_HEAP_FLAGS heap_flags, 15134 const D3D12_RESOURCE_DESC *desc, 15135 D3D12_RESOURCE_STATES initial_state, 15136 const D3D12_CLEAR_VALUE *optimized_clear_value, 15137 REFIID riid, 15138 void **resource); 15139 15140 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 15141 ID3D12Device6 *This, 15142 const D3D12_HEAP_DESC *desc, 15143 REFIID riid, 15144 void **heap); 15145 15146 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 15147 ID3D12Device6 *This, 15148 ID3D12Heap *heap, 15149 UINT64 heap_offset, 15150 const D3D12_RESOURCE_DESC *desc, 15151 D3D12_RESOURCE_STATES initial_state, 15152 const D3D12_CLEAR_VALUE *optimized_clear_value, 15153 REFIID riid, 15154 void **resource); 15155 15156 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 15157 ID3D12Device6 *This, 15158 const D3D12_RESOURCE_DESC *desc, 15159 D3D12_RESOURCE_STATES initial_state, 15160 const D3D12_CLEAR_VALUE *optimized_clear_value, 15161 REFIID riid, 15162 void **resource); 15163 15164 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 15165 ID3D12Device6 *This, 15166 ID3D12DeviceChild *object, 15167 const SECURITY_ATTRIBUTES *attributes, 15168 DWORD access, 15169 const WCHAR *name, 15170 HANDLE *handle); 15171 15172 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 15173 ID3D12Device6 *This, 15174 HANDLE handle, 15175 REFIID riid, 15176 void **object); 15177 15178 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 15179 ID3D12Device6 *This, 15180 const WCHAR *name, 15181 DWORD access, 15182 HANDLE *handle); 15183 15184 HRESULT (STDMETHODCALLTYPE *MakeResident)( 15185 ID3D12Device6 *This, 15186 UINT object_count, 15187 ID3D12Pageable *const *objects); 15188 15189 HRESULT (STDMETHODCALLTYPE *Evict)( 15190 ID3D12Device6 *This, 15191 UINT object_count, 15192 ID3D12Pageable *const *objects); 15193 15194 HRESULT (STDMETHODCALLTYPE *CreateFence)( 15195 ID3D12Device6 *This, 15196 UINT64 initial_value, 15197 D3D12_FENCE_FLAGS flags, 15198 REFIID riid, 15199 void **fence); 15200 15201 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 15202 ID3D12Device6 *This); 15203 15204 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 15205 ID3D12Device6 *This, 15206 const D3D12_RESOURCE_DESC *desc, 15207 UINT first_sub_resource, 15208 UINT sub_resource_count, 15209 UINT64 base_offset, 15210 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 15211 UINT *row_count, 15212 UINT64 *row_size, 15213 UINT64 *total_bytes); 15214 15215 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 15216 ID3D12Device6 *This, 15217 const D3D12_QUERY_HEAP_DESC *desc, 15218 REFIID riid, 15219 void **heap); 15220 15221 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 15222 ID3D12Device6 *This, 15223 WINBOOL enable); 15224 15225 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 15226 ID3D12Device6 *This, 15227 const D3D12_COMMAND_SIGNATURE_DESC *desc, 15228 ID3D12RootSignature *root_signature, 15229 REFIID riid, 15230 void **command_signature); 15231 15232 void (STDMETHODCALLTYPE *GetResourceTiling)( 15233 ID3D12Device6 *This, 15234 ID3D12Resource *resource, 15235 UINT *total_tile_count, 15236 D3D12_PACKED_MIP_INFO *packed_mip_info, 15237 D3D12_TILE_SHAPE *standard_tile_shape, 15238 UINT *sub_resource_tiling_count, 15239 UINT first_sub_resource_tiling, 15240 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 15241 15242 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 15243 ID3D12Device6 *This, 15244 LUID *__ret); 15245 15246 /*** ID3D12Device1 methods ***/ 15247 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 15248 ID3D12Device6 *This, 15249 const void *blob, 15250 SIZE_T blob_size, 15251 REFIID iid, 15252 void **lib); 15253 15254 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 15255 ID3D12Device6 *This, 15256 ID3D12Fence *const *fences, 15257 const UINT64 *values, 15258 UINT fence_count, 15259 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 15260 HANDLE event); 15261 15262 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 15263 ID3D12Device6 *This, 15264 UINT object_count, 15265 ID3D12Pageable *const *objects, 15266 const D3D12_RESIDENCY_PRIORITY *priorities); 15267 15268 /*** ID3D12Device2 methods ***/ 15269 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 15270 ID3D12Device6 *This, 15271 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 15272 REFIID riid, 15273 void **pipeline_state); 15274 15275 /*** ID3D12Device3 methods ***/ 15276 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 15277 ID3D12Device6 *This, 15278 const void *address, 15279 REFIID riid, 15280 void **heap); 15281 15282 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 15283 ID3D12Device6 *This, 15284 HANDLE file_mapping, 15285 REFIID riid, 15286 void **heap); 15287 15288 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 15289 ID3D12Device6 *This, 15290 D3D12_RESIDENCY_FLAGS flags, 15291 UINT num_objects, 15292 ID3D12Pageable *const *objects, 15293 ID3D12Fence *fence, 15294 UINT64 fence_value); 15295 15296 /*** ID3D12Device4 methods ***/ 15297 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 15298 ID3D12Device6 *This, 15299 UINT node_mask, 15300 D3D12_COMMAND_LIST_TYPE type, 15301 D3D12_COMMAND_LIST_FLAGS flags, 15302 REFIID riid, 15303 void **command_list); 15304 15305 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 15306 ID3D12Device6 *This, 15307 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 15308 REFIID riid, 15309 void **session); 15310 15311 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 15312 ID3D12Device6 *This, 15313 const D3D12_HEAP_PROPERTIES *heap_properties, 15314 D3D12_HEAP_FLAGS heap_flags, 15315 const D3D12_RESOURCE_DESC *desc, 15316 D3D12_RESOURCE_STATES initial_resource_state, 15317 const D3D12_CLEAR_VALUE *optimized_clear_value, 15318 ID3D12ProtectedResourceSession *protected_session, 15319 REFIID riid_resource, 15320 void **resource); 15321 15322 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 15323 ID3D12Device6 *This, 15324 const D3D12_HEAP_DESC *desc, 15325 ID3D12ProtectedResourceSession *protected_session, 15326 REFIID riid, 15327 void **heap); 15328 15329 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 15330 ID3D12Device6 *This, 15331 const D3D12_RESOURCE_DESC *desc, 15332 D3D12_RESOURCE_STATES initial_state, 15333 const D3D12_CLEAR_VALUE *optimized_clear_value, 15334 ID3D12ProtectedResourceSession *protected_session, 15335 REFIID riid, 15336 void **resource); 15337 15338 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 15339 ID3D12Device6 *This, 15340 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 15341 UINT visible_mask, 15342 UINT resource_descs_count, 15343 const D3D12_RESOURCE_DESC *resource_descs, 15344 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 15345 15346 /*** ID3D12Device5 methods ***/ 15347 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 15348 ID3D12Device6 *This, 15349 ID3D12LifetimeOwner *owner, 15350 REFIID riid, 15351 void **tracker); 15352 15353 void (STDMETHODCALLTYPE *RemoveDevice)( 15354 ID3D12Device6 *This); 15355 15356 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 15357 ID3D12Device6 *This, 15358 UINT *meta_commands_count, 15359 D3D12_META_COMMAND_DESC *descs); 15360 15361 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 15362 ID3D12Device6 *This, 15363 REFGUID command_id, 15364 D3D12_META_COMMAND_PARAMETER_STAGE stage, 15365 UINT *total_structure_size_in_bytes, 15366 UINT *parameter_count, 15367 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 15368 15369 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 15370 ID3D12Device6 *This, 15371 REFGUID command_id, 15372 UINT node_mask, 15373 const void *creation_parameters_data, 15374 SIZE_T creation_parameters_data_size_in_bytes, 15375 REFIID riid, 15376 void **meta_command); 15377 15378 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 15379 ID3D12Device6 *This, 15380 const D3D12_STATE_OBJECT_DESC *desc, 15381 REFIID riid, 15382 void **state_object); 15383 15384 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 15385 ID3D12Device6 *This, 15386 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 15387 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 15388 15389 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 15390 ID3D12Device6 *This, 15391 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 15392 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 15393 15394 /*** ID3D12Device6 methods ***/ 15395 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)( 15396 ID3D12Device6 *This, 15397 D3D12_BACKGROUND_PROCESSING_MODE mode, 15398 D3D12_MEASUREMENTS_ACTION action, 15399 HANDLE event, 15400 WINBOOL *further_measurements_desired); 15401 15402 END_INTERFACE 15403 } ID3D12Device6Vtbl; 15404 15405 interface ID3D12Device6 { 15406 CONST_VTBL ID3D12Device6Vtbl* lpVtbl; 15407 }; 15408 15409 #ifdef COBJMACROS 15410 #ifndef WIDL_C_INLINE_WRAPPERS 15411 /*** IUnknown methods ***/ 15412 #define ID3D12Device6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 15413 #define ID3D12Device6_AddRef(This) (This)->lpVtbl->AddRef(This) 15414 #define ID3D12Device6_Release(This) (This)->lpVtbl->Release(This) 15415 /*** ID3D12Object methods ***/ 15416 #define ID3D12Device6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 15417 #define ID3D12Device6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 15418 #define ID3D12Device6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 15419 #define ID3D12Device6_SetName(This,name) (This)->lpVtbl->SetName(This,name) 15420 /*** ID3D12Device methods ***/ 15421 #define ID3D12Device6_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 15422 #define ID3D12Device6_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 15423 #define ID3D12Device6_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 15424 #define ID3D12Device6_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 15425 #define ID3D12Device6_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 15426 #define ID3D12Device6_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 15427 #define ID3D12Device6_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 15428 #define ID3D12Device6_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 15429 #define ID3D12Device6_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 15430 #define ID3D12Device6_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 15431 #define ID3D12Device6_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 15432 #define ID3D12Device6_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 15433 #define ID3D12Device6_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 15434 #define ID3D12Device6_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 15435 #define ID3D12Device6_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 15436 #define ID3D12Device6_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 15437 #define ID3D12Device6_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 15438 #define ID3D12Device6_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 15439 #define ID3D12Device6_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device6_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15440 #define ID3D12Device6_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device6_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15441 #define ID3D12Device6_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 15442 #define ID3D12Device6_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 15443 #define ID3D12Device6_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 15444 #define ID3D12Device6_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 15445 #define ID3D12Device6_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 15446 #define ID3D12Device6_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 15447 #define ID3D12Device6_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 15448 #define ID3D12Device6_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 15449 #define ID3D12Device6_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 15450 #define ID3D12Device6_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 15451 #define ID3D12Device6_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 15452 #define ID3D12Device6_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 15453 #define ID3D12Device6_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 15454 #define ID3D12Device6_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 15455 #define ID3D12Device6_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 15456 #define ID3D12Device6_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 15457 #define ID3D12Device6_GetAdapterLuid(This) ID3D12Device6_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15458 /*** ID3D12Device1 methods ***/ 15459 #define ID3D12Device6_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 15460 #define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 15461 #define ID3D12Device6_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 15462 /*** ID3D12Device2 methods ***/ 15463 #define ID3D12Device6_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 15464 /*** ID3D12Device3 methods ***/ 15465 #define ID3D12Device6_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 15466 #define ID3D12Device6_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 15467 #define ID3D12Device6_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 15468 /*** ID3D12Device4 methods ***/ 15469 #define ID3D12Device6_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 15470 #define ID3D12Device6_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 15471 #define ID3D12Device6_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 15472 #define ID3D12Device6_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 15473 #define ID3D12Device6_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 15474 #define ID3D12Device6_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device6_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15475 /*** ID3D12Device5 methods ***/ 15476 #define ID3D12Device6_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 15477 #define ID3D12Device6_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 15478 #define ID3D12Device6_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 15479 #define ID3D12Device6_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 15480 #define ID3D12Device6_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 15481 #define ID3D12Device6_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 15482 #define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 15483 #define ID3D12Device6_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 15484 /*** ID3D12Device6 methods ***/ 15485 #define ID3D12Device6_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) 15486 #else 15487 /*** IUnknown methods ***/ 15488 static inline HRESULT ID3D12Device6_QueryInterface(ID3D12Device6* This,REFIID riid,void **ppvObject) { 15489 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 15490 } 15491 static inline ULONG ID3D12Device6_AddRef(ID3D12Device6* This) { 15492 return This->lpVtbl->AddRef(This); 15493 } 15494 static inline ULONG ID3D12Device6_Release(ID3D12Device6* This) { 15495 return This->lpVtbl->Release(This); 15496 } 15497 /*** ID3D12Object methods ***/ 15498 static inline HRESULT ID3D12Device6_GetPrivateData(ID3D12Device6* This,REFGUID guid,UINT *data_size,void *data) { 15499 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 15500 } 15501 static inline HRESULT ID3D12Device6_SetPrivateData(ID3D12Device6* This,REFGUID guid,UINT data_size,const void *data) { 15502 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 15503 } 15504 static inline HRESULT ID3D12Device6_SetPrivateDataInterface(ID3D12Device6* This,REFGUID guid,const IUnknown *data) { 15505 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 15506 } 15507 static inline HRESULT ID3D12Device6_SetName(ID3D12Device6* This,const WCHAR *name) { 15508 return This->lpVtbl->SetName(This,name); 15509 } 15510 /*** ID3D12Device methods ***/ 15511 static inline UINT ID3D12Device6_GetNodeCount(ID3D12Device6* This) { 15512 return This->lpVtbl->GetNodeCount(This); 15513 } 15514 static inline HRESULT ID3D12Device6_CreateCommandQueue(ID3D12Device6* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 15515 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 15516 } 15517 static inline HRESULT ID3D12Device6_CreateCommandAllocator(ID3D12Device6* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 15518 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 15519 } 15520 static inline HRESULT ID3D12Device6_CreateGraphicsPipelineState(ID3D12Device6* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 15521 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 15522 } 15523 static inline HRESULT ID3D12Device6_CreateComputePipelineState(ID3D12Device6* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 15524 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 15525 } 15526 static inline HRESULT ID3D12Device6_CreateCommandList(ID3D12Device6* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 15527 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 15528 } 15529 static inline HRESULT ID3D12Device6_CheckFeatureSupport(ID3D12Device6* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 15530 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 15531 } 15532 static inline HRESULT ID3D12Device6_CreateDescriptorHeap(ID3D12Device6* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 15533 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 15534 } 15535 static inline UINT ID3D12Device6_GetDescriptorHandleIncrementSize(ID3D12Device6* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 15536 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 15537 } 15538 static inline HRESULT ID3D12Device6_CreateRootSignature(ID3D12Device6* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 15539 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 15540 } 15541 static inline void ID3D12Device6_CreateConstantBufferView(ID3D12Device6* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15542 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 15543 } 15544 static inline void ID3D12Device6_CreateShaderResourceView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15545 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 15546 } 15547 static inline void ID3D12Device6_CreateUnorderedAccessView(ID3D12Device6* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15548 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 15549 } 15550 static inline void ID3D12Device6_CreateRenderTargetView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15551 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 15552 } 15553 static inline void ID3D12Device6_CreateDepthStencilView(ID3D12Device6* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15554 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 15555 } 15556 static inline void ID3D12Device6_CreateSampler(ID3D12Device6* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 15557 This->lpVtbl->CreateSampler(This,desc,descriptor); 15558 } 15559 static inline void ID3D12Device6_CopyDescriptors(ID3D12Device6* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 15560 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 15561 } 15562 static inline void ID3D12Device6_CopyDescriptorsSimple(ID3D12Device6* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 15563 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 15564 } 15565 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device6_GetResourceAllocationInfo(ID3D12Device6* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 15566 D3D12_RESOURCE_ALLOCATION_INFO __ret; 15567 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 15568 } 15569 static inline D3D12_HEAP_PROPERTIES ID3D12Device6_GetCustomHeapProperties(ID3D12Device6* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 15570 D3D12_HEAP_PROPERTIES __ret; 15571 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 15572 } 15573 static inline HRESULT ID3D12Device6_CreateCommittedResource(ID3D12Device6* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 15574 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 15575 } 15576 static inline HRESULT ID3D12Device6_CreateHeap(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 15577 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 15578 } 15579 static inline HRESULT ID3D12Device6_CreatePlacedResource(ID3D12Device6* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 15580 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 15581 } 15582 static inline HRESULT ID3D12Device6_CreateReservedResource(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 15583 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 15584 } 15585 static inline HRESULT ID3D12Device6_CreateSharedHandle(ID3D12Device6* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 15586 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 15587 } 15588 static inline HRESULT ID3D12Device6_OpenSharedHandle(ID3D12Device6* This,HANDLE handle,REFIID riid,void **object) { 15589 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 15590 } 15591 static inline HRESULT ID3D12Device6_OpenSharedHandleByName(ID3D12Device6* This,const WCHAR *name,DWORD access,HANDLE *handle) { 15592 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 15593 } 15594 static inline HRESULT ID3D12Device6_MakeResident(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) { 15595 return This->lpVtbl->MakeResident(This,object_count,objects); 15596 } 15597 static inline HRESULT ID3D12Device6_Evict(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects) { 15598 return This->lpVtbl->Evict(This,object_count,objects); 15599 } 15600 static inline HRESULT ID3D12Device6_CreateFence(ID3D12Device6* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 15601 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 15602 } 15603 static inline HRESULT ID3D12Device6_GetDeviceRemovedReason(ID3D12Device6* This) { 15604 return This->lpVtbl->GetDeviceRemovedReason(This); 15605 } 15606 static inline void ID3D12Device6_GetCopyableFootprints(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 15607 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 15608 } 15609 static inline HRESULT ID3D12Device6_CreateQueryHeap(ID3D12Device6* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 15610 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 15611 } 15612 static inline HRESULT ID3D12Device6_SetStablePowerState(ID3D12Device6* This,WINBOOL enable) { 15613 return This->lpVtbl->SetStablePowerState(This,enable); 15614 } 15615 static inline HRESULT ID3D12Device6_CreateCommandSignature(ID3D12Device6* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 15616 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 15617 } 15618 static inline void ID3D12Device6_GetResourceTiling(ID3D12Device6* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 15619 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 15620 } 15621 static inline LUID ID3D12Device6_GetAdapterLuid(ID3D12Device6* This) { 15622 LUID __ret; 15623 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 15624 } 15625 /*** ID3D12Device1 methods ***/ 15626 static inline HRESULT ID3D12Device6_CreatePipelineLibrary(ID3D12Device6* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 15627 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 15628 } 15629 static inline HRESULT ID3D12Device6_SetEventOnMultipleFenceCompletion(ID3D12Device6* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 15630 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 15631 } 15632 static inline HRESULT ID3D12Device6_SetResidencyPriority(ID3D12Device6* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 15633 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 15634 } 15635 /*** ID3D12Device2 methods ***/ 15636 static inline HRESULT ID3D12Device6_CreatePipelineState(ID3D12Device6* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 15637 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 15638 } 15639 /*** ID3D12Device3 methods ***/ 15640 static inline HRESULT ID3D12Device6_OpenExistingHeapFromAddress(ID3D12Device6* This,const void *address,REFIID riid,void **heap) { 15641 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 15642 } 15643 static inline HRESULT ID3D12Device6_OpenExistingHeapFromFileMapping(ID3D12Device6* This,HANDLE file_mapping,REFIID riid,void **heap) { 15644 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 15645 } 15646 static inline HRESULT ID3D12Device6_EnqueueMakeResident(ID3D12Device6* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 15647 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 15648 } 15649 /*** ID3D12Device4 methods ***/ 15650 static inline HRESULT ID3D12Device6_CreateCommandList1(ID3D12Device6* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 15651 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 15652 } 15653 static inline HRESULT ID3D12Device6_CreateProtectedResourceSession(ID3D12Device6* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 15654 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 15655 } 15656 static inline HRESULT ID3D12Device6_CreateCommittedResource1(ID3D12Device6* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 15657 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 15658 } 15659 static inline HRESULT ID3D12Device6_CreateHeap1(ID3D12Device6* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 15660 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 15661 } 15662 static inline HRESULT ID3D12Device6_CreateReservedResource1(ID3D12Device6* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 15663 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 15664 } 15665 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device6_GetResourceAllocationInfo1(ID3D12Device6* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 15666 D3D12_RESOURCE_ALLOCATION_INFO __ret; 15667 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 15668 } 15669 /*** ID3D12Device5 methods ***/ 15670 static inline HRESULT ID3D12Device6_CreateLifetimeTracker(ID3D12Device6* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 15671 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 15672 } 15673 static inline void ID3D12Device6_RemoveDevice(ID3D12Device6* This) { 15674 This->lpVtbl->RemoveDevice(This); 15675 } 15676 static inline HRESULT ID3D12Device6_EnumerateMetaCommands(ID3D12Device6* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 15677 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 15678 } 15679 static inline HRESULT ID3D12Device6_EnumerateMetaCommandParameters(ID3D12Device6* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 15680 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 15681 } 15682 static inline HRESULT ID3D12Device6_CreateMetaCommand(ID3D12Device6* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 15683 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 15684 } 15685 static inline HRESULT ID3D12Device6_CreateStateObject(ID3D12Device6* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 15686 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 15687 } 15688 static inline void ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device6* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 15689 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 15690 } 15691 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device6_CheckDriverMatchingIdentifier(ID3D12Device6* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 15692 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 15693 } 15694 /*** ID3D12Device6 methods ***/ 15695 static inline HRESULT ID3D12Device6_SetBackgroundProcessingMode(ID3D12Device6* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) { 15696 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired); 15697 } 15698 #endif 15699 #endif 15700 15701 #endif 15702 15703 15704 #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ 15705 15706 DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62b0084e, 0xc70e, 0x4daa, 0xa1, 0x09, 0x30, 0xff, 0x8d, 0x5a, 0x04, 0x82); 15707 typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT { 15708 UINT NodeIndex; 15709 UINT Count; 15710 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; 15711 typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES { 15712 UINT NodeIndex; 15713 UINT Count; 15714 GUID *pTypes; 15715 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; 15716 typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 { 15717 UINT NodeMask; 15718 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; 15719 GUID ProtectionType; 15720 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1; 15721 /***************************************************************************** 15722 * ID3D12ProtectedResourceSession1 interface 15723 */ 15724 #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ 15725 #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ 15726 15727 DEFINE_GUID(IID_ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09); 15728 #if defined(__cplusplus) && !defined(CINTERFACE) 15729 MIDL_INTERFACE("d6f12dd6-76fb-406e-8961-4296eefc0409") 15730 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession 15731 { 15732 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 15733 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1* STDMETHODCALLTYPE GetDesc1( 15734 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret) = 0; 15735 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( 15736 ) 15737 { 15738 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret; 15739 return *GetDesc1(&__ret); 15740 } 15741 #else 15742 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( 15743 ) = 0; 15744 #endif 15745 15746 }; 15747 #ifdef __CRT_UUID_DECL 15748 __CRT_UUID_DECL(ID3D12ProtectedResourceSession1, 0xd6f12dd6, 0x76fb, 0x406e, 0x89,0x61, 0x42,0x96,0xee,0xfc,0x04,0x09) 15749 #endif 15750 #else 15751 typedef struct ID3D12ProtectedResourceSession1Vtbl { 15752 BEGIN_INTERFACE 15753 15754 /*** IUnknown methods ***/ 15755 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 15756 ID3D12ProtectedResourceSession1 *This, 15757 REFIID riid, 15758 void **ppvObject); 15759 15760 ULONG (STDMETHODCALLTYPE *AddRef)( 15761 ID3D12ProtectedResourceSession1 *This); 15762 15763 ULONG (STDMETHODCALLTYPE *Release)( 15764 ID3D12ProtectedResourceSession1 *This); 15765 15766 /*** ID3D12Object methods ***/ 15767 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 15768 ID3D12ProtectedResourceSession1 *This, 15769 REFGUID guid, 15770 UINT *data_size, 15771 void *data); 15772 15773 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 15774 ID3D12ProtectedResourceSession1 *This, 15775 REFGUID guid, 15776 UINT data_size, 15777 const void *data); 15778 15779 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 15780 ID3D12ProtectedResourceSession1 *This, 15781 REFGUID guid, 15782 const IUnknown *data); 15783 15784 HRESULT (STDMETHODCALLTYPE *SetName)( 15785 ID3D12ProtectedResourceSession1 *This, 15786 const WCHAR *name); 15787 15788 /*** ID3D12DeviceChild methods ***/ 15789 HRESULT (STDMETHODCALLTYPE *GetDevice)( 15790 ID3D12ProtectedResourceSession1 *This, 15791 REFIID riid, 15792 void **device); 15793 15794 /*** ID3D12ProtectedSession methods ***/ 15795 HRESULT (STDMETHODCALLTYPE *GetStatusFence)( 15796 ID3D12ProtectedResourceSession1 *This, 15797 REFIID riid, 15798 void **fence); 15799 15800 D3D12_PROTECTED_SESSION_STATUS (STDMETHODCALLTYPE *GetSessionStatus)( 15801 ID3D12ProtectedResourceSession1 *This); 15802 15803 /*** ID3D12ProtectedResourceSession methods ***/ 15804 D3D12_PROTECTED_RESOURCE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)( 15805 ID3D12ProtectedResourceSession1 *This, 15806 D3D12_PROTECTED_RESOURCE_SESSION_DESC *__ret); 15807 15808 /*** ID3D12ProtectedResourceSession1 methods ***/ 15809 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * (STDMETHODCALLTYPE *GetDesc1)( 15810 ID3D12ProtectedResourceSession1 *This, 15811 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *__ret); 15812 15813 END_INTERFACE 15814 } ID3D12ProtectedResourceSession1Vtbl; 15815 15816 interface ID3D12ProtectedResourceSession1 { 15817 CONST_VTBL ID3D12ProtectedResourceSession1Vtbl* lpVtbl; 15818 }; 15819 15820 #ifdef COBJMACROS 15821 #ifndef WIDL_C_INLINE_WRAPPERS 15822 /*** IUnknown methods ***/ 15823 #define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 15824 #define ID3D12ProtectedResourceSession1_AddRef(This) (This)->lpVtbl->AddRef(This) 15825 #define ID3D12ProtectedResourceSession1_Release(This) (This)->lpVtbl->Release(This) 15826 /*** ID3D12Object methods ***/ 15827 #define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 15828 #define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 15829 #define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 15830 #define ID3D12ProtectedResourceSession1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 15831 /*** ID3D12DeviceChild methods ***/ 15832 #define ID3D12ProtectedResourceSession1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 15833 /*** ID3D12ProtectedSession methods ***/ 15834 #define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,fence) (This)->lpVtbl->GetStatusFence(This,riid,fence) 15835 #define ID3D12ProtectedResourceSession1_GetSessionStatus(This) (This)->lpVtbl->GetSessionStatus(This) 15836 /*** ID3D12ProtectedResourceSession methods ***/ 15837 #define ID3D12ProtectedResourceSession1_GetDesc(This) ID3D12ProtectedResourceSession1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15838 /*** ID3D12ProtectedResourceSession1 methods ***/ 15839 #define ID3D12ProtectedResourceSession1_GetDesc1(This) ID3D12ProtectedResourceSession1_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 15840 #else 15841 /*** IUnknown methods ***/ 15842 static inline HRESULT ID3D12ProtectedResourceSession1_QueryInterface(ID3D12ProtectedResourceSession1* This,REFIID riid,void **ppvObject) { 15843 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 15844 } 15845 static inline ULONG ID3D12ProtectedResourceSession1_AddRef(ID3D12ProtectedResourceSession1* This) { 15846 return This->lpVtbl->AddRef(This); 15847 } 15848 static inline ULONG ID3D12ProtectedResourceSession1_Release(ID3D12ProtectedResourceSession1* This) { 15849 return This->lpVtbl->Release(This); 15850 } 15851 /*** ID3D12Object methods ***/ 15852 static inline HRESULT ID3D12ProtectedResourceSession1_GetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT *data_size,void *data) { 15853 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 15854 } 15855 static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateData(ID3D12ProtectedResourceSession1* This,REFGUID guid,UINT data_size,const void *data) { 15856 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 15857 } 15858 static inline HRESULT ID3D12ProtectedResourceSession1_SetPrivateDataInterface(ID3D12ProtectedResourceSession1* This,REFGUID guid,const IUnknown *data) { 15859 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 15860 } 15861 static inline HRESULT ID3D12ProtectedResourceSession1_SetName(ID3D12ProtectedResourceSession1* This,const WCHAR *name) { 15862 return This->lpVtbl->SetName(This,name); 15863 } 15864 /*** ID3D12DeviceChild methods ***/ 15865 static inline HRESULT ID3D12ProtectedResourceSession1_GetDevice(ID3D12ProtectedResourceSession1* This,REFIID riid,void **device) { 15866 return This->lpVtbl->GetDevice(This,riid,device); 15867 } 15868 /*** ID3D12ProtectedSession methods ***/ 15869 static inline HRESULT ID3D12ProtectedResourceSession1_GetStatusFence(ID3D12ProtectedResourceSession1* This,REFIID riid,void **fence) { 15870 return This->lpVtbl->GetStatusFence(This,riid,fence); 15871 } 15872 static inline D3D12_PROTECTED_SESSION_STATUS ID3D12ProtectedResourceSession1_GetSessionStatus(ID3D12ProtectedResourceSession1* This) { 15873 return This->lpVtbl->GetSessionStatus(This); 15874 } 15875 /*** ID3D12ProtectedResourceSession methods ***/ 15876 static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC ID3D12ProtectedResourceSession1_GetDesc(ID3D12ProtectedResourceSession1* This) { 15877 D3D12_PROTECTED_RESOURCE_SESSION_DESC __ret; 15878 return *This->lpVtbl->GetDesc(This,&__ret); 15879 } 15880 /*** ID3D12ProtectedResourceSession1 methods ***/ 15881 static inline D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ID3D12ProtectedResourceSession1_GetDesc1(ID3D12ProtectedResourceSession1* This) { 15882 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 __ret; 15883 return *This->lpVtbl->GetDesc1(This,&__ret); 15884 } 15885 #endif 15886 #endif 15887 15888 #endif 15889 15890 15891 #endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */ 15892 15893 /***************************************************************************** 15894 * ID3D12Device7 interface 15895 */ 15896 #ifndef __ID3D12Device7_INTERFACE_DEFINED__ 15897 #define __ID3D12Device7_INTERFACE_DEFINED__ 15898 15899 DEFINE_GUID(IID_ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b); 15900 #if defined(__cplusplus) && !defined(CINTERFACE) 15901 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b") 15902 ID3D12Device7 : public ID3D12Device6 15903 { 15904 virtual HRESULT STDMETHODCALLTYPE AddToStateObject( 15905 const D3D12_STATE_OBJECT_DESC *addition, 15906 ID3D12StateObject *state_object_to_grow_from, 15907 REFIID riid, 15908 void **new_state_object) = 0; 15909 15910 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1( 15911 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc, 15912 REFIID riid, 15913 void **session) = 0; 15914 15915 }; 15916 #ifdef __CRT_UUID_DECL 15917 __CRT_UUID_DECL(ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b,0xd1, 0xdd,0x60,0x46,0xb9,0x35,0x8b) 15918 #endif 15919 #else 15920 typedef struct ID3D12Device7Vtbl { 15921 BEGIN_INTERFACE 15922 15923 /*** IUnknown methods ***/ 15924 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 15925 ID3D12Device7 *This, 15926 REFIID riid, 15927 void **ppvObject); 15928 15929 ULONG (STDMETHODCALLTYPE *AddRef)( 15930 ID3D12Device7 *This); 15931 15932 ULONG (STDMETHODCALLTYPE *Release)( 15933 ID3D12Device7 *This); 15934 15935 /*** ID3D12Object methods ***/ 15936 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 15937 ID3D12Device7 *This, 15938 REFGUID guid, 15939 UINT *data_size, 15940 void *data); 15941 15942 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 15943 ID3D12Device7 *This, 15944 REFGUID guid, 15945 UINT data_size, 15946 const void *data); 15947 15948 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 15949 ID3D12Device7 *This, 15950 REFGUID guid, 15951 const IUnknown *data); 15952 15953 HRESULT (STDMETHODCALLTYPE *SetName)( 15954 ID3D12Device7 *This, 15955 const WCHAR *name); 15956 15957 /*** ID3D12Device methods ***/ 15958 UINT (STDMETHODCALLTYPE *GetNodeCount)( 15959 ID3D12Device7 *This); 15960 15961 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 15962 ID3D12Device7 *This, 15963 const D3D12_COMMAND_QUEUE_DESC *desc, 15964 REFIID riid, 15965 void **command_queue); 15966 15967 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 15968 ID3D12Device7 *This, 15969 D3D12_COMMAND_LIST_TYPE type, 15970 REFIID riid, 15971 void **command_allocator); 15972 15973 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 15974 ID3D12Device7 *This, 15975 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 15976 REFIID riid, 15977 void **pipeline_state); 15978 15979 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 15980 ID3D12Device7 *This, 15981 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 15982 REFIID riid, 15983 void **pipeline_state); 15984 15985 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 15986 ID3D12Device7 *This, 15987 UINT node_mask, 15988 D3D12_COMMAND_LIST_TYPE type, 15989 ID3D12CommandAllocator *command_allocator, 15990 ID3D12PipelineState *initial_pipeline_state, 15991 REFIID riid, 15992 void **command_list); 15993 15994 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 15995 ID3D12Device7 *This, 15996 D3D12_FEATURE feature, 15997 void *feature_data, 15998 UINT feature_data_size); 15999 16000 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 16001 ID3D12Device7 *This, 16002 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 16003 REFIID riid, 16004 void **descriptor_heap); 16005 16006 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 16007 ID3D12Device7 *This, 16008 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16009 16010 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 16011 ID3D12Device7 *This, 16012 UINT node_mask, 16013 const void *bytecode, 16014 SIZE_T bytecode_length, 16015 REFIID riid, 16016 void **root_signature); 16017 16018 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 16019 ID3D12Device7 *This, 16020 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 16021 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16022 16023 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 16024 ID3D12Device7 *This, 16025 ID3D12Resource *resource, 16026 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 16027 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16028 16029 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 16030 ID3D12Device7 *This, 16031 ID3D12Resource *resource, 16032 ID3D12Resource *counter_resource, 16033 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 16034 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16035 16036 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 16037 ID3D12Device7 *This, 16038 ID3D12Resource *resource, 16039 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 16040 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16041 16042 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 16043 ID3D12Device7 *This, 16044 ID3D12Resource *resource, 16045 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 16046 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16047 16048 void (STDMETHODCALLTYPE *CreateSampler)( 16049 ID3D12Device7 *This, 16050 const D3D12_SAMPLER_DESC *desc, 16051 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16052 16053 void (STDMETHODCALLTYPE *CopyDescriptors)( 16054 ID3D12Device7 *This, 16055 UINT dst_descriptor_range_count, 16056 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 16057 const UINT *dst_descriptor_range_sizes, 16058 UINT src_descriptor_range_count, 16059 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 16060 const UINT *src_descriptor_range_sizes, 16061 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16062 16063 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 16064 ID3D12Device7 *This, 16065 UINT descriptor_count, 16066 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 16067 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 16068 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16069 16070 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 16071 ID3D12Device7 *This, 16072 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 16073 UINT visible_mask, 16074 UINT reource_desc_count, 16075 const D3D12_RESOURCE_DESC *resource_descs); 16076 16077 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 16078 ID3D12Device7 *This, 16079 D3D12_HEAP_PROPERTIES *__ret, 16080 UINT node_mask, 16081 D3D12_HEAP_TYPE heap_type); 16082 16083 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 16084 ID3D12Device7 *This, 16085 const D3D12_HEAP_PROPERTIES *heap_properties, 16086 D3D12_HEAP_FLAGS heap_flags, 16087 const D3D12_RESOURCE_DESC *desc, 16088 D3D12_RESOURCE_STATES initial_state, 16089 const D3D12_CLEAR_VALUE *optimized_clear_value, 16090 REFIID riid, 16091 void **resource); 16092 16093 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 16094 ID3D12Device7 *This, 16095 const D3D12_HEAP_DESC *desc, 16096 REFIID riid, 16097 void **heap); 16098 16099 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 16100 ID3D12Device7 *This, 16101 ID3D12Heap *heap, 16102 UINT64 heap_offset, 16103 const D3D12_RESOURCE_DESC *desc, 16104 D3D12_RESOURCE_STATES initial_state, 16105 const D3D12_CLEAR_VALUE *optimized_clear_value, 16106 REFIID riid, 16107 void **resource); 16108 16109 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 16110 ID3D12Device7 *This, 16111 const D3D12_RESOURCE_DESC *desc, 16112 D3D12_RESOURCE_STATES initial_state, 16113 const D3D12_CLEAR_VALUE *optimized_clear_value, 16114 REFIID riid, 16115 void **resource); 16116 16117 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 16118 ID3D12Device7 *This, 16119 ID3D12DeviceChild *object, 16120 const SECURITY_ATTRIBUTES *attributes, 16121 DWORD access, 16122 const WCHAR *name, 16123 HANDLE *handle); 16124 16125 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 16126 ID3D12Device7 *This, 16127 HANDLE handle, 16128 REFIID riid, 16129 void **object); 16130 16131 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 16132 ID3D12Device7 *This, 16133 const WCHAR *name, 16134 DWORD access, 16135 HANDLE *handle); 16136 16137 HRESULT (STDMETHODCALLTYPE *MakeResident)( 16138 ID3D12Device7 *This, 16139 UINT object_count, 16140 ID3D12Pageable *const *objects); 16141 16142 HRESULT (STDMETHODCALLTYPE *Evict)( 16143 ID3D12Device7 *This, 16144 UINT object_count, 16145 ID3D12Pageable *const *objects); 16146 16147 HRESULT (STDMETHODCALLTYPE *CreateFence)( 16148 ID3D12Device7 *This, 16149 UINT64 initial_value, 16150 D3D12_FENCE_FLAGS flags, 16151 REFIID riid, 16152 void **fence); 16153 16154 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 16155 ID3D12Device7 *This); 16156 16157 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 16158 ID3D12Device7 *This, 16159 const D3D12_RESOURCE_DESC *desc, 16160 UINT first_sub_resource, 16161 UINT sub_resource_count, 16162 UINT64 base_offset, 16163 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 16164 UINT *row_count, 16165 UINT64 *row_size, 16166 UINT64 *total_bytes); 16167 16168 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 16169 ID3D12Device7 *This, 16170 const D3D12_QUERY_HEAP_DESC *desc, 16171 REFIID riid, 16172 void **heap); 16173 16174 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 16175 ID3D12Device7 *This, 16176 WINBOOL enable); 16177 16178 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 16179 ID3D12Device7 *This, 16180 const D3D12_COMMAND_SIGNATURE_DESC *desc, 16181 ID3D12RootSignature *root_signature, 16182 REFIID riid, 16183 void **command_signature); 16184 16185 void (STDMETHODCALLTYPE *GetResourceTiling)( 16186 ID3D12Device7 *This, 16187 ID3D12Resource *resource, 16188 UINT *total_tile_count, 16189 D3D12_PACKED_MIP_INFO *packed_mip_info, 16190 D3D12_TILE_SHAPE *standard_tile_shape, 16191 UINT *sub_resource_tiling_count, 16192 UINT first_sub_resource_tiling, 16193 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 16194 16195 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 16196 ID3D12Device7 *This, 16197 LUID *__ret); 16198 16199 /*** ID3D12Device1 methods ***/ 16200 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 16201 ID3D12Device7 *This, 16202 const void *blob, 16203 SIZE_T blob_size, 16204 REFIID iid, 16205 void **lib); 16206 16207 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 16208 ID3D12Device7 *This, 16209 ID3D12Fence *const *fences, 16210 const UINT64 *values, 16211 UINT fence_count, 16212 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 16213 HANDLE event); 16214 16215 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 16216 ID3D12Device7 *This, 16217 UINT object_count, 16218 ID3D12Pageable *const *objects, 16219 const D3D12_RESIDENCY_PRIORITY *priorities); 16220 16221 /*** ID3D12Device2 methods ***/ 16222 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 16223 ID3D12Device7 *This, 16224 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 16225 REFIID riid, 16226 void **pipeline_state); 16227 16228 /*** ID3D12Device3 methods ***/ 16229 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 16230 ID3D12Device7 *This, 16231 const void *address, 16232 REFIID riid, 16233 void **heap); 16234 16235 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 16236 ID3D12Device7 *This, 16237 HANDLE file_mapping, 16238 REFIID riid, 16239 void **heap); 16240 16241 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 16242 ID3D12Device7 *This, 16243 D3D12_RESIDENCY_FLAGS flags, 16244 UINT num_objects, 16245 ID3D12Pageable *const *objects, 16246 ID3D12Fence *fence, 16247 UINT64 fence_value); 16248 16249 /*** ID3D12Device4 methods ***/ 16250 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 16251 ID3D12Device7 *This, 16252 UINT node_mask, 16253 D3D12_COMMAND_LIST_TYPE type, 16254 D3D12_COMMAND_LIST_FLAGS flags, 16255 REFIID riid, 16256 void **command_list); 16257 16258 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 16259 ID3D12Device7 *This, 16260 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 16261 REFIID riid, 16262 void **session); 16263 16264 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 16265 ID3D12Device7 *This, 16266 const D3D12_HEAP_PROPERTIES *heap_properties, 16267 D3D12_HEAP_FLAGS heap_flags, 16268 const D3D12_RESOURCE_DESC *desc, 16269 D3D12_RESOURCE_STATES initial_resource_state, 16270 const D3D12_CLEAR_VALUE *optimized_clear_value, 16271 ID3D12ProtectedResourceSession *protected_session, 16272 REFIID riid_resource, 16273 void **resource); 16274 16275 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 16276 ID3D12Device7 *This, 16277 const D3D12_HEAP_DESC *desc, 16278 ID3D12ProtectedResourceSession *protected_session, 16279 REFIID riid, 16280 void **heap); 16281 16282 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 16283 ID3D12Device7 *This, 16284 const D3D12_RESOURCE_DESC *desc, 16285 D3D12_RESOURCE_STATES initial_state, 16286 const D3D12_CLEAR_VALUE *optimized_clear_value, 16287 ID3D12ProtectedResourceSession *protected_session, 16288 REFIID riid, 16289 void **resource); 16290 16291 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 16292 ID3D12Device7 *This, 16293 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 16294 UINT visible_mask, 16295 UINT resource_descs_count, 16296 const D3D12_RESOURCE_DESC *resource_descs, 16297 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 16298 16299 /*** ID3D12Device5 methods ***/ 16300 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 16301 ID3D12Device7 *This, 16302 ID3D12LifetimeOwner *owner, 16303 REFIID riid, 16304 void **tracker); 16305 16306 void (STDMETHODCALLTYPE *RemoveDevice)( 16307 ID3D12Device7 *This); 16308 16309 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 16310 ID3D12Device7 *This, 16311 UINT *meta_commands_count, 16312 D3D12_META_COMMAND_DESC *descs); 16313 16314 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 16315 ID3D12Device7 *This, 16316 REFGUID command_id, 16317 D3D12_META_COMMAND_PARAMETER_STAGE stage, 16318 UINT *total_structure_size_in_bytes, 16319 UINT *parameter_count, 16320 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 16321 16322 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 16323 ID3D12Device7 *This, 16324 REFGUID command_id, 16325 UINT node_mask, 16326 const void *creation_parameters_data, 16327 SIZE_T creation_parameters_data_size_in_bytes, 16328 REFIID riid, 16329 void **meta_command); 16330 16331 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 16332 ID3D12Device7 *This, 16333 const D3D12_STATE_OBJECT_DESC *desc, 16334 REFIID riid, 16335 void **state_object); 16336 16337 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 16338 ID3D12Device7 *This, 16339 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 16340 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 16341 16342 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 16343 ID3D12Device7 *This, 16344 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 16345 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 16346 16347 /*** ID3D12Device6 methods ***/ 16348 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)( 16349 ID3D12Device7 *This, 16350 D3D12_BACKGROUND_PROCESSING_MODE mode, 16351 D3D12_MEASUREMENTS_ACTION action, 16352 HANDLE event, 16353 WINBOOL *further_measurements_desired); 16354 16355 /*** ID3D12Device7 methods ***/ 16356 HRESULT (STDMETHODCALLTYPE *AddToStateObject)( 16357 ID3D12Device7 *This, 16358 const D3D12_STATE_OBJECT_DESC *addition, 16359 ID3D12StateObject *state_object_to_grow_from, 16360 REFIID riid, 16361 void **new_state_object); 16362 16363 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)( 16364 ID3D12Device7 *This, 16365 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc, 16366 REFIID riid, 16367 void **session); 16368 16369 END_INTERFACE 16370 } ID3D12Device7Vtbl; 16371 16372 interface ID3D12Device7 { 16373 CONST_VTBL ID3D12Device7Vtbl* lpVtbl; 16374 }; 16375 16376 #ifdef COBJMACROS 16377 #ifndef WIDL_C_INLINE_WRAPPERS 16378 /*** IUnknown methods ***/ 16379 #define ID3D12Device7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 16380 #define ID3D12Device7_AddRef(This) (This)->lpVtbl->AddRef(This) 16381 #define ID3D12Device7_Release(This) (This)->lpVtbl->Release(This) 16382 /*** ID3D12Object methods ***/ 16383 #define ID3D12Device7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 16384 #define ID3D12Device7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 16385 #define ID3D12Device7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 16386 #define ID3D12Device7_SetName(This,name) (This)->lpVtbl->SetName(This,name) 16387 /*** ID3D12Device methods ***/ 16388 #define ID3D12Device7_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 16389 #define ID3D12Device7_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 16390 #define ID3D12Device7_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 16391 #define ID3D12Device7_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 16392 #define ID3D12Device7_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 16393 #define ID3D12Device7_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 16394 #define ID3D12Device7_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 16395 #define ID3D12Device7_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 16396 #define ID3D12Device7_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 16397 #define ID3D12Device7_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 16398 #define ID3D12Device7_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 16399 #define ID3D12Device7_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 16400 #define ID3D12Device7_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 16401 #define ID3D12Device7_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 16402 #define ID3D12Device7_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 16403 #define ID3D12Device7_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 16404 #define ID3D12Device7_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 16405 #define ID3D12Device7_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 16406 #define ID3D12Device7_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device7_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 16407 #define ID3D12Device7_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device7_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 16408 #define ID3D12Device7_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 16409 #define ID3D12Device7_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 16410 #define ID3D12Device7_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 16411 #define ID3D12Device7_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 16412 #define ID3D12Device7_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 16413 #define ID3D12Device7_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 16414 #define ID3D12Device7_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 16415 #define ID3D12Device7_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 16416 #define ID3D12Device7_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 16417 #define ID3D12Device7_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 16418 #define ID3D12Device7_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 16419 #define ID3D12Device7_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 16420 #define ID3D12Device7_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 16421 #define ID3D12Device7_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 16422 #define ID3D12Device7_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 16423 #define ID3D12Device7_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 16424 #define ID3D12Device7_GetAdapterLuid(This) ID3D12Device7_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 16425 /*** ID3D12Device1 methods ***/ 16426 #define ID3D12Device7_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 16427 #define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 16428 #define ID3D12Device7_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 16429 /*** ID3D12Device2 methods ***/ 16430 #define ID3D12Device7_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 16431 /*** ID3D12Device3 methods ***/ 16432 #define ID3D12Device7_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 16433 #define ID3D12Device7_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 16434 #define ID3D12Device7_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 16435 /*** ID3D12Device4 methods ***/ 16436 #define ID3D12Device7_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 16437 #define ID3D12Device7_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 16438 #define ID3D12Device7_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 16439 #define ID3D12Device7_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 16440 #define ID3D12Device7_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 16441 #define ID3D12Device7_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device7_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 16442 /*** ID3D12Device5 methods ***/ 16443 #define ID3D12Device7_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 16444 #define ID3D12Device7_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 16445 #define ID3D12Device7_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 16446 #define ID3D12Device7_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 16447 #define ID3D12Device7_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 16448 #define ID3D12Device7_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 16449 #define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 16450 #define ID3D12Device7_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 16451 /*** ID3D12Device6 methods ***/ 16452 #define ID3D12Device7_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) 16453 /*** ID3D12Device7 methods ***/ 16454 #define ID3D12Device7_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) 16455 #define ID3D12Device7_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session) 16456 #else 16457 /*** IUnknown methods ***/ 16458 static inline HRESULT ID3D12Device7_QueryInterface(ID3D12Device7* This,REFIID riid,void **ppvObject) { 16459 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 16460 } 16461 static inline ULONG ID3D12Device7_AddRef(ID3D12Device7* This) { 16462 return This->lpVtbl->AddRef(This); 16463 } 16464 static inline ULONG ID3D12Device7_Release(ID3D12Device7* This) { 16465 return This->lpVtbl->Release(This); 16466 } 16467 /*** ID3D12Object methods ***/ 16468 static inline HRESULT ID3D12Device7_GetPrivateData(ID3D12Device7* This,REFGUID guid,UINT *data_size,void *data) { 16469 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 16470 } 16471 static inline HRESULT ID3D12Device7_SetPrivateData(ID3D12Device7* This,REFGUID guid,UINT data_size,const void *data) { 16472 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 16473 } 16474 static inline HRESULT ID3D12Device7_SetPrivateDataInterface(ID3D12Device7* This,REFGUID guid,const IUnknown *data) { 16475 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 16476 } 16477 static inline HRESULT ID3D12Device7_SetName(ID3D12Device7* This,const WCHAR *name) { 16478 return This->lpVtbl->SetName(This,name); 16479 } 16480 /*** ID3D12Device methods ***/ 16481 static inline UINT ID3D12Device7_GetNodeCount(ID3D12Device7* This) { 16482 return This->lpVtbl->GetNodeCount(This); 16483 } 16484 static inline HRESULT ID3D12Device7_CreateCommandQueue(ID3D12Device7* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 16485 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 16486 } 16487 static inline HRESULT ID3D12Device7_CreateCommandAllocator(ID3D12Device7* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 16488 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 16489 } 16490 static inline HRESULT ID3D12Device7_CreateGraphicsPipelineState(ID3D12Device7* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 16491 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 16492 } 16493 static inline HRESULT ID3D12Device7_CreateComputePipelineState(ID3D12Device7* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 16494 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 16495 } 16496 static inline HRESULT ID3D12Device7_CreateCommandList(ID3D12Device7* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 16497 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 16498 } 16499 static inline HRESULT ID3D12Device7_CheckFeatureSupport(ID3D12Device7* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 16500 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 16501 } 16502 static inline HRESULT ID3D12Device7_CreateDescriptorHeap(ID3D12Device7* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 16503 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 16504 } 16505 static inline UINT ID3D12Device7_GetDescriptorHandleIncrementSize(ID3D12Device7* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 16506 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 16507 } 16508 static inline HRESULT ID3D12Device7_CreateRootSignature(ID3D12Device7* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 16509 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 16510 } 16511 static inline void ID3D12Device7_CreateConstantBufferView(ID3D12Device7* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16512 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 16513 } 16514 static inline void ID3D12Device7_CreateShaderResourceView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16515 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 16516 } 16517 static inline void ID3D12Device7_CreateUnorderedAccessView(ID3D12Device7* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16518 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 16519 } 16520 static inline void ID3D12Device7_CreateRenderTargetView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16521 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 16522 } 16523 static inline void ID3D12Device7_CreateDepthStencilView(ID3D12Device7* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16524 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 16525 } 16526 static inline void ID3D12Device7_CreateSampler(ID3D12Device7* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 16527 This->lpVtbl->CreateSampler(This,desc,descriptor); 16528 } 16529 static inline void ID3D12Device7_CopyDescriptors(ID3D12Device7* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 16530 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 16531 } 16532 static inline void ID3D12Device7_CopyDescriptorsSimple(ID3D12Device7* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 16533 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 16534 } 16535 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device7_GetResourceAllocationInfo(ID3D12Device7* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 16536 D3D12_RESOURCE_ALLOCATION_INFO __ret; 16537 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 16538 } 16539 static inline D3D12_HEAP_PROPERTIES ID3D12Device7_GetCustomHeapProperties(ID3D12Device7* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 16540 D3D12_HEAP_PROPERTIES __ret; 16541 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 16542 } 16543 static inline HRESULT ID3D12Device7_CreateCommittedResource(ID3D12Device7* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 16544 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 16545 } 16546 static inline HRESULT ID3D12Device7_CreateHeap(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 16547 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 16548 } 16549 static inline HRESULT ID3D12Device7_CreatePlacedResource(ID3D12Device7* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 16550 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 16551 } 16552 static inline HRESULT ID3D12Device7_CreateReservedResource(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 16553 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 16554 } 16555 static inline HRESULT ID3D12Device7_CreateSharedHandle(ID3D12Device7* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 16556 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 16557 } 16558 static inline HRESULT ID3D12Device7_OpenSharedHandle(ID3D12Device7* This,HANDLE handle,REFIID riid,void **object) { 16559 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 16560 } 16561 static inline HRESULT ID3D12Device7_OpenSharedHandleByName(ID3D12Device7* This,const WCHAR *name,DWORD access,HANDLE *handle) { 16562 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 16563 } 16564 static inline HRESULT ID3D12Device7_MakeResident(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) { 16565 return This->lpVtbl->MakeResident(This,object_count,objects); 16566 } 16567 static inline HRESULT ID3D12Device7_Evict(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects) { 16568 return This->lpVtbl->Evict(This,object_count,objects); 16569 } 16570 static inline HRESULT ID3D12Device7_CreateFence(ID3D12Device7* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 16571 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 16572 } 16573 static inline HRESULT ID3D12Device7_GetDeviceRemovedReason(ID3D12Device7* This) { 16574 return This->lpVtbl->GetDeviceRemovedReason(This); 16575 } 16576 static inline void ID3D12Device7_GetCopyableFootprints(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 16577 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 16578 } 16579 static inline HRESULT ID3D12Device7_CreateQueryHeap(ID3D12Device7* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 16580 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 16581 } 16582 static inline HRESULT ID3D12Device7_SetStablePowerState(ID3D12Device7* This,WINBOOL enable) { 16583 return This->lpVtbl->SetStablePowerState(This,enable); 16584 } 16585 static inline HRESULT ID3D12Device7_CreateCommandSignature(ID3D12Device7* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 16586 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 16587 } 16588 static inline void ID3D12Device7_GetResourceTiling(ID3D12Device7* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 16589 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 16590 } 16591 static inline LUID ID3D12Device7_GetAdapterLuid(ID3D12Device7* This) { 16592 LUID __ret; 16593 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 16594 } 16595 /*** ID3D12Device1 methods ***/ 16596 static inline HRESULT ID3D12Device7_CreatePipelineLibrary(ID3D12Device7* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 16597 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 16598 } 16599 static inline HRESULT ID3D12Device7_SetEventOnMultipleFenceCompletion(ID3D12Device7* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 16600 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 16601 } 16602 static inline HRESULT ID3D12Device7_SetResidencyPriority(ID3D12Device7* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 16603 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 16604 } 16605 /*** ID3D12Device2 methods ***/ 16606 static inline HRESULT ID3D12Device7_CreatePipelineState(ID3D12Device7* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 16607 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 16608 } 16609 /*** ID3D12Device3 methods ***/ 16610 static inline HRESULT ID3D12Device7_OpenExistingHeapFromAddress(ID3D12Device7* This,const void *address,REFIID riid,void **heap) { 16611 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 16612 } 16613 static inline HRESULT ID3D12Device7_OpenExistingHeapFromFileMapping(ID3D12Device7* This,HANDLE file_mapping,REFIID riid,void **heap) { 16614 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 16615 } 16616 static inline HRESULT ID3D12Device7_EnqueueMakeResident(ID3D12Device7* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 16617 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 16618 } 16619 /*** ID3D12Device4 methods ***/ 16620 static inline HRESULT ID3D12Device7_CreateCommandList1(ID3D12Device7* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 16621 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 16622 } 16623 static inline HRESULT ID3D12Device7_CreateProtectedResourceSession(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 16624 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 16625 } 16626 static inline HRESULT ID3D12Device7_CreateCommittedResource1(ID3D12Device7* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 16627 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 16628 } 16629 static inline HRESULT ID3D12Device7_CreateHeap1(ID3D12Device7* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 16630 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 16631 } 16632 static inline HRESULT ID3D12Device7_CreateReservedResource1(ID3D12Device7* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 16633 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 16634 } 16635 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device7_GetResourceAllocationInfo1(ID3D12Device7* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 16636 D3D12_RESOURCE_ALLOCATION_INFO __ret; 16637 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 16638 } 16639 /*** ID3D12Device5 methods ***/ 16640 static inline HRESULT ID3D12Device7_CreateLifetimeTracker(ID3D12Device7* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 16641 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 16642 } 16643 static inline void ID3D12Device7_RemoveDevice(ID3D12Device7* This) { 16644 This->lpVtbl->RemoveDevice(This); 16645 } 16646 static inline HRESULT ID3D12Device7_EnumerateMetaCommands(ID3D12Device7* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 16647 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 16648 } 16649 static inline HRESULT ID3D12Device7_EnumerateMetaCommandParameters(ID3D12Device7* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 16650 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 16651 } 16652 static inline HRESULT ID3D12Device7_CreateMetaCommand(ID3D12Device7* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 16653 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 16654 } 16655 static inline HRESULT ID3D12Device7_CreateStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 16656 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 16657 } 16658 static inline void ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device7* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 16659 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 16660 } 16661 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device7_CheckDriverMatchingIdentifier(ID3D12Device7* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 16662 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 16663 } 16664 /*** ID3D12Device6 methods ***/ 16665 static inline HRESULT ID3D12Device7_SetBackgroundProcessingMode(ID3D12Device7* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) { 16666 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired); 16667 } 16668 /*** ID3D12Device7 methods ***/ 16669 static inline HRESULT ID3D12Device7_AddToStateObject(ID3D12Device7* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) { 16670 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object); 16671 } 16672 static inline HRESULT ID3D12Device7_CreateProtectedResourceSession1(ID3D12Device7* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) { 16673 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session); 16674 } 16675 #endif 16676 #endif 16677 16678 #endif 16679 16680 16681 #endif /* __ID3D12Device7_INTERFACE_DEFINED__ */ 16682 16683 /***************************************************************************** 16684 * ID3D12Device8 interface 16685 */ 16686 #ifndef __ID3D12Device8_INTERFACE_DEFINED__ 16687 #define __ID3D12Device8_INTERFACE_DEFINED__ 16688 16689 DEFINE_GUID(IID_ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3); 16690 #if defined(__cplusplus) && !defined(CINTERFACE) 16691 MIDL_INTERFACE("9218e6bb-f944-4f7e-a75c-b1b2c7b701f3") 16692 ID3D12Device8 : public ID3D12Device7 16693 { 16694 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 16695 virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo2( 16696 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 16697 UINT visible_mask, 16698 UINT resource_descs_count, 16699 const D3D12_RESOURCE_DESC1 *resource_descs, 16700 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0; 16701 D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2( 16702 UINT visible_mask, 16703 UINT resource_descs_count, 16704 const D3D12_RESOURCE_DESC1 *resource_descs, 16705 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) 16706 { 16707 D3D12_RESOURCE_ALLOCATION_INFO __ret; 16708 return *GetResourceAllocationInfo2(&__ret, visible_mask, resource_descs_count, resource_descs, resource_allocation_info1); 16709 } 16710 #else 16711 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2( 16712 UINT visible_mask, 16713 UINT resource_descs_count, 16714 const D3D12_RESOURCE_DESC1 *resource_descs, 16715 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) = 0; 16716 #endif 16717 16718 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2( 16719 const D3D12_HEAP_PROPERTIES *heap_properties, 16720 D3D12_HEAP_FLAGS heap_flags, 16721 const D3D12_RESOURCE_DESC1 *desc, 16722 D3D12_RESOURCE_STATES initial_resource_state, 16723 const D3D12_CLEAR_VALUE *optimized_clear_value, 16724 ID3D12ProtectedResourceSession *protected_session, 16725 REFIID riid_resource, 16726 void **resource) = 0; 16727 16728 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1( 16729 ID3D12Heap *heap, 16730 UINT64 heap_offset, 16731 const D3D12_RESOURCE_DESC1 *desc, 16732 D3D12_RESOURCE_STATES initial_state, 16733 const D3D12_CLEAR_VALUE *optimized_clear_value, 16734 REFIID riid, 16735 void **resource) = 0; 16736 16737 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView( 16738 ID3D12Resource *targeted_resource, 16739 ID3D12Resource *feedback_resource, 16740 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) = 0; 16741 16742 virtual void STDMETHODCALLTYPE GetCopyableFootprints1( 16743 const D3D12_RESOURCE_DESC1 *resource_desc, 16744 UINT first_subresource, 16745 UINT subresources_count, 16746 UINT64 base_offset, 16747 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 16748 UINT *rows_count, 16749 UINT64 *row_size_in_bytes, 16750 UINT64 *total_bytes) = 0; 16751 16752 }; 16753 #ifdef __CRT_UUID_DECL 16754 __CRT_UUID_DECL(ID3D12Device8, 0x9218e6bb, 0xf944, 0x4f7e, 0xa7,0x5c, 0xb1,0xb2,0xc7,0xb7,0x01,0xf3) 16755 #endif 16756 #else 16757 typedef struct ID3D12Device8Vtbl { 16758 BEGIN_INTERFACE 16759 16760 /*** IUnknown methods ***/ 16761 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 16762 ID3D12Device8 *This, 16763 REFIID riid, 16764 void **ppvObject); 16765 16766 ULONG (STDMETHODCALLTYPE *AddRef)( 16767 ID3D12Device8 *This); 16768 16769 ULONG (STDMETHODCALLTYPE *Release)( 16770 ID3D12Device8 *This); 16771 16772 /*** ID3D12Object methods ***/ 16773 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 16774 ID3D12Device8 *This, 16775 REFGUID guid, 16776 UINT *data_size, 16777 void *data); 16778 16779 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 16780 ID3D12Device8 *This, 16781 REFGUID guid, 16782 UINT data_size, 16783 const void *data); 16784 16785 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 16786 ID3D12Device8 *This, 16787 REFGUID guid, 16788 const IUnknown *data); 16789 16790 HRESULT (STDMETHODCALLTYPE *SetName)( 16791 ID3D12Device8 *This, 16792 const WCHAR *name); 16793 16794 /*** ID3D12Device methods ***/ 16795 UINT (STDMETHODCALLTYPE *GetNodeCount)( 16796 ID3D12Device8 *This); 16797 16798 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 16799 ID3D12Device8 *This, 16800 const D3D12_COMMAND_QUEUE_DESC *desc, 16801 REFIID riid, 16802 void **command_queue); 16803 16804 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 16805 ID3D12Device8 *This, 16806 D3D12_COMMAND_LIST_TYPE type, 16807 REFIID riid, 16808 void **command_allocator); 16809 16810 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 16811 ID3D12Device8 *This, 16812 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 16813 REFIID riid, 16814 void **pipeline_state); 16815 16816 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 16817 ID3D12Device8 *This, 16818 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 16819 REFIID riid, 16820 void **pipeline_state); 16821 16822 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 16823 ID3D12Device8 *This, 16824 UINT node_mask, 16825 D3D12_COMMAND_LIST_TYPE type, 16826 ID3D12CommandAllocator *command_allocator, 16827 ID3D12PipelineState *initial_pipeline_state, 16828 REFIID riid, 16829 void **command_list); 16830 16831 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 16832 ID3D12Device8 *This, 16833 D3D12_FEATURE feature, 16834 void *feature_data, 16835 UINT feature_data_size); 16836 16837 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 16838 ID3D12Device8 *This, 16839 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 16840 REFIID riid, 16841 void **descriptor_heap); 16842 16843 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 16844 ID3D12Device8 *This, 16845 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16846 16847 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 16848 ID3D12Device8 *This, 16849 UINT node_mask, 16850 const void *bytecode, 16851 SIZE_T bytecode_length, 16852 REFIID riid, 16853 void **root_signature); 16854 16855 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 16856 ID3D12Device8 *This, 16857 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 16858 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16859 16860 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 16861 ID3D12Device8 *This, 16862 ID3D12Resource *resource, 16863 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 16864 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16865 16866 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 16867 ID3D12Device8 *This, 16868 ID3D12Resource *resource, 16869 ID3D12Resource *counter_resource, 16870 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 16871 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16872 16873 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 16874 ID3D12Device8 *This, 16875 ID3D12Resource *resource, 16876 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 16877 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16878 16879 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 16880 ID3D12Device8 *This, 16881 ID3D12Resource *resource, 16882 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 16883 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16884 16885 void (STDMETHODCALLTYPE *CreateSampler)( 16886 ID3D12Device8 *This, 16887 const D3D12_SAMPLER_DESC *desc, 16888 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 16889 16890 void (STDMETHODCALLTYPE *CopyDescriptors)( 16891 ID3D12Device8 *This, 16892 UINT dst_descriptor_range_count, 16893 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 16894 const UINT *dst_descriptor_range_sizes, 16895 UINT src_descriptor_range_count, 16896 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 16897 const UINT *src_descriptor_range_sizes, 16898 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16899 16900 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 16901 ID3D12Device8 *This, 16902 UINT descriptor_count, 16903 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 16904 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 16905 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 16906 16907 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 16908 ID3D12Device8 *This, 16909 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 16910 UINT visible_mask, 16911 UINT reource_desc_count, 16912 const D3D12_RESOURCE_DESC *resource_descs); 16913 16914 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 16915 ID3D12Device8 *This, 16916 D3D12_HEAP_PROPERTIES *__ret, 16917 UINT node_mask, 16918 D3D12_HEAP_TYPE heap_type); 16919 16920 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 16921 ID3D12Device8 *This, 16922 const D3D12_HEAP_PROPERTIES *heap_properties, 16923 D3D12_HEAP_FLAGS heap_flags, 16924 const D3D12_RESOURCE_DESC *desc, 16925 D3D12_RESOURCE_STATES initial_state, 16926 const D3D12_CLEAR_VALUE *optimized_clear_value, 16927 REFIID riid, 16928 void **resource); 16929 16930 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 16931 ID3D12Device8 *This, 16932 const D3D12_HEAP_DESC *desc, 16933 REFIID riid, 16934 void **heap); 16935 16936 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 16937 ID3D12Device8 *This, 16938 ID3D12Heap *heap, 16939 UINT64 heap_offset, 16940 const D3D12_RESOURCE_DESC *desc, 16941 D3D12_RESOURCE_STATES initial_state, 16942 const D3D12_CLEAR_VALUE *optimized_clear_value, 16943 REFIID riid, 16944 void **resource); 16945 16946 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 16947 ID3D12Device8 *This, 16948 const D3D12_RESOURCE_DESC *desc, 16949 D3D12_RESOURCE_STATES initial_state, 16950 const D3D12_CLEAR_VALUE *optimized_clear_value, 16951 REFIID riid, 16952 void **resource); 16953 16954 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 16955 ID3D12Device8 *This, 16956 ID3D12DeviceChild *object, 16957 const SECURITY_ATTRIBUTES *attributes, 16958 DWORD access, 16959 const WCHAR *name, 16960 HANDLE *handle); 16961 16962 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 16963 ID3D12Device8 *This, 16964 HANDLE handle, 16965 REFIID riid, 16966 void **object); 16967 16968 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 16969 ID3D12Device8 *This, 16970 const WCHAR *name, 16971 DWORD access, 16972 HANDLE *handle); 16973 16974 HRESULT (STDMETHODCALLTYPE *MakeResident)( 16975 ID3D12Device8 *This, 16976 UINT object_count, 16977 ID3D12Pageable *const *objects); 16978 16979 HRESULT (STDMETHODCALLTYPE *Evict)( 16980 ID3D12Device8 *This, 16981 UINT object_count, 16982 ID3D12Pageable *const *objects); 16983 16984 HRESULT (STDMETHODCALLTYPE *CreateFence)( 16985 ID3D12Device8 *This, 16986 UINT64 initial_value, 16987 D3D12_FENCE_FLAGS flags, 16988 REFIID riid, 16989 void **fence); 16990 16991 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 16992 ID3D12Device8 *This); 16993 16994 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 16995 ID3D12Device8 *This, 16996 const D3D12_RESOURCE_DESC *desc, 16997 UINT first_sub_resource, 16998 UINT sub_resource_count, 16999 UINT64 base_offset, 17000 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 17001 UINT *row_count, 17002 UINT64 *row_size, 17003 UINT64 *total_bytes); 17004 17005 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 17006 ID3D12Device8 *This, 17007 const D3D12_QUERY_HEAP_DESC *desc, 17008 REFIID riid, 17009 void **heap); 17010 17011 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 17012 ID3D12Device8 *This, 17013 WINBOOL enable); 17014 17015 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 17016 ID3D12Device8 *This, 17017 const D3D12_COMMAND_SIGNATURE_DESC *desc, 17018 ID3D12RootSignature *root_signature, 17019 REFIID riid, 17020 void **command_signature); 17021 17022 void (STDMETHODCALLTYPE *GetResourceTiling)( 17023 ID3D12Device8 *This, 17024 ID3D12Resource *resource, 17025 UINT *total_tile_count, 17026 D3D12_PACKED_MIP_INFO *packed_mip_info, 17027 D3D12_TILE_SHAPE *standard_tile_shape, 17028 UINT *sub_resource_tiling_count, 17029 UINT first_sub_resource_tiling, 17030 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 17031 17032 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 17033 ID3D12Device8 *This, 17034 LUID *__ret); 17035 17036 /*** ID3D12Device1 methods ***/ 17037 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 17038 ID3D12Device8 *This, 17039 const void *blob, 17040 SIZE_T blob_size, 17041 REFIID iid, 17042 void **lib); 17043 17044 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 17045 ID3D12Device8 *This, 17046 ID3D12Fence *const *fences, 17047 const UINT64 *values, 17048 UINT fence_count, 17049 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 17050 HANDLE event); 17051 17052 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 17053 ID3D12Device8 *This, 17054 UINT object_count, 17055 ID3D12Pageable *const *objects, 17056 const D3D12_RESIDENCY_PRIORITY *priorities); 17057 17058 /*** ID3D12Device2 methods ***/ 17059 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 17060 ID3D12Device8 *This, 17061 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 17062 REFIID riid, 17063 void **pipeline_state); 17064 17065 /*** ID3D12Device3 methods ***/ 17066 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 17067 ID3D12Device8 *This, 17068 const void *address, 17069 REFIID riid, 17070 void **heap); 17071 17072 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 17073 ID3D12Device8 *This, 17074 HANDLE file_mapping, 17075 REFIID riid, 17076 void **heap); 17077 17078 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 17079 ID3D12Device8 *This, 17080 D3D12_RESIDENCY_FLAGS flags, 17081 UINT num_objects, 17082 ID3D12Pageable *const *objects, 17083 ID3D12Fence *fence, 17084 UINT64 fence_value); 17085 17086 /*** ID3D12Device4 methods ***/ 17087 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 17088 ID3D12Device8 *This, 17089 UINT node_mask, 17090 D3D12_COMMAND_LIST_TYPE type, 17091 D3D12_COMMAND_LIST_FLAGS flags, 17092 REFIID riid, 17093 void **command_list); 17094 17095 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 17096 ID3D12Device8 *This, 17097 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 17098 REFIID riid, 17099 void **session); 17100 17101 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 17102 ID3D12Device8 *This, 17103 const D3D12_HEAP_PROPERTIES *heap_properties, 17104 D3D12_HEAP_FLAGS heap_flags, 17105 const D3D12_RESOURCE_DESC *desc, 17106 D3D12_RESOURCE_STATES initial_resource_state, 17107 const D3D12_CLEAR_VALUE *optimized_clear_value, 17108 ID3D12ProtectedResourceSession *protected_session, 17109 REFIID riid_resource, 17110 void **resource); 17111 17112 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 17113 ID3D12Device8 *This, 17114 const D3D12_HEAP_DESC *desc, 17115 ID3D12ProtectedResourceSession *protected_session, 17116 REFIID riid, 17117 void **heap); 17118 17119 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 17120 ID3D12Device8 *This, 17121 const D3D12_RESOURCE_DESC *desc, 17122 D3D12_RESOURCE_STATES initial_state, 17123 const D3D12_CLEAR_VALUE *optimized_clear_value, 17124 ID3D12ProtectedResourceSession *protected_session, 17125 REFIID riid, 17126 void **resource); 17127 17128 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 17129 ID3D12Device8 *This, 17130 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 17131 UINT visible_mask, 17132 UINT resource_descs_count, 17133 const D3D12_RESOURCE_DESC *resource_descs, 17134 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 17135 17136 /*** ID3D12Device5 methods ***/ 17137 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 17138 ID3D12Device8 *This, 17139 ID3D12LifetimeOwner *owner, 17140 REFIID riid, 17141 void **tracker); 17142 17143 void (STDMETHODCALLTYPE *RemoveDevice)( 17144 ID3D12Device8 *This); 17145 17146 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 17147 ID3D12Device8 *This, 17148 UINT *meta_commands_count, 17149 D3D12_META_COMMAND_DESC *descs); 17150 17151 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 17152 ID3D12Device8 *This, 17153 REFGUID command_id, 17154 D3D12_META_COMMAND_PARAMETER_STAGE stage, 17155 UINT *total_structure_size_in_bytes, 17156 UINT *parameter_count, 17157 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 17158 17159 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 17160 ID3D12Device8 *This, 17161 REFGUID command_id, 17162 UINT node_mask, 17163 const void *creation_parameters_data, 17164 SIZE_T creation_parameters_data_size_in_bytes, 17165 REFIID riid, 17166 void **meta_command); 17167 17168 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 17169 ID3D12Device8 *This, 17170 const D3D12_STATE_OBJECT_DESC *desc, 17171 REFIID riid, 17172 void **state_object); 17173 17174 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 17175 ID3D12Device8 *This, 17176 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 17177 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 17178 17179 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 17180 ID3D12Device8 *This, 17181 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 17182 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 17183 17184 /*** ID3D12Device6 methods ***/ 17185 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)( 17186 ID3D12Device8 *This, 17187 D3D12_BACKGROUND_PROCESSING_MODE mode, 17188 D3D12_MEASUREMENTS_ACTION action, 17189 HANDLE event, 17190 WINBOOL *further_measurements_desired); 17191 17192 /*** ID3D12Device7 methods ***/ 17193 HRESULT (STDMETHODCALLTYPE *AddToStateObject)( 17194 ID3D12Device8 *This, 17195 const D3D12_STATE_OBJECT_DESC *addition, 17196 ID3D12StateObject *state_object_to_grow_from, 17197 REFIID riid, 17198 void **new_state_object); 17199 17200 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)( 17201 ID3D12Device8 *This, 17202 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc, 17203 REFIID riid, 17204 void **session); 17205 17206 /*** ID3D12Device8 methods ***/ 17207 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)( 17208 ID3D12Device8 *This, 17209 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 17210 UINT visible_mask, 17211 UINT resource_descs_count, 17212 const D3D12_RESOURCE_DESC1 *resource_descs, 17213 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 17214 17215 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)( 17216 ID3D12Device8 *This, 17217 const D3D12_HEAP_PROPERTIES *heap_properties, 17218 D3D12_HEAP_FLAGS heap_flags, 17219 const D3D12_RESOURCE_DESC1 *desc, 17220 D3D12_RESOURCE_STATES initial_resource_state, 17221 const D3D12_CLEAR_VALUE *optimized_clear_value, 17222 ID3D12ProtectedResourceSession *protected_session, 17223 REFIID riid_resource, 17224 void **resource); 17225 17226 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)( 17227 ID3D12Device8 *This, 17228 ID3D12Heap *heap, 17229 UINT64 heap_offset, 17230 const D3D12_RESOURCE_DESC1 *desc, 17231 D3D12_RESOURCE_STATES initial_state, 17232 const D3D12_CLEAR_VALUE *optimized_clear_value, 17233 REFIID riid, 17234 void **resource); 17235 17236 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)( 17237 ID3D12Device8 *This, 17238 ID3D12Resource *targeted_resource, 17239 ID3D12Resource *feedback_resource, 17240 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor); 17241 17242 void (STDMETHODCALLTYPE *GetCopyableFootprints1)( 17243 ID3D12Device8 *This, 17244 const D3D12_RESOURCE_DESC1 *resource_desc, 17245 UINT first_subresource, 17246 UINT subresources_count, 17247 UINT64 base_offset, 17248 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 17249 UINT *rows_count, 17250 UINT64 *row_size_in_bytes, 17251 UINT64 *total_bytes); 17252 17253 END_INTERFACE 17254 } ID3D12Device8Vtbl; 17255 17256 interface ID3D12Device8 { 17257 CONST_VTBL ID3D12Device8Vtbl* lpVtbl; 17258 }; 17259 17260 #ifdef COBJMACROS 17261 #ifndef WIDL_C_INLINE_WRAPPERS 17262 /*** IUnknown methods ***/ 17263 #define ID3D12Device8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 17264 #define ID3D12Device8_AddRef(This) (This)->lpVtbl->AddRef(This) 17265 #define ID3D12Device8_Release(This) (This)->lpVtbl->Release(This) 17266 /*** ID3D12Object methods ***/ 17267 #define ID3D12Device8_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 17268 #define ID3D12Device8_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 17269 #define ID3D12Device8_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 17270 #define ID3D12Device8_SetName(This,name) (This)->lpVtbl->SetName(This,name) 17271 /*** ID3D12Device methods ***/ 17272 #define ID3D12Device8_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 17273 #define ID3D12Device8_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 17274 #define ID3D12Device8_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 17275 #define ID3D12Device8_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 17276 #define ID3D12Device8_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 17277 #define ID3D12Device8_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 17278 #define ID3D12Device8_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 17279 #define ID3D12Device8_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 17280 #define ID3D12Device8_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 17281 #define ID3D12Device8_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 17282 #define ID3D12Device8_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 17283 #define ID3D12Device8_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 17284 #define ID3D12Device8_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 17285 #define ID3D12Device8_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 17286 #define ID3D12Device8_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 17287 #define ID3D12Device8_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 17288 #define ID3D12Device8_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 17289 #define ID3D12Device8_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 17290 #define ID3D12Device8_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device8_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17291 #define ID3D12Device8_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device8_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17292 #define ID3D12Device8_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 17293 #define ID3D12Device8_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 17294 #define ID3D12Device8_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 17295 #define ID3D12Device8_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 17296 #define ID3D12Device8_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 17297 #define ID3D12Device8_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 17298 #define ID3D12Device8_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 17299 #define ID3D12Device8_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 17300 #define ID3D12Device8_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 17301 #define ID3D12Device8_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 17302 #define ID3D12Device8_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 17303 #define ID3D12Device8_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 17304 #define ID3D12Device8_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 17305 #define ID3D12Device8_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 17306 #define ID3D12Device8_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 17307 #define ID3D12Device8_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 17308 #define ID3D12Device8_GetAdapterLuid(This) ID3D12Device8_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17309 /*** ID3D12Device1 methods ***/ 17310 #define ID3D12Device8_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 17311 #define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 17312 #define ID3D12Device8_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 17313 /*** ID3D12Device2 methods ***/ 17314 #define ID3D12Device8_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 17315 /*** ID3D12Device3 methods ***/ 17316 #define ID3D12Device8_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 17317 #define ID3D12Device8_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 17318 #define ID3D12Device8_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 17319 /*** ID3D12Device4 methods ***/ 17320 #define ID3D12Device8_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 17321 #define ID3D12Device8_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 17322 #define ID3D12Device8_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 17323 #define ID3D12Device8_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 17324 #define ID3D12Device8_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 17325 #define ID3D12Device8_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device8_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17326 /*** ID3D12Device5 methods ***/ 17327 #define ID3D12Device8_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 17328 #define ID3D12Device8_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 17329 #define ID3D12Device8_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 17330 #define ID3D12Device8_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 17331 #define ID3D12Device8_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 17332 #define ID3D12Device8_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 17333 #define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 17334 #define ID3D12Device8_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 17335 /*** ID3D12Device6 methods ***/ 17336 #define ID3D12Device8_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) 17337 /*** ID3D12Device7 methods ***/ 17338 #define ID3D12Device8_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) 17339 #define ID3D12Device8_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session) 17340 /*** ID3D12Device8 methods ***/ 17341 #define ID3D12Device8_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device8_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17342 #define ID3D12Device8_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 17343 #define ID3D12Device8_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 17344 #define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) 17345 #define ID3D12Device8_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) 17346 #else 17347 /*** IUnknown methods ***/ 17348 static inline HRESULT ID3D12Device8_QueryInterface(ID3D12Device8* This,REFIID riid,void **ppvObject) { 17349 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 17350 } 17351 static inline ULONG ID3D12Device8_AddRef(ID3D12Device8* This) { 17352 return This->lpVtbl->AddRef(This); 17353 } 17354 static inline ULONG ID3D12Device8_Release(ID3D12Device8* This) { 17355 return This->lpVtbl->Release(This); 17356 } 17357 /*** ID3D12Object methods ***/ 17358 static inline HRESULT ID3D12Device8_GetPrivateData(ID3D12Device8* This,REFGUID guid,UINT *data_size,void *data) { 17359 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 17360 } 17361 static inline HRESULT ID3D12Device8_SetPrivateData(ID3D12Device8* This,REFGUID guid,UINT data_size,const void *data) { 17362 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 17363 } 17364 static inline HRESULT ID3D12Device8_SetPrivateDataInterface(ID3D12Device8* This,REFGUID guid,const IUnknown *data) { 17365 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 17366 } 17367 static inline HRESULT ID3D12Device8_SetName(ID3D12Device8* This,const WCHAR *name) { 17368 return This->lpVtbl->SetName(This,name); 17369 } 17370 /*** ID3D12Device methods ***/ 17371 static inline UINT ID3D12Device8_GetNodeCount(ID3D12Device8* This) { 17372 return This->lpVtbl->GetNodeCount(This); 17373 } 17374 static inline HRESULT ID3D12Device8_CreateCommandQueue(ID3D12Device8* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 17375 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 17376 } 17377 static inline HRESULT ID3D12Device8_CreateCommandAllocator(ID3D12Device8* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 17378 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 17379 } 17380 static inline HRESULT ID3D12Device8_CreateGraphicsPipelineState(ID3D12Device8* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 17381 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 17382 } 17383 static inline HRESULT ID3D12Device8_CreateComputePipelineState(ID3D12Device8* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 17384 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 17385 } 17386 static inline HRESULT ID3D12Device8_CreateCommandList(ID3D12Device8* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 17387 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 17388 } 17389 static inline HRESULT ID3D12Device8_CheckFeatureSupport(ID3D12Device8* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 17390 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 17391 } 17392 static inline HRESULT ID3D12Device8_CreateDescriptorHeap(ID3D12Device8* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 17393 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 17394 } 17395 static inline UINT ID3D12Device8_GetDescriptorHandleIncrementSize(ID3D12Device8* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 17396 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 17397 } 17398 static inline HRESULT ID3D12Device8_CreateRootSignature(ID3D12Device8* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 17399 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 17400 } 17401 static inline void ID3D12Device8_CreateConstantBufferView(ID3D12Device8* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17402 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 17403 } 17404 static inline void ID3D12Device8_CreateShaderResourceView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17405 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 17406 } 17407 static inline void ID3D12Device8_CreateUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17408 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 17409 } 17410 static inline void ID3D12Device8_CreateRenderTargetView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17411 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 17412 } 17413 static inline void ID3D12Device8_CreateDepthStencilView(ID3D12Device8* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17414 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 17415 } 17416 static inline void ID3D12Device8_CreateSampler(ID3D12Device8* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 17417 This->lpVtbl->CreateSampler(This,desc,descriptor); 17418 } 17419 static inline void ID3D12Device8_CopyDescriptors(ID3D12Device8* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 17420 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 17421 } 17422 static inline void ID3D12Device8_CopyDescriptorsSimple(ID3D12Device8* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 17423 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 17424 } 17425 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo(ID3D12Device8* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 17426 D3D12_RESOURCE_ALLOCATION_INFO __ret; 17427 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 17428 } 17429 static inline D3D12_HEAP_PROPERTIES ID3D12Device8_GetCustomHeapProperties(ID3D12Device8* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 17430 D3D12_HEAP_PROPERTIES __ret; 17431 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 17432 } 17433 static inline HRESULT ID3D12Device8_CreateCommittedResource(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 17434 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 17435 } 17436 static inline HRESULT ID3D12Device8_CreateHeap(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 17437 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 17438 } 17439 static inline HRESULT ID3D12Device8_CreatePlacedResource(ID3D12Device8* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 17440 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 17441 } 17442 static inline HRESULT ID3D12Device8_CreateReservedResource(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 17443 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 17444 } 17445 static inline HRESULT ID3D12Device8_CreateSharedHandle(ID3D12Device8* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 17446 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 17447 } 17448 static inline HRESULT ID3D12Device8_OpenSharedHandle(ID3D12Device8* This,HANDLE handle,REFIID riid,void **object) { 17449 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 17450 } 17451 static inline HRESULT ID3D12Device8_OpenSharedHandleByName(ID3D12Device8* This,const WCHAR *name,DWORD access,HANDLE *handle) { 17452 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 17453 } 17454 static inline HRESULT ID3D12Device8_MakeResident(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) { 17455 return This->lpVtbl->MakeResident(This,object_count,objects); 17456 } 17457 static inline HRESULT ID3D12Device8_Evict(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects) { 17458 return This->lpVtbl->Evict(This,object_count,objects); 17459 } 17460 static inline HRESULT ID3D12Device8_CreateFence(ID3D12Device8* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 17461 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 17462 } 17463 static inline HRESULT ID3D12Device8_GetDeviceRemovedReason(ID3D12Device8* This) { 17464 return This->lpVtbl->GetDeviceRemovedReason(This); 17465 } 17466 static inline void ID3D12Device8_GetCopyableFootprints(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 17467 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 17468 } 17469 static inline HRESULT ID3D12Device8_CreateQueryHeap(ID3D12Device8* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 17470 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 17471 } 17472 static inline HRESULT ID3D12Device8_SetStablePowerState(ID3D12Device8* This,WINBOOL enable) { 17473 return This->lpVtbl->SetStablePowerState(This,enable); 17474 } 17475 static inline HRESULT ID3D12Device8_CreateCommandSignature(ID3D12Device8* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 17476 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 17477 } 17478 static inline void ID3D12Device8_GetResourceTiling(ID3D12Device8* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 17479 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 17480 } 17481 static inline LUID ID3D12Device8_GetAdapterLuid(ID3D12Device8* This) { 17482 LUID __ret; 17483 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 17484 } 17485 /*** ID3D12Device1 methods ***/ 17486 static inline HRESULT ID3D12Device8_CreatePipelineLibrary(ID3D12Device8* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 17487 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 17488 } 17489 static inline HRESULT ID3D12Device8_SetEventOnMultipleFenceCompletion(ID3D12Device8* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 17490 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 17491 } 17492 static inline HRESULT ID3D12Device8_SetResidencyPriority(ID3D12Device8* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 17493 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 17494 } 17495 /*** ID3D12Device2 methods ***/ 17496 static inline HRESULT ID3D12Device8_CreatePipelineState(ID3D12Device8* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 17497 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 17498 } 17499 /*** ID3D12Device3 methods ***/ 17500 static inline HRESULT ID3D12Device8_OpenExistingHeapFromAddress(ID3D12Device8* This,const void *address,REFIID riid,void **heap) { 17501 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 17502 } 17503 static inline HRESULT ID3D12Device8_OpenExistingHeapFromFileMapping(ID3D12Device8* This,HANDLE file_mapping,REFIID riid,void **heap) { 17504 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 17505 } 17506 static inline HRESULT ID3D12Device8_EnqueueMakeResident(ID3D12Device8* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 17507 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 17508 } 17509 /*** ID3D12Device4 methods ***/ 17510 static inline HRESULT ID3D12Device8_CreateCommandList1(ID3D12Device8* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 17511 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 17512 } 17513 static inline HRESULT ID3D12Device8_CreateProtectedResourceSession(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 17514 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 17515 } 17516 static inline HRESULT ID3D12Device8_CreateCommittedResource1(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 17517 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 17518 } 17519 static inline HRESULT ID3D12Device8_CreateHeap1(ID3D12Device8* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 17520 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 17521 } 17522 static inline HRESULT ID3D12Device8_CreateReservedResource1(ID3D12Device8* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 17523 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 17524 } 17525 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo1(ID3D12Device8* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 17526 D3D12_RESOURCE_ALLOCATION_INFO __ret; 17527 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 17528 } 17529 /*** ID3D12Device5 methods ***/ 17530 static inline HRESULT ID3D12Device8_CreateLifetimeTracker(ID3D12Device8* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 17531 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 17532 } 17533 static inline void ID3D12Device8_RemoveDevice(ID3D12Device8* This) { 17534 This->lpVtbl->RemoveDevice(This); 17535 } 17536 static inline HRESULT ID3D12Device8_EnumerateMetaCommands(ID3D12Device8* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 17537 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 17538 } 17539 static inline HRESULT ID3D12Device8_EnumerateMetaCommandParameters(ID3D12Device8* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 17540 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 17541 } 17542 static inline HRESULT ID3D12Device8_CreateMetaCommand(ID3D12Device8* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 17543 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 17544 } 17545 static inline HRESULT ID3D12Device8_CreateStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 17546 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 17547 } 17548 static inline void ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device8* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 17549 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 17550 } 17551 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device8_CheckDriverMatchingIdentifier(ID3D12Device8* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 17552 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 17553 } 17554 /*** ID3D12Device6 methods ***/ 17555 static inline HRESULT ID3D12Device8_SetBackgroundProcessingMode(ID3D12Device8* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) { 17556 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired); 17557 } 17558 /*** ID3D12Device7 methods ***/ 17559 static inline HRESULT ID3D12Device8_AddToStateObject(ID3D12Device8* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) { 17560 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object); 17561 } 17562 static inline HRESULT ID3D12Device8_CreateProtectedResourceSession1(ID3D12Device8* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) { 17563 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session); 17564 } 17565 /*** ID3D12Device8 methods ***/ 17566 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device8_GetResourceAllocationInfo2(ID3D12Device8* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 17567 D3D12_RESOURCE_ALLOCATION_INFO __ret; 17568 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 17569 } 17570 static inline HRESULT ID3D12Device8_CreateCommittedResource2(ID3D12Device8* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 17571 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 17572 } 17573 static inline HRESULT ID3D12Device8_CreatePlacedResource1(ID3D12Device8* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 17574 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 17575 } 17576 static inline void ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device8* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) { 17577 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor); 17578 } 17579 static inline void ID3D12Device8_GetCopyableFootprints1(ID3D12Device8* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) { 17580 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes); 17581 } 17582 #endif 17583 #endif 17584 17585 #endif 17586 17587 17588 #endif /* __ID3D12Device8_INTERFACE_DEFINED__ */ 17589 17590 /***************************************************************************** 17591 * ID3D12Resource1 interface 17592 */ 17593 #ifndef __ID3D12Resource1_INTERFACE_DEFINED__ 17594 #define __ID3D12Resource1_INTERFACE_DEFINED__ 17595 17596 DEFINE_GUID(IID_ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19); 17597 #if defined(__cplusplus) && !defined(CINTERFACE) 17598 MIDL_INTERFACE("9d5e227a-4430-4161-88b3-3eca6bb16e19") 17599 ID3D12Resource1 : public ID3D12Resource 17600 { 17601 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( 17602 REFIID riid, 17603 void **protected_session) = 0; 17604 17605 }; 17606 #ifdef __CRT_UUID_DECL 17607 __CRT_UUID_DECL(ID3D12Resource1, 0x9d5e227a, 0x4430, 0x4161, 0x88,0xb3, 0x3e,0xca,0x6b,0xb1,0x6e,0x19) 17608 #endif 17609 #else 17610 typedef struct ID3D12Resource1Vtbl { 17611 BEGIN_INTERFACE 17612 17613 /*** IUnknown methods ***/ 17614 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 17615 ID3D12Resource1 *This, 17616 REFIID riid, 17617 void **ppvObject); 17618 17619 ULONG (STDMETHODCALLTYPE *AddRef)( 17620 ID3D12Resource1 *This); 17621 17622 ULONG (STDMETHODCALLTYPE *Release)( 17623 ID3D12Resource1 *This); 17624 17625 /*** ID3D12Object methods ***/ 17626 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 17627 ID3D12Resource1 *This, 17628 REFGUID guid, 17629 UINT *data_size, 17630 void *data); 17631 17632 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 17633 ID3D12Resource1 *This, 17634 REFGUID guid, 17635 UINT data_size, 17636 const void *data); 17637 17638 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 17639 ID3D12Resource1 *This, 17640 REFGUID guid, 17641 const IUnknown *data); 17642 17643 HRESULT (STDMETHODCALLTYPE *SetName)( 17644 ID3D12Resource1 *This, 17645 const WCHAR *name); 17646 17647 /*** ID3D12DeviceChild methods ***/ 17648 HRESULT (STDMETHODCALLTYPE *GetDevice)( 17649 ID3D12Resource1 *This, 17650 REFIID riid, 17651 void **device); 17652 17653 /*** ID3D12Resource methods ***/ 17654 HRESULT (STDMETHODCALLTYPE *Map)( 17655 ID3D12Resource1 *This, 17656 UINT sub_resource, 17657 const D3D12_RANGE *read_range, 17658 void **data); 17659 17660 void (STDMETHODCALLTYPE *Unmap)( 17661 ID3D12Resource1 *This, 17662 UINT sub_resource, 17663 const D3D12_RANGE *written_range); 17664 17665 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)( 17666 ID3D12Resource1 *This, 17667 D3D12_RESOURCE_DESC *__ret); 17668 17669 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)( 17670 ID3D12Resource1 *This); 17671 17672 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)( 17673 ID3D12Resource1 *This, 17674 UINT dst_sub_resource, 17675 const D3D12_BOX *dst_box, 17676 const void *src_data, 17677 UINT src_row_pitch, 17678 UINT src_slice_pitch); 17679 17680 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)( 17681 ID3D12Resource1 *This, 17682 void *dst_data, 17683 UINT dst_row_pitch, 17684 UINT dst_slice_pitch, 17685 UINT src_sub_resource, 17686 const D3D12_BOX *src_box); 17687 17688 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)( 17689 ID3D12Resource1 *This, 17690 D3D12_HEAP_PROPERTIES *heap_properties, 17691 D3D12_HEAP_FLAGS *flags); 17692 17693 /*** ID3D12Resource1 methods ***/ 17694 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)( 17695 ID3D12Resource1 *This, 17696 REFIID riid, 17697 void **protected_session); 17698 17699 END_INTERFACE 17700 } ID3D12Resource1Vtbl; 17701 17702 interface ID3D12Resource1 { 17703 CONST_VTBL ID3D12Resource1Vtbl* lpVtbl; 17704 }; 17705 17706 #ifdef COBJMACROS 17707 #ifndef WIDL_C_INLINE_WRAPPERS 17708 /*** IUnknown methods ***/ 17709 #define ID3D12Resource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 17710 #define ID3D12Resource1_AddRef(This) (This)->lpVtbl->AddRef(This) 17711 #define ID3D12Resource1_Release(This) (This)->lpVtbl->Release(This) 17712 /*** ID3D12Object methods ***/ 17713 #define ID3D12Resource1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 17714 #define ID3D12Resource1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 17715 #define ID3D12Resource1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 17716 #define ID3D12Resource1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 17717 /*** ID3D12DeviceChild methods ***/ 17718 #define ID3D12Resource1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 17719 /*** ID3D12Resource methods ***/ 17720 #define ID3D12Resource1_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data) 17721 #define ID3D12Resource1_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range) 17722 #define ID3D12Resource1_GetDesc(This) ID3D12Resource1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17723 #define ID3D12Resource1_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This) 17724 #define ID3D12Resource1_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) 17725 #define ID3D12Resource1_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) 17726 #define ID3D12Resource1_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags) 17727 /*** ID3D12Resource1 methods ***/ 17728 #define ID3D12Resource1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session) 17729 #else 17730 /*** IUnknown methods ***/ 17731 static inline HRESULT ID3D12Resource1_QueryInterface(ID3D12Resource1* This,REFIID riid,void **ppvObject) { 17732 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 17733 } 17734 static inline ULONG ID3D12Resource1_AddRef(ID3D12Resource1* This) { 17735 return This->lpVtbl->AddRef(This); 17736 } 17737 static inline ULONG ID3D12Resource1_Release(ID3D12Resource1* This) { 17738 return This->lpVtbl->Release(This); 17739 } 17740 /*** ID3D12Object methods ***/ 17741 static inline HRESULT ID3D12Resource1_GetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT *data_size,void *data) { 17742 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 17743 } 17744 static inline HRESULT ID3D12Resource1_SetPrivateData(ID3D12Resource1* This,REFGUID guid,UINT data_size,const void *data) { 17745 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 17746 } 17747 static inline HRESULT ID3D12Resource1_SetPrivateDataInterface(ID3D12Resource1* This,REFGUID guid,const IUnknown *data) { 17748 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 17749 } 17750 static inline HRESULT ID3D12Resource1_SetName(ID3D12Resource1* This,const WCHAR *name) { 17751 return This->lpVtbl->SetName(This,name); 17752 } 17753 /*** ID3D12DeviceChild methods ***/ 17754 static inline HRESULT ID3D12Resource1_GetDevice(ID3D12Resource1* This,REFIID riid,void **device) { 17755 return This->lpVtbl->GetDevice(This,riid,device); 17756 } 17757 /*** ID3D12Resource methods ***/ 17758 static inline HRESULT ID3D12Resource1_Map(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) { 17759 return This->lpVtbl->Map(This,sub_resource,read_range,data); 17760 } 17761 static inline void ID3D12Resource1_Unmap(ID3D12Resource1* This,UINT sub_resource,const D3D12_RANGE *written_range) { 17762 This->lpVtbl->Unmap(This,sub_resource,written_range); 17763 } 17764 static inline D3D12_RESOURCE_DESC ID3D12Resource1_GetDesc(ID3D12Resource1* This) { 17765 D3D12_RESOURCE_DESC __ret; 17766 return *This->lpVtbl->GetDesc(This,&__ret); 17767 } 17768 static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource1_GetGPUVirtualAddress(ID3D12Resource1* This) { 17769 return This->lpVtbl->GetGPUVirtualAddress(This); 17770 } 17771 static inline HRESULT ID3D12Resource1_WriteToSubresource(ID3D12Resource1* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) { 17772 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch); 17773 } 17774 static inline HRESULT ID3D12Resource1_ReadFromSubresource(ID3D12Resource1* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) { 17775 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box); 17776 } 17777 static inline HRESULT ID3D12Resource1_GetHeapProperties(ID3D12Resource1* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) { 17778 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags); 17779 } 17780 /*** ID3D12Resource1 methods ***/ 17781 static inline HRESULT ID3D12Resource1_GetProtectedResourceSession(ID3D12Resource1* This,REFIID riid,void **protected_session) { 17782 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session); 17783 } 17784 #endif 17785 #endif 17786 17787 #endif 17788 17789 17790 #endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */ 17791 17792 /***************************************************************************** 17793 * ID3D12Resource2 interface 17794 */ 17795 #ifndef __ID3D12Resource2_INTERFACE_DEFINED__ 17796 #define __ID3D12Resource2_INTERFACE_DEFINED__ 17797 17798 DEFINE_GUID(IID_ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95); 17799 #if defined(__cplusplus) && !defined(CINTERFACE) 17800 MIDL_INTERFACE("be36ec3b-ea85-4aeb-a45a-e9d76404a495") 17801 ID3D12Resource2 : public ID3D12Resource1 17802 { 17803 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 17804 virtual D3D12_RESOURCE_DESC1* STDMETHODCALLTYPE GetDesc1( 17805 D3D12_RESOURCE_DESC1 *__ret) = 0; 17806 D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( 17807 ) 17808 { 17809 D3D12_RESOURCE_DESC1 __ret; 17810 return *GetDesc1(&__ret); 17811 } 17812 #else 17813 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( 17814 ) = 0; 17815 #endif 17816 17817 }; 17818 #ifdef __CRT_UUID_DECL 17819 __CRT_UUID_DECL(ID3D12Resource2, 0xbe36ec3b, 0xea85, 0x4aeb, 0xa4,0x5a, 0xe9,0xd7,0x64,0x04,0xa4,0x95) 17820 #endif 17821 #else 17822 typedef struct ID3D12Resource2Vtbl { 17823 BEGIN_INTERFACE 17824 17825 /*** IUnknown methods ***/ 17826 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 17827 ID3D12Resource2 *This, 17828 REFIID riid, 17829 void **ppvObject); 17830 17831 ULONG (STDMETHODCALLTYPE *AddRef)( 17832 ID3D12Resource2 *This); 17833 17834 ULONG (STDMETHODCALLTYPE *Release)( 17835 ID3D12Resource2 *This); 17836 17837 /*** ID3D12Object methods ***/ 17838 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 17839 ID3D12Resource2 *This, 17840 REFGUID guid, 17841 UINT *data_size, 17842 void *data); 17843 17844 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 17845 ID3D12Resource2 *This, 17846 REFGUID guid, 17847 UINT data_size, 17848 const void *data); 17849 17850 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 17851 ID3D12Resource2 *This, 17852 REFGUID guid, 17853 const IUnknown *data); 17854 17855 HRESULT (STDMETHODCALLTYPE *SetName)( 17856 ID3D12Resource2 *This, 17857 const WCHAR *name); 17858 17859 /*** ID3D12DeviceChild methods ***/ 17860 HRESULT (STDMETHODCALLTYPE *GetDevice)( 17861 ID3D12Resource2 *This, 17862 REFIID riid, 17863 void **device); 17864 17865 /*** ID3D12Resource methods ***/ 17866 HRESULT (STDMETHODCALLTYPE *Map)( 17867 ID3D12Resource2 *This, 17868 UINT sub_resource, 17869 const D3D12_RANGE *read_range, 17870 void **data); 17871 17872 void (STDMETHODCALLTYPE *Unmap)( 17873 ID3D12Resource2 *This, 17874 UINT sub_resource, 17875 const D3D12_RANGE *written_range); 17876 17877 D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)( 17878 ID3D12Resource2 *This, 17879 D3D12_RESOURCE_DESC *__ret); 17880 17881 D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)( 17882 ID3D12Resource2 *This); 17883 17884 HRESULT (STDMETHODCALLTYPE *WriteToSubresource)( 17885 ID3D12Resource2 *This, 17886 UINT dst_sub_resource, 17887 const D3D12_BOX *dst_box, 17888 const void *src_data, 17889 UINT src_row_pitch, 17890 UINT src_slice_pitch); 17891 17892 HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)( 17893 ID3D12Resource2 *This, 17894 void *dst_data, 17895 UINT dst_row_pitch, 17896 UINT dst_slice_pitch, 17897 UINT src_sub_resource, 17898 const D3D12_BOX *src_box); 17899 17900 HRESULT (STDMETHODCALLTYPE *GetHeapProperties)( 17901 ID3D12Resource2 *This, 17902 D3D12_HEAP_PROPERTIES *heap_properties, 17903 D3D12_HEAP_FLAGS *flags); 17904 17905 /*** ID3D12Resource1 methods ***/ 17906 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)( 17907 ID3D12Resource2 *This, 17908 REFIID riid, 17909 void **protected_session); 17910 17911 /*** ID3D12Resource2 methods ***/ 17912 D3D12_RESOURCE_DESC1 * (STDMETHODCALLTYPE *GetDesc1)( 17913 ID3D12Resource2 *This, 17914 D3D12_RESOURCE_DESC1 *__ret); 17915 17916 END_INTERFACE 17917 } ID3D12Resource2Vtbl; 17918 17919 interface ID3D12Resource2 { 17920 CONST_VTBL ID3D12Resource2Vtbl* lpVtbl; 17921 }; 17922 17923 #ifdef COBJMACROS 17924 #ifndef WIDL_C_INLINE_WRAPPERS 17925 /*** IUnknown methods ***/ 17926 #define ID3D12Resource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 17927 #define ID3D12Resource2_AddRef(This) (This)->lpVtbl->AddRef(This) 17928 #define ID3D12Resource2_Release(This) (This)->lpVtbl->Release(This) 17929 /*** ID3D12Object methods ***/ 17930 #define ID3D12Resource2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 17931 #define ID3D12Resource2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 17932 #define ID3D12Resource2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 17933 #define ID3D12Resource2_SetName(This,name) (This)->lpVtbl->SetName(This,name) 17934 /*** ID3D12DeviceChild methods ***/ 17935 #define ID3D12Resource2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 17936 /*** ID3D12Resource methods ***/ 17937 #define ID3D12Resource2_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data) 17938 #define ID3D12Resource2_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range) 17939 #define ID3D12Resource2_GetDesc(This) ID3D12Resource2_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17940 #define ID3D12Resource2_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This) 17941 #define ID3D12Resource2_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) 17942 #define ID3D12Resource2_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) 17943 #define ID3D12Resource2_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags) 17944 /*** ID3D12Resource1 methods ***/ 17945 #define ID3D12Resource2_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session) 17946 /*** ID3D12Resource2 methods ***/ 17947 #define ID3D12Resource2_GetDesc1(This) ID3D12Resource2_GetDesc1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 17948 #else 17949 /*** IUnknown methods ***/ 17950 static inline HRESULT ID3D12Resource2_QueryInterface(ID3D12Resource2* This,REFIID riid,void **ppvObject) { 17951 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 17952 } 17953 static inline ULONG ID3D12Resource2_AddRef(ID3D12Resource2* This) { 17954 return This->lpVtbl->AddRef(This); 17955 } 17956 static inline ULONG ID3D12Resource2_Release(ID3D12Resource2* This) { 17957 return This->lpVtbl->Release(This); 17958 } 17959 /*** ID3D12Object methods ***/ 17960 static inline HRESULT ID3D12Resource2_GetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT *data_size,void *data) { 17961 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 17962 } 17963 static inline HRESULT ID3D12Resource2_SetPrivateData(ID3D12Resource2* This,REFGUID guid,UINT data_size,const void *data) { 17964 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 17965 } 17966 static inline HRESULT ID3D12Resource2_SetPrivateDataInterface(ID3D12Resource2* This,REFGUID guid,const IUnknown *data) { 17967 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 17968 } 17969 static inline HRESULT ID3D12Resource2_SetName(ID3D12Resource2* This,const WCHAR *name) { 17970 return This->lpVtbl->SetName(This,name); 17971 } 17972 /*** ID3D12DeviceChild methods ***/ 17973 static inline HRESULT ID3D12Resource2_GetDevice(ID3D12Resource2* This,REFIID riid,void **device) { 17974 return This->lpVtbl->GetDevice(This,riid,device); 17975 } 17976 /*** ID3D12Resource methods ***/ 17977 static inline HRESULT ID3D12Resource2_Map(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) { 17978 return This->lpVtbl->Map(This,sub_resource,read_range,data); 17979 } 17980 static inline void ID3D12Resource2_Unmap(ID3D12Resource2* This,UINT sub_resource,const D3D12_RANGE *written_range) { 17981 This->lpVtbl->Unmap(This,sub_resource,written_range); 17982 } 17983 static inline D3D12_RESOURCE_DESC ID3D12Resource2_GetDesc(ID3D12Resource2* This) { 17984 D3D12_RESOURCE_DESC __ret; 17985 return *This->lpVtbl->GetDesc(This,&__ret); 17986 } 17987 static inline D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource2_GetGPUVirtualAddress(ID3D12Resource2* This) { 17988 return This->lpVtbl->GetGPUVirtualAddress(This); 17989 } 17990 static inline HRESULT ID3D12Resource2_WriteToSubresource(ID3D12Resource2* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) { 17991 return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch); 17992 } 17993 static inline HRESULT ID3D12Resource2_ReadFromSubresource(ID3D12Resource2* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) { 17994 return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box); 17995 } 17996 static inline HRESULT ID3D12Resource2_GetHeapProperties(ID3D12Resource2* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) { 17997 return This->lpVtbl->GetHeapProperties(This,heap_properties,flags); 17998 } 17999 /*** ID3D12Resource1 methods ***/ 18000 static inline HRESULT ID3D12Resource2_GetProtectedResourceSession(ID3D12Resource2* This,REFIID riid,void **protected_session) { 18001 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session); 18002 } 18003 /*** ID3D12Resource2 methods ***/ 18004 static inline D3D12_RESOURCE_DESC1 ID3D12Resource2_GetDesc1(ID3D12Resource2* This) { 18005 D3D12_RESOURCE_DESC1 __ret; 18006 return *This->lpVtbl->GetDesc1(This,&__ret); 18007 } 18008 #endif 18009 #endif 18010 18011 #endif 18012 18013 18014 #endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */ 18015 18016 /***************************************************************************** 18017 * ID3D12Heap1 interface 18018 */ 18019 #ifndef __ID3D12Heap1_INTERFACE_DEFINED__ 18020 #define __ID3D12Heap1_INTERFACE_DEFINED__ 18021 18022 DEFINE_GUID(IID_ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d); 18023 #if defined(__cplusplus) && !defined(CINTERFACE) 18024 MIDL_INTERFACE("572f7389-2168-49e3-9693-d6df5871bf6d") 18025 ID3D12Heap1 : public ID3D12Heap 18026 { 18027 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( 18028 REFIID riid, 18029 void **protected_session) = 0; 18030 18031 }; 18032 #ifdef __CRT_UUID_DECL 18033 __CRT_UUID_DECL(ID3D12Heap1, 0x572f7389, 0x2168, 0x49e3, 0x96,0x93, 0xd6,0xdf,0x58,0x71,0xbf,0x6d) 18034 #endif 18035 #else 18036 typedef struct ID3D12Heap1Vtbl { 18037 BEGIN_INTERFACE 18038 18039 /*** IUnknown methods ***/ 18040 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 18041 ID3D12Heap1 *This, 18042 REFIID riid, 18043 void **ppvObject); 18044 18045 ULONG (STDMETHODCALLTYPE *AddRef)( 18046 ID3D12Heap1 *This); 18047 18048 ULONG (STDMETHODCALLTYPE *Release)( 18049 ID3D12Heap1 *This); 18050 18051 /*** ID3D12Object methods ***/ 18052 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 18053 ID3D12Heap1 *This, 18054 REFGUID guid, 18055 UINT *data_size, 18056 void *data); 18057 18058 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 18059 ID3D12Heap1 *This, 18060 REFGUID guid, 18061 UINT data_size, 18062 const void *data); 18063 18064 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 18065 ID3D12Heap1 *This, 18066 REFGUID guid, 18067 const IUnknown *data); 18068 18069 HRESULT (STDMETHODCALLTYPE *SetName)( 18070 ID3D12Heap1 *This, 18071 const WCHAR *name); 18072 18073 /*** ID3D12DeviceChild methods ***/ 18074 HRESULT (STDMETHODCALLTYPE *GetDevice)( 18075 ID3D12Heap1 *This, 18076 REFIID riid, 18077 void **device); 18078 18079 /*** ID3D12Heap methods ***/ 18080 D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)( 18081 ID3D12Heap1 *This, 18082 D3D12_HEAP_DESC *__ret); 18083 18084 /*** ID3D12Heap1 methods ***/ 18085 HRESULT (STDMETHODCALLTYPE *GetProtectedResourceSession)( 18086 ID3D12Heap1 *This, 18087 REFIID riid, 18088 void **protected_session); 18089 18090 END_INTERFACE 18091 } ID3D12Heap1Vtbl; 18092 18093 interface ID3D12Heap1 { 18094 CONST_VTBL ID3D12Heap1Vtbl* lpVtbl; 18095 }; 18096 18097 #ifdef COBJMACROS 18098 #ifndef WIDL_C_INLINE_WRAPPERS 18099 /*** IUnknown methods ***/ 18100 #define ID3D12Heap1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 18101 #define ID3D12Heap1_AddRef(This) (This)->lpVtbl->AddRef(This) 18102 #define ID3D12Heap1_Release(This) (This)->lpVtbl->Release(This) 18103 /*** ID3D12Object methods ***/ 18104 #define ID3D12Heap1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 18105 #define ID3D12Heap1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 18106 #define ID3D12Heap1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 18107 #define ID3D12Heap1_SetName(This,name) (This)->lpVtbl->SetName(This,name) 18108 /*** ID3D12DeviceChild methods ***/ 18109 #define ID3D12Heap1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 18110 /*** ID3D12Heap methods ***/ 18111 #define ID3D12Heap1_GetDesc(This) ID3D12Heap1_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 18112 /*** ID3D12Heap1 methods ***/ 18113 #define ID3D12Heap1_GetProtectedResourceSession(This,riid,protected_session) (This)->lpVtbl->GetProtectedResourceSession(This,riid,protected_session) 18114 #else 18115 /*** IUnknown methods ***/ 18116 static inline HRESULT ID3D12Heap1_QueryInterface(ID3D12Heap1* This,REFIID riid,void **ppvObject) { 18117 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 18118 } 18119 static inline ULONG ID3D12Heap1_AddRef(ID3D12Heap1* This) { 18120 return This->lpVtbl->AddRef(This); 18121 } 18122 static inline ULONG ID3D12Heap1_Release(ID3D12Heap1* This) { 18123 return This->lpVtbl->Release(This); 18124 } 18125 /*** ID3D12Object methods ***/ 18126 static inline HRESULT ID3D12Heap1_GetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT *data_size,void *data) { 18127 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 18128 } 18129 static inline HRESULT ID3D12Heap1_SetPrivateData(ID3D12Heap1* This,REFGUID guid,UINT data_size,const void *data) { 18130 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 18131 } 18132 static inline HRESULT ID3D12Heap1_SetPrivateDataInterface(ID3D12Heap1* This,REFGUID guid,const IUnknown *data) { 18133 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 18134 } 18135 static inline HRESULT ID3D12Heap1_SetName(ID3D12Heap1* This,const WCHAR *name) { 18136 return This->lpVtbl->SetName(This,name); 18137 } 18138 /*** ID3D12DeviceChild methods ***/ 18139 static inline HRESULT ID3D12Heap1_GetDevice(ID3D12Heap1* This,REFIID riid,void **device) { 18140 return This->lpVtbl->GetDevice(This,riid,device); 18141 } 18142 /*** ID3D12Heap methods ***/ 18143 static inline D3D12_HEAP_DESC ID3D12Heap1_GetDesc(ID3D12Heap1* This) { 18144 D3D12_HEAP_DESC __ret; 18145 return *This->lpVtbl->GetDesc(This,&__ret); 18146 } 18147 /*** ID3D12Heap1 methods ***/ 18148 static inline HRESULT ID3D12Heap1_GetProtectedResourceSession(ID3D12Heap1* This,REFIID riid,void **protected_session) { 18149 return This->lpVtbl->GetProtectedResourceSession(This,riid,protected_session); 18150 } 18151 #endif 18152 #endif 18153 18154 #endif 18155 18156 18157 #endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */ 18158 18159 typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE { 18160 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0x0, 18161 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = 0x1, 18162 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = 0x2, 18163 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = 0x3 18164 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; 18165 typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS { 18166 D3D12_CLEAR_VALUE ClearValue; 18167 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; 18168 typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS { 18169 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; 18170 __C89_NAMELESS union { 18171 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; 18172 } __C89_NAMELESSUNIONNAME; 18173 } D3D12_RENDER_PASS_BEGINNING_ACCESS; 18174 typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE { 18175 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0x0, 18176 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = 0x1, 18177 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = 0x2, 18178 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = 0x3 18179 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; 18180 typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS { 18181 UINT SrcSubresource; 18182 UINT DstSubresource; 18183 UINT DstX; 18184 UINT DstY; 18185 D3D12_RECT SrcRect; 18186 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; 18187 typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS { 18188 ID3D12Resource *pSrcResource; 18189 ID3D12Resource *pDstResource; 18190 UINT SubresourceCount; 18191 const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; 18192 DXGI_FORMAT Format; 18193 D3D12_RESOLVE_MODE ResolveMode; 18194 WINBOOL PreserveResolveSource; 18195 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; 18196 typedef struct D3D12_RENDER_PASS_ENDING_ACCESS { 18197 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; 18198 __C89_NAMELESS union { 18199 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; 18200 } __C89_NAMELESSUNIONNAME; 18201 } D3D12_RENDER_PASS_ENDING_ACCESS; 18202 typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC { 18203 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; 18204 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; 18205 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; 18206 } D3D12_RENDER_PASS_RENDER_TARGET_DESC; 18207 typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC { 18208 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; 18209 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; 18210 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; 18211 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; 18212 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; 18213 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; 18214 typedef enum D3D12_RENDER_PASS_FLAGS { 18215 D3D12_RENDER_PASS_FLAG_NONE = 0x0, 18216 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, 18217 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, 18218 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4 18219 } D3D12_RENDER_PASS_FLAGS; 18220 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RENDER_PASS_FLAGS); 18221 /***************************************************************************** 18222 * ID3D12MetaCommand interface 18223 */ 18224 #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ 18225 #define __ID3D12MetaCommand_INTERFACE_DEFINED__ 18226 18227 DEFINE_GUID(IID_ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70); 18228 #if defined(__cplusplus) && !defined(CINTERFACE) 18229 MIDL_INTERFACE("dbb84c27-36ce-4fc9-b801-f048c46ac570") 18230 ID3D12MetaCommand : public ID3D12Pageable 18231 { 18232 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize( 18233 D3D12_META_COMMAND_PARAMETER_STAGE stage, 18234 UINT parameter_index) = 0; 18235 18236 }; 18237 #ifdef __CRT_UUID_DECL 18238 __CRT_UUID_DECL(ID3D12MetaCommand, 0xdbb84c27, 0x36ce, 0x4fc9, 0xb8,0x01, 0xf0,0x48,0xc4,0x6a,0xc5,0x70) 18239 #endif 18240 #else 18241 typedef struct ID3D12MetaCommandVtbl { 18242 BEGIN_INTERFACE 18243 18244 /*** IUnknown methods ***/ 18245 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 18246 ID3D12MetaCommand *This, 18247 REFIID riid, 18248 void **ppvObject); 18249 18250 ULONG (STDMETHODCALLTYPE *AddRef)( 18251 ID3D12MetaCommand *This); 18252 18253 ULONG (STDMETHODCALLTYPE *Release)( 18254 ID3D12MetaCommand *This); 18255 18256 /*** ID3D12Object methods ***/ 18257 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 18258 ID3D12MetaCommand *This, 18259 REFGUID guid, 18260 UINT *data_size, 18261 void *data); 18262 18263 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 18264 ID3D12MetaCommand *This, 18265 REFGUID guid, 18266 UINT data_size, 18267 const void *data); 18268 18269 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 18270 ID3D12MetaCommand *This, 18271 REFGUID guid, 18272 const IUnknown *data); 18273 18274 HRESULT (STDMETHODCALLTYPE *SetName)( 18275 ID3D12MetaCommand *This, 18276 const WCHAR *name); 18277 18278 /*** ID3D12DeviceChild methods ***/ 18279 HRESULT (STDMETHODCALLTYPE *GetDevice)( 18280 ID3D12MetaCommand *This, 18281 REFIID riid, 18282 void **device); 18283 18284 /*** ID3D12MetaCommand methods ***/ 18285 UINT64 (STDMETHODCALLTYPE *GetRequiredParameterResourceSize)( 18286 ID3D12MetaCommand *This, 18287 D3D12_META_COMMAND_PARAMETER_STAGE stage, 18288 UINT parameter_index); 18289 18290 END_INTERFACE 18291 } ID3D12MetaCommandVtbl; 18292 18293 interface ID3D12MetaCommand { 18294 CONST_VTBL ID3D12MetaCommandVtbl* lpVtbl; 18295 }; 18296 18297 #ifdef COBJMACROS 18298 #ifndef WIDL_C_INLINE_WRAPPERS 18299 /*** IUnknown methods ***/ 18300 #define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 18301 #define ID3D12MetaCommand_AddRef(This) (This)->lpVtbl->AddRef(This) 18302 #define ID3D12MetaCommand_Release(This) (This)->lpVtbl->Release(This) 18303 /*** ID3D12Object methods ***/ 18304 #define ID3D12MetaCommand_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 18305 #define ID3D12MetaCommand_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 18306 #define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 18307 #define ID3D12MetaCommand_SetName(This,name) (This)->lpVtbl->SetName(This,name) 18308 /*** ID3D12DeviceChild methods ***/ 18309 #define ID3D12MetaCommand_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 18310 /*** ID3D12MetaCommand methods ***/ 18311 #define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,stage,parameter_index) (This)->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index) 18312 #else 18313 /*** IUnknown methods ***/ 18314 static inline HRESULT ID3D12MetaCommand_QueryInterface(ID3D12MetaCommand* This,REFIID riid,void **ppvObject) { 18315 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 18316 } 18317 static inline ULONG ID3D12MetaCommand_AddRef(ID3D12MetaCommand* This) { 18318 return This->lpVtbl->AddRef(This); 18319 } 18320 static inline ULONG ID3D12MetaCommand_Release(ID3D12MetaCommand* This) { 18321 return This->lpVtbl->Release(This); 18322 } 18323 /*** ID3D12Object methods ***/ 18324 static inline HRESULT ID3D12MetaCommand_GetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT *data_size,void *data) { 18325 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 18326 } 18327 static inline HRESULT ID3D12MetaCommand_SetPrivateData(ID3D12MetaCommand* This,REFGUID guid,UINT data_size,const void *data) { 18328 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 18329 } 18330 static inline HRESULT ID3D12MetaCommand_SetPrivateDataInterface(ID3D12MetaCommand* This,REFGUID guid,const IUnknown *data) { 18331 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 18332 } 18333 static inline HRESULT ID3D12MetaCommand_SetName(ID3D12MetaCommand* This,const WCHAR *name) { 18334 return This->lpVtbl->SetName(This,name); 18335 } 18336 /*** ID3D12DeviceChild methods ***/ 18337 static inline HRESULT ID3D12MetaCommand_GetDevice(ID3D12MetaCommand* This,REFIID riid,void **device) { 18338 return This->lpVtbl->GetDevice(This,riid,device); 18339 } 18340 /*** ID3D12MetaCommand methods ***/ 18341 static inline UINT64 ID3D12MetaCommand_GetRequiredParameterResourceSize(ID3D12MetaCommand* This,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT parameter_index) { 18342 return This->lpVtbl->GetRequiredParameterResourceSize(This,stage,parameter_index); 18343 } 18344 #endif 18345 #endif 18346 18347 #endif 18348 18349 18350 #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ 18351 18352 typedef struct D3D12_DISPATCH_RAYS_DESC { 18353 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; 18354 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; 18355 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; 18356 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; 18357 UINT Width; 18358 UINT Height; 18359 UINT Depth; 18360 } D3D12_DISPATCH_RAYS_DESC; 18361 /***************************************************************************** 18362 * ID3D12GraphicsCommandList4 interface 18363 */ 18364 #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ 18365 #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ 18366 18367 DEFINE_GUID(IID_ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74); 18368 #if defined(__cplusplus) && !defined(CINTERFACE) 18369 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874") 18370 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3 18371 { 18372 virtual void STDMETHODCALLTYPE BeginRenderPass( 18373 UINT render_targets_count, 18374 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets, 18375 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil, 18376 D3D12_RENDER_PASS_FLAGS flags) = 0; 18377 18378 virtual void STDMETHODCALLTYPE EndRenderPass( 18379 ) = 0; 18380 18381 virtual void STDMETHODCALLTYPE InitializeMetaCommand( 18382 ID3D12MetaCommand *meta_command, 18383 const void *initialization_parameters_data, 18384 SIZE_T initialization_parameters_data_size_in_bytes) = 0; 18385 18386 virtual void STDMETHODCALLTYPE ExecuteMetaCommand( 18387 ID3D12MetaCommand *meta_command, 18388 const void *execution_parameters_data, 18389 SIZE_T execution_parameters_data_size_in_bytes) = 0; 18390 18391 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure( 18392 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc, 18393 UINT postbuild_info_descs_count, 18394 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) = 0; 18395 18396 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo( 18397 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc, 18398 UINT src_acceleration_structures_count, 18399 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) = 0; 18400 18401 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure( 18402 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data, 18403 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data, 18404 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) = 0; 18405 18406 virtual void STDMETHODCALLTYPE SetPipelineState1( 18407 ID3D12StateObject *state_object) = 0; 18408 18409 virtual void STDMETHODCALLTYPE DispatchRays( 18410 const D3D12_DISPATCH_RAYS_DESC *desc) = 0; 18411 18412 }; 18413 #ifdef __CRT_UUID_DECL 18414 __CRT_UUID_DECL(ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98,0xcf, 0x64,0x5b,0x50,0xdc,0x48,0x74) 18415 #endif 18416 #else 18417 typedef struct ID3D12GraphicsCommandList4Vtbl { 18418 BEGIN_INTERFACE 18419 18420 /*** IUnknown methods ***/ 18421 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 18422 ID3D12GraphicsCommandList4 *This, 18423 REFIID riid, 18424 void **ppvObject); 18425 18426 ULONG (STDMETHODCALLTYPE *AddRef)( 18427 ID3D12GraphicsCommandList4 *This); 18428 18429 ULONG (STDMETHODCALLTYPE *Release)( 18430 ID3D12GraphicsCommandList4 *This); 18431 18432 /*** ID3D12Object methods ***/ 18433 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 18434 ID3D12GraphicsCommandList4 *This, 18435 REFGUID guid, 18436 UINT *data_size, 18437 void *data); 18438 18439 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 18440 ID3D12GraphicsCommandList4 *This, 18441 REFGUID guid, 18442 UINT data_size, 18443 const void *data); 18444 18445 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 18446 ID3D12GraphicsCommandList4 *This, 18447 REFGUID guid, 18448 const IUnknown *data); 18449 18450 HRESULT (STDMETHODCALLTYPE *SetName)( 18451 ID3D12GraphicsCommandList4 *This, 18452 const WCHAR *name); 18453 18454 /*** ID3D12DeviceChild methods ***/ 18455 HRESULT (STDMETHODCALLTYPE *GetDevice)( 18456 ID3D12GraphicsCommandList4 *This, 18457 REFIID riid, 18458 void **device); 18459 18460 /*** ID3D12CommandList methods ***/ 18461 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 18462 ID3D12GraphicsCommandList4 *This); 18463 18464 /*** ID3D12GraphicsCommandList methods ***/ 18465 HRESULT (STDMETHODCALLTYPE *Close)( 18466 ID3D12GraphicsCommandList4 *This); 18467 18468 HRESULT (STDMETHODCALLTYPE *Reset)( 18469 ID3D12GraphicsCommandList4 *This, 18470 ID3D12CommandAllocator *allocator, 18471 ID3D12PipelineState *initial_state); 18472 18473 void (STDMETHODCALLTYPE *ClearState)( 18474 ID3D12GraphicsCommandList4 *This, 18475 ID3D12PipelineState *pipeline_state); 18476 18477 void (STDMETHODCALLTYPE *DrawInstanced)( 18478 ID3D12GraphicsCommandList4 *This, 18479 UINT vertex_count_per_instance, 18480 UINT instance_count, 18481 UINT start_vertex_location, 18482 UINT start_instance_location); 18483 18484 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 18485 ID3D12GraphicsCommandList4 *This, 18486 UINT index_count_per_instance, 18487 UINT instance_count, 18488 UINT start_vertex_location, 18489 INT base_vertex_location, 18490 UINT start_instance_location); 18491 18492 void (STDMETHODCALLTYPE *Dispatch)( 18493 ID3D12GraphicsCommandList4 *This, 18494 UINT x, 18495 UINT u, 18496 UINT z); 18497 18498 void (STDMETHODCALLTYPE *CopyBufferRegion)( 18499 ID3D12GraphicsCommandList4 *This, 18500 ID3D12Resource *dst_buffer, 18501 UINT64 dst_offset, 18502 ID3D12Resource *src_buffer, 18503 UINT64 src_offset, 18504 UINT64 byte_count); 18505 18506 void (STDMETHODCALLTYPE *CopyTextureRegion)( 18507 ID3D12GraphicsCommandList4 *This, 18508 const D3D12_TEXTURE_COPY_LOCATION *dst, 18509 UINT dst_x, 18510 UINT dst_y, 18511 UINT dst_z, 18512 const D3D12_TEXTURE_COPY_LOCATION *src, 18513 const D3D12_BOX *src_box); 18514 18515 void (STDMETHODCALLTYPE *CopyResource)( 18516 ID3D12GraphicsCommandList4 *This, 18517 ID3D12Resource *dst_resource, 18518 ID3D12Resource *src_resource); 18519 18520 void (STDMETHODCALLTYPE *CopyTiles)( 18521 ID3D12GraphicsCommandList4 *This, 18522 ID3D12Resource *tiled_resource, 18523 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 18524 const D3D12_TILE_REGION_SIZE *tile_region_size, 18525 ID3D12Resource *buffer, 18526 UINT64 buffer_offset, 18527 D3D12_TILE_COPY_FLAGS flags); 18528 18529 void (STDMETHODCALLTYPE *ResolveSubresource)( 18530 ID3D12GraphicsCommandList4 *This, 18531 ID3D12Resource *dst_resource, 18532 UINT dst_sub_resource, 18533 ID3D12Resource *src_resource, 18534 UINT src_sub_resource, 18535 DXGI_FORMAT format); 18536 18537 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 18538 ID3D12GraphicsCommandList4 *This, 18539 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 18540 18541 void (STDMETHODCALLTYPE *RSSetViewports)( 18542 ID3D12GraphicsCommandList4 *This, 18543 UINT viewport_count, 18544 const D3D12_VIEWPORT *viewports); 18545 18546 void (STDMETHODCALLTYPE *RSSetScissorRects)( 18547 ID3D12GraphicsCommandList4 *This, 18548 UINT rect_count, 18549 const D3D12_RECT *rects); 18550 18551 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 18552 ID3D12GraphicsCommandList4 *This, 18553 const FLOAT blend_factor[4]); 18554 18555 void (STDMETHODCALLTYPE *OMSetStencilRef)( 18556 ID3D12GraphicsCommandList4 *This, 18557 UINT stencil_ref); 18558 18559 void (STDMETHODCALLTYPE *SetPipelineState)( 18560 ID3D12GraphicsCommandList4 *This, 18561 ID3D12PipelineState *pipeline_state); 18562 18563 void (STDMETHODCALLTYPE *ResourceBarrier)( 18564 ID3D12GraphicsCommandList4 *This, 18565 UINT barrier_count, 18566 const D3D12_RESOURCE_BARRIER *barriers); 18567 18568 void (STDMETHODCALLTYPE *ExecuteBundle)( 18569 ID3D12GraphicsCommandList4 *This, 18570 ID3D12GraphicsCommandList *command_list); 18571 18572 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 18573 ID3D12GraphicsCommandList4 *This, 18574 UINT heap_count, 18575 ID3D12DescriptorHeap *const *heaps); 18576 18577 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 18578 ID3D12GraphicsCommandList4 *This, 18579 ID3D12RootSignature *root_signature); 18580 18581 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 18582 ID3D12GraphicsCommandList4 *This, 18583 ID3D12RootSignature *root_signature); 18584 18585 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 18586 ID3D12GraphicsCommandList4 *This, 18587 UINT root_parameter_index, 18588 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 18589 18590 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 18591 ID3D12GraphicsCommandList4 *This, 18592 UINT root_parameter_index, 18593 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 18594 18595 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 18596 ID3D12GraphicsCommandList4 *This, 18597 UINT root_parameter_index, 18598 UINT data, 18599 UINT dst_offset); 18600 18601 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 18602 ID3D12GraphicsCommandList4 *This, 18603 UINT root_parameter_index, 18604 UINT data, 18605 UINT dst_offset); 18606 18607 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 18608 ID3D12GraphicsCommandList4 *This, 18609 UINT root_parameter_index, 18610 UINT constant_count, 18611 const void *data, 18612 UINT dst_offset); 18613 18614 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 18615 ID3D12GraphicsCommandList4 *This, 18616 UINT root_parameter_index, 18617 UINT constant_count, 18618 const void *data, 18619 UINT dst_offset); 18620 18621 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 18622 ID3D12GraphicsCommandList4 *This, 18623 UINT root_parameter_index, 18624 D3D12_GPU_VIRTUAL_ADDRESS address); 18625 18626 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 18627 ID3D12GraphicsCommandList4 *This, 18628 UINT root_parameter_index, 18629 D3D12_GPU_VIRTUAL_ADDRESS address); 18630 18631 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 18632 ID3D12GraphicsCommandList4 *This, 18633 UINT root_parameter_index, 18634 D3D12_GPU_VIRTUAL_ADDRESS address); 18635 18636 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 18637 ID3D12GraphicsCommandList4 *This, 18638 UINT root_parameter_index, 18639 D3D12_GPU_VIRTUAL_ADDRESS address); 18640 18641 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 18642 ID3D12GraphicsCommandList4 *This, 18643 UINT root_parameter_index, 18644 D3D12_GPU_VIRTUAL_ADDRESS address); 18645 18646 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 18647 ID3D12GraphicsCommandList4 *This, 18648 UINT root_parameter_index, 18649 D3D12_GPU_VIRTUAL_ADDRESS address); 18650 18651 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 18652 ID3D12GraphicsCommandList4 *This, 18653 const D3D12_INDEX_BUFFER_VIEW *view); 18654 18655 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 18656 ID3D12GraphicsCommandList4 *This, 18657 UINT start_slot, 18658 UINT view_count, 18659 const D3D12_VERTEX_BUFFER_VIEW *views); 18660 18661 void (STDMETHODCALLTYPE *SOSetTargets)( 18662 ID3D12GraphicsCommandList4 *This, 18663 UINT start_slot, 18664 UINT view_count, 18665 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 18666 18667 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 18668 ID3D12GraphicsCommandList4 *This, 18669 UINT render_target_descriptor_count, 18670 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 18671 WINBOOL single_descriptor_handle, 18672 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 18673 18674 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 18675 ID3D12GraphicsCommandList4 *This, 18676 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 18677 D3D12_CLEAR_FLAGS flags, 18678 FLOAT depth, 18679 UINT8 stencil, 18680 UINT rect_count, 18681 const D3D12_RECT *rects); 18682 18683 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 18684 ID3D12GraphicsCommandList4 *This, 18685 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 18686 const FLOAT color[4], 18687 UINT rect_count, 18688 const D3D12_RECT *rects); 18689 18690 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 18691 ID3D12GraphicsCommandList4 *This, 18692 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 18693 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 18694 ID3D12Resource *resource, 18695 const UINT values[4], 18696 UINT rect_count, 18697 const D3D12_RECT *rects); 18698 18699 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 18700 ID3D12GraphicsCommandList4 *This, 18701 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 18702 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 18703 ID3D12Resource *resource, 18704 const float values[4], 18705 UINT rect_count, 18706 const D3D12_RECT *rects); 18707 18708 void (STDMETHODCALLTYPE *DiscardResource)( 18709 ID3D12GraphicsCommandList4 *This, 18710 ID3D12Resource *resource, 18711 const D3D12_DISCARD_REGION *region); 18712 18713 void (STDMETHODCALLTYPE *BeginQuery)( 18714 ID3D12GraphicsCommandList4 *This, 18715 ID3D12QueryHeap *heap, 18716 D3D12_QUERY_TYPE type, 18717 UINT index); 18718 18719 void (STDMETHODCALLTYPE *EndQuery)( 18720 ID3D12GraphicsCommandList4 *This, 18721 ID3D12QueryHeap *heap, 18722 D3D12_QUERY_TYPE type, 18723 UINT index); 18724 18725 void (STDMETHODCALLTYPE *ResolveQueryData)( 18726 ID3D12GraphicsCommandList4 *This, 18727 ID3D12QueryHeap *heap, 18728 D3D12_QUERY_TYPE type, 18729 UINT start_index, 18730 UINT query_count, 18731 ID3D12Resource *dst_buffer, 18732 UINT64 aligned_dst_buffer_offset); 18733 18734 void (STDMETHODCALLTYPE *SetPredication)( 18735 ID3D12GraphicsCommandList4 *This, 18736 ID3D12Resource *buffer, 18737 UINT64 aligned_buffer_offset, 18738 D3D12_PREDICATION_OP operation); 18739 18740 void (STDMETHODCALLTYPE *SetMarker)( 18741 ID3D12GraphicsCommandList4 *This, 18742 UINT metadata, 18743 const void *data, 18744 UINT size); 18745 18746 void (STDMETHODCALLTYPE *BeginEvent)( 18747 ID3D12GraphicsCommandList4 *This, 18748 UINT metadata, 18749 const void *data, 18750 UINT size); 18751 18752 void (STDMETHODCALLTYPE *EndEvent)( 18753 ID3D12GraphicsCommandList4 *This); 18754 18755 void (STDMETHODCALLTYPE *ExecuteIndirect)( 18756 ID3D12GraphicsCommandList4 *This, 18757 ID3D12CommandSignature *command_signature, 18758 UINT max_command_count, 18759 ID3D12Resource *arg_buffer, 18760 UINT64 arg_buffer_offset, 18761 ID3D12Resource *count_buffer, 18762 UINT64 count_buffer_offset); 18763 18764 /*** ID3D12GraphicsCommandList1 methods ***/ 18765 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 18766 ID3D12GraphicsCommandList4 *This, 18767 ID3D12Resource *dst_buffer, 18768 UINT64 dst_offset, 18769 ID3D12Resource *src_buffer, 18770 UINT64 src_offset, 18771 UINT dependent_resource_count, 18772 ID3D12Resource *const *dependent_resources, 18773 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 18774 18775 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 18776 ID3D12GraphicsCommandList4 *This, 18777 ID3D12Resource *dst_buffer, 18778 UINT64 dst_offset, 18779 ID3D12Resource *src_buffer, 18780 UINT64 src_offset, 18781 UINT dependent_resource_count, 18782 ID3D12Resource *const *dependent_resources, 18783 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 18784 18785 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 18786 ID3D12GraphicsCommandList4 *This, 18787 FLOAT min, 18788 FLOAT max); 18789 18790 void (STDMETHODCALLTYPE *SetSamplePositions)( 18791 ID3D12GraphicsCommandList4 *This, 18792 UINT sample_count, 18793 UINT pixel_count, 18794 D3D12_SAMPLE_POSITION *sample_positions); 18795 18796 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 18797 ID3D12GraphicsCommandList4 *This, 18798 ID3D12Resource *dst_resource, 18799 UINT dst_sub_resource_idx, 18800 UINT dst_x, 18801 UINT dst_y, 18802 ID3D12Resource *src_resource, 18803 UINT src_sub_resource_idx, 18804 D3D12_RECT *src_rect, 18805 DXGI_FORMAT format, 18806 D3D12_RESOLVE_MODE mode); 18807 18808 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 18809 ID3D12GraphicsCommandList4 *This, 18810 UINT mask); 18811 18812 /*** ID3D12GraphicsCommandList2 methods ***/ 18813 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 18814 ID3D12GraphicsCommandList4 *This, 18815 UINT count, 18816 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 18817 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 18818 18819 /*** ID3D12GraphicsCommandList3 methods ***/ 18820 void (STDMETHODCALLTYPE *SetProtectedResourceSession)( 18821 ID3D12GraphicsCommandList4 *This, 18822 ID3D12ProtectedResourceSession *protected_resource_session); 18823 18824 /*** ID3D12GraphicsCommandList4 methods ***/ 18825 void (STDMETHODCALLTYPE *BeginRenderPass)( 18826 ID3D12GraphicsCommandList4 *This, 18827 UINT render_targets_count, 18828 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets, 18829 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil, 18830 D3D12_RENDER_PASS_FLAGS flags); 18831 18832 void (STDMETHODCALLTYPE *EndRenderPass)( 18833 ID3D12GraphicsCommandList4 *This); 18834 18835 void (STDMETHODCALLTYPE *InitializeMetaCommand)( 18836 ID3D12GraphicsCommandList4 *This, 18837 ID3D12MetaCommand *meta_command, 18838 const void *initialization_parameters_data, 18839 SIZE_T initialization_parameters_data_size_in_bytes); 18840 18841 void (STDMETHODCALLTYPE *ExecuteMetaCommand)( 18842 ID3D12GraphicsCommandList4 *This, 18843 ID3D12MetaCommand *meta_command, 18844 const void *execution_parameters_data, 18845 SIZE_T execution_parameters_data_size_in_bytes); 18846 18847 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)( 18848 ID3D12GraphicsCommandList4 *This, 18849 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc, 18850 UINT postbuild_info_descs_count, 18851 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs); 18852 18853 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)( 18854 ID3D12GraphicsCommandList4 *This, 18855 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc, 18856 UINT src_acceleration_structures_count, 18857 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data); 18858 18859 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)( 18860 ID3D12GraphicsCommandList4 *This, 18861 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data, 18862 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data, 18863 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode); 18864 18865 void (STDMETHODCALLTYPE *SetPipelineState1)( 18866 ID3D12GraphicsCommandList4 *This, 18867 ID3D12StateObject *state_object); 18868 18869 void (STDMETHODCALLTYPE *DispatchRays)( 18870 ID3D12GraphicsCommandList4 *This, 18871 const D3D12_DISPATCH_RAYS_DESC *desc); 18872 18873 END_INTERFACE 18874 } ID3D12GraphicsCommandList4Vtbl; 18875 18876 interface ID3D12GraphicsCommandList4 { 18877 CONST_VTBL ID3D12GraphicsCommandList4Vtbl* lpVtbl; 18878 }; 18879 18880 #ifdef COBJMACROS 18881 #ifndef WIDL_C_INLINE_WRAPPERS 18882 /*** IUnknown methods ***/ 18883 #define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 18884 #define ID3D12GraphicsCommandList4_AddRef(This) (This)->lpVtbl->AddRef(This) 18885 #define ID3D12GraphicsCommandList4_Release(This) (This)->lpVtbl->Release(This) 18886 /*** ID3D12Object methods ***/ 18887 #define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 18888 #define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 18889 #define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 18890 #define ID3D12GraphicsCommandList4_SetName(This,name) (This)->lpVtbl->SetName(This,name) 18891 /*** ID3D12DeviceChild methods ***/ 18892 #define ID3D12GraphicsCommandList4_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 18893 /*** ID3D12CommandList methods ***/ 18894 #define ID3D12GraphicsCommandList4_GetType(This) (This)->lpVtbl->GetType(This) 18895 /*** ID3D12GraphicsCommandList methods ***/ 18896 #define ID3D12GraphicsCommandList4_Close(This) (This)->lpVtbl->Close(This) 18897 #define ID3D12GraphicsCommandList4_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 18898 #define ID3D12GraphicsCommandList4_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 18899 #define ID3D12GraphicsCommandList4_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 18900 #define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 18901 #define ID3D12GraphicsCommandList4_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 18902 #define ID3D12GraphicsCommandList4_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 18903 #define ID3D12GraphicsCommandList4_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 18904 #define ID3D12GraphicsCommandList4_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 18905 #define ID3D12GraphicsCommandList4_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 18906 #define ID3D12GraphicsCommandList4_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 18907 #define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 18908 #define ID3D12GraphicsCommandList4_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 18909 #define ID3D12GraphicsCommandList4_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 18910 #define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 18911 #define ID3D12GraphicsCommandList4_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 18912 #define ID3D12GraphicsCommandList4_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 18913 #define ID3D12GraphicsCommandList4_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 18914 #define ID3D12GraphicsCommandList4_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 18915 #define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 18916 #define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 18917 #define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 18918 #define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 18919 #define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 18920 #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 18921 #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 18922 #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 18923 #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 18924 #define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 18925 #define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 18926 #define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 18927 #define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 18928 #define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 18929 #define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 18930 #define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 18931 #define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 18932 #define ID3D12GraphicsCommandList4_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 18933 #define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 18934 #define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 18935 #define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 18936 #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 18937 #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 18938 #define ID3D12GraphicsCommandList4_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 18939 #define ID3D12GraphicsCommandList4_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 18940 #define ID3D12GraphicsCommandList4_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 18941 #define ID3D12GraphicsCommandList4_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 18942 #define ID3D12GraphicsCommandList4_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 18943 #define ID3D12GraphicsCommandList4_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 18944 #define ID3D12GraphicsCommandList4_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 18945 #define ID3D12GraphicsCommandList4_EndEvent(This) (This)->lpVtbl->EndEvent(This) 18946 #define ID3D12GraphicsCommandList4_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 18947 /*** ID3D12GraphicsCommandList1 methods ***/ 18948 #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 18949 #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 18950 #define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 18951 #define ID3D12GraphicsCommandList4_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 18952 #define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 18953 #define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 18954 /*** ID3D12GraphicsCommandList2 methods ***/ 18955 #define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 18956 /*** ID3D12GraphicsCommandList3 methods ***/ 18957 #define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session) 18958 /*** ID3D12GraphicsCommandList4 methods ***/ 18959 #define ID3D12GraphicsCommandList4_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) 18960 #define ID3D12GraphicsCommandList4_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This) 18961 #define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) 18962 #define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) 18963 #define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) 18964 #define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) 18965 #define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) 18966 #define ID3D12GraphicsCommandList4_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object) 18967 #define ID3D12GraphicsCommandList4_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc) 18968 #else 18969 /*** IUnknown methods ***/ 18970 static inline HRESULT ID3D12GraphicsCommandList4_QueryInterface(ID3D12GraphicsCommandList4* This,REFIID riid,void **ppvObject) { 18971 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 18972 } 18973 static inline ULONG ID3D12GraphicsCommandList4_AddRef(ID3D12GraphicsCommandList4* This) { 18974 return This->lpVtbl->AddRef(This); 18975 } 18976 static inline ULONG ID3D12GraphicsCommandList4_Release(ID3D12GraphicsCommandList4* This) { 18977 return This->lpVtbl->Release(This); 18978 } 18979 /*** ID3D12Object methods ***/ 18980 static inline HRESULT ID3D12GraphicsCommandList4_GetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT *data_size,void *data) { 18981 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 18982 } 18983 static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateData(ID3D12GraphicsCommandList4* This,REFGUID guid,UINT data_size,const void *data) { 18984 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 18985 } 18986 static inline HRESULT ID3D12GraphicsCommandList4_SetPrivateDataInterface(ID3D12GraphicsCommandList4* This,REFGUID guid,const IUnknown *data) { 18987 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 18988 } 18989 static inline HRESULT ID3D12GraphicsCommandList4_SetName(ID3D12GraphicsCommandList4* This,const WCHAR *name) { 18990 return This->lpVtbl->SetName(This,name); 18991 } 18992 /*** ID3D12DeviceChild methods ***/ 18993 static inline HRESULT ID3D12GraphicsCommandList4_GetDevice(ID3D12GraphicsCommandList4* This,REFIID riid,void **device) { 18994 return This->lpVtbl->GetDevice(This,riid,device); 18995 } 18996 /*** ID3D12CommandList methods ***/ 18997 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList4_GetType(ID3D12GraphicsCommandList4* This) { 18998 return This->lpVtbl->GetType(This); 18999 } 19000 /*** ID3D12GraphicsCommandList methods ***/ 19001 static inline HRESULT ID3D12GraphicsCommandList4_Close(ID3D12GraphicsCommandList4* This) { 19002 return This->lpVtbl->Close(This); 19003 } 19004 static inline HRESULT ID3D12GraphicsCommandList4_Reset(ID3D12GraphicsCommandList4* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 19005 return This->lpVtbl->Reset(This,allocator,initial_state); 19006 } 19007 static inline void ID3D12GraphicsCommandList4_ClearState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) { 19008 This->lpVtbl->ClearState(This,pipeline_state); 19009 } 19010 static inline void ID3D12GraphicsCommandList4_DrawInstanced(ID3D12GraphicsCommandList4* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 19011 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 19012 } 19013 static inline void ID3D12GraphicsCommandList4_DrawIndexedInstanced(ID3D12GraphicsCommandList4* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 19014 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 19015 } 19016 static inline void ID3D12GraphicsCommandList4_Dispatch(ID3D12GraphicsCommandList4* This,UINT x,UINT u,UINT z) { 19017 This->lpVtbl->Dispatch(This,x,u,z); 19018 } 19019 static inline void ID3D12GraphicsCommandList4_CopyBufferRegion(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 19020 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 19021 } 19022 static inline void ID3D12GraphicsCommandList4_CopyTextureRegion(ID3D12GraphicsCommandList4* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 19023 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 19024 } 19025 static inline void ID3D12GraphicsCommandList4_CopyResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 19026 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 19027 } 19028 static inline void ID3D12GraphicsCommandList4_CopyTiles(ID3D12GraphicsCommandList4* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 19029 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 19030 } 19031 static inline void ID3D12GraphicsCommandList4_ResolveSubresource(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 19032 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 19033 } 19034 static inline void ID3D12GraphicsCommandList4_IASetPrimitiveTopology(ID3D12GraphicsCommandList4* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 19035 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 19036 } 19037 static inline void ID3D12GraphicsCommandList4_RSSetViewports(ID3D12GraphicsCommandList4* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 19038 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 19039 } 19040 static inline void ID3D12GraphicsCommandList4_RSSetScissorRects(ID3D12GraphicsCommandList4* This,UINT rect_count,const D3D12_RECT *rects) { 19041 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 19042 } 19043 static inline void ID3D12GraphicsCommandList4_OMSetBlendFactor(ID3D12GraphicsCommandList4* This,const FLOAT blend_factor[4]) { 19044 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 19045 } 19046 static inline void ID3D12GraphicsCommandList4_OMSetStencilRef(ID3D12GraphicsCommandList4* This,UINT stencil_ref) { 19047 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 19048 } 19049 static inline void ID3D12GraphicsCommandList4_SetPipelineState(ID3D12GraphicsCommandList4* This,ID3D12PipelineState *pipeline_state) { 19050 This->lpVtbl->SetPipelineState(This,pipeline_state); 19051 } 19052 static inline void ID3D12GraphicsCommandList4_ResourceBarrier(ID3D12GraphicsCommandList4* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 19053 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 19054 } 19055 static inline void ID3D12GraphicsCommandList4_ExecuteBundle(ID3D12GraphicsCommandList4* This,ID3D12GraphicsCommandList *command_list) { 19056 This->lpVtbl->ExecuteBundle(This,command_list); 19057 } 19058 static inline void ID3D12GraphicsCommandList4_SetDescriptorHeaps(ID3D12GraphicsCommandList4* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 19059 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 19060 } 19061 static inline void ID3D12GraphicsCommandList4_SetComputeRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) { 19062 This->lpVtbl->SetComputeRootSignature(This,root_signature); 19063 } 19064 static inline void ID3D12GraphicsCommandList4_SetGraphicsRootSignature(ID3D12GraphicsCommandList4* This,ID3D12RootSignature *root_signature) { 19065 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 19066 } 19067 static inline void ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 19068 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 19069 } 19070 static inline void ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 19071 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 19072 } 19073 static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 19074 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 19075 } 19076 static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 19077 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 19078 } 19079 static inline void ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 19080 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 19081 } 19082 static inline void ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 19083 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 19084 } 19085 static inline void ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19086 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 19087 } 19088 static inline void ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19089 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 19090 } 19091 static inline void ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19092 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 19093 } 19094 static inline void ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19095 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 19096 } 19097 static inline void ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19098 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 19099 } 19100 static inline void ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList4* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 19101 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 19102 } 19103 static inline void ID3D12GraphicsCommandList4_IASetIndexBuffer(ID3D12GraphicsCommandList4* This,const D3D12_INDEX_BUFFER_VIEW *view) { 19104 This->lpVtbl->IASetIndexBuffer(This,view); 19105 } 19106 static inline void ID3D12GraphicsCommandList4_IASetVertexBuffers(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 19107 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 19108 } 19109 static inline void ID3D12GraphicsCommandList4_SOSetTargets(ID3D12GraphicsCommandList4* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 19110 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 19111 } 19112 static inline void ID3D12GraphicsCommandList4_OMSetRenderTargets(ID3D12GraphicsCommandList4* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 19113 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 19114 } 19115 static inline void ID3D12GraphicsCommandList4_ClearDepthStencilView(ID3D12GraphicsCommandList4* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 19116 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 19117 } 19118 static inline void ID3D12GraphicsCommandList4_ClearRenderTargetView(ID3D12GraphicsCommandList4* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 19119 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 19120 } 19121 static inline void ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList4* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 19122 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 19123 } 19124 static inline void ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList4* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 19125 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 19126 } 19127 static inline void ID3D12GraphicsCommandList4_DiscardResource(ID3D12GraphicsCommandList4* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 19128 This->lpVtbl->DiscardResource(This,resource,region); 19129 } 19130 static inline void ID3D12GraphicsCommandList4_BeginQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 19131 This->lpVtbl->BeginQuery(This,heap,type,index); 19132 } 19133 static inline void ID3D12GraphicsCommandList4_EndQuery(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 19134 This->lpVtbl->EndQuery(This,heap,type,index); 19135 } 19136 static inline void ID3D12GraphicsCommandList4_ResolveQueryData(ID3D12GraphicsCommandList4* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 19137 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 19138 } 19139 static inline void ID3D12GraphicsCommandList4_SetPredication(ID3D12GraphicsCommandList4* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 19140 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 19141 } 19142 static inline void ID3D12GraphicsCommandList4_SetMarker(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) { 19143 This->lpVtbl->SetMarker(This,metadata,data,size); 19144 } 19145 static inline void ID3D12GraphicsCommandList4_BeginEvent(ID3D12GraphicsCommandList4* This,UINT metadata,const void *data,UINT size) { 19146 This->lpVtbl->BeginEvent(This,metadata,data,size); 19147 } 19148 static inline void ID3D12GraphicsCommandList4_EndEvent(ID3D12GraphicsCommandList4* This) { 19149 This->lpVtbl->EndEvent(This); 19150 } 19151 static inline void ID3D12GraphicsCommandList4_ExecuteIndirect(ID3D12GraphicsCommandList4* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 19152 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 19153 } 19154 /*** ID3D12GraphicsCommandList1 methods ***/ 19155 static inline void ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 19156 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 19157 } 19158 static inline void ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 19159 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 19160 } 19161 static inline void ID3D12GraphicsCommandList4_OMSetDepthBounds(ID3D12GraphicsCommandList4* This,FLOAT min,FLOAT max) { 19162 This->lpVtbl->OMSetDepthBounds(This,min,max); 19163 } 19164 static inline void ID3D12GraphicsCommandList4_SetSamplePositions(ID3D12GraphicsCommandList4* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 19165 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 19166 } 19167 static inline void ID3D12GraphicsCommandList4_ResolveSubresourceRegion(ID3D12GraphicsCommandList4* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 19168 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 19169 } 19170 static inline void ID3D12GraphicsCommandList4_SetViewInstanceMask(ID3D12GraphicsCommandList4* This,UINT mask) { 19171 This->lpVtbl->SetViewInstanceMask(This,mask); 19172 } 19173 /*** ID3D12GraphicsCommandList2 methods ***/ 19174 static inline void ID3D12GraphicsCommandList4_WriteBufferImmediate(ID3D12GraphicsCommandList4* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 19175 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 19176 } 19177 /*** ID3D12GraphicsCommandList3 methods ***/ 19178 static inline void ID3D12GraphicsCommandList4_SetProtectedResourceSession(ID3D12GraphicsCommandList4* This,ID3D12ProtectedResourceSession *protected_resource_session) { 19179 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session); 19180 } 19181 /*** ID3D12GraphicsCommandList4 methods ***/ 19182 static inline void ID3D12GraphicsCommandList4_BeginRenderPass(ID3D12GraphicsCommandList4* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) { 19183 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags); 19184 } 19185 static inline void ID3D12GraphicsCommandList4_EndRenderPass(ID3D12GraphicsCommandList4* This) { 19186 This->lpVtbl->EndRenderPass(This); 19187 } 19188 static inline void ID3D12GraphicsCommandList4_InitializeMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) { 19189 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes); 19190 } 19191 static inline void ID3D12GraphicsCommandList4_ExecuteMetaCommand(ID3D12GraphicsCommandList4* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) { 19192 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes); 19193 } 19194 static inline void ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList4* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) { 19195 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs); 19196 } 19197 static inline void ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList4* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) { 19198 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data); 19199 } 19200 static inline void ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList4* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) { 19201 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode); 19202 } 19203 static inline void ID3D12GraphicsCommandList4_SetPipelineState1(ID3D12GraphicsCommandList4* This,ID3D12StateObject *state_object) { 19204 This->lpVtbl->SetPipelineState1(This,state_object); 19205 } 19206 static inline void ID3D12GraphicsCommandList4_DispatchRays(ID3D12GraphicsCommandList4* This,const D3D12_DISPATCH_RAYS_DESC *desc) { 19207 This->lpVtbl->DispatchRays(This,desc); 19208 } 19209 #endif 19210 #endif 19211 19212 #endif 19213 19214 19215 #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ 19216 19217 typedef enum D3D12_SHADER_CACHE_MODE { 19218 D3D12_SHADER_CACHE_MODE_MEMORY = 0x0, 19219 D3D12_SHADER_CACHE_MODE_DISK = 0x1 19220 } D3D12_SHADER_CACHE_MODE; 19221 typedef enum D3D12_SHADER_CACHE_FLAGS { 19222 D3D12_SHADER_CACHE_FLAG_NONE = 0x0, 19223 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, 19224 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2 19225 } D3D12_SHADER_CACHE_FLAGS; 19226 DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_FLAGS); 19227 typedef struct D3D12_SHADER_CACHE_SESSION_DESC { 19228 GUID Identifier; 19229 D3D12_SHADER_CACHE_MODE Mode; 19230 D3D12_SHADER_CACHE_FLAGS Flags; 19231 UINT MaximumInMemoryCacheSizeBytes; 19232 UINT MaximumInMemoryCacheEntries; 19233 UINT MaximumValueFileSizeBytes; 19234 UINT64 Version; 19235 } D3D12_SHADER_CACHE_SESSION_DESC; 19236 typedef enum D3D12_BARRIER_LAYOUT { 19237 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, 19238 D3D12_BARRIER_LAYOUT_COMMON = 0x0, 19239 D3D12_BARRIER_LAYOUT_PRESENT = 0x0, 19240 D3D12_BARRIER_LAYOUT_GENERIC_READ = 0x1, 19241 D3D12_BARRIER_LAYOUT_RENDER_TARGET = 0x2, 19242 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 0x3, 19243 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 0x4, 19244 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 0x5, 19245 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 0x6, 19246 D3D12_BARRIER_LAYOUT_COPY_SOURCE = 0x7, 19247 D3D12_BARRIER_LAYOUT_COPY_DEST = 0x8, 19248 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 0x9, 19249 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 0xa, 19250 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 0xb, 19251 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 0xc, 19252 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 0xd, 19253 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 0xe, 19254 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 0xf, 19255 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 0x10, 19256 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 0x11, 19257 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 0x12, 19258 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 0x13, 19259 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 0x14, 19260 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 0x15, 19261 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 0x16, 19262 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 0x17, 19263 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 0x18, 19264 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 0x19, 19265 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 0x1a, 19266 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 0x1b, 19267 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 0x1c, 19268 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 0x1d, 19269 D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = 0x1e 19270 } D3D12_BARRIER_LAYOUT; 19271 typedef enum D3D12_BARRIER_SYNC { 19272 D3D12_BARRIER_SYNC_NONE = 0x0, 19273 D3D12_BARRIER_SYNC_ALL = 0x1, 19274 D3D12_BARRIER_SYNC_DRAW = 0x2, 19275 D3D12_BARRIER_SYNC_INPUT_ASSEMBLER = 0x4, 19276 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, 19277 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, 19278 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, 19279 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, 19280 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, 19281 D3D12_BARRIER_SYNC_RAYTRACING = 0x100, 19282 D3D12_BARRIER_SYNC_COPY = 0x200, 19283 D3D12_BARRIER_SYNC_RESOLVE = 0x400, 19284 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, 19285 D3D12_BARRIER_SYNC_PREDICATION = 0x800, 19286 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, 19287 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, 19288 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, 19289 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, 19290 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, 19291 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, 19292 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, 19293 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, 19294 D3D12_BARRIER_SYNC_SPLIT = 0x80000000 19295 } D3D12_BARRIER_SYNC; 19296 DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_SYNC); 19297 typedef enum D3D12_BARRIER_ACCESS { 19298 D3D12_BARRIER_ACCESS_COMMON = 0, 19299 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, 19300 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, 19301 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, 19302 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, 19303 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, 19304 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, 19305 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, 19306 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, 19307 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, 19308 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, 19309 D3D12_BARRIER_ACCESS_PREDICATION = 0x200, 19310 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, 19311 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, 19312 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, 19313 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, 19314 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, 19315 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, 19316 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, 19317 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, 19318 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, 19319 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, 19320 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, 19321 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, 19322 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, 19323 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000 19324 } D3D12_BARRIER_ACCESS; 19325 DEFINE_ENUM_FLAG_OPERATORS(D3D12_BARRIER_ACCESS); 19326 typedef enum D3D12_BARRIER_TYPE { 19327 D3D12_BARRIER_TYPE_GLOBAL = 0x0, 19328 D3D12_BARRIER_TYPE_TEXTURE = 0x1, 19329 D3D12_BARRIER_TYPE_BUFFER = 0x2 19330 } D3D12_BARRIER_TYPE; 19331 typedef enum D3D12_TEXTURE_BARRIER_FLAGS { 19332 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0x0, 19333 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1 19334 } D3D12_TEXTURE_BARRIER_FLAGS; 19335 DEFINE_ENUM_FLAG_OPERATORS(D3D12_TEXTURE_BARRIER_FLAGS); 19336 typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE { 19337 UINT IndexOrFirstMipLevel; 19338 UINT NumMipLevels; 19339 UINT FirstArraySlice; 19340 UINT NumArraySlices; 19341 UINT FirstPlane; 19342 UINT NumPlanes; 19343 } D3D12_BARRIER_SUBRESOURCE_RANGE; 19344 typedef struct D3D12_GLOBAL_BARRIER { 19345 D3D12_BARRIER_SYNC SyncBefore; 19346 D3D12_BARRIER_SYNC SyncAfter; 19347 D3D12_BARRIER_ACCESS AccessBefore; 19348 D3D12_BARRIER_ACCESS AccessAfter; 19349 } D3D12_GLOBAL_BARRIER; 19350 typedef struct D3D12_TEXTURE_BARRIER { 19351 D3D12_BARRIER_SYNC SyncBefore; 19352 D3D12_BARRIER_SYNC SyncAfter; 19353 D3D12_BARRIER_ACCESS AccessBefore; 19354 D3D12_BARRIER_ACCESS AccessAfter; 19355 D3D12_BARRIER_LAYOUT LayoutBefore; 19356 D3D12_BARRIER_LAYOUT LayoutAfter; 19357 ID3D12Resource *pResource; 19358 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; 19359 D3D12_TEXTURE_BARRIER_FLAGS Flags; 19360 } D3D12_TEXTURE_BARRIER; 19361 typedef struct D3D12_BUFFER_BARRIER { 19362 D3D12_BARRIER_SYNC SyncBefore; 19363 D3D12_BARRIER_SYNC SyncAfter; 19364 D3D12_BARRIER_ACCESS AccessBefore; 19365 D3D12_BARRIER_ACCESS AccessAfter; 19366 ID3D12Resource *pResource; 19367 UINT64 Offset; 19368 UINT64 Size; 19369 } D3D12_BUFFER_BARRIER; 19370 typedef struct D3D12_BARRIER_GROUP { 19371 D3D12_BARRIER_TYPE Type; 19372 UINT32 NumBarriers; 19373 __C89_NAMELESS union { 19374 const D3D12_GLOBAL_BARRIER *pGlobalBarriers; 19375 const D3D12_TEXTURE_BARRIER *pTextureBarriers; 19376 const D3D12_BUFFER_BARRIER *pBufferBarriers; 19377 } __C89_NAMELESSUNIONNAME; 19378 } D3D12_BARRIER_GROUP; 19379 /***************************************************************************** 19380 * ID3D12ShaderCacheSession interface 19381 */ 19382 #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ 19383 #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ 19384 19385 DEFINE_GUID(IID_ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8); 19386 #if defined(__cplusplus) && !defined(CINTERFACE) 19387 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8") 19388 ID3D12ShaderCacheSession : public ID3D12DeviceChild 19389 { 19390 virtual HRESULT STDMETHODCALLTYPE FindValue( 19391 const void *key, 19392 UINT key_size, 19393 void *value, 19394 UINT *value_size) = 0; 19395 19396 virtual HRESULT STDMETHODCALLTYPE StoreValue( 19397 const void *key, 19398 UINT key_size, 19399 const void *value, 19400 UINT value_size) = 0; 19401 19402 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( 19403 ) = 0; 19404 19405 #ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS 19406 virtual D3D12_SHADER_CACHE_SESSION_DESC* STDMETHODCALLTYPE GetDesc( 19407 D3D12_SHADER_CACHE_SESSION_DESC *__ret) = 0; 19408 D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( 19409 ) 19410 { 19411 D3D12_SHADER_CACHE_SESSION_DESC __ret; 19412 return *GetDesc(&__ret); 19413 } 19414 #else 19415 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( 19416 ) = 0; 19417 #endif 19418 19419 }; 19420 #ifdef __CRT_UUID_DECL 19421 __CRT_UUID_DECL(ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6,0xec, 0x12,0x92,0x55,0xdc,0x49,0xa8) 19422 #endif 19423 #else 19424 typedef struct ID3D12ShaderCacheSessionVtbl { 19425 BEGIN_INTERFACE 19426 19427 /*** IUnknown methods ***/ 19428 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 19429 ID3D12ShaderCacheSession *This, 19430 REFIID riid, 19431 void **ppvObject); 19432 19433 ULONG (STDMETHODCALLTYPE *AddRef)( 19434 ID3D12ShaderCacheSession *This); 19435 19436 ULONG (STDMETHODCALLTYPE *Release)( 19437 ID3D12ShaderCacheSession *This); 19438 19439 /*** ID3D12Object methods ***/ 19440 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 19441 ID3D12ShaderCacheSession *This, 19442 REFGUID guid, 19443 UINT *data_size, 19444 void *data); 19445 19446 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 19447 ID3D12ShaderCacheSession *This, 19448 REFGUID guid, 19449 UINT data_size, 19450 const void *data); 19451 19452 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 19453 ID3D12ShaderCacheSession *This, 19454 REFGUID guid, 19455 const IUnknown *data); 19456 19457 HRESULT (STDMETHODCALLTYPE *SetName)( 19458 ID3D12ShaderCacheSession *This, 19459 const WCHAR *name); 19460 19461 /*** ID3D12DeviceChild methods ***/ 19462 HRESULT (STDMETHODCALLTYPE *GetDevice)( 19463 ID3D12ShaderCacheSession *This, 19464 REFIID riid, 19465 void **device); 19466 19467 /*** ID3D12ShaderCacheSession methods ***/ 19468 HRESULT (STDMETHODCALLTYPE *FindValue)( 19469 ID3D12ShaderCacheSession *This, 19470 const void *key, 19471 UINT key_size, 19472 void *value, 19473 UINT *value_size); 19474 19475 HRESULT (STDMETHODCALLTYPE *StoreValue)( 19476 ID3D12ShaderCacheSession *This, 19477 const void *key, 19478 UINT key_size, 19479 const void *value, 19480 UINT value_size); 19481 19482 void (STDMETHODCALLTYPE *SetDeleteOnDestroy)( 19483 ID3D12ShaderCacheSession *This); 19484 19485 D3D12_SHADER_CACHE_SESSION_DESC * (STDMETHODCALLTYPE *GetDesc)( 19486 ID3D12ShaderCacheSession *This, 19487 D3D12_SHADER_CACHE_SESSION_DESC *__ret); 19488 19489 END_INTERFACE 19490 } ID3D12ShaderCacheSessionVtbl; 19491 19492 interface ID3D12ShaderCacheSession { 19493 CONST_VTBL ID3D12ShaderCacheSessionVtbl* lpVtbl; 19494 }; 19495 19496 #ifdef COBJMACROS 19497 #ifndef WIDL_C_INLINE_WRAPPERS 19498 /*** IUnknown methods ***/ 19499 #define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 19500 #define ID3D12ShaderCacheSession_AddRef(This) (This)->lpVtbl->AddRef(This) 19501 #define ID3D12ShaderCacheSession_Release(This) (This)->lpVtbl->Release(This) 19502 /*** ID3D12Object methods ***/ 19503 #define ID3D12ShaderCacheSession_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 19504 #define ID3D12ShaderCacheSession_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 19505 #define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 19506 #define ID3D12ShaderCacheSession_SetName(This,name) (This)->lpVtbl->SetName(This,name) 19507 /*** ID3D12DeviceChild methods ***/ 19508 #define ID3D12ShaderCacheSession_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 19509 /*** ID3D12ShaderCacheSession methods ***/ 19510 #define ID3D12ShaderCacheSession_FindValue(This,key,key_size,value,value_size) (This)->lpVtbl->FindValue(This,key,key_size,value,value_size) 19511 #define ID3D12ShaderCacheSession_StoreValue(This,key,key_size,value,value_size) (This)->lpVtbl->StoreValue(This,key,key_size,value,value_size) 19512 #define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) (This)->lpVtbl->SetDeleteOnDestroy(This) 19513 #define ID3D12ShaderCacheSession_GetDesc(This) ID3D12ShaderCacheSession_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 19514 #else 19515 /*** IUnknown methods ***/ 19516 static inline HRESULT ID3D12ShaderCacheSession_QueryInterface(ID3D12ShaderCacheSession* This,REFIID riid,void **ppvObject) { 19517 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 19518 } 19519 static inline ULONG ID3D12ShaderCacheSession_AddRef(ID3D12ShaderCacheSession* This) { 19520 return This->lpVtbl->AddRef(This); 19521 } 19522 static inline ULONG ID3D12ShaderCacheSession_Release(ID3D12ShaderCacheSession* This) { 19523 return This->lpVtbl->Release(This); 19524 } 19525 /*** ID3D12Object methods ***/ 19526 static inline HRESULT ID3D12ShaderCacheSession_GetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT *data_size,void *data) { 19527 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 19528 } 19529 static inline HRESULT ID3D12ShaderCacheSession_SetPrivateData(ID3D12ShaderCacheSession* This,REFGUID guid,UINT data_size,const void *data) { 19530 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 19531 } 19532 static inline HRESULT ID3D12ShaderCacheSession_SetPrivateDataInterface(ID3D12ShaderCacheSession* This,REFGUID guid,const IUnknown *data) { 19533 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 19534 } 19535 static inline HRESULT ID3D12ShaderCacheSession_SetName(ID3D12ShaderCacheSession* This,const WCHAR *name) { 19536 return This->lpVtbl->SetName(This,name); 19537 } 19538 /*** ID3D12DeviceChild methods ***/ 19539 static inline HRESULT ID3D12ShaderCacheSession_GetDevice(ID3D12ShaderCacheSession* This,REFIID riid,void **device) { 19540 return This->lpVtbl->GetDevice(This,riid,device); 19541 } 19542 /*** ID3D12ShaderCacheSession methods ***/ 19543 static inline HRESULT ID3D12ShaderCacheSession_FindValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,void *value,UINT *value_size) { 19544 return This->lpVtbl->FindValue(This,key,key_size,value,value_size); 19545 } 19546 static inline HRESULT ID3D12ShaderCacheSession_StoreValue(ID3D12ShaderCacheSession* This,const void *key,UINT key_size,const void *value,UINT value_size) { 19547 return This->lpVtbl->StoreValue(This,key,key_size,value,value_size); 19548 } 19549 static inline void ID3D12ShaderCacheSession_SetDeleteOnDestroy(ID3D12ShaderCacheSession* This) { 19550 This->lpVtbl->SetDeleteOnDestroy(This); 19551 } 19552 static inline D3D12_SHADER_CACHE_SESSION_DESC ID3D12ShaderCacheSession_GetDesc(ID3D12ShaderCacheSession* This) { 19553 D3D12_SHADER_CACHE_SESSION_DESC __ret; 19554 return *This->lpVtbl->GetDesc(This,&__ret); 19555 } 19556 #endif 19557 #endif 19558 19559 #endif 19560 19561 19562 #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ 19563 19564 typedef enum D3D12_SHADER_CACHE_KIND_FLAGS { 19565 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, 19566 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, 19567 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, 19568 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8 19569 } D3D12_SHADER_CACHE_KIND_FLAGS; 19570 DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_KIND_FLAGS); 19571 typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS { 19572 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, 19573 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, 19574 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4 19575 } D3D12_SHADER_CACHE_CONTROL_FLAGS; 19576 DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_CONTROL_FLAGS); 19577 /***************************************************************************** 19578 * ID3D12Device9 interface 19579 */ 19580 #ifndef __ID3D12Device9_INTERFACE_DEFINED__ 19581 #define __ID3D12Device9_INTERFACE_DEFINED__ 19582 19583 DEFINE_GUID(IID_ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c); 19584 #if defined(__cplusplus) && !defined(CINTERFACE) 19585 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c") 19586 ID3D12Device9 : public ID3D12Device8 19587 { 19588 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession( 19589 const D3D12_SHADER_CACHE_SESSION_DESC *desc, 19590 REFIID riid, 19591 void **session) = 0; 19592 19593 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl( 19594 D3D12_SHADER_CACHE_KIND_FLAGS kinds, 19595 D3D12_SHADER_CACHE_CONTROL_FLAGS control) = 0; 19596 19597 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1( 19598 const D3D12_COMMAND_QUEUE_DESC *desc, 19599 REFIID creator_id, 19600 REFIID riid, 19601 void **command_queue) = 0; 19602 19603 }; 19604 #ifdef __CRT_UUID_DECL 19605 __CRT_UUID_DECL(ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc,0x9e, 0xeb,0xc2,0xcf,0xa1,0xd8,0x3c) 19606 #endif 19607 #else 19608 typedef struct ID3D12Device9Vtbl { 19609 BEGIN_INTERFACE 19610 19611 /*** IUnknown methods ***/ 19612 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 19613 ID3D12Device9 *This, 19614 REFIID riid, 19615 void **ppvObject); 19616 19617 ULONG (STDMETHODCALLTYPE *AddRef)( 19618 ID3D12Device9 *This); 19619 19620 ULONG (STDMETHODCALLTYPE *Release)( 19621 ID3D12Device9 *This); 19622 19623 /*** ID3D12Object methods ***/ 19624 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 19625 ID3D12Device9 *This, 19626 REFGUID guid, 19627 UINT *data_size, 19628 void *data); 19629 19630 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 19631 ID3D12Device9 *This, 19632 REFGUID guid, 19633 UINT data_size, 19634 const void *data); 19635 19636 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 19637 ID3D12Device9 *This, 19638 REFGUID guid, 19639 const IUnknown *data); 19640 19641 HRESULT (STDMETHODCALLTYPE *SetName)( 19642 ID3D12Device9 *This, 19643 const WCHAR *name); 19644 19645 /*** ID3D12Device methods ***/ 19646 UINT (STDMETHODCALLTYPE *GetNodeCount)( 19647 ID3D12Device9 *This); 19648 19649 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 19650 ID3D12Device9 *This, 19651 const D3D12_COMMAND_QUEUE_DESC *desc, 19652 REFIID riid, 19653 void **command_queue); 19654 19655 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 19656 ID3D12Device9 *This, 19657 D3D12_COMMAND_LIST_TYPE type, 19658 REFIID riid, 19659 void **command_allocator); 19660 19661 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 19662 ID3D12Device9 *This, 19663 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 19664 REFIID riid, 19665 void **pipeline_state); 19666 19667 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 19668 ID3D12Device9 *This, 19669 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 19670 REFIID riid, 19671 void **pipeline_state); 19672 19673 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 19674 ID3D12Device9 *This, 19675 UINT node_mask, 19676 D3D12_COMMAND_LIST_TYPE type, 19677 ID3D12CommandAllocator *command_allocator, 19678 ID3D12PipelineState *initial_pipeline_state, 19679 REFIID riid, 19680 void **command_list); 19681 19682 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 19683 ID3D12Device9 *This, 19684 D3D12_FEATURE feature, 19685 void *feature_data, 19686 UINT feature_data_size); 19687 19688 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 19689 ID3D12Device9 *This, 19690 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 19691 REFIID riid, 19692 void **descriptor_heap); 19693 19694 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 19695 ID3D12Device9 *This, 19696 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 19697 19698 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 19699 ID3D12Device9 *This, 19700 UINT node_mask, 19701 const void *bytecode, 19702 SIZE_T bytecode_length, 19703 REFIID riid, 19704 void **root_signature); 19705 19706 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 19707 ID3D12Device9 *This, 19708 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 19709 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19710 19711 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 19712 ID3D12Device9 *This, 19713 ID3D12Resource *resource, 19714 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 19715 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19716 19717 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 19718 ID3D12Device9 *This, 19719 ID3D12Resource *resource, 19720 ID3D12Resource *counter_resource, 19721 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 19722 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19723 19724 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 19725 ID3D12Device9 *This, 19726 ID3D12Resource *resource, 19727 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 19728 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19729 19730 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 19731 ID3D12Device9 *This, 19732 ID3D12Resource *resource, 19733 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 19734 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19735 19736 void (STDMETHODCALLTYPE *CreateSampler)( 19737 ID3D12Device9 *This, 19738 const D3D12_SAMPLER_DESC *desc, 19739 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 19740 19741 void (STDMETHODCALLTYPE *CopyDescriptors)( 19742 ID3D12Device9 *This, 19743 UINT dst_descriptor_range_count, 19744 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 19745 const UINT *dst_descriptor_range_sizes, 19746 UINT src_descriptor_range_count, 19747 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 19748 const UINT *src_descriptor_range_sizes, 19749 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 19750 19751 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 19752 ID3D12Device9 *This, 19753 UINT descriptor_count, 19754 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 19755 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 19756 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 19757 19758 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 19759 ID3D12Device9 *This, 19760 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 19761 UINT visible_mask, 19762 UINT reource_desc_count, 19763 const D3D12_RESOURCE_DESC *resource_descs); 19764 19765 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 19766 ID3D12Device9 *This, 19767 D3D12_HEAP_PROPERTIES *__ret, 19768 UINT node_mask, 19769 D3D12_HEAP_TYPE heap_type); 19770 19771 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 19772 ID3D12Device9 *This, 19773 const D3D12_HEAP_PROPERTIES *heap_properties, 19774 D3D12_HEAP_FLAGS heap_flags, 19775 const D3D12_RESOURCE_DESC *desc, 19776 D3D12_RESOURCE_STATES initial_state, 19777 const D3D12_CLEAR_VALUE *optimized_clear_value, 19778 REFIID riid, 19779 void **resource); 19780 19781 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 19782 ID3D12Device9 *This, 19783 const D3D12_HEAP_DESC *desc, 19784 REFIID riid, 19785 void **heap); 19786 19787 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 19788 ID3D12Device9 *This, 19789 ID3D12Heap *heap, 19790 UINT64 heap_offset, 19791 const D3D12_RESOURCE_DESC *desc, 19792 D3D12_RESOURCE_STATES initial_state, 19793 const D3D12_CLEAR_VALUE *optimized_clear_value, 19794 REFIID riid, 19795 void **resource); 19796 19797 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 19798 ID3D12Device9 *This, 19799 const D3D12_RESOURCE_DESC *desc, 19800 D3D12_RESOURCE_STATES initial_state, 19801 const D3D12_CLEAR_VALUE *optimized_clear_value, 19802 REFIID riid, 19803 void **resource); 19804 19805 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 19806 ID3D12Device9 *This, 19807 ID3D12DeviceChild *object, 19808 const SECURITY_ATTRIBUTES *attributes, 19809 DWORD access, 19810 const WCHAR *name, 19811 HANDLE *handle); 19812 19813 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 19814 ID3D12Device9 *This, 19815 HANDLE handle, 19816 REFIID riid, 19817 void **object); 19818 19819 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 19820 ID3D12Device9 *This, 19821 const WCHAR *name, 19822 DWORD access, 19823 HANDLE *handle); 19824 19825 HRESULT (STDMETHODCALLTYPE *MakeResident)( 19826 ID3D12Device9 *This, 19827 UINT object_count, 19828 ID3D12Pageable *const *objects); 19829 19830 HRESULT (STDMETHODCALLTYPE *Evict)( 19831 ID3D12Device9 *This, 19832 UINT object_count, 19833 ID3D12Pageable *const *objects); 19834 19835 HRESULT (STDMETHODCALLTYPE *CreateFence)( 19836 ID3D12Device9 *This, 19837 UINT64 initial_value, 19838 D3D12_FENCE_FLAGS flags, 19839 REFIID riid, 19840 void **fence); 19841 19842 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 19843 ID3D12Device9 *This); 19844 19845 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 19846 ID3D12Device9 *This, 19847 const D3D12_RESOURCE_DESC *desc, 19848 UINT first_sub_resource, 19849 UINT sub_resource_count, 19850 UINT64 base_offset, 19851 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 19852 UINT *row_count, 19853 UINT64 *row_size, 19854 UINT64 *total_bytes); 19855 19856 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 19857 ID3D12Device9 *This, 19858 const D3D12_QUERY_HEAP_DESC *desc, 19859 REFIID riid, 19860 void **heap); 19861 19862 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 19863 ID3D12Device9 *This, 19864 WINBOOL enable); 19865 19866 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 19867 ID3D12Device9 *This, 19868 const D3D12_COMMAND_SIGNATURE_DESC *desc, 19869 ID3D12RootSignature *root_signature, 19870 REFIID riid, 19871 void **command_signature); 19872 19873 void (STDMETHODCALLTYPE *GetResourceTiling)( 19874 ID3D12Device9 *This, 19875 ID3D12Resource *resource, 19876 UINT *total_tile_count, 19877 D3D12_PACKED_MIP_INFO *packed_mip_info, 19878 D3D12_TILE_SHAPE *standard_tile_shape, 19879 UINT *sub_resource_tiling_count, 19880 UINT first_sub_resource_tiling, 19881 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 19882 19883 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 19884 ID3D12Device9 *This, 19885 LUID *__ret); 19886 19887 /*** ID3D12Device1 methods ***/ 19888 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 19889 ID3D12Device9 *This, 19890 const void *blob, 19891 SIZE_T blob_size, 19892 REFIID iid, 19893 void **lib); 19894 19895 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 19896 ID3D12Device9 *This, 19897 ID3D12Fence *const *fences, 19898 const UINT64 *values, 19899 UINT fence_count, 19900 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 19901 HANDLE event); 19902 19903 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 19904 ID3D12Device9 *This, 19905 UINT object_count, 19906 ID3D12Pageable *const *objects, 19907 const D3D12_RESIDENCY_PRIORITY *priorities); 19908 19909 /*** ID3D12Device2 methods ***/ 19910 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 19911 ID3D12Device9 *This, 19912 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 19913 REFIID riid, 19914 void **pipeline_state); 19915 19916 /*** ID3D12Device3 methods ***/ 19917 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 19918 ID3D12Device9 *This, 19919 const void *address, 19920 REFIID riid, 19921 void **heap); 19922 19923 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 19924 ID3D12Device9 *This, 19925 HANDLE file_mapping, 19926 REFIID riid, 19927 void **heap); 19928 19929 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 19930 ID3D12Device9 *This, 19931 D3D12_RESIDENCY_FLAGS flags, 19932 UINT num_objects, 19933 ID3D12Pageable *const *objects, 19934 ID3D12Fence *fence, 19935 UINT64 fence_value); 19936 19937 /*** ID3D12Device4 methods ***/ 19938 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 19939 ID3D12Device9 *This, 19940 UINT node_mask, 19941 D3D12_COMMAND_LIST_TYPE type, 19942 D3D12_COMMAND_LIST_FLAGS flags, 19943 REFIID riid, 19944 void **command_list); 19945 19946 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 19947 ID3D12Device9 *This, 19948 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 19949 REFIID riid, 19950 void **session); 19951 19952 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 19953 ID3D12Device9 *This, 19954 const D3D12_HEAP_PROPERTIES *heap_properties, 19955 D3D12_HEAP_FLAGS heap_flags, 19956 const D3D12_RESOURCE_DESC *desc, 19957 D3D12_RESOURCE_STATES initial_resource_state, 19958 const D3D12_CLEAR_VALUE *optimized_clear_value, 19959 ID3D12ProtectedResourceSession *protected_session, 19960 REFIID riid_resource, 19961 void **resource); 19962 19963 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 19964 ID3D12Device9 *This, 19965 const D3D12_HEAP_DESC *desc, 19966 ID3D12ProtectedResourceSession *protected_session, 19967 REFIID riid, 19968 void **heap); 19969 19970 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 19971 ID3D12Device9 *This, 19972 const D3D12_RESOURCE_DESC *desc, 19973 D3D12_RESOURCE_STATES initial_state, 19974 const D3D12_CLEAR_VALUE *optimized_clear_value, 19975 ID3D12ProtectedResourceSession *protected_session, 19976 REFIID riid, 19977 void **resource); 19978 19979 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 19980 ID3D12Device9 *This, 19981 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 19982 UINT visible_mask, 19983 UINT resource_descs_count, 19984 const D3D12_RESOURCE_DESC *resource_descs, 19985 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 19986 19987 /*** ID3D12Device5 methods ***/ 19988 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 19989 ID3D12Device9 *This, 19990 ID3D12LifetimeOwner *owner, 19991 REFIID riid, 19992 void **tracker); 19993 19994 void (STDMETHODCALLTYPE *RemoveDevice)( 19995 ID3D12Device9 *This); 19996 19997 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 19998 ID3D12Device9 *This, 19999 UINT *meta_commands_count, 20000 D3D12_META_COMMAND_DESC *descs); 20001 20002 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 20003 ID3D12Device9 *This, 20004 REFGUID command_id, 20005 D3D12_META_COMMAND_PARAMETER_STAGE stage, 20006 UINT *total_structure_size_in_bytes, 20007 UINT *parameter_count, 20008 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 20009 20010 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 20011 ID3D12Device9 *This, 20012 REFGUID command_id, 20013 UINT node_mask, 20014 const void *creation_parameters_data, 20015 SIZE_T creation_parameters_data_size_in_bytes, 20016 REFIID riid, 20017 void **meta_command); 20018 20019 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 20020 ID3D12Device9 *This, 20021 const D3D12_STATE_OBJECT_DESC *desc, 20022 REFIID riid, 20023 void **state_object); 20024 20025 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 20026 ID3D12Device9 *This, 20027 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 20028 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 20029 20030 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 20031 ID3D12Device9 *This, 20032 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 20033 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 20034 20035 /*** ID3D12Device6 methods ***/ 20036 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)( 20037 ID3D12Device9 *This, 20038 D3D12_BACKGROUND_PROCESSING_MODE mode, 20039 D3D12_MEASUREMENTS_ACTION action, 20040 HANDLE event, 20041 WINBOOL *further_measurements_desired); 20042 20043 /*** ID3D12Device7 methods ***/ 20044 HRESULT (STDMETHODCALLTYPE *AddToStateObject)( 20045 ID3D12Device9 *This, 20046 const D3D12_STATE_OBJECT_DESC *addition, 20047 ID3D12StateObject *state_object_to_grow_from, 20048 REFIID riid, 20049 void **new_state_object); 20050 20051 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)( 20052 ID3D12Device9 *This, 20053 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc, 20054 REFIID riid, 20055 void **session); 20056 20057 /*** ID3D12Device8 methods ***/ 20058 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)( 20059 ID3D12Device9 *This, 20060 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 20061 UINT visible_mask, 20062 UINT resource_descs_count, 20063 const D3D12_RESOURCE_DESC1 *resource_descs, 20064 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 20065 20066 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)( 20067 ID3D12Device9 *This, 20068 const D3D12_HEAP_PROPERTIES *heap_properties, 20069 D3D12_HEAP_FLAGS heap_flags, 20070 const D3D12_RESOURCE_DESC1 *desc, 20071 D3D12_RESOURCE_STATES initial_resource_state, 20072 const D3D12_CLEAR_VALUE *optimized_clear_value, 20073 ID3D12ProtectedResourceSession *protected_session, 20074 REFIID riid_resource, 20075 void **resource); 20076 20077 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)( 20078 ID3D12Device9 *This, 20079 ID3D12Heap *heap, 20080 UINT64 heap_offset, 20081 const D3D12_RESOURCE_DESC1 *desc, 20082 D3D12_RESOURCE_STATES initial_state, 20083 const D3D12_CLEAR_VALUE *optimized_clear_value, 20084 REFIID riid, 20085 void **resource); 20086 20087 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)( 20088 ID3D12Device9 *This, 20089 ID3D12Resource *targeted_resource, 20090 ID3D12Resource *feedback_resource, 20091 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor); 20092 20093 void (STDMETHODCALLTYPE *GetCopyableFootprints1)( 20094 ID3D12Device9 *This, 20095 const D3D12_RESOURCE_DESC1 *resource_desc, 20096 UINT first_subresource, 20097 UINT subresources_count, 20098 UINT64 base_offset, 20099 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 20100 UINT *rows_count, 20101 UINT64 *row_size_in_bytes, 20102 UINT64 *total_bytes); 20103 20104 /*** ID3D12Device9 methods ***/ 20105 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)( 20106 ID3D12Device9 *This, 20107 const D3D12_SHADER_CACHE_SESSION_DESC *desc, 20108 REFIID riid, 20109 void **session); 20110 20111 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)( 20112 ID3D12Device9 *This, 20113 D3D12_SHADER_CACHE_KIND_FLAGS kinds, 20114 D3D12_SHADER_CACHE_CONTROL_FLAGS control); 20115 20116 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)( 20117 ID3D12Device9 *This, 20118 const D3D12_COMMAND_QUEUE_DESC *desc, 20119 REFIID creator_id, 20120 REFIID riid, 20121 void **command_queue); 20122 20123 END_INTERFACE 20124 } ID3D12Device9Vtbl; 20125 20126 interface ID3D12Device9 { 20127 CONST_VTBL ID3D12Device9Vtbl* lpVtbl; 20128 }; 20129 20130 #ifdef COBJMACROS 20131 #ifndef WIDL_C_INLINE_WRAPPERS 20132 /*** IUnknown methods ***/ 20133 #define ID3D12Device9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 20134 #define ID3D12Device9_AddRef(This) (This)->lpVtbl->AddRef(This) 20135 #define ID3D12Device9_Release(This) (This)->lpVtbl->Release(This) 20136 /*** ID3D12Object methods ***/ 20137 #define ID3D12Device9_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 20138 #define ID3D12Device9_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 20139 #define ID3D12Device9_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 20140 #define ID3D12Device9_SetName(This,name) (This)->lpVtbl->SetName(This,name) 20141 /*** ID3D12Device methods ***/ 20142 #define ID3D12Device9_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 20143 #define ID3D12Device9_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 20144 #define ID3D12Device9_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 20145 #define ID3D12Device9_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 20146 #define ID3D12Device9_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 20147 #define ID3D12Device9_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 20148 #define ID3D12Device9_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 20149 #define ID3D12Device9_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 20150 #define ID3D12Device9_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 20151 #define ID3D12Device9_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 20152 #define ID3D12Device9_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 20153 #define ID3D12Device9_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 20154 #define ID3D12Device9_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 20155 #define ID3D12Device9_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 20156 #define ID3D12Device9_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 20157 #define ID3D12Device9_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 20158 #define ID3D12Device9_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 20159 #define ID3D12Device9_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 20160 #define ID3D12Device9_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device9_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 20161 #define ID3D12Device9_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device9_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 20162 #define ID3D12Device9_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 20163 #define ID3D12Device9_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 20164 #define ID3D12Device9_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 20165 #define ID3D12Device9_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 20166 #define ID3D12Device9_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 20167 #define ID3D12Device9_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 20168 #define ID3D12Device9_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 20169 #define ID3D12Device9_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 20170 #define ID3D12Device9_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 20171 #define ID3D12Device9_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 20172 #define ID3D12Device9_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 20173 #define ID3D12Device9_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 20174 #define ID3D12Device9_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 20175 #define ID3D12Device9_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 20176 #define ID3D12Device9_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 20177 #define ID3D12Device9_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 20178 #define ID3D12Device9_GetAdapterLuid(This) ID3D12Device9_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 20179 /*** ID3D12Device1 methods ***/ 20180 #define ID3D12Device9_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 20181 #define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 20182 #define ID3D12Device9_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 20183 /*** ID3D12Device2 methods ***/ 20184 #define ID3D12Device9_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 20185 /*** ID3D12Device3 methods ***/ 20186 #define ID3D12Device9_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 20187 #define ID3D12Device9_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 20188 #define ID3D12Device9_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 20189 /*** ID3D12Device4 methods ***/ 20190 #define ID3D12Device9_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 20191 #define ID3D12Device9_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 20192 #define ID3D12Device9_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 20193 #define ID3D12Device9_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 20194 #define ID3D12Device9_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 20195 #define ID3D12Device9_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device9_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 20196 /*** ID3D12Device5 methods ***/ 20197 #define ID3D12Device9_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 20198 #define ID3D12Device9_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 20199 #define ID3D12Device9_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 20200 #define ID3D12Device9_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 20201 #define ID3D12Device9_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 20202 #define ID3D12Device9_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 20203 #define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 20204 #define ID3D12Device9_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 20205 /*** ID3D12Device6 methods ***/ 20206 #define ID3D12Device9_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) 20207 /*** ID3D12Device7 methods ***/ 20208 #define ID3D12Device9_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) 20209 #define ID3D12Device9_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session) 20210 /*** ID3D12Device8 methods ***/ 20211 #define ID3D12Device9_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device9_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 20212 #define ID3D12Device9_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 20213 #define ID3D12Device9_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 20214 #define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) 20215 #define ID3D12Device9_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) 20216 /*** ID3D12Device9 methods ***/ 20217 #define ID3D12Device9_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session) 20218 #define ID3D12Device9_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control) 20219 #define ID3D12Device9_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue) 20220 #else 20221 /*** IUnknown methods ***/ 20222 static inline HRESULT ID3D12Device9_QueryInterface(ID3D12Device9* This,REFIID riid,void **ppvObject) { 20223 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 20224 } 20225 static inline ULONG ID3D12Device9_AddRef(ID3D12Device9* This) { 20226 return This->lpVtbl->AddRef(This); 20227 } 20228 static inline ULONG ID3D12Device9_Release(ID3D12Device9* This) { 20229 return This->lpVtbl->Release(This); 20230 } 20231 /*** ID3D12Object methods ***/ 20232 static inline HRESULT ID3D12Device9_GetPrivateData(ID3D12Device9* This,REFGUID guid,UINT *data_size,void *data) { 20233 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 20234 } 20235 static inline HRESULT ID3D12Device9_SetPrivateData(ID3D12Device9* This,REFGUID guid,UINT data_size,const void *data) { 20236 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 20237 } 20238 static inline HRESULT ID3D12Device9_SetPrivateDataInterface(ID3D12Device9* This,REFGUID guid,const IUnknown *data) { 20239 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 20240 } 20241 static inline HRESULT ID3D12Device9_SetName(ID3D12Device9* This,const WCHAR *name) { 20242 return This->lpVtbl->SetName(This,name); 20243 } 20244 /*** ID3D12Device methods ***/ 20245 static inline UINT ID3D12Device9_GetNodeCount(ID3D12Device9* This) { 20246 return This->lpVtbl->GetNodeCount(This); 20247 } 20248 static inline HRESULT ID3D12Device9_CreateCommandQueue(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 20249 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 20250 } 20251 static inline HRESULT ID3D12Device9_CreateCommandAllocator(ID3D12Device9* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 20252 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 20253 } 20254 static inline HRESULT ID3D12Device9_CreateGraphicsPipelineState(ID3D12Device9* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 20255 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 20256 } 20257 static inline HRESULT ID3D12Device9_CreateComputePipelineState(ID3D12Device9* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 20258 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 20259 } 20260 static inline HRESULT ID3D12Device9_CreateCommandList(ID3D12Device9* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 20261 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 20262 } 20263 static inline HRESULT ID3D12Device9_CheckFeatureSupport(ID3D12Device9* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 20264 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 20265 } 20266 static inline HRESULT ID3D12Device9_CreateDescriptorHeap(ID3D12Device9* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 20267 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 20268 } 20269 static inline UINT ID3D12Device9_GetDescriptorHandleIncrementSize(ID3D12Device9* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 20270 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 20271 } 20272 static inline HRESULT ID3D12Device9_CreateRootSignature(ID3D12Device9* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 20273 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 20274 } 20275 static inline void ID3D12Device9_CreateConstantBufferView(ID3D12Device9* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20276 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 20277 } 20278 static inline void ID3D12Device9_CreateShaderResourceView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20279 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 20280 } 20281 static inline void ID3D12Device9_CreateUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20282 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 20283 } 20284 static inline void ID3D12Device9_CreateRenderTargetView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20285 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 20286 } 20287 static inline void ID3D12Device9_CreateDepthStencilView(ID3D12Device9* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20288 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 20289 } 20290 static inline void ID3D12Device9_CreateSampler(ID3D12Device9* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 20291 This->lpVtbl->CreateSampler(This,desc,descriptor); 20292 } 20293 static inline void ID3D12Device9_CopyDescriptors(ID3D12Device9* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 20294 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 20295 } 20296 static inline void ID3D12Device9_CopyDescriptorsSimple(ID3D12Device9* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 20297 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 20298 } 20299 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo(ID3D12Device9* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 20300 D3D12_RESOURCE_ALLOCATION_INFO __ret; 20301 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 20302 } 20303 static inline D3D12_HEAP_PROPERTIES ID3D12Device9_GetCustomHeapProperties(ID3D12Device9* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 20304 D3D12_HEAP_PROPERTIES __ret; 20305 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 20306 } 20307 static inline HRESULT ID3D12Device9_CreateCommittedResource(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 20308 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 20309 } 20310 static inline HRESULT ID3D12Device9_CreateHeap(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 20311 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 20312 } 20313 static inline HRESULT ID3D12Device9_CreatePlacedResource(ID3D12Device9* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 20314 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 20315 } 20316 static inline HRESULT ID3D12Device9_CreateReservedResource(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 20317 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 20318 } 20319 static inline HRESULT ID3D12Device9_CreateSharedHandle(ID3D12Device9* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 20320 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 20321 } 20322 static inline HRESULT ID3D12Device9_OpenSharedHandle(ID3D12Device9* This,HANDLE handle,REFIID riid,void **object) { 20323 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 20324 } 20325 static inline HRESULT ID3D12Device9_OpenSharedHandleByName(ID3D12Device9* This,const WCHAR *name,DWORD access,HANDLE *handle) { 20326 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 20327 } 20328 static inline HRESULT ID3D12Device9_MakeResident(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) { 20329 return This->lpVtbl->MakeResident(This,object_count,objects); 20330 } 20331 static inline HRESULT ID3D12Device9_Evict(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects) { 20332 return This->lpVtbl->Evict(This,object_count,objects); 20333 } 20334 static inline HRESULT ID3D12Device9_CreateFence(ID3D12Device9* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 20335 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 20336 } 20337 static inline HRESULT ID3D12Device9_GetDeviceRemovedReason(ID3D12Device9* This) { 20338 return This->lpVtbl->GetDeviceRemovedReason(This); 20339 } 20340 static inline void ID3D12Device9_GetCopyableFootprints(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 20341 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 20342 } 20343 static inline HRESULT ID3D12Device9_CreateQueryHeap(ID3D12Device9* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 20344 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 20345 } 20346 static inline HRESULT ID3D12Device9_SetStablePowerState(ID3D12Device9* This,WINBOOL enable) { 20347 return This->lpVtbl->SetStablePowerState(This,enable); 20348 } 20349 static inline HRESULT ID3D12Device9_CreateCommandSignature(ID3D12Device9* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 20350 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 20351 } 20352 static inline void ID3D12Device9_GetResourceTiling(ID3D12Device9* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 20353 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 20354 } 20355 static inline LUID ID3D12Device9_GetAdapterLuid(ID3D12Device9* This) { 20356 LUID __ret; 20357 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 20358 } 20359 /*** ID3D12Device1 methods ***/ 20360 static inline HRESULT ID3D12Device9_CreatePipelineLibrary(ID3D12Device9* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 20361 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 20362 } 20363 static inline HRESULT ID3D12Device9_SetEventOnMultipleFenceCompletion(ID3D12Device9* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 20364 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 20365 } 20366 static inline HRESULT ID3D12Device9_SetResidencyPriority(ID3D12Device9* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 20367 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 20368 } 20369 /*** ID3D12Device2 methods ***/ 20370 static inline HRESULT ID3D12Device9_CreatePipelineState(ID3D12Device9* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 20371 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 20372 } 20373 /*** ID3D12Device3 methods ***/ 20374 static inline HRESULT ID3D12Device9_OpenExistingHeapFromAddress(ID3D12Device9* This,const void *address,REFIID riid,void **heap) { 20375 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 20376 } 20377 static inline HRESULT ID3D12Device9_OpenExistingHeapFromFileMapping(ID3D12Device9* This,HANDLE file_mapping,REFIID riid,void **heap) { 20378 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 20379 } 20380 static inline HRESULT ID3D12Device9_EnqueueMakeResident(ID3D12Device9* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 20381 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 20382 } 20383 /*** ID3D12Device4 methods ***/ 20384 static inline HRESULT ID3D12Device9_CreateCommandList1(ID3D12Device9* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 20385 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 20386 } 20387 static inline HRESULT ID3D12Device9_CreateProtectedResourceSession(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 20388 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 20389 } 20390 static inline HRESULT ID3D12Device9_CreateCommittedResource1(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 20391 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 20392 } 20393 static inline HRESULT ID3D12Device9_CreateHeap1(ID3D12Device9* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 20394 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 20395 } 20396 static inline HRESULT ID3D12Device9_CreateReservedResource1(ID3D12Device9* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 20397 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 20398 } 20399 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo1(ID3D12Device9* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 20400 D3D12_RESOURCE_ALLOCATION_INFO __ret; 20401 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 20402 } 20403 /*** ID3D12Device5 methods ***/ 20404 static inline HRESULT ID3D12Device9_CreateLifetimeTracker(ID3D12Device9* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 20405 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 20406 } 20407 static inline void ID3D12Device9_RemoveDevice(ID3D12Device9* This) { 20408 This->lpVtbl->RemoveDevice(This); 20409 } 20410 static inline HRESULT ID3D12Device9_EnumerateMetaCommands(ID3D12Device9* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 20411 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 20412 } 20413 static inline HRESULT ID3D12Device9_EnumerateMetaCommandParameters(ID3D12Device9* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 20414 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 20415 } 20416 static inline HRESULT ID3D12Device9_CreateMetaCommand(ID3D12Device9* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 20417 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 20418 } 20419 static inline HRESULT ID3D12Device9_CreateStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 20420 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 20421 } 20422 static inline void ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device9* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 20423 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 20424 } 20425 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device9_CheckDriverMatchingIdentifier(ID3D12Device9* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 20426 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 20427 } 20428 /*** ID3D12Device6 methods ***/ 20429 static inline HRESULT ID3D12Device9_SetBackgroundProcessingMode(ID3D12Device9* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) { 20430 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired); 20431 } 20432 /*** ID3D12Device7 methods ***/ 20433 static inline HRESULT ID3D12Device9_AddToStateObject(ID3D12Device9* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) { 20434 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object); 20435 } 20436 static inline HRESULT ID3D12Device9_CreateProtectedResourceSession1(ID3D12Device9* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) { 20437 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session); 20438 } 20439 /*** ID3D12Device8 methods ***/ 20440 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device9_GetResourceAllocationInfo2(ID3D12Device9* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 20441 D3D12_RESOURCE_ALLOCATION_INFO __ret; 20442 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 20443 } 20444 static inline HRESULT ID3D12Device9_CreateCommittedResource2(ID3D12Device9* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 20445 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 20446 } 20447 static inline HRESULT ID3D12Device9_CreatePlacedResource1(ID3D12Device9* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 20448 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 20449 } 20450 static inline void ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device9* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) { 20451 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor); 20452 } 20453 static inline void ID3D12Device9_GetCopyableFootprints1(ID3D12Device9* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) { 20454 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes); 20455 } 20456 /*** ID3D12Device9 methods ***/ 20457 static inline HRESULT ID3D12Device9_CreateShaderCacheSession(ID3D12Device9* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) { 20458 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session); 20459 } 20460 static inline HRESULT ID3D12Device9_ShaderCacheControl(ID3D12Device9* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) { 20461 return This->lpVtbl->ShaderCacheControl(This,kinds,control); 20462 } 20463 static inline HRESULT ID3D12Device9_CreateCommandQueue1(ID3D12Device9* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) { 20464 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue); 20465 } 20466 #endif 20467 #endif 20468 20469 #endif 20470 20471 20472 #endif /* __ID3D12Device9_INTERFACE_DEFINED__ */ 20473 20474 /***************************************************************************** 20475 * ID3D12Device10 interface 20476 */ 20477 #ifndef __ID3D12Device10_INTERFACE_DEFINED__ 20478 #define __ID3D12Device10_INTERFACE_DEFINED__ 20479 20480 DEFINE_GUID(IID_ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31); 20481 #if defined(__cplusplus) && !defined(CINTERFACE) 20482 MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031") 20483 ID3D12Device10 : public ID3D12Device9 20484 { 20485 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3( 20486 const D3D12_HEAP_PROPERTIES *heap_properties, 20487 D3D12_HEAP_FLAGS heap_flags, 20488 const D3D12_RESOURCE_DESC1 *desc, 20489 D3D12_BARRIER_LAYOUT initial_layout, 20490 const D3D12_CLEAR_VALUE *optimized_clear_value, 20491 ID3D12ProtectedResourceSession *protected_session, 20492 UINT32 castable_formats_count, 20493 DXGI_FORMAT *castable_formats, 20494 REFIID riid_resource, 20495 void **resource) = 0; 20496 20497 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2( 20498 ID3D12Heap *heap, 20499 UINT64 heap_offset, 20500 const D3D12_RESOURCE_DESC1 *desc, 20501 D3D12_BARRIER_LAYOUT initial_layout, 20502 const D3D12_CLEAR_VALUE *optimized_clear_value, 20503 UINT32 castable_formats_count, 20504 DXGI_FORMAT *castable_formats, 20505 REFIID riid, 20506 void **resource) = 0; 20507 20508 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2( 20509 const D3D12_RESOURCE_DESC *desc, 20510 D3D12_BARRIER_LAYOUT initial_layout, 20511 const D3D12_CLEAR_VALUE *optimized_clear_value, 20512 ID3D12ProtectedResourceSession *protected_session, 20513 UINT32 castable_formats_count, 20514 DXGI_FORMAT *castable_formats, 20515 REFIID riid, 20516 void **resource) = 0; 20517 20518 }; 20519 #ifdef __CRT_UUID_DECL 20520 __CRT_UUID_DECL(ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0,0x2b, 0xa7,0xab,0x89,0xc0,0x60,0x31) 20521 #endif 20522 #else 20523 typedef struct ID3D12Device10Vtbl { 20524 BEGIN_INTERFACE 20525 20526 /*** IUnknown methods ***/ 20527 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 20528 ID3D12Device10 *This, 20529 REFIID riid, 20530 void **ppvObject); 20531 20532 ULONG (STDMETHODCALLTYPE *AddRef)( 20533 ID3D12Device10 *This); 20534 20535 ULONG (STDMETHODCALLTYPE *Release)( 20536 ID3D12Device10 *This); 20537 20538 /*** ID3D12Object methods ***/ 20539 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 20540 ID3D12Device10 *This, 20541 REFGUID guid, 20542 UINT *data_size, 20543 void *data); 20544 20545 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 20546 ID3D12Device10 *This, 20547 REFGUID guid, 20548 UINT data_size, 20549 const void *data); 20550 20551 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 20552 ID3D12Device10 *This, 20553 REFGUID guid, 20554 const IUnknown *data); 20555 20556 HRESULT (STDMETHODCALLTYPE *SetName)( 20557 ID3D12Device10 *This, 20558 const WCHAR *name); 20559 20560 /*** ID3D12Device methods ***/ 20561 UINT (STDMETHODCALLTYPE *GetNodeCount)( 20562 ID3D12Device10 *This); 20563 20564 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)( 20565 ID3D12Device10 *This, 20566 const D3D12_COMMAND_QUEUE_DESC *desc, 20567 REFIID riid, 20568 void **command_queue); 20569 20570 HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)( 20571 ID3D12Device10 *This, 20572 D3D12_COMMAND_LIST_TYPE type, 20573 REFIID riid, 20574 void **command_allocator); 20575 20576 HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)( 20577 ID3D12Device10 *This, 20578 const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc, 20579 REFIID riid, 20580 void **pipeline_state); 20581 20582 HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)( 20583 ID3D12Device10 *This, 20584 const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc, 20585 REFIID riid, 20586 void **pipeline_state); 20587 20588 HRESULT (STDMETHODCALLTYPE *CreateCommandList)( 20589 ID3D12Device10 *This, 20590 UINT node_mask, 20591 D3D12_COMMAND_LIST_TYPE type, 20592 ID3D12CommandAllocator *command_allocator, 20593 ID3D12PipelineState *initial_pipeline_state, 20594 REFIID riid, 20595 void **command_list); 20596 20597 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 20598 ID3D12Device10 *This, 20599 D3D12_FEATURE feature, 20600 void *feature_data, 20601 UINT feature_data_size); 20602 20603 HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)( 20604 ID3D12Device10 *This, 20605 const D3D12_DESCRIPTOR_HEAP_DESC *desc, 20606 REFIID riid, 20607 void **descriptor_heap); 20608 20609 UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)( 20610 ID3D12Device10 *This, 20611 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 20612 20613 HRESULT (STDMETHODCALLTYPE *CreateRootSignature)( 20614 ID3D12Device10 *This, 20615 UINT node_mask, 20616 const void *bytecode, 20617 SIZE_T bytecode_length, 20618 REFIID riid, 20619 void **root_signature); 20620 20621 void (STDMETHODCALLTYPE *CreateConstantBufferView)( 20622 ID3D12Device10 *This, 20623 const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc, 20624 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20625 20626 void (STDMETHODCALLTYPE *CreateShaderResourceView)( 20627 ID3D12Device10 *This, 20628 ID3D12Resource *resource, 20629 const D3D12_SHADER_RESOURCE_VIEW_DESC *desc, 20630 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20631 20632 void (STDMETHODCALLTYPE *CreateUnorderedAccessView)( 20633 ID3D12Device10 *This, 20634 ID3D12Resource *resource, 20635 ID3D12Resource *counter_resource, 20636 const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc, 20637 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20638 20639 void (STDMETHODCALLTYPE *CreateRenderTargetView)( 20640 ID3D12Device10 *This, 20641 ID3D12Resource *resource, 20642 const D3D12_RENDER_TARGET_VIEW_DESC *desc, 20643 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20644 20645 void (STDMETHODCALLTYPE *CreateDepthStencilView)( 20646 ID3D12Device10 *This, 20647 ID3D12Resource *resource, 20648 const D3D12_DEPTH_STENCIL_VIEW_DESC *desc, 20649 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20650 20651 void (STDMETHODCALLTYPE *CreateSampler)( 20652 ID3D12Device10 *This, 20653 const D3D12_SAMPLER_DESC *desc, 20654 D3D12_CPU_DESCRIPTOR_HANDLE descriptor); 20655 20656 void (STDMETHODCALLTYPE *CopyDescriptors)( 20657 ID3D12Device10 *This, 20658 UINT dst_descriptor_range_count, 20659 const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets, 20660 const UINT *dst_descriptor_range_sizes, 20661 UINT src_descriptor_range_count, 20662 const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets, 20663 const UINT *src_descriptor_range_sizes, 20664 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 20665 20666 void (STDMETHODCALLTYPE *CopyDescriptorsSimple)( 20667 ID3D12Device10 *This, 20668 UINT descriptor_count, 20669 const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset, 20670 const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset, 20671 D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type); 20672 20673 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)( 20674 ID3D12Device10 *This, 20675 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 20676 UINT visible_mask, 20677 UINT reource_desc_count, 20678 const D3D12_RESOURCE_DESC *resource_descs); 20679 20680 D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)( 20681 ID3D12Device10 *This, 20682 D3D12_HEAP_PROPERTIES *__ret, 20683 UINT node_mask, 20684 D3D12_HEAP_TYPE heap_type); 20685 20686 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)( 20687 ID3D12Device10 *This, 20688 const D3D12_HEAP_PROPERTIES *heap_properties, 20689 D3D12_HEAP_FLAGS heap_flags, 20690 const D3D12_RESOURCE_DESC *desc, 20691 D3D12_RESOURCE_STATES initial_state, 20692 const D3D12_CLEAR_VALUE *optimized_clear_value, 20693 REFIID riid, 20694 void **resource); 20695 20696 HRESULT (STDMETHODCALLTYPE *CreateHeap)( 20697 ID3D12Device10 *This, 20698 const D3D12_HEAP_DESC *desc, 20699 REFIID riid, 20700 void **heap); 20701 20702 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)( 20703 ID3D12Device10 *This, 20704 ID3D12Heap *heap, 20705 UINT64 heap_offset, 20706 const D3D12_RESOURCE_DESC *desc, 20707 D3D12_RESOURCE_STATES initial_state, 20708 const D3D12_CLEAR_VALUE *optimized_clear_value, 20709 REFIID riid, 20710 void **resource); 20711 20712 HRESULT (STDMETHODCALLTYPE *CreateReservedResource)( 20713 ID3D12Device10 *This, 20714 const D3D12_RESOURCE_DESC *desc, 20715 D3D12_RESOURCE_STATES initial_state, 20716 const D3D12_CLEAR_VALUE *optimized_clear_value, 20717 REFIID riid, 20718 void **resource); 20719 20720 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)( 20721 ID3D12Device10 *This, 20722 ID3D12DeviceChild *object, 20723 const SECURITY_ATTRIBUTES *attributes, 20724 DWORD access, 20725 const WCHAR *name, 20726 HANDLE *handle); 20727 20728 HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)( 20729 ID3D12Device10 *This, 20730 HANDLE handle, 20731 REFIID riid, 20732 void **object); 20733 20734 HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)( 20735 ID3D12Device10 *This, 20736 const WCHAR *name, 20737 DWORD access, 20738 HANDLE *handle); 20739 20740 HRESULT (STDMETHODCALLTYPE *MakeResident)( 20741 ID3D12Device10 *This, 20742 UINT object_count, 20743 ID3D12Pageable *const *objects); 20744 20745 HRESULT (STDMETHODCALLTYPE *Evict)( 20746 ID3D12Device10 *This, 20747 UINT object_count, 20748 ID3D12Pageable *const *objects); 20749 20750 HRESULT (STDMETHODCALLTYPE *CreateFence)( 20751 ID3D12Device10 *This, 20752 UINT64 initial_value, 20753 D3D12_FENCE_FLAGS flags, 20754 REFIID riid, 20755 void **fence); 20756 20757 HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)( 20758 ID3D12Device10 *This); 20759 20760 void (STDMETHODCALLTYPE *GetCopyableFootprints)( 20761 ID3D12Device10 *This, 20762 const D3D12_RESOURCE_DESC *desc, 20763 UINT first_sub_resource, 20764 UINT sub_resource_count, 20765 UINT64 base_offset, 20766 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 20767 UINT *row_count, 20768 UINT64 *row_size, 20769 UINT64 *total_bytes); 20770 20771 HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)( 20772 ID3D12Device10 *This, 20773 const D3D12_QUERY_HEAP_DESC *desc, 20774 REFIID riid, 20775 void **heap); 20776 20777 HRESULT (STDMETHODCALLTYPE *SetStablePowerState)( 20778 ID3D12Device10 *This, 20779 WINBOOL enable); 20780 20781 HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)( 20782 ID3D12Device10 *This, 20783 const D3D12_COMMAND_SIGNATURE_DESC *desc, 20784 ID3D12RootSignature *root_signature, 20785 REFIID riid, 20786 void **command_signature); 20787 20788 void (STDMETHODCALLTYPE *GetResourceTiling)( 20789 ID3D12Device10 *This, 20790 ID3D12Resource *resource, 20791 UINT *total_tile_count, 20792 D3D12_PACKED_MIP_INFO *packed_mip_info, 20793 D3D12_TILE_SHAPE *standard_tile_shape, 20794 UINT *sub_resource_tiling_count, 20795 UINT first_sub_resource_tiling, 20796 D3D12_SUBRESOURCE_TILING *sub_resource_tilings); 20797 20798 LUID * (STDMETHODCALLTYPE *GetAdapterLuid)( 20799 ID3D12Device10 *This, 20800 LUID *__ret); 20801 20802 /*** ID3D12Device1 methods ***/ 20803 HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)( 20804 ID3D12Device10 *This, 20805 const void *blob, 20806 SIZE_T blob_size, 20807 REFIID iid, 20808 void **lib); 20809 20810 HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)( 20811 ID3D12Device10 *This, 20812 ID3D12Fence *const *fences, 20813 const UINT64 *values, 20814 UINT fence_count, 20815 D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, 20816 HANDLE event); 20817 20818 HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)( 20819 ID3D12Device10 *This, 20820 UINT object_count, 20821 ID3D12Pageable *const *objects, 20822 const D3D12_RESIDENCY_PRIORITY *priorities); 20823 20824 /*** ID3D12Device2 methods ***/ 20825 HRESULT (STDMETHODCALLTYPE *CreatePipelineState)( 20826 ID3D12Device10 *This, 20827 const D3D12_PIPELINE_STATE_STREAM_DESC *desc, 20828 REFIID riid, 20829 void **pipeline_state); 20830 20831 /*** ID3D12Device3 methods ***/ 20832 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromAddress)( 20833 ID3D12Device10 *This, 20834 const void *address, 20835 REFIID riid, 20836 void **heap); 20837 20838 HRESULT (STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping)( 20839 ID3D12Device10 *This, 20840 HANDLE file_mapping, 20841 REFIID riid, 20842 void **heap); 20843 20844 HRESULT (STDMETHODCALLTYPE *EnqueueMakeResident)( 20845 ID3D12Device10 *This, 20846 D3D12_RESIDENCY_FLAGS flags, 20847 UINT num_objects, 20848 ID3D12Pageable *const *objects, 20849 ID3D12Fence *fence, 20850 UINT64 fence_value); 20851 20852 /*** ID3D12Device4 methods ***/ 20853 HRESULT (STDMETHODCALLTYPE *CreateCommandList1)( 20854 ID3D12Device10 *This, 20855 UINT node_mask, 20856 D3D12_COMMAND_LIST_TYPE type, 20857 D3D12_COMMAND_LIST_FLAGS flags, 20858 REFIID riid, 20859 void **command_list); 20860 20861 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession)( 20862 ID3D12Device10 *This, 20863 const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc, 20864 REFIID riid, 20865 void **session); 20866 20867 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource1)( 20868 ID3D12Device10 *This, 20869 const D3D12_HEAP_PROPERTIES *heap_properties, 20870 D3D12_HEAP_FLAGS heap_flags, 20871 const D3D12_RESOURCE_DESC *desc, 20872 D3D12_RESOURCE_STATES initial_resource_state, 20873 const D3D12_CLEAR_VALUE *optimized_clear_value, 20874 ID3D12ProtectedResourceSession *protected_session, 20875 REFIID riid_resource, 20876 void **resource); 20877 20878 HRESULT (STDMETHODCALLTYPE *CreateHeap1)( 20879 ID3D12Device10 *This, 20880 const D3D12_HEAP_DESC *desc, 20881 ID3D12ProtectedResourceSession *protected_session, 20882 REFIID riid, 20883 void **heap); 20884 20885 HRESULT (STDMETHODCALLTYPE *CreateReservedResource1)( 20886 ID3D12Device10 *This, 20887 const D3D12_RESOURCE_DESC *desc, 20888 D3D12_RESOURCE_STATES initial_state, 20889 const D3D12_CLEAR_VALUE *optimized_clear_value, 20890 ID3D12ProtectedResourceSession *protected_session, 20891 REFIID riid, 20892 void **resource); 20893 20894 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo1)( 20895 ID3D12Device10 *This, 20896 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 20897 UINT visible_mask, 20898 UINT resource_descs_count, 20899 const D3D12_RESOURCE_DESC *resource_descs, 20900 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 20901 20902 /*** ID3D12Device5 methods ***/ 20903 HRESULT (STDMETHODCALLTYPE *CreateLifetimeTracker)( 20904 ID3D12Device10 *This, 20905 ID3D12LifetimeOwner *owner, 20906 REFIID riid, 20907 void **tracker); 20908 20909 void (STDMETHODCALLTYPE *RemoveDevice)( 20910 ID3D12Device10 *This); 20911 20912 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommands)( 20913 ID3D12Device10 *This, 20914 UINT *meta_commands_count, 20915 D3D12_META_COMMAND_DESC *descs); 20916 20917 HRESULT (STDMETHODCALLTYPE *EnumerateMetaCommandParameters)( 20918 ID3D12Device10 *This, 20919 REFGUID command_id, 20920 D3D12_META_COMMAND_PARAMETER_STAGE stage, 20921 UINT *total_structure_size_in_bytes, 20922 UINT *parameter_count, 20923 D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs); 20924 20925 HRESULT (STDMETHODCALLTYPE *CreateMetaCommand)( 20926 ID3D12Device10 *This, 20927 REFGUID command_id, 20928 UINT node_mask, 20929 const void *creation_parameters_data, 20930 SIZE_T creation_parameters_data_size_in_bytes, 20931 REFIID riid, 20932 void **meta_command); 20933 20934 HRESULT (STDMETHODCALLTYPE *CreateStateObject)( 20935 ID3D12Device10 *This, 20936 const D3D12_STATE_OBJECT_DESC *desc, 20937 REFIID riid, 20938 void **state_object); 20939 20940 void (STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo)( 20941 ID3D12Device10 *This, 20942 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc, 20943 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info); 20944 20945 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS (STDMETHODCALLTYPE *CheckDriverMatchingIdentifier)( 20946 ID3D12Device10 *This, 20947 D3D12_SERIALIZED_DATA_TYPE serialized_data_type, 20948 const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); 20949 20950 /*** ID3D12Device6 methods ***/ 20951 HRESULT (STDMETHODCALLTYPE *SetBackgroundProcessingMode)( 20952 ID3D12Device10 *This, 20953 D3D12_BACKGROUND_PROCESSING_MODE mode, 20954 D3D12_MEASUREMENTS_ACTION action, 20955 HANDLE event, 20956 WINBOOL *further_measurements_desired); 20957 20958 /*** ID3D12Device7 methods ***/ 20959 HRESULT (STDMETHODCALLTYPE *AddToStateObject)( 20960 ID3D12Device10 *This, 20961 const D3D12_STATE_OBJECT_DESC *addition, 20962 ID3D12StateObject *state_object_to_grow_from, 20963 REFIID riid, 20964 void **new_state_object); 20965 20966 HRESULT (STDMETHODCALLTYPE *CreateProtectedResourceSession1)( 20967 ID3D12Device10 *This, 20968 const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc, 20969 REFIID riid, 20970 void **session); 20971 20972 /*** ID3D12Device8 methods ***/ 20973 D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo2)( 20974 ID3D12Device10 *This, 20975 D3D12_RESOURCE_ALLOCATION_INFO *__ret, 20976 UINT visible_mask, 20977 UINT resource_descs_count, 20978 const D3D12_RESOURCE_DESC1 *resource_descs, 20979 D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1); 20980 20981 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource2)( 20982 ID3D12Device10 *This, 20983 const D3D12_HEAP_PROPERTIES *heap_properties, 20984 D3D12_HEAP_FLAGS heap_flags, 20985 const D3D12_RESOURCE_DESC1 *desc, 20986 D3D12_RESOURCE_STATES initial_resource_state, 20987 const D3D12_CLEAR_VALUE *optimized_clear_value, 20988 ID3D12ProtectedResourceSession *protected_session, 20989 REFIID riid_resource, 20990 void **resource); 20991 20992 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource1)( 20993 ID3D12Device10 *This, 20994 ID3D12Heap *heap, 20995 UINT64 heap_offset, 20996 const D3D12_RESOURCE_DESC1 *desc, 20997 D3D12_RESOURCE_STATES initial_state, 20998 const D3D12_CLEAR_VALUE *optimized_clear_value, 20999 REFIID riid, 21000 void **resource); 21001 21002 void (STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView)( 21003 ID3D12Device10 *This, 21004 ID3D12Resource *targeted_resource, 21005 ID3D12Resource *feedback_resource, 21006 D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor); 21007 21008 void (STDMETHODCALLTYPE *GetCopyableFootprints1)( 21009 ID3D12Device10 *This, 21010 const D3D12_RESOURCE_DESC1 *resource_desc, 21011 UINT first_subresource, 21012 UINT subresources_count, 21013 UINT64 base_offset, 21014 D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts, 21015 UINT *rows_count, 21016 UINT64 *row_size_in_bytes, 21017 UINT64 *total_bytes); 21018 21019 /*** ID3D12Device9 methods ***/ 21020 HRESULT (STDMETHODCALLTYPE *CreateShaderCacheSession)( 21021 ID3D12Device10 *This, 21022 const D3D12_SHADER_CACHE_SESSION_DESC *desc, 21023 REFIID riid, 21024 void **session); 21025 21026 HRESULT (STDMETHODCALLTYPE *ShaderCacheControl)( 21027 ID3D12Device10 *This, 21028 D3D12_SHADER_CACHE_KIND_FLAGS kinds, 21029 D3D12_SHADER_CACHE_CONTROL_FLAGS control); 21030 21031 HRESULT (STDMETHODCALLTYPE *CreateCommandQueue1)( 21032 ID3D12Device10 *This, 21033 const D3D12_COMMAND_QUEUE_DESC *desc, 21034 REFIID creator_id, 21035 REFIID riid, 21036 void **command_queue); 21037 21038 /*** ID3D12Device10 methods ***/ 21039 HRESULT (STDMETHODCALLTYPE *CreateCommittedResource3)( 21040 ID3D12Device10 *This, 21041 const D3D12_HEAP_PROPERTIES *heap_properties, 21042 D3D12_HEAP_FLAGS heap_flags, 21043 const D3D12_RESOURCE_DESC1 *desc, 21044 D3D12_BARRIER_LAYOUT initial_layout, 21045 const D3D12_CLEAR_VALUE *optimized_clear_value, 21046 ID3D12ProtectedResourceSession *protected_session, 21047 UINT32 castable_formats_count, 21048 DXGI_FORMAT *castable_formats, 21049 REFIID riid_resource, 21050 void **resource); 21051 21052 HRESULT (STDMETHODCALLTYPE *CreatePlacedResource2)( 21053 ID3D12Device10 *This, 21054 ID3D12Heap *heap, 21055 UINT64 heap_offset, 21056 const D3D12_RESOURCE_DESC1 *desc, 21057 D3D12_BARRIER_LAYOUT initial_layout, 21058 const D3D12_CLEAR_VALUE *optimized_clear_value, 21059 UINT32 castable_formats_count, 21060 DXGI_FORMAT *castable_formats, 21061 REFIID riid, 21062 void **resource); 21063 21064 HRESULT (STDMETHODCALLTYPE *CreateReservedResource2)( 21065 ID3D12Device10 *This, 21066 const D3D12_RESOURCE_DESC *desc, 21067 D3D12_BARRIER_LAYOUT initial_layout, 21068 const D3D12_CLEAR_VALUE *optimized_clear_value, 21069 ID3D12ProtectedResourceSession *protected_session, 21070 UINT32 castable_formats_count, 21071 DXGI_FORMAT *castable_formats, 21072 REFIID riid, 21073 void **resource); 21074 21075 END_INTERFACE 21076 } ID3D12Device10Vtbl; 21077 21078 interface ID3D12Device10 { 21079 CONST_VTBL ID3D12Device10Vtbl* lpVtbl; 21080 }; 21081 21082 #ifdef COBJMACROS 21083 #ifndef WIDL_C_INLINE_WRAPPERS 21084 /*** IUnknown methods ***/ 21085 #define ID3D12Device10_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 21086 #define ID3D12Device10_AddRef(This) (This)->lpVtbl->AddRef(This) 21087 #define ID3D12Device10_Release(This) (This)->lpVtbl->Release(This) 21088 /*** ID3D12Object methods ***/ 21089 #define ID3D12Device10_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 21090 #define ID3D12Device10_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 21091 #define ID3D12Device10_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 21092 #define ID3D12Device10_SetName(This,name) (This)->lpVtbl->SetName(This,name) 21093 /*** ID3D12Device methods ***/ 21094 #define ID3D12Device10_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This) 21095 #define ID3D12Device10_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue) 21096 #define ID3D12Device10_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator) 21097 #define ID3D12Device10_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state) 21098 #define ID3D12Device10_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state) 21099 #define ID3D12Device10_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) 21100 #define ID3D12Device10_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size) 21101 #define ID3D12Device10_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap) 21102 #define ID3D12Device10_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type) 21103 #define ID3D12Device10_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) 21104 #define ID3D12Device10_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor) 21105 #define ID3D12Device10_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor) 21106 #define ID3D12Device10_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) 21107 #define ID3D12Device10_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor) 21108 #define ID3D12Device10_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor) 21109 #define ID3D12Device10_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor) 21110 #define ID3D12Device10_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) 21111 #define ID3D12Device10_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) 21112 #define ID3D12Device10_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device10_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 21113 #define ID3D12Device10_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device10_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 21114 #define ID3D12Device10_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) 21115 #define ID3D12Device10_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap) 21116 #define ID3D12Device10_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 21117 #define ID3D12Device10_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) 21118 #define ID3D12Device10_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle) 21119 #define ID3D12Device10_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object) 21120 #define ID3D12Device10_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle) 21121 #define ID3D12Device10_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects) 21122 #define ID3D12Device10_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects) 21123 #define ID3D12Device10_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence) 21124 #define ID3D12Device10_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This) 21125 #define ID3D12Device10_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) 21126 #define ID3D12Device10_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap) 21127 #define ID3D12Device10_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable) 21128 #define ID3D12Device10_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature) 21129 #define ID3D12Device10_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) 21130 #define ID3D12Device10_GetAdapterLuid(This) ID3D12Device10_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 21131 /*** ID3D12Device1 methods ***/ 21132 #define ID3D12Device10_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib) 21133 #define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) 21134 #define ID3D12Device10_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities) 21135 /*** ID3D12Device2 methods ***/ 21136 #define ID3D12Device10_CreatePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state) 21137 /*** ID3D12Device3 methods ***/ 21138 #define ID3D12Device10_OpenExistingHeapFromAddress(This,address,riid,heap) (This)->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap) 21139 #define ID3D12Device10_OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) (This)->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap) 21140 #define ID3D12Device10_EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) (This)->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value) 21141 /*** ID3D12Device4 methods ***/ 21142 #define ID3D12Device10_CreateCommandList1(This,node_mask,type,flags,riid,command_list) (This)->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list) 21143 #define ID3D12Device10_CreateProtectedResourceSession(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session) 21144 #define ID3D12Device10_CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 21145 #define ID3D12Device10_CreateHeap1(This,desc,protected_session,riid,heap) (This)->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap) 21146 #define ID3D12Device10_CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) (This)->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource) 21147 #define ID3D12Device10_GetResourceAllocationInfo1(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device10_GetResourceAllocationInfo1_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 21148 /*** ID3D12Device5 methods ***/ 21149 #define ID3D12Device10_CreateLifetimeTracker(This,owner,riid,tracker) (This)->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker) 21150 #define ID3D12Device10_RemoveDevice(This) (This)->lpVtbl->RemoveDevice(This) 21151 #define ID3D12Device10_EnumerateMetaCommands(This,meta_commands_count,descs) (This)->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs) 21152 #define ID3D12Device10_EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) (This)->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs) 21153 #define ID3D12Device10_CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) (This)->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command) 21154 #define ID3D12Device10_CreateStateObject(This,desc,riid,state_object) (This)->lpVtbl->CreateStateObject(This,desc,riid,state_object) 21155 #define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) (This)->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info) 21156 #define ID3D12Device10_CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) (This)->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check) 21157 /*** ID3D12Device6 methods ***/ 21158 #define ID3D12Device10_SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) (This)->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired) 21159 /*** ID3D12Device7 methods ***/ 21160 #define ID3D12Device10_AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) (This)->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object) 21161 #define ID3D12Device10_CreateProtectedResourceSession1(This,desc,riid,session) (This)->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session) 21162 /*** ID3D12Device8 methods ***/ 21163 #define ID3D12Device10_GetResourceAllocationInfo2(This,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1) ID3D12Device10_GetResourceAllocationInfo2_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support 21164 #define ID3D12Device10_CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource) 21165 #define ID3D12Device10_CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) 21166 #define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) (This)->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor) 21167 #define ID3D12Device10_GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) (This)->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes) 21168 /*** ID3D12Device9 methods ***/ 21169 #define ID3D12Device10_CreateShaderCacheSession(This,desc,riid,session) (This)->lpVtbl->CreateShaderCacheSession(This,desc,riid,session) 21170 #define ID3D12Device10_ShaderCacheControl(This,kinds,control) (This)->lpVtbl->ShaderCacheControl(This,kinds,control) 21171 #define ID3D12Device10_CreateCommandQueue1(This,desc,creator_id,riid,command_queue) (This)->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue) 21172 /*** ID3D12Device10 methods ***/ 21173 #define ID3D12Device10_CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource) (This)->lpVtbl->CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource) 21174 #define ID3D12Device10_CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource) (This)->lpVtbl->CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource) 21175 #define ID3D12Device10_CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource) (This)->lpVtbl->CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource) 21176 #else 21177 /*** IUnknown methods ***/ 21178 static inline HRESULT ID3D12Device10_QueryInterface(ID3D12Device10* This,REFIID riid,void **ppvObject) { 21179 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 21180 } 21181 static inline ULONG ID3D12Device10_AddRef(ID3D12Device10* This) { 21182 return This->lpVtbl->AddRef(This); 21183 } 21184 static inline ULONG ID3D12Device10_Release(ID3D12Device10* This) { 21185 return This->lpVtbl->Release(This); 21186 } 21187 /*** ID3D12Object methods ***/ 21188 static inline HRESULT ID3D12Device10_GetPrivateData(ID3D12Device10* This,REFGUID guid,UINT *data_size,void *data) { 21189 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 21190 } 21191 static inline HRESULT ID3D12Device10_SetPrivateData(ID3D12Device10* This,REFGUID guid,UINT data_size,const void *data) { 21192 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 21193 } 21194 static inline HRESULT ID3D12Device10_SetPrivateDataInterface(ID3D12Device10* This,REFGUID guid,const IUnknown *data) { 21195 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 21196 } 21197 static inline HRESULT ID3D12Device10_SetName(ID3D12Device10* This,const WCHAR *name) { 21198 return This->lpVtbl->SetName(This,name); 21199 } 21200 /*** ID3D12Device methods ***/ 21201 static inline UINT ID3D12Device10_GetNodeCount(ID3D12Device10* This) { 21202 return This->lpVtbl->GetNodeCount(This); 21203 } 21204 static inline HRESULT ID3D12Device10_CreateCommandQueue(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) { 21205 return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue); 21206 } 21207 static inline HRESULT ID3D12Device10_CreateCommandAllocator(ID3D12Device10* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) { 21208 return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator); 21209 } 21210 static inline HRESULT ID3D12Device10_CreateGraphicsPipelineState(ID3D12Device10* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 21211 return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state); 21212 } 21213 static inline HRESULT ID3D12Device10_CreateComputePipelineState(ID3D12Device10* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) { 21214 return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state); 21215 } 21216 static inline HRESULT ID3D12Device10_CreateCommandList(ID3D12Device10* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) { 21217 return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list); 21218 } 21219 static inline HRESULT ID3D12Device10_CheckFeatureSupport(ID3D12Device10* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) { 21220 return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size); 21221 } 21222 static inline HRESULT ID3D12Device10_CreateDescriptorHeap(ID3D12Device10* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) { 21223 return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap); 21224 } 21225 static inline UINT ID3D12Device10_GetDescriptorHandleIncrementSize(ID3D12Device10* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 21226 return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type); 21227 } 21228 static inline HRESULT ID3D12Device10_CreateRootSignature(ID3D12Device10* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) { 21229 return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature); 21230 } 21231 static inline void ID3D12Device10_CreateConstantBufferView(ID3D12Device10* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21232 This->lpVtbl->CreateConstantBufferView(This,desc,descriptor); 21233 } 21234 static inline void ID3D12Device10_CreateShaderResourceView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21235 This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor); 21236 } 21237 static inline void ID3D12Device10_CreateUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21238 This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor); 21239 } 21240 static inline void ID3D12Device10_CreateRenderTargetView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21241 This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor); 21242 } 21243 static inline void ID3D12Device10_CreateDepthStencilView(ID3D12Device10* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21244 This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor); 21245 } 21246 static inline void ID3D12Device10_CreateSampler(ID3D12Device10* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) { 21247 This->lpVtbl->CreateSampler(This,desc,descriptor); 21248 } 21249 static inline void ID3D12Device10_CopyDescriptors(ID3D12Device10* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 21250 This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type); 21251 } 21252 static inline void ID3D12Device10_CopyDescriptorsSimple(ID3D12Device10* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) { 21253 This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type); 21254 } 21255 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo(ID3D12Device10* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) { 21256 D3D12_RESOURCE_ALLOCATION_INFO __ret; 21257 return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs); 21258 } 21259 static inline D3D12_HEAP_PROPERTIES ID3D12Device10_GetCustomHeapProperties(ID3D12Device10* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) { 21260 D3D12_HEAP_PROPERTIES __ret; 21261 return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type); 21262 } 21263 static inline HRESULT ID3D12Device10_CreateCommittedResource(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 21264 return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource); 21265 } 21266 static inline HRESULT ID3D12Device10_CreateHeap(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) { 21267 return This->lpVtbl->CreateHeap(This,desc,riid,heap); 21268 } 21269 static inline HRESULT ID3D12Device10_CreatePlacedResource(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 21270 return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 21271 } 21272 static inline HRESULT ID3D12Device10_CreateReservedResource(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 21273 return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource); 21274 } 21275 static inline HRESULT ID3D12Device10_CreateSharedHandle(ID3D12Device10* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) { 21276 return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle); 21277 } 21278 static inline HRESULT ID3D12Device10_OpenSharedHandle(ID3D12Device10* This,HANDLE handle,REFIID riid,void **object) { 21279 return This->lpVtbl->OpenSharedHandle(This,handle,riid,object); 21280 } 21281 static inline HRESULT ID3D12Device10_OpenSharedHandleByName(ID3D12Device10* This,const WCHAR *name,DWORD access,HANDLE *handle) { 21282 return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle); 21283 } 21284 static inline HRESULT ID3D12Device10_MakeResident(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) { 21285 return This->lpVtbl->MakeResident(This,object_count,objects); 21286 } 21287 static inline HRESULT ID3D12Device10_Evict(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects) { 21288 return This->lpVtbl->Evict(This,object_count,objects); 21289 } 21290 static inline HRESULT ID3D12Device10_CreateFence(ID3D12Device10* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) { 21291 return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence); 21292 } 21293 static inline HRESULT ID3D12Device10_GetDeviceRemovedReason(ID3D12Device10* This) { 21294 return This->lpVtbl->GetDeviceRemovedReason(This); 21295 } 21296 static inline void ID3D12Device10_GetCopyableFootprints(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) { 21297 This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes); 21298 } 21299 static inline HRESULT ID3D12Device10_CreateQueryHeap(ID3D12Device10* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) { 21300 return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap); 21301 } 21302 static inline HRESULT ID3D12Device10_SetStablePowerState(ID3D12Device10* This,WINBOOL enable) { 21303 return This->lpVtbl->SetStablePowerState(This,enable); 21304 } 21305 static inline HRESULT ID3D12Device10_CreateCommandSignature(ID3D12Device10* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) { 21306 return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature); 21307 } 21308 static inline void ID3D12Device10_GetResourceTiling(ID3D12Device10* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) { 21309 This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings); 21310 } 21311 static inline LUID ID3D12Device10_GetAdapterLuid(ID3D12Device10* This) { 21312 LUID __ret; 21313 return *This->lpVtbl->GetAdapterLuid(This,&__ret); 21314 } 21315 /*** ID3D12Device1 methods ***/ 21316 static inline HRESULT ID3D12Device10_CreatePipelineLibrary(ID3D12Device10* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) { 21317 return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib); 21318 } 21319 static inline HRESULT ID3D12Device10_SetEventOnMultipleFenceCompletion(ID3D12Device10* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) { 21320 return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event); 21321 } 21322 static inline HRESULT ID3D12Device10_SetResidencyPriority(ID3D12Device10* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) { 21323 return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities); 21324 } 21325 /*** ID3D12Device2 methods ***/ 21326 static inline HRESULT ID3D12Device10_CreatePipelineState(ID3D12Device10* This,const D3D12_PIPELINE_STATE_STREAM_DESC *desc,REFIID riid,void **pipeline_state) { 21327 return This->lpVtbl->CreatePipelineState(This,desc,riid,pipeline_state); 21328 } 21329 /*** ID3D12Device3 methods ***/ 21330 static inline HRESULT ID3D12Device10_OpenExistingHeapFromAddress(ID3D12Device10* This,const void *address,REFIID riid,void **heap) { 21331 return This->lpVtbl->OpenExistingHeapFromAddress(This,address,riid,heap); 21332 } 21333 static inline HRESULT ID3D12Device10_OpenExistingHeapFromFileMapping(ID3D12Device10* This,HANDLE file_mapping,REFIID riid,void **heap) { 21334 return This->lpVtbl->OpenExistingHeapFromFileMapping(This,file_mapping,riid,heap); 21335 } 21336 static inline HRESULT ID3D12Device10_EnqueueMakeResident(ID3D12Device10* This,D3D12_RESIDENCY_FLAGS flags,UINT num_objects,ID3D12Pageable *const *objects,ID3D12Fence *fence,UINT64 fence_value) { 21337 return This->lpVtbl->EnqueueMakeResident(This,flags,num_objects,objects,fence,fence_value); 21338 } 21339 /*** ID3D12Device4 methods ***/ 21340 static inline HRESULT ID3D12Device10_CreateCommandList1(ID3D12Device10* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,D3D12_COMMAND_LIST_FLAGS flags,REFIID riid,void **command_list) { 21341 return This->lpVtbl->CreateCommandList1(This,node_mask,type,flags,riid,command_list); 21342 } 21343 static inline HRESULT ID3D12Device10_CreateProtectedResourceSession(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC *desc,REFIID riid,void **session) { 21344 return This->lpVtbl->CreateProtectedResourceSession(This,desc,riid,session); 21345 } 21346 static inline HRESULT ID3D12Device10_CreateCommittedResource1(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 21347 return This->lpVtbl->CreateCommittedResource1(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 21348 } 21349 static inline HRESULT ID3D12Device10_CreateHeap1(ID3D12Device10* This,const D3D12_HEAP_DESC *desc,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **heap) { 21350 return This->lpVtbl->CreateHeap1(This,desc,protected_session,riid,heap); 21351 } 21352 static inline HRESULT ID3D12Device10_CreateReservedResource1(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid,void **resource) { 21353 return This->lpVtbl->CreateReservedResource1(This,desc,initial_state,optimized_clear_value,protected_session,riid,resource); 21354 } 21355 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo1(ID3D12Device10* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 21356 D3D12_RESOURCE_ALLOCATION_INFO __ret; 21357 return *This->lpVtbl->GetResourceAllocationInfo1(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 21358 } 21359 /*** ID3D12Device5 methods ***/ 21360 static inline HRESULT ID3D12Device10_CreateLifetimeTracker(ID3D12Device10* This,ID3D12LifetimeOwner *owner,REFIID riid,void **tracker) { 21361 return This->lpVtbl->CreateLifetimeTracker(This,owner,riid,tracker); 21362 } 21363 static inline void ID3D12Device10_RemoveDevice(ID3D12Device10* This) { 21364 This->lpVtbl->RemoveDevice(This); 21365 } 21366 static inline HRESULT ID3D12Device10_EnumerateMetaCommands(ID3D12Device10* This,UINT *meta_commands_count,D3D12_META_COMMAND_DESC *descs) { 21367 return This->lpVtbl->EnumerateMetaCommands(This,meta_commands_count,descs); 21368 } 21369 static inline HRESULT ID3D12Device10_EnumerateMetaCommandParameters(ID3D12Device10* This,REFGUID command_id,D3D12_META_COMMAND_PARAMETER_STAGE stage,UINT *total_structure_size_in_bytes,UINT *parameter_count,D3D12_META_COMMAND_PARAMETER_DESC *parameter_descs) { 21370 return This->lpVtbl->EnumerateMetaCommandParameters(This,command_id,stage,total_structure_size_in_bytes,parameter_count,parameter_descs); 21371 } 21372 static inline HRESULT ID3D12Device10_CreateMetaCommand(ID3D12Device10* This,REFGUID command_id,UINT node_mask,const void *creation_parameters_data,SIZE_T creation_parameters_data_size_in_bytes,REFIID riid,void **meta_command) { 21373 return This->lpVtbl->CreateMetaCommand(This,command_id,node_mask,creation_parameters_data,creation_parameters_data_size_in_bytes,riid,meta_command); 21374 } 21375 static inline HRESULT ID3D12Device10_CreateStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *desc,REFIID riid,void **state_object) { 21376 return This->lpVtbl->CreateStateObject(This,desc,riid,state_object); 21377 } 21378 static inline void ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(ID3D12Device10* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *info) { 21379 This->lpVtbl->GetRaytracingAccelerationStructurePrebuildInfo(This,desc,info); 21380 } 21381 static inline D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ID3D12Device10_CheckDriverMatchingIdentifier(ID3D12Device10* This,D3D12_SERIALIZED_DATA_TYPE serialized_data_type,const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check) { 21382 return This->lpVtbl->CheckDriverMatchingIdentifier(This,serialized_data_type,identifier_to_check); 21383 } 21384 /*** ID3D12Device6 methods ***/ 21385 static inline HRESULT ID3D12Device10_SetBackgroundProcessingMode(ID3D12Device10* This,D3D12_BACKGROUND_PROCESSING_MODE mode,D3D12_MEASUREMENTS_ACTION action,HANDLE event,WINBOOL *further_measurements_desired) { 21386 return This->lpVtbl->SetBackgroundProcessingMode(This,mode,action,event,further_measurements_desired); 21387 } 21388 /*** ID3D12Device7 methods ***/ 21389 static inline HRESULT ID3D12Device10_AddToStateObject(ID3D12Device10* This,const D3D12_STATE_OBJECT_DESC *addition,ID3D12StateObject *state_object_to_grow_from,REFIID riid,void **new_state_object) { 21390 return This->lpVtbl->AddToStateObject(This,addition,state_object_to_grow_from,riid,new_state_object); 21391 } 21392 static inline HRESULT ID3D12Device10_CreateProtectedResourceSession1(ID3D12Device10* This,const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *desc,REFIID riid,void **session) { 21393 return This->lpVtbl->CreateProtectedResourceSession1(This,desc,riid,session); 21394 } 21395 /*** ID3D12Device8 methods ***/ 21396 static inline D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device10_GetResourceAllocationInfo2(ID3D12Device10* This,UINT visible_mask,UINT resource_descs_count,const D3D12_RESOURCE_DESC1 *resource_descs,D3D12_RESOURCE_ALLOCATION_INFO1 *resource_allocation_info1) { 21397 D3D12_RESOURCE_ALLOCATION_INFO __ret; 21398 return *This->lpVtbl->GetResourceAllocationInfo2(This,&__ret,visible_mask,resource_descs_count,resource_descs,resource_allocation_info1); 21399 } 21400 static inline HRESULT ID3D12Device10_CreateCommittedResource2(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_resource_state,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,REFIID riid_resource,void **resource) { 21401 return This->lpVtbl->CreateCommittedResource2(This,heap_properties,heap_flags,desc,initial_resource_state,optimized_clear_value,protected_session,riid_resource,resource); 21402 } 21403 static inline HRESULT ID3D12Device10_CreatePlacedResource1(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) { 21404 return This->lpVtbl->CreatePlacedResource1(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource); 21405 } 21406 static inline void ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(ID3D12Device10* This,ID3D12Resource *targeted_resource,ID3D12Resource *feedback_resource,D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor) { 21407 This->lpVtbl->CreateSamplerFeedbackUnorderedAccessView(This,targeted_resource,feedback_resource,dst_descriptor); 21408 } 21409 static inline void ID3D12Device10_GetCopyableFootprints1(ID3D12Device10* This,const D3D12_RESOURCE_DESC1 *resource_desc,UINT first_subresource,UINT subresources_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *rows_count,UINT64 *row_size_in_bytes,UINT64 *total_bytes) { 21410 This->lpVtbl->GetCopyableFootprints1(This,resource_desc,first_subresource,subresources_count,base_offset,layouts,rows_count,row_size_in_bytes,total_bytes); 21411 } 21412 /*** ID3D12Device9 methods ***/ 21413 static inline HRESULT ID3D12Device10_CreateShaderCacheSession(ID3D12Device10* This,const D3D12_SHADER_CACHE_SESSION_DESC *desc,REFIID riid,void **session) { 21414 return This->lpVtbl->CreateShaderCacheSession(This,desc,riid,session); 21415 } 21416 static inline HRESULT ID3D12Device10_ShaderCacheControl(ID3D12Device10* This,D3D12_SHADER_CACHE_KIND_FLAGS kinds,D3D12_SHADER_CACHE_CONTROL_FLAGS control) { 21417 return This->lpVtbl->ShaderCacheControl(This,kinds,control); 21418 } 21419 static inline HRESULT ID3D12Device10_CreateCommandQueue1(ID3D12Device10* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID creator_id,REFIID riid,void **command_queue) { 21420 return This->lpVtbl->CreateCommandQueue1(This,desc,creator_id,riid,command_queue); 21421 } 21422 /*** ID3D12Device10 methods ***/ 21423 static inline HRESULT ID3D12Device10_CreateCommittedResource3(ID3D12Device10* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC1 *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid_resource,void **resource) { 21424 return This->lpVtbl->CreateCommittedResource3(This,heap_properties,heap_flags,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid_resource,resource); 21425 } 21426 static inline HRESULT ID3D12Device10_CreatePlacedResource2(ID3D12Device10* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC1 *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid,void **resource) { 21427 return This->lpVtbl->CreatePlacedResource2(This,heap,heap_offset,desc,initial_layout,optimized_clear_value,castable_formats_count,castable_formats,riid,resource); 21428 } 21429 static inline HRESULT ID3D12Device10_CreateReservedResource2(ID3D12Device10* This,const D3D12_RESOURCE_DESC *desc,D3D12_BARRIER_LAYOUT initial_layout,const D3D12_CLEAR_VALUE *optimized_clear_value,ID3D12ProtectedResourceSession *protected_session,UINT32 castable_formats_count,DXGI_FORMAT *castable_formats,REFIID riid,void **resource) { 21430 return This->lpVtbl->CreateReservedResource2(This,desc,initial_layout,optimized_clear_value,protected_session,castable_formats_count,castable_formats,riid,resource); 21431 } 21432 #endif 21433 #endif 21434 21435 #endif 21436 21437 21438 #endif /* __ID3D12Device10_INTERFACE_DEFINED__ */ 21439 21440 /***************************************************************************** 21441 * ID3D12VirtualizationGuestDevice interface 21442 */ 21443 #ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ 21444 #define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ 21445 21446 DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76); 21447 #if defined(__cplusplus) && !defined(CINTERFACE) 21448 MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476") 21449 ID3D12VirtualizationGuestDevice : public IUnknown 21450 { 21451 virtual HRESULT STDMETHODCALLTYPE ShareWithHost( 21452 ID3D12DeviceChild *object, 21453 HANDLE *handle) = 0; 21454 21455 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd( 21456 ID3D12Fence *fence, 21457 UINT64 fence_value, 21458 int *fence_fd) = 0; 21459 21460 }; 21461 #ifdef __CRT_UUID_DECL 21462 __CRT_UUID_DECL(ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87,0x57, 0xfc,0x87,0xdc,0x79,0xe4,0x76) 21463 #endif 21464 #else 21465 typedef struct ID3D12VirtualizationGuestDeviceVtbl { 21466 BEGIN_INTERFACE 21467 21468 /*** IUnknown methods ***/ 21469 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 21470 ID3D12VirtualizationGuestDevice *This, 21471 REFIID riid, 21472 void **ppvObject); 21473 21474 ULONG (STDMETHODCALLTYPE *AddRef)( 21475 ID3D12VirtualizationGuestDevice *This); 21476 21477 ULONG (STDMETHODCALLTYPE *Release)( 21478 ID3D12VirtualizationGuestDevice *This); 21479 21480 /*** ID3D12VirtualizationGuestDevice methods ***/ 21481 HRESULT (STDMETHODCALLTYPE *ShareWithHost)( 21482 ID3D12VirtualizationGuestDevice *This, 21483 ID3D12DeviceChild *object, 21484 HANDLE *handle); 21485 21486 HRESULT (STDMETHODCALLTYPE *CreateFenceFd)( 21487 ID3D12VirtualizationGuestDevice *This, 21488 ID3D12Fence *fence, 21489 UINT64 fence_value, 21490 int *fence_fd); 21491 21492 END_INTERFACE 21493 } ID3D12VirtualizationGuestDeviceVtbl; 21494 21495 interface ID3D12VirtualizationGuestDevice { 21496 CONST_VTBL ID3D12VirtualizationGuestDeviceVtbl* lpVtbl; 21497 }; 21498 21499 #ifdef COBJMACROS 21500 #ifndef WIDL_C_INLINE_WRAPPERS 21501 /*** IUnknown methods ***/ 21502 #define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 21503 #define ID3D12VirtualizationGuestDevice_AddRef(This) (This)->lpVtbl->AddRef(This) 21504 #define ID3D12VirtualizationGuestDevice_Release(This) (This)->lpVtbl->Release(This) 21505 /*** ID3D12VirtualizationGuestDevice methods ***/ 21506 #define ID3D12VirtualizationGuestDevice_ShareWithHost(This,object,handle) (This)->lpVtbl->ShareWithHost(This,object,handle) 21507 #define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,fence,fence_value,fence_fd) (This)->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd) 21508 #else 21509 /*** IUnknown methods ***/ 21510 static inline HRESULT ID3D12VirtualizationGuestDevice_QueryInterface(ID3D12VirtualizationGuestDevice* This,REFIID riid,void **ppvObject) { 21511 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 21512 } 21513 static inline ULONG ID3D12VirtualizationGuestDevice_AddRef(ID3D12VirtualizationGuestDevice* This) { 21514 return This->lpVtbl->AddRef(This); 21515 } 21516 static inline ULONG ID3D12VirtualizationGuestDevice_Release(ID3D12VirtualizationGuestDevice* This) { 21517 return This->lpVtbl->Release(This); 21518 } 21519 /*** ID3D12VirtualizationGuestDevice methods ***/ 21520 static inline HRESULT ID3D12VirtualizationGuestDevice_ShareWithHost(ID3D12VirtualizationGuestDevice* This,ID3D12DeviceChild *object,HANDLE *handle) { 21521 return This->lpVtbl->ShareWithHost(This,object,handle); 21522 } 21523 static inline HRESULT ID3D12VirtualizationGuestDevice_CreateFenceFd(ID3D12VirtualizationGuestDevice* This,ID3D12Fence *fence,UINT64 fence_value,int *fence_fd) { 21524 return This->lpVtbl->CreateFenceFd(This,fence,fence_value,fence_fd); 21525 } 21526 #endif 21527 #endif 21528 21529 #endif 21530 21531 21532 #endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */ 21533 21534 /***************************************************************************** 21535 * ID3D12Tools interface 21536 */ 21537 #ifndef __ID3D12Tools_INTERFACE_DEFINED__ 21538 #define __ID3D12Tools_INTERFACE_DEFINED__ 21539 21540 DEFINE_GUID(IID_ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5); 21541 #if defined(__cplusplus) && !defined(CINTERFACE) 21542 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5") 21543 ID3D12Tools : public IUnknown 21544 { 21545 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation( 21546 WINBOOL enable) = 0; 21547 21548 virtual WINBOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( 21549 ) = 0; 21550 21551 }; 21552 #ifdef __CRT_UUID_DECL 21553 __CRT_UUID_DECL(ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97,0x4f, 0x12,0xfa,0x49,0xde,0x65,0xc5) 21554 #endif 21555 #else 21556 typedef struct ID3D12ToolsVtbl { 21557 BEGIN_INTERFACE 21558 21559 /*** IUnknown methods ***/ 21560 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 21561 ID3D12Tools *This, 21562 REFIID riid, 21563 void **ppvObject); 21564 21565 ULONG (STDMETHODCALLTYPE *AddRef)( 21566 ID3D12Tools *This); 21567 21568 ULONG (STDMETHODCALLTYPE *Release)( 21569 ID3D12Tools *This); 21570 21571 /*** ID3D12Tools methods ***/ 21572 void (STDMETHODCALLTYPE *EnableShaderInstrumentation)( 21573 ID3D12Tools *This, 21574 WINBOOL enable); 21575 21576 WINBOOL (STDMETHODCALLTYPE *ShaderInstrumentationEnabled)( 21577 ID3D12Tools *This); 21578 21579 END_INTERFACE 21580 } ID3D12ToolsVtbl; 21581 21582 interface ID3D12Tools { 21583 CONST_VTBL ID3D12ToolsVtbl* lpVtbl; 21584 }; 21585 21586 #ifdef COBJMACROS 21587 #ifndef WIDL_C_INLINE_WRAPPERS 21588 /*** IUnknown methods ***/ 21589 #define ID3D12Tools_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 21590 #define ID3D12Tools_AddRef(This) (This)->lpVtbl->AddRef(This) 21591 #define ID3D12Tools_Release(This) (This)->lpVtbl->Release(This) 21592 /*** ID3D12Tools methods ***/ 21593 #define ID3D12Tools_EnableShaderInstrumentation(This,enable) (This)->lpVtbl->EnableShaderInstrumentation(This,enable) 21594 #define ID3D12Tools_ShaderInstrumentationEnabled(This) (This)->lpVtbl->ShaderInstrumentationEnabled(This) 21595 #else 21596 /*** IUnknown methods ***/ 21597 static inline HRESULT ID3D12Tools_QueryInterface(ID3D12Tools* This,REFIID riid,void **ppvObject) { 21598 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 21599 } 21600 static inline ULONG ID3D12Tools_AddRef(ID3D12Tools* This) { 21601 return This->lpVtbl->AddRef(This); 21602 } 21603 static inline ULONG ID3D12Tools_Release(ID3D12Tools* This) { 21604 return This->lpVtbl->Release(This); 21605 } 21606 /*** ID3D12Tools methods ***/ 21607 static inline void ID3D12Tools_EnableShaderInstrumentation(ID3D12Tools* This,WINBOOL enable) { 21608 This->lpVtbl->EnableShaderInstrumentation(This,enable); 21609 } 21610 static inline WINBOOL ID3D12Tools_ShaderInstrumentationEnabled(ID3D12Tools* This) { 21611 return This->lpVtbl->ShaderInstrumentationEnabled(This); 21612 } 21613 #endif 21614 #endif 21615 21616 #endif 21617 21618 21619 #endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ 21620 21621 DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f); 21622 DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8); 21623 DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2); 21624 DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); 21625 /***************************************************************************** 21626 * ID3D12SDKConfiguration interface 21627 */ 21628 #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ 21629 #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ 21630 21631 DEFINE_GUID(IID_ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7); 21632 #if defined(__cplusplus) && !defined(CINTERFACE) 21633 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7") 21634 ID3D12SDKConfiguration : public IUnknown 21635 { 21636 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion( 21637 UINT version, 21638 const char *path) = 0; 21639 21640 }; 21641 #ifdef __CRT_UUID_DECL 21642 __CRT_UUID_DECL(ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7,0x18, 0xd7,0x7f,0x58,0xb1,0xf1,0xc7) 21643 #endif 21644 #else 21645 typedef struct ID3D12SDKConfigurationVtbl { 21646 BEGIN_INTERFACE 21647 21648 /*** IUnknown methods ***/ 21649 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 21650 ID3D12SDKConfiguration *This, 21651 REFIID riid, 21652 void **ppvObject); 21653 21654 ULONG (STDMETHODCALLTYPE *AddRef)( 21655 ID3D12SDKConfiguration *This); 21656 21657 ULONG (STDMETHODCALLTYPE *Release)( 21658 ID3D12SDKConfiguration *This); 21659 21660 /*** ID3D12SDKConfiguration methods ***/ 21661 HRESULT (STDMETHODCALLTYPE *SetSDKVersion)( 21662 ID3D12SDKConfiguration *This, 21663 UINT version, 21664 const char *path); 21665 21666 END_INTERFACE 21667 } ID3D12SDKConfigurationVtbl; 21668 21669 interface ID3D12SDKConfiguration { 21670 CONST_VTBL ID3D12SDKConfigurationVtbl* lpVtbl; 21671 }; 21672 21673 #ifdef COBJMACROS 21674 #ifndef WIDL_C_INLINE_WRAPPERS 21675 /*** IUnknown methods ***/ 21676 #define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 21677 #define ID3D12SDKConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This) 21678 #define ID3D12SDKConfiguration_Release(This) (This)->lpVtbl->Release(This) 21679 /*** ID3D12SDKConfiguration methods ***/ 21680 #define ID3D12SDKConfiguration_SetSDKVersion(This,version,path) (This)->lpVtbl->SetSDKVersion(This,version,path) 21681 #else 21682 /*** IUnknown methods ***/ 21683 static inline HRESULT ID3D12SDKConfiguration_QueryInterface(ID3D12SDKConfiguration* This,REFIID riid,void **ppvObject) { 21684 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 21685 } 21686 static inline ULONG ID3D12SDKConfiguration_AddRef(ID3D12SDKConfiguration* This) { 21687 return This->lpVtbl->AddRef(This); 21688 } 21689 static inline ULONG ID3D12SDKConfiguration_Release(ID3D12SDKConfiguration* This) { 21690 return This->lpVtbl->Release(This); 21691 } 21692 /*** ID3D12SDKConfiguration methods ***/ 21693 static inline HRESULT ID3D12SDKConfiguration_SetSDKVersion(ID3D12SDKConfiguration* This,UINT version,const char *path) { 21694 return This->lpVtbl->SetSDKVersion(This,version,path); 21695 } 21696 #endif 21697 #endif 21698 21699 #endif 21700 21701 21702 #endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */ 21703 21704 typedef enum D3D12_AXIS_SHADING_RATE { 21705 D3D12_AXIS_SHADING_RATE_1X = 0x0, 21706 D3D12_AXIS_SHADING_RATE_2X = 0x1, 21707 D3D12_AXIS_SHADING_RATE_4X = 0x2 21708 } D3D12_AXIS_SHADING_RATE; 21709 typedef enum D3D12_SHADING_RATE { 21710 D3D12_SHADING_RATE_1X1 = 0x0, 21711 D3D12_SHADING_RATE_1X2 = 0x1, 21712 D3D12_SHADING_RATE_2X1 = 0x4, 21713 D3D12_SHADING_RATE_2X2 = 0x5, 21714 D3D12_SHADING_RATE_2X4 = 0x6, 21715 D3D12_SHADING_RATE_4X2 = 0x9, 21716 D3D12_SHADING_RATE_4X4 = 0xa 21717 } D3D12_SHADING_RATE; 21718 typedef enum D3D12_SHADING_RATE_COMBINER { 21719 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0x0, 21720 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 0x1, 21721 D3D12_SHADING_RATE_COMBINER_MIN = 0x2, 21722 D3D12_SHADING_RATE_COMBINER_MAX = 0x3, 21723 D3D12_SHADING_RATE_COMBINER_SUM = 0x4 21724 } D3D12_SHADING_RATE_COMBINER; 21725 /***************************************************************************** 21726 * ID3D12GraphicsCommandList5 interface 21727 */ 21728 #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ 21729 #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ 21730 21731 DEFINE_GUID(IID_ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea); 21732 #if defined(__cplusplus) && !defined(CINTERFACE) 21733 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea") 21734 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4 21735 { 21736 virtual void STDMETHODCALLTYPE RSSetShadingRate( 21737 D3D12_SHADING_RATE base_shading_rate, 21738 const D3D12_SHADING_RATE_COMBINER *combiners) = 0; 21739 21740 virtual void STDMETHODCALLTYPE RSSetShadingRateImage( 21741 ID3D12Resource *shading_rate_image) = 0; 21742 21743 }; 21744 #ifdef __CRT_UUID_DECL 21745 __CRT_UUID_DECL(ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87,0xf5, 0x64,0x72,0xea,0xee,0x44,0xea) 21746 #endif 21747 #else 21748 typedef struct ID3D12GraphicsCommandList5Vtbl { 21749 BEGIN_INTERFACE 21750 21751 /*** IUnknown methods ***/ 21752 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 21753 ID3D12GraphicsCommandList5 *This, 21754 REFIID riid, 21755 void **ppvObject); 21756 21757 ULONG (STDMETHODCALLTYPE *AddRef)( 21758 ID3D12GraphicsCommandList5 *This); 21759 21760 ULONG (STDMETHODCALLTYPE *Release)( 21761 ID3D12GraphicsCommandList5 *This); 21762 21763 /*** ID3D12Object methods ***/ 21764 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 21765 ID3D12GraphicsCommandList5 *This, 21766 REFGUID guid, 21767 UINT *data_size, 21768 void *data); 21769 21770 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 21771 ID3D12GraphicsCommandList5 *This, 21772 REFGUID guid, 21773 UINT data_size, 21774 const void *data); 21775 21776 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 21777 ID3D12GraphicsCommandList5 *This, 21778 REFGUID guid, 21779 const IUnknown *data); 21780 21781 HRESULT (STDMETHODCALLTYPE *SetName)( 21782 ID3D12GraphicsCommandList5 *This, 21783 const WCHAR *name); 21784 21785 /*** ID3D12DeviceChild methods ***/ 21786 HRESULT (STDMETHODCALLTYPE *GetDevice)( 21787 ID3D12GraphicsCommandList5 *This, 21788 REFIID riid, 21789 void **device); 21790 21791 /*** ID3D12CommandList methods ***/ 21792 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 21793 ID3D12GraphicsCommandList5 *This); 21794 21795 /*** ID3D12GraphicsCommandList methods ***/ 21796 HRESULT (STDMETHODCALLTYPE *Close)( 21797 ID3D12GraphicsCommandList5 *This); 21798 21799 HRESULT (STDMETHODCALLTYPE *Reset)( 21800 ID3D12GraphicsCommandList5 *This, 21801 ID3D12CommandAllocator *allocator, 21802 ID3D12PipelineState *initial_state); 21803 21804 void (STDMETHODCALLTYPE *ClearState)( 21805 ID3D12GraphicsCommandList5 *This, 21806 ID3D12PipelineState *pipeline_state); 21807 21808 void (STDMETHODCALLTYPE *DrawInstanced)( 21809 ID3D12GraphicsCommandList5 *This, 21810 UINT vertex_count_per_instance, 21811 UINT instance_count, 21812 UINT start_vertex_location, 21813 UINT start_instance_location); 21814 21815 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 21816 ID3D12GraphicsCommandList5 *This, 21817 UINT index_count_per_instance, 21818 UINT instance_count, 21819 UINT start_vertex_location, 21820 INT base_vertex_location, 21821 UINT start_instance_location); 21822 21823 void (STDMETHODCALLTYPE *Dispatch)( 21824 ID3D12GraphicsCommandList5 *This, 21825 UINT x, 21826 UINT u, 21827 UINT z); 21828 21829 void (STDMETHODCALLTYPE *CopyBufferRegion)( 21830 ID3D12GraphicsCommandList5 *This, 21831 ID3D12Resource *dst_buffer, 21832 UINT64 dst_offset, 21833 ID3D12Resource *src_buffer, 21834 UINT64 src_offset, 21835 UINT64 byte_count); 21836 21837 void (STDMETHODCALLTYPE *CopyTextureRegion)( 21838 ID3D12GraphicsCommandList5 *This, 21839 const D3D12_TEXTURE_COPY_LOCATION *dst, 21840 UINT dst_x, 21841 UINT dst_y, 21842 UINT dst_z, 21843 const D3D12_TEXTURE_COPY_LOCATION *src, 21844 const D3D12_BOX *src_box); 21845 21846 void (STDMETHODCALLTYPE *CopyResource)( 21847 ID3D12GraphicsCommandList5 *This, 21848 ID3D12Resource *dst_resource, 21849 ID3D12Resource *src_resource); 21850 21851 void (STDMETHODCALLTYPE *CopyTiles)( 21852 ID3D12GraphicsCommandList5 *This, 21853 ID3D12Resource *tiled_resource, 21854 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 21855 const D3D12_TILE_REGION_SIZE *tile_region_size, 21856 ID3D12Resource *buffer, 21857 UINT64 buffer_offset, 21858 D3D12_TILE_COPY_FLAGS flags); 21859 21860 void (STDMETHODCALLTYPE *ResolveSubresource)( 21861 ID3D12GraphicsCommandList5 *This, 21862 ID3D12Resource *dst_resource, 21863 UINT dst_sub_resource, 21864 ID3D12Resource *src_resource, 21865 UINT src_sub_resource, 21866 DXGI_FORMAT format); 21867 21868 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 21869 ID3D12GraphicsCommandList5 *This, 21870 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 21871 21872 void (STDMETHODCALLTYPE *RSSetViewports)( 21873 ID3D12GraphicsCommandList5 *This, 21874 UINT viewport_count, 21875 const D3D12_VIEWPORT *viewports); 21876 21877 void (STDMETHODCALLTYPE *RSSetScissorRects)( 21878 ID3D12GraphicsCommandList5 *This, 21879 UINT rect_count, 21880 const D3D12_RECT *rects); 21881 21882 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 21883 ID3D12GraphicsCommandList5 *This, 21884 const FLOAT blend_factor[4]); 21885 21886 void (STDMETHODCALLTYPE *OMSetStencilRef)( 21887 ID3D12GraphicsCommandList5 *This, 21888 UINT stencil_ref); 21889 21890 void (STDMETHODCALLTYPE *SetPipelineState)( 21891 ID3D12GraphicsCommandList5 *This, 21892 ID3D12PipelineState *pipeline_state); 21893 21894 void (STDMETHODCALLTYPE *ResourceBarrier)( 21895 ID3D12GraphicsCommandList5 *This, 21896 UINT barrier_count, 21897 const D3D12_RESOURCE_BARRIER *barriers); 21898 21899 void (STDMETHODCALLTYPE *ExecuteBundle)( 21900 ID3D12GraphicsCommandList5 *This, 21901 ID3D12GraphicsCommandList *command_list); 21902 21903 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 21904 ID3D12GraphicsCommandList5 *This, 21905 UINT heap_count, 21906 ID3D12DescriptorHeap *const *heaps); 21907 21908 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 21909 ID3D12GraphicsCommandList5 *This, 21910 ID3D12RootSignature *root_signature); 21911 21912 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 21913 ID3D12GraphicsCommandList5 *This, 21914 ID3D12RootSignature *root_signature); 21915 21916 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 21917 ID3D12GraphicsCommandList5 *This, 21918 UINT root_parameter_index, 21919 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 21920 21921 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 21922 ID3D12GraphicsCommandList5 *This, 21923 UINT root_parameter_index, 21924 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 21925 21926 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 21927 ID3D12GraphicsCommandList5 *This, 21928 UINT root_parameter_index, 21929 UINT data, 21930 UINT dst_offset); 21931 21932 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 21933 ID3D12GraphicsCommandList5 *This, 21934 UINT root_parameter_index, 21935 UINT data, 21936 UINT dst_offset); 21937 21938 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 21939 ID3D12GraphicsCommandList5 *This, 21940 UINT root_parameter_index, 21941 UINT constant_count, 21942 const void *data, 21943 UINT dst_offset); 21944 21945 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 21946 ID3D12GraphicsCommandList5 *This, 21947 UINT root_parameter_index, 21948 UINT constant_count, 21949 const void *data, 21950 UINT dst_offset); 21951 21952 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 21953 ID3D12GraphicsCommandList5 *This, 21954 UINT root_parameter_index, 21955 D3D12_GPU_VIRTUAL_ADDRESS address); 21956 21957 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 21958 ID3D12GraphicsCommandList5 *This, 21959 UINT root_parameter_index, 21960 D3D12_GPU_VIRTUAL_ADDRESS address); 21961 21962 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 21963 ID3D12GraphicsCommandList5 *This, 21964 UINT root_parameter_index, 21965 D3D12_GPU_VIRTUAL_ADDRESS address); 21966 21967 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 21968 ID3D12GraphicsCommandList5 *This, 21969 UINT root_parameter_index, 21970 D3D12_GPU_VIRTUAL_ADDRESS address); 21971 21972 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 21973 ID3D12GraphicsCommandList5 *This, 21974 UINT root_parameter_index, 21975 D3D12_GPU_VIRTUAL_ADDRESS address); 21976 21977 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 21978 ID3D12GraphicsCommandList5 *This, 21979 UINT root_parameter_index, 21980 D3D12_GPU_VIRTUAL_ADDRESS address); 21981 21982 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 21983 ID3D12GraphicsCommandList5 *This, 21984 const D3D12_INDEX_BUFFER_VIEW *view); 21985 21986 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 21987 ID3D12GraphicsCommandList5 *This, 21988 UINT start_slot, 21989 UINT view_count, 21990 const D3D12_VERTEX_BUFFER_VIEW *views); 21991 21992 void (STDMETHODCALLTYPE *SOSetTargets)( 21993 ID3D12GraphicsCommandList5 *This, 21994 UINT start_slot, 21995 UINT view_count, 21996 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 21997 21998 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 21999 ID3D12GraphicsCommandList5 *This, 22000 UINT render_target_descriptor_count, 22001 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 22002 WINBOOL single_descriptor_handle, 22003 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 22004 22005 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 22006 ID3D12GraphicsCommandList5 *This, 22007 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 22008 D3D12_CLEAR_FLAGS flags, 22009 FLOAT depth, 22010 UINT8 stencil, 22011 UINT rect_count, 22012 const D3D12_RECT *rects); 22013 22014 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 22015 ID3D12GraphicsCommandList5 *This, 22016 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 22017 const FLOAT color[4], 22018 UINT rect_count, 22019 const D3D12_RECT *rects); 22020 22021 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 22022 ID3D12GraphicsCommandList5 *This, 22023 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 22024 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 22025 ID3D12Resource *resource, 22026 const UINT values[4], 22027 UINT rect_count, 22028 const D3D12_RECT *rects); 22029 22030 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 22031 ID3D12GraphicsCommandList5 *This, 22032 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 22033 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 22034 ID3D12Resource *resource, 22035 const float values[4], 22036 UINT rect_count, 22037 const D3D12_RECT *rects); 22038 22039 void (STDMETHODCALLTYPE *DiscardResource)( 22040 ID3D12GraphicsCommandList5 *This, 22041 ID3D12Resource *resource, 22042 const D3D12_DISCARD_REGION *region); 22043 22044 void (STDMETHODCALLTYPE *BeginQuery)( 22045 ID3D12GraphicsCommandList5 *This, 22046 ID3D12QueryHeap *heap, 22047 D3D12_QUERY_TYPE type, 22048 UINT index); 22049 22050 void (STDMETHODCALLTYPE *EndQuery)( 22051 ID3D12GraphicsCommandList5 *This, 22052 ID3D12QueryHeap *heap, 22053 D3D12_QUERY_TYPE type, 22054 UINT index); 22055 22056 void (STDMETHODCALLTYPE *ResolveQueryData)( 22057 ID3D12GraphicsCommandList5 *This, 22058 ID3D12QueryHeap *heap, 22059 D3D12_QUERY_TYPE type, 22060 UINT start_index, 22061 UINT query_count, 22062 ID3D12Resource *dst_buffer, 22063 UINT64 aligned_dst_buffer_offset); 22064 22065 void (STDMETHODCALLTYPE *SetPredication)( 22066 ID3D12GraphicsCommandList5 *This, 22067 ID3D12Resource *buffer, 22068 UINT64 aligned_buffer_offset, 22069 D3D12_PREDICATION_OP operation); 22070 22071 void (STDMETHODCALLTYPE *SetMarker)( 22072 ID3D12GraphicsCommandList5 *This, 22073 UINT metadata, 22074 const void *data, 22075 UINT size); 22076 22077 void (STDMETHODCALLTYPE *BeginEvent)( 22078 ID3D12GraphicsCommandList5 *This, 22079 UINT metadata, 22080 const void *data, 22081 UINT size); 22082 22083 void (STDMETHODCALLTYPE *EndEvent)( 22084 ID3D12GraphicsCommandList5 *This); 22085 22086 void (STDMETHODCALLTYPE *ExecuteIndirect)( 22087 ID3D12GraphicsCommandList5 *This, 22088 ID3D12CommandSignature *command_signature, 22089 UINT max_command_count, 22090 ID3D12Resource *arg_buffer, 22091 UINT64 arg_buffer_offset, 22092 ID3D12Resource *count_buffer, 22093 UINT64 count_buffer_offset); 22094 22095 /*** ID3D12GraphicsCommandList1 methods ***/ 22096 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 22097 ID3D12GraphicsCommandList5 *This, 22098 ID3D12Resource *dst_buffer, 22099 UINT64 dst_offset, 22100 ID3D12Resource *src_buffer, 22101 UINT64 src_offset, 22102 UINT dependent_resource_count, 22103 ID3D12Resource *const *dependent_resources, 22104 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 22105 22106 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 22107 ID3D12GraphicsCommandList5 *This, 22108 ID3D12Resource *dst_buffer, 22109 UINT64 dst_offset, 22110 ID3D12Resource *src_buffer, 22111 UINT64 src_offset, 22112 UINT dependent_resource_count, 22113 ID3D12Resource *const *dependent_resources, 22114 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 22115 22116 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 22117 ID3D12GraphicsCommandList5 *This, 22118 FLOAT min, 22119 FLOAT max); 22120 22121 void (STDMETHODCALLTYPE *SetSamplePositions)( 22122 ID3D12GraphicsCommandList5 *This, 22123 UINT sample_count, 22124 UINT pixel_count, 22125 D3D12_SAMPLE_POSITION *sample_positions); 22126 22127 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 22128 ID3D12GraphicsCommandList5 *This, 22129 ID3D12Resource *dst_resource, 22130 UINT dst_sub_resource_idx, 22131 UINT dst_x, 22132 UINT dst_y, 22133 ID3D12Resource *src_resource, 22134 UINT src_sub_resource_idx, 22135 D3D12_RECT *src_rect, 22136 DXGI_FORMAT format, 22137 D3D12_RESOLVE_MODE mode); 22138 22139 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 22140 ID3D12GraphicsCommandList5 *This, 22141 UINT mask); 22142 22143 /*** ID3D12GraphicsCommandList2 methods ***/ 22144 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 22145 ID3D12GraphicsCommandList5 *This, 22146 UINT count, 22147 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 22148 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 22149 22150 /*** ID3D12GraphicsCommandList3 methods ***/ 22151 void (STDMETHODCALLTYPE *SetProtectedResourceSession)( 22152 ID3D12GraphicsCommandList5 *This, 22153 ID3D12ProtectedResourceSession *protected_resource_session); 22154 22155 /*** ID3D12GraphicsCommandList4 methods ***/ 22156 void (STDMETHODCALLTYPE *BeginRenderPass)( 22157 ID3D12GraphicsCommandList5 *This, 22158 UINT render_targets_count, 22159 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets, 22160 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil, 22161 D3D12_RENDER_PASS_FLAGS flags); 22162 22163 void (STDMETHODCALLTYPE *EndRenderPass)( 22164 ID3D12GraphicsCommandList5 *This); 22165 22166 void (STDMETHODCALLTYPE *InitializeMetaCommand)( 22167 ID3D12GraphicsCommandList5 *This, 22168 ID3D12MetaCommand *meta_command, 22169 const void *initialization_parameters_data, 22170 SIZE_T initialization_parameters_data_size_in_bytes); 22171 22172 void (STDMETHODCALLTYPE *ExecuteMetaCommand)( 22173 ID3D12GraphicsCommandList5 *This, 22174 ID3D12MetaCommand *meta_command, 22175 const void *execution_parameters_data, 22176 SIZE_T execution_parameters_data_size_in_bytes); 22177 22178 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)( 22179 ID3D12GraphicsCommandList5 *This, 22180 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc, 22181 UINT postbuild_info_descs_count, 22182 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs); 22183 22184 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)( 22185 ID3D12GraphicsCommandList5 *This, 22186 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc, 22187 UINT src_acceleration_structures_count, 22188 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data); 22189 22190 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)( 22191 ID3D12GraphicsCommandList5 *This, 22192 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data, 22193 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data, 22194 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode); 22195 22196 void (STDMETHODCALLTYPE *SetPipelineState1)( 22197 ID3D12GraphicsCommandList5 *This, 22198 ID3D12StateObject *state_object); 22199 22200 void (STDMETHODCALLTYPE *DispatchRays)( 22201 ID3D12GraphicsCommandList5 *This, 22202 const D3D12_DISPATCH_RAYS_DESC *desc); 22203 22204 /*** ID3D12GraphicsCommandList5 methods ***/ 22205 void (STDMETHODCALLTYPE *RSSetShadingRate)( 22206 ID3D12GraphicsCommandList5 *This, 22207 D3D12_SHADING_RATE base_shading_rate, 22208 const D3D12_SHADING_RATE_COMBINER *combiners); 22209 22210 void (STDMETHODCALLTYPE *RSSetShadingRateImage)( 22211 ID3D12GraphicsCommandList5 *This, 22212 ID3D12Resource *shading_rate_image); 22213 22214 END_INTERFACE 22215 } ID3D12GraphicsCommandList5Vtbl; 22216 22217 interface ID3D12GraphicsCommandList5 { 22218 CONST_VTBL ID3D12GraphicsCommandList5Vtbl* lpVtbl; 22219 }; 22220 22221 #ifdef COBJMACROS 22222 #ifndef WIDL_C_INLINE_WRAPPERS 22223 /*** IUnknown methods ***/ 22224 #define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 22225 #define ID3D12GraphicsCommandList5_AddRef(This) (This)->lpVtbl->AddRef(This) 22226 #define ID3D12GraphicsCommandList5_Release(This) (This)->lpVtbl->Release(This) 22227 /*** ID3D12Object methods ***/ 22228 #define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 22229 #define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 22230 #define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 22231 #define ID3D12GraphicsCommandList5_SetName(This,name) (This)->lpVtbl->SetName(This,name) 22232 /*** ID3D12DeviceChild methods ***/ 22233 #define ID3D12GraphicsCommandList5_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 22234 /*** ID3D12CommandList methods ***/ 22235 #define ID3D12GraphicsCommandList5_GetType(This) (This)->lpVtbl->GetType(This) 22236 /*** ID3D12GraphicsCommandList methods ***/ 22237 #define ID3D12GraphicsCommandList5_Close(This) (This)->lpVtbl->Close(This) 22238 #define ID3D12GraphicsCommandList5_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 22239 #define ID3D12GraphicsCommandList5_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 22240 #define ID3D12GraphicsCommandList5_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 22241 #define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 22242 #define ID3D12GraphicsCommandList5_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 22243 #define ID3D12GraphicsCommandList5_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 22244 #define ID3D12GraphicsCommandList5_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 22245 #define ID3D12GraphicsCommandList5_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 22246 #define ID3D12GraphicsCommandList5_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 22247 #define ID3D12GraphicsCommandList5_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 22248 #define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 22249 #define ID3D12GraphicsCommandList5_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 22250 #define ID3D12GraphicsCommandList5_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 22251 #define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 22252 #define ID3D12GraphicsCommandList5_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 22253 #define ID3D12GraphicsCommandList5_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 22254 #define ID3D12GraphicsCommandList5_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 22255 #define ID3D12GraphicsCommandList5_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 22256 #define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 22257 #define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 22258 #define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 22259 #define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 22260 #define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 22261 #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 22262 #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 22263 #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 22264 #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 22265 #define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 22266 #define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 22267 #define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 22268 #define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 22269 #define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 22270 #define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 22271 #define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 22272 #define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 22273 #define ID3D12GraphicsCommandList5_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 22274 #define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 22275 #define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 22276 #define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 22277 #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 22278 #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 22279 #define ID3D12GraphicsCommandList5_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 22280 #define ID3D12GraphicsCommandList5_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 22281 #define ID3D12GraphicsCommandList5_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 22282 #define ID3D12GraphicsCommandList5_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 22283 #define ID3D12GraphicsCommandList5_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 22284 #define ID3D12GraphicsCommandList5_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 22285 #define ID3D12GraphicsCommandList5_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 22286 #define ID3D12GraphicsCommandList5_EndEvent(This) (This)->lpVtbl->EndEvent(This) 22287 #define ID3D12GraphicsCommandList5_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 22288 /*** ID3D12GraphicsCommandList1 methods ***/ 22289 #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 22290 #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 22291 #define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 22292 #define ID3D12GraphicsCommandList5_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 22293 #define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 22294 #define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 22295 /*** ID3D12GraphicsCommandList2 methods ***/ 22296 #define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 22297 /*** ID3D12GraphicsCommandList3 methods ***/ 22298 #define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session) 22299 /*** ID3D12GraphicsCommandList4 methods ***/ 22300 #define ID3D12GraphicsCommandList5_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) 22301 #define ID3D12GraphicsCommandList5_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This) 22302 #define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) 22303 #define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) 22304 #define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) 22305 #define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) 22306 #define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) 22307 #define ID3D12GraphicsCommandList5_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object) 22308 #define ID3D12GraphicsCommandList5_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc) 22309 /*** ID3D12GraphicsCommandList5 methods ***/ 22310 #define ID3D12GraphicsCommandList5_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners) 22311 #define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image) 22312 #else 22313 /*** IUnknown methods ***/ 22314 static inline HRESULT ID3D12GraphicsCommandList5_QueryInterface(ID3D12GraphicsCommandList5* This,REFIID riid,void **ppvObject) { 22315 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 22316 } 22317 static inline ULONG ID3D12GraphicsCommandList5_AddRef(ID3D12GraphicsCommandList5* This) { 22318 return This->lpVtbl->AddRef(This); 22319 } 22320 static inline ULONG ID3D12GraphicsCommandList5_Release(ID3D12GraphicsCommandList5* This) { 22321 return This->lpVtbl->Release(This); 22322 } 22323 /*** ID3D12Object methods ***/ 22324 static inline HRESULT ID3D12GraphicsCommandList5_GetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT *data_size,void *data) { 22325 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 22326 } 22327 static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateData(ID3D12GraphicsCommandList5* This,REFGUID guid,UINT data_size,const void *data) { 22328 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 22329 } 22330 static inline HRESULT ID3D12GraphicsCommandList5_SetPrivateDataInterface(ID3D12GraphicsCommandList5* This,REFGUID guid,const IUnknown *data) { 22331 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 22332 } 22333 static inline HRESULT ID3D12GraphicsCommandList5_SetName(ID3D12GraphicsCommandList5* This,const WCHAR *name) { 22334 return This->lpVtbl->SetName(This,name); 22335 } 22336 /*** ID3D12DeviceChild methods ***/ 22337 static inline HRESULT ID3D12GraphicsCommandList5_GetDevice(ID3D12GraphicsCommandList5* This,REFIID riid,void **device) { 22338 return This->lpVtbl->GetDevice(This,riid,device); 22339 } 22340 /*** ID3D12CommandList methods ***/ 22341 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList5_GetType(ID3D12GraphicsCommandList5* This) { 22342 return This->lpVtbl->GetType(This); 22343 } 22344 /*** ID3D12GraphicsCommandList methods ***/ 22345 static inline HRESULT ID3D12GraphicsCommandList5_Close(ID3D12GraphicsCommandList5* This) { 22346 return This->lpVtbl->Close(This); 22347 } 22348 static inline HRESULT ID3D12GraphicsCommandList5_Reset(ID3D12GraphicsCommandList5* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 22349 return This->lpVtbl->Reset(This,allocator,initial_state); 22350 } 22351 static inline void ID3D12GraphicsCommandList5_ClearState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) { 22352 This->lpVtbl->ClearState(This,pipeline_state); 22353 } 22354 static inline void ID3D12GraphicsCommandList5_DrawInstanced(ID3D12GraphicsCommandList5* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 22355 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 22356 } 22357 static inline void ID3D12GraphicsCommandList5_DrawIndexedInstanced(ID3D12GraphicsCommandList5* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 22358 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 22359 } 22360 static inline void ID3D12GraphicsCommandList5_Dispatch(ID3D12GraphicsCommandList5* This,UINT x,UINT u,UINT z) { 22361 This->lpVtbl->Dispatch(This,x,u,z); 22362 } 22363 static inline void ID3D12GraphicsCommandList5_CopyBufferRegion(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 22364 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 22365 } 22366 static inline void ID3D12GraphicsCommandList5_CopyTextureRegion(ID3D12GraphicsCommandList5* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 22367 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 22368 } 22369 static inline void ID3D12GraphicsCommandList5_CopyResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 22370 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 22371 } 22372 static inline void ID3D12GraphicsCommandList5_CopyTiles(ID3D12GraphicsCommandList5* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 22373 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 22374 } 22375 static inline void ID3D12GraphicsCommandList5_ResolveSubresource(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 22376 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 22377 } 22378 static inline void ID3D12GraphicsCommandList5_IASetPrimitiveTopology(ID3D12GraphicsCommandList5* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 22379 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 22380 } 22381 static inline void ID3D12GraphicsCommandList5_RSSetViewports(ID3D12GraphicsCommandList5* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 22382 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 22383 } 22384 static inline void ID3D12GraphicsCommandList5_RSSetScissorRects(ID3D12GraphicsCommandList5* This,UINT rect_count,const D3D12_RECT *rects) { 22385 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 22386 } 22387 static inline void ID3D12GraphicsCommandList5_OMSetBlendFactor(ID3D12GraphicsCommandList5* This,const FLOAT blend_factor[4]) { 22388 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 22389 } 22390 static inline void ID3D12GraphicsCommandList5_OMSetStencilRef(ID3D12GraphicsCommandList5* This,UINT stencil_ref) { 22391 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 22392 } 22393 static inline void ID3D12GraphicsCommandList5_SetPipelineState(ID3D12GraphicsCommandList5* This,ID3D12PipelineState *pipeline_state) { 22394 This->lpVtbl->SetPipelineState(This,pipeline_state); 22395 } 22396 static inline void ID3D12GraphicsCommandList5_ResourceBarrier(ID3D12GraphicsCommandList5* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 22397 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 22398 } 22399 static inline void ID3D12GraphicsCommandList5_ExecuteBundle(ID3D12GraphicsCommandList5* This,ID3D12GraphicsCommandList *command_list) { 22400 This->lpVtbl->ExecuteBundle(This,command_list); 22401 } 22402 static inline void ID3D12GraphicsCommandList5_SetDescriptorHeaps(ID3D12GraphicsCommandList5* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 22403 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 22404 } 22405 static inline void ID3D12GraphicsCommandList5_SetComputeRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) { 22406 This->lpVtbl->SetComputeRootSignature(This,root_signature); 22407 } 22408 static inline void ID3D12GraphicsCommandList5_SetGraphicsRootSignature(ID3D12GraphicsCommandList5* This,ID3D12RootSignature *root_signature) { 22409 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 22410 } 22411 static inline void ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 22412 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 22413 } 22414 static inline void ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 22415 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 22416 } 22417 static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 22418 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 22419 } 22420 static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 22421 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 22422 } 22423 static inline void ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 22424 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 22425 } 22426 static inline void ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 22427 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 22428 } 22429 static inline void ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22430 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 22431 } 22432 static inline void ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22433 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 22434 } 22435 static inline void ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22436 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 22437 } 22438 static inline void ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22439 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 22440 } 22441 static inline void ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22442 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 22443 } 22444 static inline void ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList5* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 22445 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 22446 } 22447 static inline void ID3D12GraphicsCommandList5_IASetIndexBuffer(ID3D12GraphicsCommandList5* This,const D3D12_INDEX_BUFFER_VIEW *view) { 22448 This->lpVtbl->IASetIndexBuffer(This,view); 22449 } 22450 static inline void ID3D12GraphicsCommandList5_IASetVertexBuffers(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 22451 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 22452 } 22453 static inline void ID3D12GraphicsCommandList5_SOSetTargets(ID3D12GraphicsCommandList5* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 22454 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 22455 } 22456 static inline void ID3D12GraphicsCommandList5_OMSetRenderTargets(ID3D12GraphicsCommandList5* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 22457 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 22458 } 22459 static inline void ID3D12GraphicsCommandList5_ClearDepthStencilView(ID3D12GraphicsCommandList5* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 22460 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 22461 } 22462 static inline void ID3D12GraphicsCommandList5_ClearRenderTargetView(ID3D12GraphicsCommandList5* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 22463 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 22464 } 22465 static inline void ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList5* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 22466 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 22467 } 22468 static inline void ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList5* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 22469 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 22470 } 22471 static inline void ID3D12GraphicsCommandList5_DiscardResource(ID3D12GraphicsCommandList5* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 22472 This->lpVtbl->DiscardResource(This,resource,region); 22473 } 22474 static inline void ID3D12GraphicsCommandList5_BeginQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 22475 This->lpVtbl->BeginQuery(This,heap,type,index); 22476 } 22477 static inline void ID3D12GraphicsCommandList5_EndQuery(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 22478 This->lpVtbl->EndQuery(This,heap,type,index); 22479 } 22480 static inline void ID3D12GraphicsCommandList5_ResolveQueryData(ID3D12GraphicsCommandList5* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 22481 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 22482 } 22483 static inline void ID3D12GraphicsCommandList5_SetPredication(ID3D12GraphicsCommandList5* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 22484 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 22485 } 22486 static inline void ID3D12GraphicsCommandList5_SetMarker(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) { 22487 This->lpVtbl->SetMarker(This,metadata,data,size); 22488 } 22489 static inline void ID3D12GraphicsCommandList5_BeginEvent(ID3D12GraphicsCommandList5* This,UINT metadata,const void *data,UINT size) { 22490 This->lpVtbl->BeginEvent(This,metadata,data,size); 22491 } 22492 static inline void ID3D12GraphicsCommandList5_EndEvent(ID3D12GraphicsCommandList5* This) { 22493 This->lpVtbl->EndEvent(This); 22494 } 22495 static inline void ID3D12GraphicsCommandList5_ExecuteIndirect(ID3D12GraphicsCommandList5* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 22496 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 22497 } 22498 /*** ID3D12GraphicsCommandList1 methods ***/ 22499 static inline void ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 22500 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 22501 } 22502 static inline void ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 22503 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 22504 } 22505 static inline void ID3D12GraphicsCommandList5_OMSetDepthBounds(ID3D12GraphicsCommandList5* This,FLOAT min,FLOAT max) { 22506 This->lpVtbl->OMSetDepthBounds(This,min,max); 22507 } 22508 static inline void ID3D12GraphicsCommandList5_SetSamplePositions(ID3D12GraphicsCommandList5* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 22509 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 22510 } 22511 static inline void ID3D12GraphicsCommandList5_ResolveSubresourceRegion(ID3D12GraphicsCommandList5* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 22512 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 22513 } 22514 static inline void ID3D12GraphicsCommandList5_SetViewInstanceMask(ID3D12GraphicsCommandList5* This,UINT mask) { 22515 This->lpVtbl->SetViewInstanceMask(This,mask); 22516 } 22517 /*** ID3D12GraphicsCommandList2 methods ***/ 22518 static inline void ID3D12GraphicsCommandList5_WriteBufferImmediate(ID3D12GraphicsCommandList5* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 22519 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 22520 } 22521 /*** ID3D12GraphicsCommandList3 methods ***/ 22522 static inline void ID3D12GraphicsCommandList5_SetProtectedResourceSession(ID3D12GraphicsCommandList5* This,ID3D12ProtectedResourceSession *protected_resource_session) { 22523 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session); 22524 } 22525 /*** ID3D12GraphicsCommandList4 methods ***/ 22526 static inline void ID3D12GraphicsCommandList5_BeginRenderPass(ID3D12GraphicsCommandList5* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) { 22527 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags); 22528 } 22529 static inline void ID3D12GraphicsCommandList5_EndRenderPass(ID3D12GraphicsCommandList5* This) { 22530 This->lpVtbl->EndRenderPass(This); 22531 } 22532 static inline void ID3D12GraphicsCommandList5_InitializeMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) { 22533 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes); 22534 } 22535 static inline void ID3D12GraphicsCommandList5_ExecuteMetaCommand(ID3D12GraphicsCommandList5* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) { 22536 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes); 22537 } 22538 static inline void ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList5* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) { 22539 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs); 22540 } 22541 static inline void ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList5* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) { 22542 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data); 22543 } 22544 static inline void ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList5* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) { 22545 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode); 22546 } 22547 static inline void ID3D12GraphicsCommandList5_SetPipelineState1(ID3D12GraphicsCommandList5* This,ID3D12StateObject *state_object) { 22548 This->lpVtbl->SetPipelineState1(This,state_object); 22549 } 22550 static inline void ID3D12GraphicsCommandList5_DispatchRays(ID3D12GraphicsCommandList5* This,const D3D12_DISPATCH_RAYS_DESC *desc) { 22551 This->lpVtbl->DispatchRays(This,desc); 22552 } 22553 /*** ID3D12GraphicsCommandList5 methods ***/ 22554 static inline void ID3D12GraphicsCommandList5_RSSetShadingRate(ID3D12GraphicsCommandList5* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) { 22555 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners); 22556 } 22557 static inline void ID3D12GraphicsCommandList5_RSSetShadingRateImage(ID3D12GraphicsCommandList5* This,ID3D12Resource *shading_rate_image) { 22558 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image); 22559 } 22560 #endif 22561 #endif 22562 22563 #endif 22564 22565 22566 #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ 22567 22568 #define D3D12_SHADING_RATE_X_AXIS_SHIFT (2) 22569 22570 #define D3D12_SHADING_RATE_VALID_MASK (3) 22571 22572 #define D3D12_MAKE_COARSE_SHADING_RATE(x, y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y)) 22573 #define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(val) (((val) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK) 22574 #define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(val) ((val) & D3D12_SHADING_RATE_VALID_MASK) 22575 typedef struct D3D12_DISPATCH_MESH_ARGUMENTS { 22576 UINT ThreadGroupCountX; 22577 UINT ThreadGroupCountY; 22578 UINT ThreadGroupCountZ; 22579 } D3D12_DISPATCH_MESH_ARGUMENTS; 22580 /***************************************************************************** 22581 * ID3D12GraphicsCommandList6 interface 22582 */ 22583 #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ 22584 #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ 22585 22586 DEFINE_GUID(IID_ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80); 22587 #if defined(__cplusplus) && !defined(CINTERFACE) 22588 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80") 22589 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5 22590 { 22591 virtual void STDMETHODCALLTYPE DispatchMesh( 22592 UINT thread_group_count_x, 22593 UINT thread_group_count_y, 22594 UINT thread_group_count_z) = 0; 22595 22596 }; 22597 #ifdef __CRT_UUID_DECL 22598 __CRT_UUID_DECL(ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96,0xcf, 0x56,0x89,0xa9,0x37,0x0f,0x80) 22599 #endif 22600 #else 22601 typedef struct ID3D12GraphicsCommandList6Vtbl { 22602 BEGIN_INTERFACE 22603 22604 /*** IUnknown methods ***/ 22605 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 22606 ID3D12GraphicsCommandList6 *This, 22607 REFIID riid, 22608 void **ppvObject); 22609 22610 ULONG (STDMETHODCALLTYPE *AddRef)( 22611 ID3D12GraphicsCommandList6 *This); 22612 22613 ULONG (STDMETHODCALLTYPE *Release)( 22614 ID3D12GraphicsCommandList6 *This); 22615 22616 /*** ID3D12Object methods ***/ 22617 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 22618 ID3D12GraphicsCommandList6 *This, 22619 REFGUID guid, 22620 UINT *data_size, 22621 void *data); 22622 22623 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 22624 ID3D12GraphicsCommandList6 *This, 22625 REFGUID guid, 22626 UINT data_size, 22627 const void *data); 22628 22629 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 22630 ID3D12GraphicsCommandList6 *This, 22631 REFGUID guid, 22632 const IUnknown *data); 22633 22634 HRESULT (STDMETHODCALLTYPE *SetName)( 22635 ID3D12GraphicsCommandList6 *This, 22636 const WCHAR *name); 22637 22638 /*** ID3D12DeviceChild methods ***/ 22639 HRESULT (STDMETHODCALLTYPE *GetDevice)( 22640 ID3D12GraphicsCommandList6 *This, 22641 REFIID riid, 22642 void **device); 22643 22644 /*** ID3D12CommandList methods ***/ 22645 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 22646 ID3D12GraphicsCommandList6 *This); 22647 22648 /*** ID3D12GraphicsCommandList methods ***/ 22649 HRESULT (STDMETHODCALLTYPE *Close)( 22650 ID3D12GraphicsCommandList6 *This); 22651 22652 HRESULT (STDMETHODCALLTYPE *Reset)( 22653 ID3D12GraphicsCommandList6 *This, 22654 ID3D12CommandAllocator *allocator, 22655 ID3D12PipelineState *initial_state); 22656 22657 void (STDMETHODCALLTYPE *ClearState)( 22658 ID3D12GraphicsCommandList6 *This, 22659 ID3D12PipelineState *pipeline_state); 22660 22661 void (STDMETHODCALLTYPE *DrawInstanced)( 22662 ID3D12GraphicsCommandList6 *This, 22663 UINT vertex_count_per_instance, 22664 UINT instance_count, 22665 UINT start_vertex_location, 22666 UINT start_instance_location); 22667 22668 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 22669 ID3D12GraphicsCommandList6 *This, 22670 UINT index_count_per_instance, 22671 UINT instance_count, 22672 UINT start_vertex_location, 22673 INT base_vertex_location, 22674 UINT start_instance_location); 22675 22676 void (STDMETHODCALLTYPE *Dispatch)( 22677 ID3D12GraphicsCommandList6 *This, 22678 UINT x, 22679 UINT u, 22680 UINT z); 22681 22682 void (STDMETHODCALLTYPE *CopyBufferRegion)( 22683 ID3D12GraphicsCommandList6 *This, 22684 ID3D12Resource *dst_buffer, 22685 UINT64 dst_offset, 22686 ID3D12Resource *src_buffer, 22687 UINT64 src_offset, 22688 UINT64 byte_count); 22689 22690 void (STDMETHODCALLTYPE *CopyTextureRegion)( 22691 ID3D12GraphicsCommandList6 *This, 22692 const D3D12_TEXTURE_COPY_LOCATION *dst, 22693 UINT dst_x, 22694 UINT dst_y, 22695 UINT dst_z, 22696 const D3D12_TEXTURE_COPY_LOCATION *src, 22697 const D3D12_BOX *src_box); 22698 22699 void (STDMETHODCALLTYPE *CopyResource)( 22700 ID3D12GraphicsCommandList6 *This, 22701 ID3D12Resource *dst_resource, 22702 ID3D12Resource *src_resource); 22703 22704 void (STDMETHODCALLTYPE *CopyTiles)( 22705 ID3D12GraphicsCommandList6 *This, 22706 ID3D12Resource *tiled_resource, 22707 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 22708 const D3D12_TILE_REGION_SIZE *tile_region_size, 22709 ID3D12Resource *buffer, 22710 UINT64 buffer_offset, 22711 D3D12_TILE_COPY_FLAGS flags); 22712 22713 void (STDMETHODCALLTYPE *ResolveSubresource)( 22714 ID3D12GraphicsCommandList6 *This, 22715 ID3D12Resource *dst_resource, 22716 UINT dst_sub_resource, 22717 ID3D12Resource *src_resource, 22718 UINT src_sub_resource, 22719 DXGI_FORMAT format); 22720 22721 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 22722 ID3D12GraphicsCommandList6 *This, 22723 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 22724 22725 void (STDMETHODCALLTYPE *RSSetViewports)( 22726 ID3D12GraphicsCommandList6 *This, 22727 UINT viewport_count, 22728 const D3D12_VIEWPORT *viewports); 22729 22730 void (STDMETHODCALLTYPE *RSSetScissorRects)( 22731 ID3D12GraphicsCommandList6 *This, 22732 UINT rect_count, 22733 const D3D12_RECT *rects); 22734 22735 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 22736 ID3D12GraphicsCommandList6 *This, 22737 const FLOAT blend_factor[4]); 22738 22739 void (STDMETHODCALLTYPE *OMSetStencilRef)( 22740 ID3D12GraphicsCommandList6 *This, 22741 UINT stencil_ref); 22742 22743 void (STDMETHODCALLTYPE *SetPipelineState)( 22744 ID3D12GraphicsCommandList6 *This, 22745 ID3D12PipelineState *pipeline_state); 22746 22747 void (STDMETHODCALLTYPE *ResourceBarrier)( 22748 ID3D12GraphicsCommandList6 *This, 22749 UINT barrier_count, 22750 const D3D12_RESOURCE_BARRIER *barriers); 22751 22752 void (STDMETHODCALLTYPE *ExecuteBundle)( 22753 ID3D12GraphicsCommandList6 *This, 22754 ID3D12GraphicsCommandList *command_list); 22755 22756 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 22757 ID3D12GraphicsCommandList6 *This, 22758 UINT heap_count, 22759 ID3D12DescriptorHeap *const *heaps); 22760 22761 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 22762 ID3D12GraphicsCommandList6 *This, 22763 ID3D12RootSignature *root_signature); 22764 22765 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 22766 ID3D12GraphicsCommandList6 *This, 22767 ID3D12RootSignature *root_signature); 22768 22769 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 22770 ID3D12GraphicsCommandList6 *This, 22771 UINT root_parameter_index, 22772 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 22773 22774 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 22775 ID3D12GraphicsCommandList6 *This, 22776 UINT root_parameter_index, 22777 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 22778 22779 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 22780 ID3D12GraphicsCommandList6 *This, 22781 UINT root_parameter_index, 22782 UINT data, 22783 UINT dst_offset); 22784 22785 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 22786 ID3D12GraphicsCommandList6 *This, 22787 UINT root_parameter_index, 22788 UINT data, 22789 UINT dst_offset); 22790 22791 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 22792 ID3D12GraphicsCommandList6 *This, 22793 UINT root_parameter_index, 22794 UINT constant_count, 22795 const void *data, 22796 UINT dst_offset); 22797 22798 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 22799 ID3D12GraphicsCommandList6 *This, 22800 UINT root_parameter_index, 22801 UINT constant_count, 22802 const void *data, 22803 UINT dst_offset); 22804 22805 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 22806 ID3D12GraphicsCommandList6 *This, 22807 UINT root_parameter_index, 22808 D3D12_GPU_VIRTUAL_ADDRESS address); 22809 22810 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 22811 ID3D12GraphicsCommandList6 *This, 22812 UINT root_parameter_index, 22813 D3D12_GPU_VIRTUAL_ADDRESS address); 22814 22815 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 22816 ID3D12GraphicsCommandList6 *This, 22817 UINT root_parameter_index, 22818 D3D12_GPU_VIRTUAL_ADDRESS address); 22819 22820 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 22821 ID3D12GraphicsCommandList6 *This, 22822 UINT root_parameter_index, 22823 D3D12_GPU_VIRTUAL_ADDRESS address); 22824 22825 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 22826 ID3D12GraphicsCommandList6 *This, 22827 UINT root_parameter_index, 22828 D3D12_GPU_VIRTUAL_ADDRESS address); 22829 22830 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 22831 ID3D12GraphicsCommandList6 *This, 22832 UINT root_parameter_index, 22833 D3D12_GPU_VIRTUAL_ADDRESS address); 22834 22835 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 22836 ID3D12GraphicsCommandList6 *This, 22837 const D3D12_INDEX_BUFFER_VIEW *view); 22838 22839 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 22840 ID3D12GraphicsCommandList6 *This, 22841 UINT start_slot, 22842 UINT view_count, 22843 const D3D12_VERTEX_BUFFER_VIEW *views); 22844 22845 void (STDMETHODCALLTYPE *SOSetTargets)( 22846 ID3D12GraphicsCommandList6 *This, 22847 UINT start_slot, 22848 UINT view_count, 22849 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 22850 22851 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 22852 ID3D12GraphicsCommandList6 *This, 22853 UINT render_target_descriptor_count, 22854 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 22855 WINBOOL single_descriptor_handle, 22856 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 22857 22858 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 22859 ID3D12GraphicsCommandList6 *This, 22860 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 22861 D3D12_CLEAR_FLAGS flags, 22862 FLOAT depth, 22863 UINT8 stencil, 22864 UINT rect_count, 22865 const D3D12_RECT *rects); 22866 22867 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 22868 ID3D12GraphicsCommandList6 *This, 22869 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 22870 const FLOAT color[4], 22871 UINT rect_count, 22872 const D3D12_RECT *rects); 22873 22874 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 22875 ID3D12GraphicsCommandList6 *This, 22876 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 22877 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 22878 ID3D12Resource *resource, 22879 const UINT values[4], 22880 UINT rect_count, 22881 const D3D12_RECT *rects); 22882 22883 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 22884 ID3D12GraphicsCommandList6 *This, 22885 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 22886 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 22887 ID3D12Resource *resource, 22888 const float values[4], 22889 UINT rect_count, 22890 const D3D12_RECT *rects); 22891 22892 void (STDMETHODCALLTYPE *DiscardResource)( 22893 ID3D12GraphicsCommandList6 *This, 22894 ID3D12Resource *resource, 22895 const D3D12_DISCARD_REGION *region); 22896 22897 void (STDMETHODCALLTYPE *BeginQuery)( 22898 ID3D12GraphicsCommandList6 *This, 22899 ID3D12QueryHeap *heap, 22900 D3D12_QUERY_TYPE type, 22901 UINT index); 22902 22903 void (STDMETHODCALLTYPE *EndQuery)( 22904 ID3D12GraphicsCommandList6 *This, 22905 ID3D12QueryHeap *heap, 22906 D3D12_QUERY_TYPE type, 22907 UINT index); 22908 22909 void (STDMETHODCALLTYPE *ResolveQueryData)( 22910 ID3D12GraphicsCommandList6 *This, 22911 ID3D12QueryHeap *heap, 22912 D3D12_QUERY_TYPE type, 22913 UINT start_index, 22914 UINT query_count, 22915 ID3D12Resource *dst_buffer, 22916 UINT64 aligned_dst_buffer_offset); 22917 22918 void (STDMETHODCALLTYPE *SetPredication)( 22919 ID3D12GraphicsCommandList6 *This, 22920 ID3D12Resource *buffer, 22921 UINT64 aligned_buffer_offset, 22922 D3D12_PREDICATION_OP operation); 22923 22924 void (STDMETHODCALLTYPE *SetMarker)( 22925 ID3D12GraphicsCommandList6 *This, 22926 UINT metadata, 22927 const void *data, 22928 UINT size); 22929 22930 void (STDMETHODCALLTYPE *BeginEvent)( 22931 ID3D12GraphicsCommandList6 *This, 22932 UINT metadata, 22933 const void *data, 22934 UINT size); 22935 22936 void (STDMETHODCALLTYPE *EndEvent)( 22937 ID3D12GraphicsCommandList6 *This); 22938 22939 void (STDMETHODCALLTYPE *ExecuteIndirect)( 22940 ID3D12GraphicsCommandList6 *This, 22941 ID3D12CommandSignature *command_signature, 22942 UINT max_command_count, 22943 ID3D12Resource *arg_buffer, 22944 UINT64 arg_buffer_offset, 22945 ID3D12Resource *count_buffer, 22946 UINT64 count_buffer_offset); 22947 22948 /*** ID3D12GraphicsCommandList1 methods ***/ 22949 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 22950 ID3D12GraphicsCommandList6 *This, 22951 ID3D12Resource *dst_buffer, 22952 UINT64 dst_offset, 22953 ID3D12Resource *src_buffer, 22954 UINT64 src_offset, 22955 UINT dependent_resource_count, 22956 ID3D12Resource *const *dependent_resources, 22957 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 22958 22959 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 22960 ID3D12GraphicsCommandList6 *This, 22961 ID3D12Resource *dst_buffer, 22962 UINT64 dst_offset, 22963 ID3D12Resource *src_buffer, 22964 UINT64 src_offset, 22965 UINT dependent_resource_count, 22966 ID3D12Resource *const *dependent_resources, 22967 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 22968 22969 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 22970 ID3D12GraphicsCommandList6 *This, 22971 FLOAT min, 22972 FLOAT max); 22973 22974 void (STDMETHODCALLTYPE *SetSamplePositions)( 22975 ID3D12GraphicsCommandList6 *This, 22976 UINT sample_count, 22977 UINT pixel_count, 22978 D3D12_SAMPLE_POSITION *sample_positions); 22979 22980 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 22981 ID3D12GraphicsCommandList6 *This, 22982 ID3D12Resource *dst_resource, 22983 UINT dst_sub_resource_idx, 22984 UINT dst_x, 22985 UINT dst_y, 22986 ID3D12Resource *src_resource, 22987 UINT src_sub_resource_idx, 22988 D3D12_RECT *src_rect, 22989 DXGI_FORMAT format, 22990 D3D12_RESOLVE_MODE mode); 22991 22992 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 22993 ID3D12GraphicsCommandList6 *This, 22994 UINT mask); 22995 22996 /*** ID3D12GraphicsCommandList2 methods ***/ 22997 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 22998 ID3D12GraphicsCommandList6 *This, 22999 UINT count, 23000 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 23001 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 23002 23003 /*** ID3D12GraphicsCommandList3 methods ***/ 23004 void (STDMETHODCALLTYPE *SetProtectedResourceSession)( 23005 ID3D12GraphicsCommandList6 *This, 23006 ID3D12ProtectedResourceSession *protected_resource_session); 23007 23008 /*** ID3D12GraphicsCommandList4 methods ***/ 23009 void (STDMETHODCALLTYPE *BeginRenderPass)( 23010 ID3D12GraphicsCommandList6 *This, 23011 UINT render_targets_count, 23012 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets, 23013 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil, 23014 D3D12_RENDER_PASS_FLAGS flags); 23015 23016 void (STDMETHODCALLTYPE *EndRenderPass)( 23017 ID3D12GraphicsCommandList6 *This); 23018 23019 void (STDMETHODCALLTYPE *InitializeMetaCommand)( 23020 ID3D12GraphicsCommandList6 *This, 23021 ID3D12MetaCommand *meta_command, 23022 const void *initialization_parameters_data, 23023 SIZE_T initialization_parameters_data_size_in_bytes); 23024 23025 void (STDMETHODCALLTYPE *ExecuteMetaCommand)( 23026 ID3D12GraphicsCommandList6 *This, 23027 ID3D12MetaCommand *meta_command, 23028 const void *execution_parameters_data, 23029 SIZE_T execution_parameters_data_size_in_bytes); 23030 23031 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)( 23032 ID3D12GraphicsCommandList6 *This, 23033 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc, 23034 UINT postbuild_info_descs_count, 23035 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs); 23036 23037 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)( 23038 ID3D12GraphicsCommandList6 *This, 23039 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc, 23040 UINT src_acceleration_structures_count, 23041 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data); 23042 23043 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)( 23044 ID3D12GraphicsCommandList6 *This, 23045 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data, 23046 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data, 23047 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode); 23048 23049 void (STDMETHODCALLTYPE *SetPipelineState1)( 23050 ID3D12GraphicsCommandList6 *This, 23051 ID3D12StateObject *state_object); 23052 23053 void (STDMETHODCALLTYPE *DispatchRays)( 23054 ID3D12GraphicsCommandList6 *This, 23055 const D3D12_DISPATCH_RAYS_DESC *desc); 23056 23057 /*** ID3D12GraphicsCommandList5 methods ***/ 23058 void (STDMETHODCALLTYPE *RSSetShadingRate)( 23059 ID3D12GraphicsCommandList6 *This, 23060 D3D12_SHADING_RATE base_shading_rate, 23061 const D3D12_SHADING_RATE_COMBINER *combiners); 23062 23063 void (STDMETHODCALLTYPE *RSSetShadingRateImage)( 23064 ID3D12GraphicsCommandList6 *This, 23065 ID3D12Resource *shading_rate_image); 23066 23067 /*** ID3D12GraphicsCommandList6 methods ***/ 23068 void (STDMETHODCALLTYPE *DispatchMesh)( 23069 ID3D12GraphicsCommandList6 *This, 23070 UINT thread_group_count_x, 23071 UINT thread_group_count_y, 23072 UINT thread_group_count_z); 23073 23074 END_INTERFACE 23075 } ID3D12GraphicsCommandList6Vtbl; 23076 23077 interface ID3D12GraphicsCommandList6 { 23078 CONST_VTBL ID3D12GraphicsCommandList6Vtbl* lpVtbl; 23079 }; 23080 23081 #ifdef COBJMACROS 23082 #ifndef WIDL_C_INLINE_WRAPPERS 23083 /*** IUnknown methods ***/ 23084 #define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 23085 #define ID3D12GraphicsCommandList6_AddRef(This) (This)->lpVtbl->AddRef(This) 23086 #define ID3D12GraphicsCommandList6_Release(This) (This)->lpVtbl->Release(This) 23087 /*** ID3D12Object methods ***/ 23088 #define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 23089 #define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 23090 #define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 23091 #define ID3D12GraphicsCommandList6_SetName(This,name) (This)->lpVtbl->SetName(This,name) 23092 /*** ID3D12DeviceChild methods ***/ 23093 #define ID3D12GraphicsCommandList6_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 23094 /*** ID3D12CommandList methods ***/ 23095 #define ID3D12GraphicsCommandList6_GetType(This) (This)->lpVtbl->GetType(This) 23096 /*** ID3D12GraphicsCommandList methods ***/ 23097 #define ID3D12GraphicsCommandList6_Close(This) (This)->lpVtbl->Close(This) 23098 #define ID3D12GraphicsCommandList6_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 23099 #define ID3D12GraphicsCommandList6_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 23100 #define ID3D12GraphicsCommandList6_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 23101 #define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 23102 #define ID3D12GraphicsCommandList6_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 23103 #define ID3D12GraphicsCommandList6_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 23104 #define ID3D12GraphicsCommandList6_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 23105 #define ID3D12GraphicsCommandList6_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 23106 #define ID3D12GraphicsCommandList6_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 23107 #define ID3D12GraphicsCommandList6_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 23108 #define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 23109 #define ID3D12GraphicsCommandList6_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 23110 #define ID3D12GraphicsCommandList6_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 23111 #define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 23112 #define ID3D12GraphicsCommandList6_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 23113 #define ID3D12GraphicsCommandList6_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 23114 #define ID3D12GraphicsCommandList6_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 23115 #define ID3D12GraphicsCommandList6_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 23116 #define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 23117 #define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 23118 #define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 23119 #define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 23120 #define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 23121 #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 23122 #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 23123 #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 23124 #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 23125 #define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 23126 #define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 23127 #define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 23128 #define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 23129 #define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 23130 #define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 23131 #define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 23132 #define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 23133 #define ID3D12GraphicsCommandList6_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 23134 #define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 23135 #define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 23136 #define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 23137 #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 23138 #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 23139 #define ID3D12GraphicsCommandList6_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 23140 #define ID3D12GraphicsCommandList6_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 23141 #define ID3D12GraphicsCommandList6_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 23142 #define ID3D12GraphicsCommandList6_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 23143 #define ID3D12GraphicsCommandList6_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 23144 #define ID3D12GraphicsCommandList6_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 23145 #define ID3D12GraphicsCommandList6_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 23146 #define ID3D12GraphicsCommandList6_EndEvent(This) (This)->lpVtbl->EndEvent(This) 23147 #define ID3D12GraphicsCommandList6_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 23148 /*** ID3D12GraphicsCommandList1 methods ***/ 23149 #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 23150 #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 23151 #define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 23152 #define ID3D12GraphicsCommandList6_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 23153 #define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 23154 #define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 23155 /*** ID3D12GraphicsCommandList2 methods ***/ 23156 #define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 23157 /*** ID3D12GraphicsCommandList3 methods ***/ 23158 #define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session) 23159 /*** ID3D12GraphicsCommandList4 methods ***/ 23160 #define ID3D12GraphicsCommandList6_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) 23161 #define ID3D12GraphicsCommandList6_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This) 23162 #define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) 23163 #define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) 23164 #define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) 23165 #define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) 23166 #define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) 23167 #define ID3D12GraphicsCommandList6_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object) 23168 #define ID3D12GraphicsCommandList6_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc) 23169 /*** ID3D12GraphicsCommandList5 methods ***/ 23170 #define ID3D12GraphicsCommandList6_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners) 23171 #define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image) 23172 /*** ID3D12GraphicsCommandList6 methods ***/ 23173 #define ID3D12GraphicsCommandList6_DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) (This)->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) 23174 #else 23175 /*** IUnknown methods ***/ 23176 static inline HRESULT ID3D12GraphicsCommandList6_QueryInterface(ID3D12GraphicsCommandList6* This,REFIID riid,void **ppvObject) { 23177 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 23178 } 23179 static inline ULONG ID3D12GraphicsCommandList6_AddRef(ID3D12GraphicsCommandList6* This) { 23180 return This->lpVtbl->AddRef(This); 23181 } 23182 static inline ULONG ID3D12GraphicsCommandList6_Release(ID3D12GraphicsCommandList6* This) { 23183 return This->lpVtbl->Release(This); 23184 } 23185 /*** ID3D12Object methods ***/ 23186 static inline HRESULT ID3D12GraphicsCommandList6_GetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT *data_size,void *data) { 23187 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 23188 } 23189 static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateData(ID3D12GraphicsCommandList6* This,REFGUID guid,UINT data_size,const void *data) { 23190 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 23191 } 23192 static inline HRESULT ID3D12GraphicsCommandList6_SetPrivateDataInterface(ID3D12GraphicsCommandList6* This,REFGUID guid,const IUnknown *data) { 23193 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 23194 } 23195 static inline HRESULT ID3D12GraphicsCommandList6_SetName(ID3D12GraphicsCommandList6* This,const WCHAR *name) { 23196 return This->lpVtbl->SetName(This,name); 23197 } 23198 /*** ID3D12DeviceChild methods ***/ 23199 static inline HRESULT ID3D12GraphicsCommandList6_GetDevice(ID3D12GraphicsCommandList6* This,REFIID riid,void **device) { 23200 return This->lpVtbl->GetDevice(This,riid,device); 23201 } 23202 /*** ID3D12CommandList methods ***/ 23203 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList6_GetType(ID3D12GraphicsCommandList6* This) { 23204 return This->lpVtbl->GetType(This); 23205 } 23206 /*** ID3D12GraphicsCommandList methods ***/ 23207 static inline HRESULT ID3D12GraphicsCommandList6_Close(ID3D12GraphicsCommandList6* This) { 23208 return This->lpVtbl->Close(This); 23209 } 23210 static inline HRESULT ID3D12GraphicsCommandList6_Reset(ID3D12GraphicsCommandList6* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 23211 return This->lpVtbl->Reset(This,allocator,initial_state); 23212 } 23213 static inline void ID3D12GraphicsCommandList6_ClearState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) { 23214 This->lpVtbl->ClearState(This,pipeline_state); 23215 } 23216 static inline void ID3D12GraphicsCommandList6_DrawInstanced(ID3D12GraphicsCommandList6* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 23217 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 23218 } 23219 static inline void ID3D12GraphicsCommandList6_DrawIndexedInstanced(ID3D12GraphicsCommandList6* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 23220 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 23221 } 23222 static inline void ID3D12GraphicsCommandList6_Dispatch(ID3D12GraphicsCommandList6* This,UINT x,UINT u,UINT z) { 23223 This->lpVtbl->Dispatch(This,x,u,z); 23224 } 23225 static inline void ID3D12GraphicsCommandList6_CopyBufferRegion(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 23226 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 23227 } 23228 static inline void ID3D12GraphicsCommandList6_CopyTextureRegion(ID3D12GraphicsCommandList6* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 23229 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 23230 } 23231 static inline void ID3D12GraphicsCommandList6_CopyResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 23232 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 23233 } 23234 static inline void ID3D12GraphicsCommandList6_CopyTiles(ID3D12GraphicsCommandList6* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 23235 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 23236 } 23237 static inline void ID3D12GraphicsCommandList6_ResolveSubresource(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 23238 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 23239 } 23240 static inline void ID3D12GraphicsCommandList6_IASetPrimitiveTopology(ID3D12GraphicsCommandList6* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 23241 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 23242 } 23243 static inline void ID3D12GraphicsCommandList6_RSSetViewports(ID3D12GraphicsCommandList6* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 23244 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 23245 } 23246 static inline void ID3D12GraphicsCommandList6_RSSetScissorRects(ID3D12GraphicsCommandList6* This,UINT rect_count,const D3D12_RECT *rects) { 23247 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 23248 } 23249 static inline void ID3D12GraphicsCommandList6_OMSetBlendFactor(ID3D12GraphicsCommandList6* This,const FLOAT blend_factor[4]) { 23250 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 23251 } 23252 static inline void ID3D12GraphicsCommandList6_OMSetStencilRef(ID3D12GraphicsCommandList6* This,UINT stencil_ref) { 23253 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 23254 } 23255 static inline void ID3D12GraphicsCommandList6_SetPipelineState(ID3D12GraphicsCommandList6* This,ID3D12PipelineState *pipeline_state) { 23256 This->lpVtbl->SetPipelineState(This,pipeline_state); 23257 } 23258 static inline void ID3D12GraphicsCommandList6_ResourceBarrier(ID3D12GraphicsCommandList6* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 23259 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 23260 } 23261 static inline void ID3D12GraphicsCommandList6_ExecuteBundle(ID3D12GraphicsCommandList6* This,ID3D12GraphicsCommandList *command_list) { 23262 This->lpVtbl->ExecuteBundle(This,command_list); 23263 } 23264 static inline void ID3D12GraphicsCommandList6_SetDescriptorHeaps(ID3D12GraphicsCommandList6* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 23265 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 23266 } 23267 static inline void ID3D12GraphicsCommandList6_SetComputeRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) { 23268 This->lpVtbl->SetComputeRootSignature(This,root_signature); 23269 } 23270 static inline void ID3D12GraphicsCommandList6_SetGraphicsRootSignature(ID3D12GraphicsCommandList6* This,ID3D12RootSignature *root_signature) { 23271 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 23272 } 23273 static inline void ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 23274 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 23275 } 23276 static inline void ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 23277 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 23278 } 23279 static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 23280 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 23281 } 23282 static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 23283 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 23284 } 23285 static inline void ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 23286 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 23287 } 23288 static inline void ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 23289 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 23290 } 23291 static inline void ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23292 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 23293 } 23294 static inline void ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23295 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 23296 } 23297 static inline void ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23298 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 23299 } 23300 static inline void ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23301 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 23302 } 23303 static inline void ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23304 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 23305 } 23306 static inline void ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList6* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 23307 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 23308 } 23309 static inline void ID3D12GraphicsCommandList6_IASetIndexBuffer(ID3D12GraphicsCommandList6* This,const D3D12_INDEX_BUFFER_VIEW *view) { 23310 This->lpVtbl->IASetIndexBuffer(This,view); 23311 } 23312 static inline void ID3D12GraphicsCommandList6_IASetVertexBuffers(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 23313 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 23314 } 23315 static inline void ID3D12GraphicsCommandList6_SOSetTargets(ID3D12GraphicsCommandList6* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 23316 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 23317 } 23318 static inline void ID3D12GraphicsCommandList6_OMSetRenderTargets(ID3D12GraphicsCommandList6* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 23319 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 23320 } 23321 static inline void ID3D12GraphicsCommandList6_ClearDepthStencilView(ID3D12GraphicsCommandList6* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 23322 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 23323 } 23324 static inline void ID3D12GraphicsCommandList6_ClearRenderTargetView(ID3D12GraphicsCommandList6* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 23325 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 23326 } 23327 static inline void ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList6* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 23328 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 23329 } 23330 static inline void ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList6* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 23331 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 23332 } 23333 static inline void ID3D12GraphicsCommandList6_DiscardResource(ID3D12GraphicsCommandList6* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 23334 This->lpVtbl->DiscardResource(This,resource,region); 23335 } 23336 static inline void ID3D12GraphicsCommandList6_BeginQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 23337 This->lpVtbl->BeginQuery(This,heap,type,index); 23338 } 23339 static inline void ID3D12GraphicsCommandList6_EndQuery(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 23340 This->lpVtbl->EndQuery(This,heap,type,index); 23341 } 23342 static inline void ID3D12GraphicsCommandList6_ResolveQueryData(ID3D12GraphicsCommandList6* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 23343 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 23344 } 23345 static inline void ID3D12GraphicsCommandList6_SetPredication(ID3D12GraphicsCommandList6* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 23346 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 23347 } 23348 static inline void ID3D12GraphicsCommandList6_SetMarker(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) { 23349 This->lpVtbl->SetMarker(This,metadata,data,size); 23350 } 23351 static inline void ID3D12GraphicsCommandList6_BeginEvent(ID3D12GraphicsCommandList6* This,UINT metadata,const void *data,UINT size) { 23352 This->lpVtbl->BeginEvent(This,metadata,data,size); 23353 } 23354 static inline void ID3D12GraphicsCommandList6_EndEvent(ID3D12GraphicsCommandList6* This) { 23355 This->lpVtbl->EndEvent(This); 23356 } 23357 static inline void ID3D12GraphicsCommandList6_ExecuteIndirect(ID3D12GraphicsCommandList6* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 23358 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 23359 } 23360 /*** ID3D12GraphicsCommandList1 methods ***/ 23361 static inline void ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 23362 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 23363 } 23364 static inline void ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 23365 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 23366 } 23367 static inline void ID3D12GraphicsCommandList6_OMSetDepthBounds(ID3D12GraphicsCommandList6* This,FLOAT min,FLOAT max) { 23368 This->lpVtbl->OMSetDepthBounds(This,min,max); 23369 } 23370 static inline void ID3D12GraphicsCommandList6_SetSamplePositions(ID3D12GraphicsCommandList6* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 23371 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 23372 } 23373 static inline void ID3D12GraphicsCommandList6_ResolveSubresourceRegion(ID3D12GraphicsCommandList6* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 23374 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 23375 } 23376 static inline void ID3D12GraphicsCommandList6_SetViewInstanceMask(ID3D12GraphicsCommandList6* This,UINT mask) { 23377 This->lpVtbl->SetViewInstanceMask(This,mask); 23378 } 23379 /*** ID3D12GraphicsCommandList2 methods ***/ 23380 static inline void ID3D12GraphicsCommandList6_WriteBufferImmediate(ID3D12GraphicsCommandList6* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 23381 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 23382 } 23383 /*** ID3D12GraphicsCommandList3 methods ***/ 23384 static inline void ID3D12GraphicsCommandList6_SetProtectedResourceSession(ID3D12GraphicsCommandList6* This,ID3D12ProtectedResourceSession *protected_resource_session) { 23385 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session); 23386 } 23387 /*** ID3D12GraphicsCommandList4 methods ***/ 23388 static inline void ID3D12GraphicsCommandList6_BeginRenderPass(ID3D12GraphicsCommandList6* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) { 23389 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags); 23390 } 23391 static inline void ID3D12GraphicsCommandList6_EndRenderPass(ID3D12GraphicsCommandList6* This) { 23392 This->lpVtbl->EndRenderPass(This); 23393 } 23394 static inline void ID3D12GraphicsCommandList6_InitializeMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) { 23395 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes); 23396 } 23397 static inline void ID3D12GraphicsCommandList6_ExecuteMetaCommand(ID3D12GraphicsCommandList6* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) { 23398 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes); 23399 } 23400 static inline void ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList6* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) { 23401 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs); 23402 } 23403 static inline void ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList6* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) { 23404 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data); 23405 } 23406 static inline void ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList6* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) { 23407 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode); 23408 } 23409 static inline void ID3D12GraphicsCommandList6_SetPipelineState1(ID3D12GraphicsCommandList6* This,ID3D12StateObject *state_object) { 23410 This->lpVtbl->SetPipelineState1(This,state_object); 23411 } 23412 static inline void ID3D12GraphicsCommandList6_DispatchRays(ID3D12GraphicsCommandList6* This,const D3D12_DISPATCH_RAYS_DESC *desc) { 23413 This->lpVtbl->DispatchRays(This,desc); 23414 } 23415 /*** ID3D12GraphicsCommandList5 methods ***/ 23416 static inline void ID3D12GraphicsCommandList6_RSSetShadingRate(ID3D12GraphicsCommandList6* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) { 23417 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners); 23418 } 23419 static inline void ID3D12GraphicsCommandList6_RSSetShadingRateImage(ID3D12GraphicsCommandList6* This,ID3D12Resource *shading_rate_image) { 23420 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image); 23421 } 23422 /*** ID3D12GraphicsCommandList6 methods ***/ 23423 static inline void ID3D12GraphicsCommandList6_DispatchMesh(ID3D12GraphicsCommandList6* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) { 23424 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z); 23425 } 23426 #endif 23427 #endif 23428 23429 #endif 23430 23431 23432 #endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */ 23433 23434 /***************************************************************************** 23435 * ID3D12GraphicsCommandList7 interface 23436 */ 23437 #ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ 23438 #define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ 23439 23440 DEFINE_GUID(IID_ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1); 23441 #if defined(__cplusplus) && !defined(CINTERFACE) 23442 MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1") 23443 ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6 23444 { 23445 virtual void STDMETHODCALLTYPE Barrier( 23446 UINT32 barrier_groups_count, 23447 const D3D12_BARRIER_GROUP *barrier_groups) = 0; 23448 23449 }; 23450 #ifdef __CRT_UUID_DECL 23451 __CRT_UUID_DECL(ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90,0xe3, 0x16,0x0c,0xcd,0xe4,0xe2,0xc1) 23452 #endif 23453 #else 23454 typedef struct ID3D12GraphicsCommandList7Vtbl { 23455 BEGIN_INTERFACE 23456 23457 /*** IUnknown methods ***/ 23458 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 23459 ID3D12GraphicsCommandList7 *This, 23460 REFIID riid, 23461 void **ppvObject); 23462 23463 ULONG (STDMETHODCALLTYPE *AddRef)( 23464 ID3D12GraphicsCommandList7 *This); 23465 23466 ULONG (STDMETHODCALLTYPE *Release)( 23467 ID3D12GraphicsCommandList7 *This); 23468 23469 /*** ID3D12Object methods ***/ 23470 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 23471 ID3D12GraphicsCommandList7 *This, 23472 REFGUID guid, 23473 UINT *data_size, 23474 void *data); 23475 23476 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 23477 ID3D12GraphicsCommandList7 *This, 23478 REFGUID guid, 23479 UINT data_size, 23480 const void *data); 23481 23482 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 23483 ID3D12GraphicsCommandList7 *This, 23484 REFGUID guid, 23485 const IUnknown *data); 23486 23487 HRESULT (STDMETHODCALLTYPE *SetName)( 23488 ID3D12GraphicsCommandList7 *This, 23489 const WCHAR *name); 23490 23491 /*** ID3D12DeviceChild methods ***/ 23492 HRESULT (STDMETHODCALLTYPE *GetDevice)( 23493 ID3D12GraphicsCommandList7 *This, 23494 REFIID riid, 23495 void **device); 23496 23497 /*** ID3D12CommandList methods ***/ 23498 D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)( 23499 ID3D12GraphicsCommandList7 *This); 23500 23501 /*** ID3D12GraphicsCommandList methods ***/ 23502 HRESULT (STDMETHODCALLTYPE *Close)( 23503 ID3D12GraphicsCommandList7 *This); 23504 23505 HRESULT (STDMETHODCALLTYPE *Reset)( 23506 ID3D12GraphicsCommandList7 *This, 23507 ID3D12CommandAllocator *allocator, 23508 ID3D12PipelineState *initial_state); 23509 23510 void (STDMETHODCALLTYPE *ClearState)( 23511 ID3D12GraphicsCommandList7 *This, 23512 ID3D12PipelineState *pipeline_state); 23513 23514 void (STDMETHODCALLTYPE *DrawInstanced)( 23515 ID3D12GraphicsCommandList7 *This, 23516 UINT vertex_count_per_instance, 23517 UINT instance_count, 23518 UINT start_vertex_location, 23519 UINT start_instance_location); 23520 23521 void (STDMETHODCALLTYPE *DrawIndexedInstanced)( 23522 ID3D12GraphicsCommandList7 *This, 23523 UINT index_count_per_instance, 23524 UINT instance_count, 23525 UINT start_vertex_location, 23526 INT base_vertex_location, 23527 UINT start_instance_location); 23528 23529 void (STDMETHODCALLTYPE *Dispatch)( 23530 ID3D12GraphicsCommandList7 *This, 23531 UINT x, 23532 UINT u, 23533 UINT z); 23534 23535 void (STDMETHODCALLTYPE *CopyBufferRegion)( 23536 ID3D12GraphicsCommandList7 *This, 23537 ID3D12Resource *dst_buffer, 23538 UINT64 dst_offset, 23539 ID3D12Resource *src_buffer, 23540 UINT64 src_offset, 23541 UINT64 byte_count); 23542 23543 void (STDMETHODCALLTYPE *CopyTextureRegion)( 23544 ID3D12GraphicsCommandList7 *This, 23545 const D3D12_TEXTURE_COPY_LOCATION *dst, 23546 UINT dst_x, 23547 UINT dst_y, 23548 UINT dst_z, 23549 const D3D12_TEXTURE_COPY_LOCATION *src, 23550 const D3D12_BOX *src_box); 23551 23552 void (STDMETHODCALLTYPE *CopyResource)( 23553 ID3D12GraphicsCommandList7 *This, 23554 ID3D12Resource *dst_resource, 23555 ID3D12Resource *src_resource); 23556 23557 void (STDMETHODCALLTYPE *CopyTiles)( 23558 ID3D12GraphicsCommandList7 *This, 23559 ID3D12Resource *tiled_resource, 23560 const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate, 23561 const D3D12_TILE_REGION_SIZE *tile_region_size, 23562 ID3D12Resource *buffer, 23563 UINT64 buffer_offset, 23564 D3D12_TILE_COPY_FLAGS flags); 23565 23566 void (STDMETHODCALLTYPE *ResolveSubresource)( 23567 ID3D12GraphicsCommandList7 *This, 23568 ID3D12Resource *dst_resource, 23569 UINT dst_sub_resource, 23570 ID3D12Resource *src_resource, 23571 UINT src_sub_resource, 23572 DXGI_FORMAT format); 23573 23574 void (STDMETHODCALLTYPE *IASetPrimitiveTopology)( 23575 ID3D12GraphicsCommandList7 *This, 23576 D3D12_PRIMITIVE_TOPOLOGY primitive_topology); 23577 23578 void (STDMETHODCALLTYPE *RSSetViewports)( 23579 ID3D12GraphicsCommandList7 *This, 23580 UINT viewport_count, 23581 const D3D12_VIEWPORT *viewports); 23582 23583 void (STDMETHODCALLTYPE *RSSetScissorRects)( 23584 ID3D12GraphicsCommandList7 *This, 23585 UINT rect_count, 23586 const D3D12_RECT *rects); 23587 23588 void (STDMETHODCALLTYPE *OMSetBlendFactor)( 23589 ID3D12GraphicsCommandList7 *This, 23590 const FLOAT blend_factor[4]); 23591 23592 void (STDMETHODCALLTYPE *OMSetStencilRef)( 23593 ID3D12GraphicsCommandList7 *This, 23594 UINT stencil_ref); 23595 23596 void (STDMETHODCALLTYPE *SetPipelineState)( 23597 ID3D12GraphicsCommandList7 *This, 23598 ID3D12PipelineState *pipeline_state); 23599 23600 void (STDMETHODCALLTYPE *ResourceBarrier)( 23601 ID3D12GraphicsCommandList7 *This, 23602 UINT barrier_count, 23603 const D3D12_RESOURCE_BARRIER *barriers); 23604 23605 void (STDMETHODCALLTYPE *ExecuteBundle)( 23606 ID3D12GraphicsCommandList7 *This, 23607 ID3D12GraphicsCommandList *command_list); 23608 23609 void (STDMETHODCALLTYPE *SetDescriptorHeaps)( 23610 ID3D12GraphicsCommandList7 *This, 23611 UINT heap_count, 23612 ID3D12DescriptorHeap *const *heaps); 23613 23614 void (STDMETHODCALLTYPE *SetComputeRootSignature)( 23615 ID3D12GraphicsCommandList7 *This, 23616 ID3D12RootSignature *root_signature); 23617 23618 void (STDMETHODCALLTYPE *SetGraphicsRootSignature)( 23619 ID3D12GraphicsCommandList7 *This, 23620 ID3D12RootSignature *root_signature); 23621 23622 void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)( 23623 ID3D12GraphicsCommandList7 *This, 23624 UINT root_parameter_index, 23625 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 23626 23627 void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)( 23628 ID3D12GraphicsCommandList7 *This, 23629 UINT root_parameter_index, 23630 D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor); 23631 23632 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)( 23633 ID3D12GraphicsCommandList7 *This, 23634 UINT root_parameter_index, 23635 UINT data, 23636 UINT dst_offset); 23637 23638 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)( 23639 ID3D12GraphicsCommandList7 *This, 23640 UINT root_parameter_index, 23641 UINT data, 23642 UINT dst_offset); 23643 23644 void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)( 23645 ID3D12GraphicsCommandList7 *This, 23646 UINT root_parameter_index, 23647 UINT constant_count, 23648 const void *data, 23649 UINT dst_offset); 23650 23651 void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)( 23652 ID3D12GraphicsCommandList7 *This, 23653 UINT root_parameter_index, 23654 UINT constant_count, 23655 const void *data, 23656 UINT dst_offset); 23657 23658 void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)( 23659 ID3D12GraphicsCommandList7 *This, 23660 UINT root_parameter_index, 23661 D3D12_GPU_VIRTUAL_ADDRESS address); 23662 23663 void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)( 23664 ID3D12GraphicsCommandList7 *This, 23665 UINT root_parameter_index, 23666 D3D12_GPU_VIRTUAL_ADDRESS address); 23667 23668 void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)( 23669 ID3D12GraphicsCommandList7 *This, 23670 UINT root_parameter_index, 23671 D3D12_GPU_VIRTUAL_ADDRESS address); 23672 23673 void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)( 23674 ID3D12GraphicsCommandList7 *This, 23675 UINT root_parameter_index, 23676 D3D12_GPU_VIRTUAL_ADDRESS address); 23677 23678 void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)( 23679 ID3D12GraphicsCommandList7 *This, 23680 UINT root_parameter_index, 23681 D3D12_GPU_VIRTUAL_ADDRESS address); 23682 23683 void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)( 23684 ID3D12GraphicsCommandList7 *This, 23685 UINT root_parameter_index, 23686 D3D12_GPU_VIRTUAL_ADDRESS address); 23687 23688 void (STDMETHODCALLTYPE *IASetIndexBuffer)( 23689 ID3D12GraphicsCommandList7 *This, 23690 const D3D12_INDEX_BUFFER_VIEW *view); 23691 23692 void (STDMETHODCALLTYPE *IASetVertexBuffers)( 23693 ID3D12GraphicsCommandList7 *This, 23694 UINT start_slot, 23695 UINT view_count, 23696 const D3D12_VERTEX_BUFFER_VIEW *views); 23697 23698 void (STDMETHODCALLTYPE *SOSetTargets)( 23699 ID3D12GraphicsCommandList7 *This, 23700 UINT start_slot, 23701 UINT view_count, 23702 const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views); 23703 23704 void (STDMETHODCALLTYPE *OMSetRenderTargets)( 23705 ID3D12GraphicsCommandList7 *This, 23706 UINT render_target_descriptor_count, 23707 const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors, 23708 WINBOOL single_descriptor_handle, 23709 const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor); 23710 23711 void (STDMETHODCALLTYPE *ClearDepthStencilView)( 23712 ID3D12GraphicsCommandList7 *This, 23713 D3D12_CPU_DESCRIPTOR_HANDLE dsv, 23714 D3D12_CLEAR_FLAGS flags, 23715 FLOAT depth, 23716 UINT8 stencil, 23717 UINT rect_count, 23718 const D3D12_RECT *rects); 23719 23720 void (STDMETHODCALLTYPE *ClearRenderTargetView)( 23721 ID3D12GraphicsCommandList7 *This, 23722 D3D12_CPU_DESCRIPTOR_HANDLE rtv, 23723 const FLOAT color[4], 23724 UINT rect_count, 23725 const D3D12_RECT *rects); 23726 23727 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)( 23728 ID3D12GraphicsCommandList7 *This, 23729 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 23730 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 23731 ID3D12Resource *resource, 23732 const UINT values[4], 23733 UINT rect_count, 23734 const D3D12_RECT *rects); 23735 23736 void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)( 23737 ID3D12GraphicsCommandList7 *This, 23738 D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle, 23739 D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, 23740 ID3D12Resource *resource, 23741 const float values[4], 23742 UINT rect_count, 23743 const D3D12_RECT *rects); 23744 23745 void (STDMETHODCALLTYPE *DiscardResource)( 23746 ID3D12GraphicsCommandList7 *This, 23747 ID3D12Resource *resource, 23748 const D3D12_DISCARD_REGION *region); 23749 23750 void (STDMETHODCALLTYPE *BeginQuery)( 23751 ID3D12GraphicsCommandList7 *This, 23752 ID3D12QueryHeap *heap, 23753 D3D12_QUERY_TYPE type, 23754 UINT index); 23755 23756 void (STDMETHODCALLTYPE *EndQuery)( 23757 ID3D12GraphicsCommandList7 *This, 23758 ID3D12QueryHeap *heap, 23759 D3D12_QUERY_TYPE type, 23760 UINT index); 23761 23762 void (STDMETHODCALLTYPE *ResolveQueryData)( 23763 ID3D12GraphicsCommandList7 *This, 23764 ID3D12QueryHeap *heap, 23765 D3D12_QUERY_TYPE type, 23766 UINT start_index, 23767 UINT query_count, 23768 ID3D12Resource *dst_buffer, 23769 UINT64 aligned_dst_buffer_offset); 23770 23771 void (STDMETHODCALLTYPE *SetPredication)( 23772 ID3D12GraphicsCommandList7 *This, 23773 ID3D12Resource *buffer, 23774 UINT64 aligned_buffer_offset, 23775 D3D12_PREDICATION_OP operation); 23776 23777 void (STDMETHODCALLTYPE *SetMarker)( 23778 ID3D12GraphicsCommandList7 *This, 23779 UINT metadata, 23780 const void *data, 23781 UINT size); 23782 23783 void (STDMETHODCALLTYPE *BeginEvent)( 23784 ID3D12GraphicsCommandList7 *This, 23785 UINT metadata, 23786 const void *data, 23787 UINT size); 23788 23789 void (STDMETHODCALLTYPE *EndEvent)( 23790 ID3D12GraphicsCommandList7 *This); 23791 23792 void (STDMETHODCALLTYPE *ExecuteIndirect)( 23793 ID3D12GraphicsCommandList7 *This, 23794 ID3D12CommandSignature *command_signature, 23795 UINT max_command_count, 23796 ID3D12Resource *arg_buffer, 23797 UINT64 arg_buffer_offset, 23798 ID3D12Resource *count_buffer, 23799 UINT64 count_buffer_offset); 23800 23801 /*** ID3D12GraphicsCommandList1 methods ***/ 23802 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)( 23803 ID3D12GraphicsCommandList7 *This, 23804 ID3D12Resource *dst_buffer, 23805 UINT64 dst_offset, 23806 ID3D12Resource *src_buffer, 23807 UINT64 src_offset, 23808 UINT dependent_resource_count, 23809 ID3D12Resource *const *dependent_resources, 23810 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 23811 23812 void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)( 23813 ID3D12GraphicsCommandList7 *This, 23814 ID3D12Resource *dst_buffer, 23815 UINT64 dst_offset, 23816 ID3D12Resource *src_buffer, 23817 UINT64 src_offset, 23818 UINT dependent_resource_count, 23819 ID3D12Resource *const *dependent_resources, 23820 const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges); 23821 23822 void (STDMETHODCALLTYPE *OMSetDepthBounds)( 23823 ID3D12GraphicsCommandList7 *This, 23824 FLOAT min, 23825 FLOAT max); 23826 23827 void (STDMETHODCALLTYPE *SetSamplePositions)( 23828 ID3D12GraphicsCommandList7 *This, 23829 UINT sample_count, 23830 UINT pixel_count, 23831 D3D12_SAMPLE_POSITION *sample_positions); 23832 23833 void (STDMETHODCALLTYPE *ResolveSubresourceRegion)( 23834 ID3D12GraphicsCommandList7 *This, 23835 ID3D12Resource *dst_resource, 23836 UINT dst_sub_resource_idx, 23837 UINT dst_x, 23838 UINT dst_y, 23839 ID3D12Resource *src_resource, 23840 UINT src_sub_resource_idx, 23841 D3D12_RECT *src_rect, 23842 DXGI_FORMAT format, 23843 D3D12_RESOLVE_MODE mode); 23844 23845 void (STDMETHODCALLTYPE *SetViewInstanceMask)( 23846 ID3D12GraphicsCommandList7 *This, 23847 UINT mask); 23848 23849 /*** ID3D12GraphicsCommandList2 methods ***/ 23850 void (STDMETHODCALLTYPE *WriteBufferImmediate)( 23851 ID3D12GraphicsCommandList7 *This, 23852 UINT count, 23853 const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters, 23854 const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes); 23855 23856 /*** ID3D12GraphicsCommandList3 methods ***/ 23857 void (STDMETHODCALLTYPE *SetProtectedResourceSession)( 23858 ID3D12GraphicsCommandList7 *This, 23859 ID3D12ProtectedResourceSession *protected_resource_session); 23860 23861 /*** ID3D12GraphicsCommandList4 methods ***/ 23862 void (STDMETHODCALLTYPE *BeginRenderPass)( 23863 ID3D12GraphicsCommandList7 *This, 23864 UINT render_targets_count, 23865 const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets, 23866 const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil, 23867 D3D12_RENDER_PASS_FLAGS flags); 23868 23869 void (STDMETHODCALLTYPE *EndRenderPass)( 23870 ID3D12GraphicsCommandList7 *This); 23871 23872 void (STDMETHODCALLTYPE *InitializeMetaCommand)( 23873 ID3D12GraphicsCommandList7 *This, 23874 ID3D12MetaCommand *meta_command, 23875 const void *initialization_parameters_data, 23876 SIZE_T initialization_parameters_data_size_in_bytes); 23877 23878 void (STDMETHODCALLTYPE *ExecuteMetaCommand)( 23879 ID3D12GraphicsCommandList7 *This, 23880 ID3D12MetaCommand *meta_command, 23881 const void *execution_parameters_data, 23882 SIZE_T execution_parameters_data_size_in_bytes); 23883 23884 void (STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure)( 23885 ID3D12GraphicsCommandList7 *This, 23886 const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc, 23887 UINT postbuild_info_descs_count, 23888 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs); 23889 23890 void (STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo)( 23891 ID3D12GraphicsCommandList7 *This, 23892 const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc, 23893 UINT src_acceleration_structures_count, 23894 const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data); 23895 23896 void (STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure)( 23897 ID3D12GraphicsCommandList7 *This, 23898 D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data, 23899 D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data, 23900 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode); 23901 23902 void (STDMETHODCALLTYPE *SetPipelineState1)( 23903 ID3D12GraphicsCommandList7 *This, 23904 ID3D12StateObject *state_object); 23905 23906 void (STDMETHODCALLTYPE *DispatchRays)( 23907 ID3D12GraphicsCommandList7 *This, 23908 const D3D12_DISPATCH_RAYS_DESC *desc); 23909 23910 /*** ID3D12GraphicsCommandList5 methods ***/ 23911 void (STDMETHODCALLTYPE *RSSetShadingRate)( 23912 ID3D12GraphicsCommandList7 *This, 23913 D3D12_SHADING_RATE base_shading_rate, 23914 const D3D12_SHADING_RATE_COMBINER *combiners); 23915 23916 void (STDMETHODCALLTYPE *RSSetShadingRateImage)( 23917 ID3D12GraphicsCommandList7 *This, 23918 ID3D12Resource *shading_rate_image); 23919 23920 /*** ID3D12GraphicsCommandList6 methods ***/ 23921 void (STDMETHODCALLTYPE *DispatchMesh)( 23922 ID3D12GraphicsCommandList7 *This, 23923 UINT thread_group_count_x, 23924 UINT thread_group_count_y, 23925 UINT thread_group_count_z); 23926 23927 /*** ID3D12GraphicsCommandList7 methods ***/ 23928 void (STDMETHODCALLTYPE *Barrier)( 23929 ID3D12GraphicsCommandList7 *This, 23930 UINT32 barrier_groups_count, 23931 const D3D12_BARRIER_GROUP *barrier_groups); 23932 23933 END_INTERFACE 23934 } ID3D12GraphicsCommandList7Vtbl; 23935 23936 interface ID3D12GraphicsCommandList7 { 23937 CONST_VTBL ID3D12GraphicsCommandList7Vtbl* lpVtbl; 23938 }; 23939 23940 #ifdef COBJMACROS 23941 #ifndef WIDL_C_INLINE_WRAPPERS 23942 /*** IUnknown methods ***/ 23943 #define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 23944 #define ID3D12GraphicsCommandList7_AddRef(This) (This)->lpVtbl->AddRef(This) 23945 #define ID3D12GraphicsCommandList7_Release(This) (This)->lpVtbl->Release(This) 23946 /*** ID3D12Object methods ***/ 23947 #define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 23948 #define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 23949 #define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data) 23950 #define ID3D12GraphicsCommandList7_SetName(This,name) (This)->lpVtbl->SetName(This,name) 23951 /*** ID3D12DeviceChild methods ***/ 23952 #define ID3D12GraphicsCommandList7_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 23953 /*** ID3D12CommandList methods ***/ 23954 #define ID3D12GraphicsCommandList7_GetType(This) (This)->lpVtbl->GetType(This) 23955 /*** ID3D12GraphicsCommandList methods ***/ 23956 #define ID3D12GraphicsCommandList7_Close(This) (This)->lpVtbl->Close(This) 23957 #define ID3D12GraphicsCommandList7_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state) 23958 #define ID3D12GraphicsCommandList7_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state) 23959 #define ID3D12GraphicsCommandList7_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) 23960 #define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) 23961 #define ID3D12GraphicsCommandList7_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z) 23962 #define ID3D12GraphicsCommandList7_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) 23963 #define ID3D12GraphicsCommandList7_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) 23964 #define ID3D12GraphicsCommandList7_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource) 23965 #define ID3D12GraphicsCommandList7_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) 23966 #define ID3D12GraphicsCommandList7_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) 23967 #define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology) 23968 #define ID3D12GraphicsCommandList7_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports) 23969 #define ID3D12GraphicsCommandList7_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects) 23970 #define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor) 23971 #define ID3D12GraphicsCommandList7_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref) 23972 #define ID3D12GraphicsCommandList7_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state) 23973 #define ID3D12GraphicsCommandList7_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers) 23974 #define ID3D12GraphicsCommandList7_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list) 23975 #define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps) 23976 #define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature) 23977 #define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature) 23978 #define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) 23979 #define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) 23980 #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) 23981 #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) 23982 #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 23983 #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) 23984 #define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address) 23985 #define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address) 23986 #define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address) 23987 #define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address) 23988 #define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address) 23989 #define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) 23990 #define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view) 23991 #define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views) 23992 #define ID3D12GraphicsCommandList7_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views) 23993 #define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) 23994 #define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) 23995 #define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects) 23996 #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 23997 #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) 23998 #define ID3D12GraphicsCommandList7_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region) 23999 #define ID3D12GraphicsCommandList7_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index) 24000 #define ID3D12GraphicsCommandList7_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index) 24001 #define ID3D12GraphicsCommandList7_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) 24002 #define ID3D12GraphicsCommandList7_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation) 24003 #define ID3D12GraphicsCommandList7_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size) 24004 #define ID3D12GraphicsCommandList7_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size) 24005 #define ID3D12GraphicsCommandList7_EndEvent(This) (This)->lpVtbl->EndEvent(This) 24006 #define ID3D12GraphicsCommandList7_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) 24007 /*** ID3D12GraphicsCommandList1 methods ***/ 24008 #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 24009 #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) 24010 #define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max) 24011 #define ID3D12GraphicsCommandList7_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions) 24012 #define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) 24013 #define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask) 24014 /*** ID3D12GraphicsCommandList2 methods ***/ 24015 #define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes) 24016 /*** ID3D12GraphicsCommandList3 methods ***/ 24017 #define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,protected_resource_session) (This)->lpVtbl->SetProtectedResourceSession(This,protected_resource_session) 24018 /*** ID3D12GraphicsCommandList4 methods ***/ 24019 #define ID3D12GraphicsCommandList7_BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) (This)->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags) 24020 #define ID3D12GraphicsCommandList7_EndRenderPass(This) (This)->lpVtbl->EndRenderPass(This) 24021 #define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) (This)->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes) 24022 #define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) (This)->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes) 24023 #define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) (This)->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs) 24024 #define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) (This)->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data) 24025 #define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) (This)->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode) 24026 #define ID3D12GraphicsCommandList7_SetPipelineState1(This,state_object) (This)->lpVtbl->SetPipelineState1(This,state_object) 24027 #define ID3D12GraphicsCommandList7_DispatchRays(This,desc) (This)->lpVtbl->DispatchRays(This,desc) 24028 /*** ID3D12GraphicsCommandList5 methods ***/ 24029 #define ID3D12GraphicsCommandList7_RSSetShadingRate(This,base_shading_rate,combiners) (This)->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners) 24030 #define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shading_rate_image) (This)->lpVtbl->RSSetShadingRateImage(This,shading_rate_image) 24031 /*** ID3D12GraphicsCommandList6 methods ***/ 24032 #define ID3D12GraphicsCommandList7_DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) (This)->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z) 24033 /*** ID3D12GraphicsCommandList7 methods ***/ 24034 #define ID3D12GraphicsCommandList7_Barrier(This,barrier_groups_count,barrier_groups) (This)->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups) 24035 #else 24036 /*** IUnknown methods ***/ 24037 static inline HRESULT ID3D12GraphicsCommandList7_QueryInterface(ID3D12GraphicsCommandList7* This,REFIID riid,void **ppvObject) { 24038 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 24039 } 24040 static inline ULONG ID3D12GraphicsCommandList7_AddRef(ID3D12GraphicsCommandList7* This) { 24041 return This->lpVtbl->AddRef(This); 24042 } 24043 static inline ULONG ID3D12GraphicsCommandList7_Release(ID3D12GraphicsCommandList7* This) { 24044 return This->lpVtbl->Release(This); 24045 } 24046 /*** ID3D12Object methods ***/ 24047 static inline HRESULT ID3D12GraphicsCommandList7_GetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT *data_size,void *data) { 24048 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 24049 } 24050 static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateData(ID3D12GraphicsCommandList7* This,REFGUID guid,UINT data_size,const void *data) { 24051 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 24052 } 24053 static inline HRESULT ID3D12GraphicsCommandList7_SetPrivateDataInterface(ID3D12GraphicsCommandList7* This,REFGUID guid,const IUnknown *data) { 24054 return This->lpVtbl->SetPrivateDataInterface(This,guid,data); 24055 } 24056 static inline HRESULT ID3D12GraphicsCommandList7_SetName(ID3D12GraphicsCommandList7* This,const WCHAR *name) { 24057 return This->lpVtbl->SetName(This,name); 24058 } 24059 /*** ID3D12DeviceChild methods ***/ 24060 static inline HRESULT ID3D12GraphicsCommandList7_GetDevice(ID3D12GraphicsCommandList7* This,REFIID riid,void **device) { 24061 return This->lpVtbl->GetDevice(This,riid,device); 24062 } 24063 /*** ID3D12CommandList methods ***/ 24064 static inline D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList7_GetType(ID3D12GraphicsCommandList7* This) { 24065 return This->lpVtbl->GetType(This); 24066 } 24067 /*** ID3D12GraphicsCommandList methods ***/ 24068 static inline HRESULT ID3D12GraphicsCommandList7_Close(ID3D12GraphicsCommandList7* This) { 24069 return This->lpVtbl->Close(This); 24070 } 24071 static inline HRESULT ID3D12GraphicsCommandList7_Reset(ID3D12GraphicsCommandList7* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) { 24072 return This->lpVtbl->Reset(This,allocator,initial_state); 24073 } 24074 static inline void ID3D12GraphicsCommandList7_ClearState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) { 24075 This->lpVtbl->ClearState(This,pipeline_state); 24076 } 24077 static inline void ID3D12GraphicsCommandList7_DrawInstanced(ID3D12GraphicsCommandList7* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) { 24078 This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location); 24079 } 24080 static inline void ID3D12GraphicsCommandList7_DrawIndexedInstanced(ID3D12GraphicsCommandList7* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) { 24081 This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location); 24082 } 24083 static inline void ID3D12GraphicsCommandList7_Dispatch(ID3D12GraphicsCommandList7* This,UINT x,UINT u,UINT z) { 24084 This->lpVtbl->Dispatch(This,x,u,z); 24085 } 24086 static inline void ID3D12GraphicsCommandList7_CopyBufferRegion(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) { 24087 This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count); 24088 } 24089 static inline void ID3D12GraphicsCommandList7_CopyTextureRegion(ID3D12GraphicsCommandList7* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) { 24090 This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box); 24091 } 24092 static inline void ID3D12GraphicsCommandList7_CopyResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) { 24093 This->lpVtbl->CopyResource(This,dst_resource,src_resource); 24094 } 24095 static inline void ID3D12GraphicsCommandList7_CopyTiles(ID3D12GraphicsCommandList7* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) { 24096 This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags); 24097 } 24098 static inline void ID3D12GraphicsCommandList7_ResolveSubresource(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) { 24099 This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format); 24100 } 24101 static inline void ID3D12GraphicsCommandList7_IASetPrimitiveTopology(ID3D12GraphicsCommandList7* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) { 24102 This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology); 24103 } 24104 static inline void ID3D12GraphicsCommandList7_RSSetViewports(ID3D12GraphicsCommandList7* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) { 24105 This->lpVtbl->RSSetViewports(This,viewport_count,viewports); 24106 } 24107 static inline void ID3D12GraphicsCommandList7_RSSetScissorRects(ID3D12GraphicsCommandList7* This,UINT rect_count,const D3D12_RECT *rects) { 24108 This->lpVtbl->RSSetScissorRects(This,rect_count,rects); 24109 } 24110 static inline void ID3D12GraphicsCommandList7_OMSetBlendFactor(ID3D12GraphicsCommandList7* This,const FLOAT blend_factor[4]) { 24111 This->lpVtbl->OMSetBlendFactor(This,blend_factor); 24112 } 24113 static inline void ID3D12GraphicsCommandList7_OMSetStencilRef(ID3D12GraphicsCommandList7* This,UINT stencil_ref) { 24114 This->lpVtbl->OMSetStencilRef(This,stencil_ref); 24115 } 24116 static inline void ID3D12GraphicsCommandList7_SetPipelineState(ID3D12GraphicsCommandList7* This,ID3D12PipelineState *pipeline_state) { 24117 This->lpVtbl->SetPipelineState(This,pipeline_state); 24118 } 24119 static inline void ID3D12GraphicsCommandList7_ResourceBarrier(ID3D12GraphicsCommandList7* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) { 24120 This->lpVtbl->ResourceBarrier(This,barrier_count,barriers); 24121 } 24122 static inline void ID3D12GraphicsCommandList7_ExecuteBundle(ID3D12GraphicsCommandList7* This,ID3D12GraphicsCommandList *command_list) { 24123 This->lpVtbl->ExecuteBundle(This,command_list); 24124 } 24125 static inline void ID3D12GraphicsCommandList7_SetDescriptorHeaps(ID3D12GraphicsCommandList7* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) { 24126 This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps); 24127 } 24128 static inline void ID3D12GraphicsCommandList7_SetComputeRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) { 24129 This->lpVtbl->SetComputeRootSignature(This,root_signature); 24130 } 24131 static inline void ID3D12GraphicsCommandList7_SetGraphicsRootSignature(ID3D12GraphicsCommandList7* This,ID3D12RootSignature *root_signature) { 24132 This->lpVtbl->SetGraphicsRootSignature(This,root_signature); 24133 } 24134 static inline void ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 24135 This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor); 24136 } 24137 static inline void ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) { 24138 This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor); 24139 } 24140 static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 24141 This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset); 24142 } 24143 static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT data,UINT dst_offset) { 24144 This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset); 24145 } 24146 static inline void ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 24147 This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 24148 } 24149 static inline void ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) { 24150 This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset); 24151 } 24152 static inline void ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24153 This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address); 24154 } 24155 static inline void ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24156 This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address); 24157 } 24158 static inline void ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24159 This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address); 24160 } 24161 static inline void ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24162 This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address); 24163 } 24164 static inline void ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24165 This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address); 24166 } 24167 static inline void ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList7* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) { 24168 This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address); 24169 } 24170 static inline void ID3D12GraphicsCommandList7_IASetIndexBuffer(ID3D12GraphicsCommandList7* This,const D3D12_INDEX_BUFFER_VIEW *view) { 24171 This->lpVtbl->IASetIndexBuffer(This,view); 24172 } 24173 static inline void ID3D12GraphicsCommandList7_IASetVertexBuffers(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) { 24174 This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views); 24175 } 24176 static inline void ID3D12GraphicsCommandList7_SOSetTargets(ID3D12GraphicsCommandList7* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) { 24177 This->lpVtbl->SOSetTargets(This,start_slot,view_count,views); 24178 } 24179 static inline void ID3D12GraphicsCommandList7_OMSetRenderTargets(ID3D12GraphicsCommandList7* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) { 24180 This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor); 24181 } 24182 static inline void ID3D12GraphicsCommandList7_ClearDepthStencilView(ID3D12GraphicsCommandList7* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) { 24183 This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects); 24184 } 24185 static inline void ID3D12GraphicsCommandList7_ClearRenderTargetView(ID3D12GraphicsCommandList7* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) { 24186 This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects); 24187 } 24188 static inline void ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList7* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) { 24189 This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 24190 } 24191 static inline void ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList7* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) { 24192 This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects); 24193 } 24194 static inline void ID3D12GraphicsCommandList7_DiscardResource(ID3D12GraphicsCommandList7* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) { 24195 This->lpVtbl->DiscardResource(This,resource,region); 24196 } 24197 static inline void ID3D12GraphicsCommandList7_BeginQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 24198 This->lpVtbl->BeginQuery(This,heap,type,index); 24199 } 24200 static inline void ID3D12GraphicsCommandList7_EndQuery(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) { 24201 This->lpVtbl->EndQuery(This,heap,type,index); 24202 } 24203 static inline void ID3D12GraphicsCommandList7_ResolveQueryData(ID3D12GraphicsCommandList7* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) { 24204 This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset); 24205 } 24206 static inline void ID3D12GraphicsCommandList7_SetPredication(ID3D12GraphicsCommandList7* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) { 24207 This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation); 24208 } 24209 static inline void ID3D12GraphicsCommandList7_SetMarker(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) { 24210 This->lpVtbl->SetMarker(This,metadata,data,size); 24211 } 24212 static inline void ID3D12GraphicsCommandList7_BeginEvent(ID3D12GraphicsCommandList7* This,UINT metadata,const void *data,UINT size) { 24213 This->lpVtbl->BeginEvent(This,metadata,data,size); 24214 } 24215 static inline void ID3D12GraphicsCommandList7_EndEvent(ID3D12GraphicsCommandList7* This) { 24216 This->lpVtbl->EndEvent(This); 24217 } 24218 static inline void ID3D12GraphicsCommandList7_ExecuteIndirect(ID3D12GraphicsCommandList7* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) { 24219 This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset); 24220 } 24221 /*** ID3D12GraphicsCommandList1 methods ***/ 24222 static inline void ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 24223 This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 24224 } 24225 static inline void ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) { 24226 This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges); 24227 } 24228 static inline void ID3D12GraphicsCommandList7_OMSetDepthBounds(ID3D12GraphicsCommandList7* This,FLOAT min,FLOAT max) { 24229 This->lpVtbl->OMSetDepthBounds(This,min,max); 24230 } 24231 static inline void ID3D12GraphicsCommandList7_SetSamplePositions(ID3D12GraphicsCommandList7* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) { 24232 This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions); 24233 } 24234 static inline void ID3D12GraphicsCommandList7_ResolveSubresourceRegion(ID3D12GraphicsCommandList7* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) { 24235 This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode); 24236 } 24237 static inline void ID3D12GraphicsCommandList7_SetViewInstanceMask(ID3D12GraphicsCommandList7* This,UINT mask) { 24238 This->lpVtbl->SetViewInstanceMask(This,mask); 24239 } 24240 /*** ID3D12GraphicsCommandList2 methods ***/ 24241 static inline void ID3D12GraphicsCommandList7_WriteBufferImmediate(ID3D12GraphicsCommandList7* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) { 24242 This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes); 24243 } 24244 /*** ID3D12GraphicsCommandList3 methods ***/ 24245 static inline void ID3D12GraphicsCommandList7_SetProtectedResourceSession(ID3D12GraphicsCommandList7* This,ID3D12ProtectedResourceSession *protected_resource_session) { 24246 This->lpVtbl->SetProtectedResourceSession(This,protected_resource_session); 24247 } 24248 /*** ID3D12GraphicsCommandList4 methods ***/ 24249 static inline void ID3D12GraphicsCommandList7_BeginRenderPass(ID3D12GraphicsCommandList7* This,UINT render_targets_count,const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,D3D12_RENDER_PASS_FLAGS flags) { 24250 This->lpVtbl->BeginRenderPass(This,render_targets_count,render_targets,depth_stencil,flags); 24251 } 24252 static inline void ID3D12GraphicsCommandList7_EndRenderPass(ID3D12GraphicsCommandList7* This) { 24253 This->lpVtbl->EndRenderPass(This); 24254 } 24255 static inline void ID3D12GraphicsCommandList7_InitializeMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *initialization_parameters_data,SIZE_T initialization_parameters_data_size_in_bytes) { 24256 This->lpVtbl->InitializeMetaCommand(This,meta_command,initialization_parameters_data,initialization_parameters_data_size_in_bytes); 24257 } 24258 static inline void ID3D12GraphicsCommandList7_ExecuteMetaCommand(ID3D12GraphicsCommandList7* This,ID3D12MetaCommand *meta_command,const void *execution_parameters_data,SIZE_T execution_parameters_data_size_in_bytes) { 24259 This->lpVtbl->ExecuteMetaCommand(This,meta_command,execution_parameters_data,execution_parameters_data_size_in_bytes); 24260 } 24261 static inline void ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(ID3D12GraphicsCommandList7* This,const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,UINT postbuild_info_descs_count,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs) { 24262 This->lpVtbl->BuildRaytracingAccelerationStructure(This,desc,postbuild_info_descs_count,postbuild_info_descs); 24263 } 24264 static inline void ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(ID3D12GraphicsCommandList7* This,const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,UINT src_acceleration_structures_count,const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data) { 24265 This->lpVtbl->EmitRaytracingAccelerationStructurePostbuildInfo(This,desc,src_acceleration_structures_count,src_acceleration_structure_data); 24266 } 24267 static inline void ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(ID3D12GraphicsCommandList7* This,D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode) { 24268 This->lpVtbl->CopyRaytracingAccelerationStructure(This,dst_acceleration_structure_data,src_acceleration_structure_data,mode); 24269 } 24270 static inline void ID3D12GraphicsCommandList7_SetPipelineState1(ID3D12GraphicsCommandList7* This,ID3D12StateObject *state_object) { 24271 This->lpVtbl->SetPipelineState1(This,state_object); 24272 } 24273 static inline void ID3D12GraphicsCommandList7_DispatchRays(ID3D12GraphicsCommandList7* This,const D3D12_DISPATCH_RAYS_DESC *desc) { 24274 This->lpVtbl->DispatchRays(This,desc); 24275 } 24276 /*** ID3D12GraphicsCommandList5 methods ***/ 24277 static inline void ID3D12GraphicsCommandList7_RSSetShadingRate(ID3D12GraphicsCommandList7* This,D3D12_SHADING_RATE base_shading_rate,const D3D12_SHADING_RATE_COMBINER *combiners) { 24278 This->lpVtbl->RSSetShadingRate(This,base_shading_rate,combiners); 24279 } 24280 static inline void ID3D12GraphicsCommandList7_RSSetShadingRateImage(ID3D12GraphicsCommandList7* This,ID3D12Resource *shading_rate_image) { 24281 This->lpVtbl->RSSetShadingRateImage(This,shading_rate_image); 24282 } 24283 /*** ID3D12GraphicsCommandList6 methods ***/ 24284 static inline void ID3D12GraphicsCommandList7_DispatchMesh(ID3D12GraphicsCommandList7* This,UINT thread_group_count_x,UINT thread_group_count_y,UINT thread_group_count_z) { 24285 This->lpVtbl->DispatchMesh(This,thread_group_count_x,thread_group_count_y,thread_group_count_z); 24286 } 24287 /*** ID3D12GraphicsCommandList7 methods ***/ 24288 static inline void ID3D12GraphicsCommandList7_Barrier(ID3D12GraphicsCommandList7* This,UINT32 barrier_groups_count,const D3D12_BARRIER_GROUP *barrier_groups) { 24289 This->lpVtbl->Barrier(This,barrier_groups_count,barrier_groups); 24290 } 24291 #endif 24292 #endif 24293 24294 #endif 24295 24296 24297 #endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */ 24298 24299 #ifndef D3D12_IGNORE_SDK_LAYERS 24300 #include "d3d12sdklayers.h" 24301 #endif 24302 typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer); 24303 HRESULT __stdcall D3D12CreateRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer); 24304 24305 typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer); 24306 HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer); 24307 24308 typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob); 24309 HRESULT __stdcall D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob); 24310 24311 typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **blob,ID3DBlob **error_blob); 24312 HRESULT __stdcall D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,ID3DBlob **blob,ID3DBlob **error_blob); 24313 24314 typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device); 24315 HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device); 24316 24317 typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid,void **debug); 24318 HRESULT __stdcall D3D12GetDebugInterface(REFIID iid,void **debug); 24319 24320 HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,const IID *iids,void *configurations,UINT *configurations_sizes); 24321 24322 static const UUID D3D12ExperimentalShaderModels = { 0x76f5573e, 0xf13a, 0x40f5, { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } }; 24323 static const UUID D3D12TiledResourceTier4 = { 0xc9c4725f, 0xa81a, 0x4f56, { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } }; 24324 static const UUID D3D12MetaCommand = { 0xc734c97e, 0x8077, 0x48c8, { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 } }; 24325 typedef HRESULT (__stdcall *PFN_D3D12_GET_INTERFACE)(REFCLSID clsid,REFIID iid,void **debug); 24326 HRESULT __stdcall D3D12GetInterface(REFCLSID clsid,REFIID iid,void **debug); 24327 24328 /* Begin additional prototypes for all interfaces */ 24329 24330 24331 /* End additional prototypes */ 24332 24333 #ifdef __cplusplus 24334 } 24335 #endif 24336 24337 #endif /* __d3d12_h__ */