Atlas - d3d12.h
Home / ext / SDL / src / video / directx Lines: 1 | Size: 1507022 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1/*------------------------------------------------------------------------------------- 2 * 3 * Copyright (c) Microsoft Corporation 4 * Licensed under the MIT license 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 9/* this ALWAYS GENERATED file contains the definitions for the interfaces */ 10 11 12 /* File created by MIDL compiler version 8.01.0628 */ 13 14 15 16/* verify that the <rpcndr.h> version is high enough to compile this file*/ 17#ifndef __REQUIRED_RPCNDR_H_VERSION__ 18#define __REQUIRED_RPCNDR_H_VERSION__ 500 19#endif 20 21/* verify that the <rpcsal.h> version is high enough to compile this file*/ 22#ifndef __REQUIRED_RPCSAL_H_VERSION__ 23#define __REQUIRED_RPCSAL_H_VERSION__ 100 24#endif 25 26#include "rpc.h" 27#include "rpcndr.h" 28 29#ifndef __RPCNDR_H_VERSION__ 30#error this stub requires an updated version of <rpcndr.h> 31#endif /* __RPCNDR_H_VERSION__ */ 32 33#ifndef COM_NO_WINDOWS_H 34#include "windows.h" 35#include "ole2.h" 36#endif /*COM_NO_WINDOWS_H*/ 37 38#ifndef __d3d12_h__ 39#define __d3d12_h__ 40 41#if defined(_MSC_VER) && (_MSC_VER >= 1020) 42#pragma once 43#endif 44 45#ifndef DECLSPEC_XFGVIRT 46#if defined(_CONTROL_FLOW_GUARD_XFG) 47#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) 48#else 49#define DECLSPEC_XFGVIRT(base, func) 50#endif 51#endif 52 53#ifndef _In_opt_count_ 54#define _In_opt_count_(x) 55#endif 56#ifndef _In_count_ 57#define _In_count_(x) 58#endif 59 60/* Forward Declarations */ 61 62#ifndef __ID3D12Object_FWD_DEFINED__ 63#define __ID3D12Object_FWD_DEFINED__ 64typedef interface ID3D12Object ID3D12Object; 65 66#endif /* __ID3D12Object_FWD_DEFINED__ */ 67 68 69#ifndef __ID3D12DeviceChild_FWD_DEFINED__ 70#define __ID3D12DeviceChild_FWD_DEFINED__ 71typedef interface ID3D12DeviceChild ID3D12DeviceChild; 72 73#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */ 74 75 76#ifndef __ID3D12RootSignature_FWD_DEFINED__ 77#define __ID3D12RootSignature_FWD_DEFINED__ 78typedef interface ID3D12RootSignature ID3D12RootSignature; 79 80#endif /* __ID3D12RootSignature_FWD_DEFINED__ */ 81 82 83#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ 84#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ 85typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; 86 87#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */ 88 89 90#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ 91#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ 92typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer; 93 94#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */ 95 96 97#ifndef __ID3D12Pageable_FWD_DEFINED__ 98#define __ID3D12Pageable_FWD_DEFINED__ 99typedef interface ID3D12Pageable ID3D12Pageable; 100 101#endif /* __ID3D12Pageable_FWD_DEFINED__ */ 102 103 104#ifndef __ID3D12Heap_FWD_DEFINED__ 105#define __ID3D12Heap_FWD_DEFINED__ 106typedef interface ID3D12Heap ID3D12Heap; 107 108#endif /* __ID3D12Heap_FWD_DEFINED__ */ 109 110 111#ifndef __ID3D12Resource_FWD_DEFINED__ 112#define __ID3D12Resource_FWD_DEFINED__ 113typedef interface ID3D12Resource ID3D12Resource; 114 115#endif /* __ID3D12Resource_FWD_DEFINED__ */ 116 117 118#ifndef __ID3D12CommandAllocator_FWD_DEFINED__ 119#define __ID3D12CommandAllocator_FWD_DEFINED__ 120typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; 121 122#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */ 123 124 125#ifndef __ID3D12Fence_FWD_DEFINED__ 126#define __ID3D12Fence_FWD_DEFINED__ 127typedef interface ID3D12Fence ID3D12Fence; 128 129#endif /* __ID3D12Fence_FWD_DEFINED__ */ 130 131 132#ifndef __ID3D12Fence1_FWD_DEFINED__ 133#define __ID3D12Fence1_FWD_DEFINED__ 134typedef interface ID3D12Fence1 ID3D12Fence1; 135 136#endif /* __ID3D12Fence1_FWD_DEFINED__ */ 137 138 139#ifndef __ID3D12PipelineState_FWD_DEFINED__ 140#define __ID3D12PipelineState_FWD_DEFINED__ 141typedef interface ID3D12PipelineState ID3D12PipelineState; 142 143#endif /* __ID3D12PipelineState_FWD_DEFINED__ */ 144 145 146#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ 147#define __ID3D12DescriptorHeap_FWD_DEFINED__ 148typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; 149 150#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */ 151 152 153#ifndef __ID3D12QueryHeap_FWD_DEFINED__ 154#define __ID3D12QueryHeap_FWD_DEFINED__ 155typedef interface ID3D12QueryHeap ID3D12QueryHeap; 156 157#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */ 158 159 160#ifndef __ID3D12CommandSignature_FWD_DEFINED__ 161#define __ID3D12CommandSignature_FWD_DEFINED__ 162typedef interface ID3D12CommandSignature ID3D12CommandSignature; 163 164#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */ 165 166 167#ifndef __ID3D12CommandList_FWD_DEFINED__ 168#define __ID3D12CommandList_FWD_DEFINED__ 169typedef interface ID3D12CommandList ID3D12CommandList; 170 171#endif /* __ID3D12CommandList_FWD_DEFINED__ */ 172 173 174#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ 175#define __ID3D12GraphicsCommandList_FWD_DEFINED__ 176typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; 177 178#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ 179 180 181#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__ 182#define __ID3D12GraphicsCommandList1_FWD_DEFINED__ 183typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1; 184 185#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */ 186 187 188#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__ 189#define __ID3D12GraphicsCommandList2_FWD_DEFINED__ 190typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2; 191 192#endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */ 193 194 195#ifndef __ID3D12CommandQueue_FWD_DEFINED__ 196#define __ID3D12CommandQueue_FWD_DEFINED__ 197typedef interface ID3D12CommandQueue ID3D12CommandQueue; 198 199#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ 200 201 202#ifndef __ID3D12Device_FWD_DEFINED__ 203#define __ID3D12Device_FWD_DEFINED__ 204typedef interface ID3D12Device ID3D12Device; 205 206#endif /* __ID3D12Device_FWD_DEFINED__ */ 207 208 209#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__ 210#define __ID3D12PipelineLibrary_FWD_DEFINED__ 211typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary; 212 213#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */ 214 215 216#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__ 217#define __ID3D12PipelineLibrary1_FWD_DEFINED__ 218typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1; 219 220#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */ 221 222 223#ifndef __ID3D12Device1_FWD_DEFINED__ 224#define __ID3D12Device1_FWD_DEFINED__ 225typedef interface ID3D12Device1 ID3D12Device1; 226 227#endif /* __ID3D12Device1_FWD_DEFINED__ */ 228 229 230#ifndef __ID3D12Device2_FWD_DEFINED__ 231#define __ID3D12Device2_FWD_DEFINED__ 232typedef interface ID3D12Device2 ID3D12Device2; 233 234#endif /* __ID3D12Device2_FWD_DEFINED__ */ 235 236 237#ifndef __ID3D12Device3_FWD_DEFINED__ 238#define __ID3D12Device3_FWD_DEFINED__ 239typedef interface ID3D12Device3 ID3D12Device3; 240 241#endif /* __ID3D12Device3_FWD_DEFINED__ */ 242 243 244#ifndef __ID3D12ProtectedSession_FWD_DEFINED__ 245#define __ID3D12ProtectedSession_FWD_DEFINED__ 246typedef interface ID3D12ProtectedSession ID3D12ProtectedSession; 247 248#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */ 249 250 251#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__ 252#define __ID3D12ProtectedResourceSession_FWD_DEFINED__ 253typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession; 254 255#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */ 256 257 258#ifndef __ID3D12Device4_FWD_DEFINED__ 259#define __ID3D12Device4_FWD_DEFINED__ 260typedef interface ID3D12Device4 ID3D12Device4; 261 262#endif /* __ID3D12Device4_FWD_DEFINED__ */ 263 264 265#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__ 266#define __ID3D12LifetimeOwner_FWD_DEFINED__ 267typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner; 268 269#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */ 270 271 272#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__ 273#define __ID3D12SwapChainAssistant_FWD_DEFINED__ 274typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant; 275 276#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */ 277 278 279#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__ 280#define __ID3D12LifetimeTracker_FWD_DEFINED__ 281typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker; 282 283#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */ 284 285 286#ifndef __ID3D12StateObject_FWD_DEFINED__ 287#define __ID3D12StateObject_FWD_DEFINED__ 288typedef interface ID3D12StateObject ID3D12StateObject; 289 290#endif /* __ID3D12StateObject_FWD_DEFINED__ */ 291 292 293#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__ 294#define __ID3D12StateObjectProperties_FWD_DEFINED__ 295typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties; 296 297#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */ 298 299 300#ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__ 301#define __ID3D12StateObjectProperties1_FWD_DEFINED__ 302typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1; 303 304#endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */ 305 306 307#ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__ 308#define __ID3D12WorkGraphProperties_FWD_DEFINED__ 309typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; 310 311#endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */ 312 313 314#ifndef __ID3D12Device5_FWD_DEFINED__ 315#define __ID3D12Device5_FWD_DEFINED__ 316typedef interface ID3D12Device5 ID3D12Device5; 317 318#endif /* __ID3D12Device5_FWD_DEFINED__ */ 319 320 321#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ 322#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ 323typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings; 324 325#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */ 326 327 328#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ 329#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ 330typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1; 331 332#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */ 333 334 335#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ 336#define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ 337typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2; 338 339#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */ 340 341 342#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ 343#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ 344typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData; 345 346#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */ 347 348 349#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ 350#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ 351typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1; 352 353#endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */ 354 355 356#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ 357#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ 358typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2; 359 360#endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */ 361 362 363#ifndef __ID3D12Device6_FWD_DEFINED__ 364#define __ID3D12Device6_FWD_DEFINED__ 365typedef interface ID3D12Device6 ID3D12Device6; 366 367#endif /* __ID3D12Device6_FWD_DEFINED__ */ 368 369 370#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__ 371#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__ 372typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1; 373 374#endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */ 375 376 377#ifndef __ID3D12Device7_FWD_DEFINED__ 378#define __ID3D12Device7_FWD_DEFINED__ 379typedef interface ID3D12Device7 ID3D12Device7; 380 381#endif /* __ID3D12Device7_FWD_DEFINED__ */ 382 383 384#ifndef __ID3D12Device8_FWD_DEFINED__ 385#define __ID3D12Device8_FWD_DEFINED__ 386typedef interface ID3D12Device8 ID3D12Device8; 387 388#endif /* __ID3D12Device8_FWD_DEFINED__ */ 389 390 391#ifndef __ID3D12Resource1_FWD_DEFINED__ 392#define __ID3D12Resource1_FWD_DEFINED__ 393typedef interface ID3D12Resource1 ID3D12Resource1; 394 395#endif /* __ID3D12Resource1_FWD_DEFINED__ */ 396 397 398#ifndef __ID3D12Resource2_FWD_DEFINED__ 399#define __ID3D12Resource2_FWD_DEFINED__ 400typedef interface ID3D12Resource2 ID3D12Resource2; 401 402#endif /* __ID3D12Resource2_FWD_DEFINED__ */ 403 404 405#ifndef __ID3D12Heap1_FWD_DEFINED__ 406#define __ID3D12Heap1_FWD_DEFINED__ 407typedef interface ID3D12Heap1 ID3D12Heap1; 408 409#endif /* __ID3D12Heap1_FWD_DEFINED__ */ 410 411 412#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__ 413#define __ID3D12GraphicsCommandList3_FWD_DEFINED__ 414typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3; 415 416#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */ 417 418 419#ifndef __ID3D12MetaCommand_FWD_DEFINED__ 420#define __ID3D12MetaCommand_FWD_DEFINED__ 421typedef interface ID3D12MetaCommand ID3D12MetaCommand; 422 423#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */ 424 425 426#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__ 427#define __ID3D12GraphicsCommandList4_FWD_DEFINED__ 428typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4; 429 430#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */ 431 432 433#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__ 434#define __ID3D12ShaderCacheSession_FWD_DEFINED__ 435typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession; 436 437#endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */ 438 439 440#ifndef __ID3D12Device9_FWD_DEFINED__ 441#define __ID3D12Device9_FWD_DEFINED__ 442typedef interface ID3D12Device9 ID3D12Device9; 443 444#endif /* __ID3D12Device9_FWD_DEFINED__ */ 445 446 447#ifndef __ID3D12Device10_FWD_DEFINED__ 448#define __ID3D12Device10_FWD_DEFINED__ 449typedef interface ID3D12Device10 ID3D12Device10; 450 451#endif /* __ID3D12Device10_FWD_DEFINED__ */ 452 453 454#ifndef __ID3D12Device11_FWD_DEFINED__ 455#define __ID3D12Device11_FWD_DEFINED__ 456typedef interface ID3D12Device11 ID3D12Device11; 457 458#endif /* __ID3D12Device11_FWD_DEFINED__ */ 459 460 461#ifndef __ID3D12Device12_FWD_DEFINED__ 462#define __ID3D12Device12_FWD_DEFINED__ 463typedef interface ID3D12Device12 ID3D12Device12; 464 465#endif /* __ID3D12Device12_FWD_DEFINED__ */ 466 467 468#ifndef __ID3D12Device13_FWD_DEFINED__ 469#define __ID3D12Device13_FWD_DEFINED__ 470typedef interface ID3D12Device13 ID3D12Device13; 471 472#endif /* __ID3D12Device13_FWD_DEFINED__ */ 473 474 475#ifndef __ID3D12Device14_FWD_DEFINED__ 476#define __ID3D12Device14_FWD_DEFINED__ 477typedef interface ID3D12Device14 ID3D12Device14; 478 479#endif /* __ID3D12Device14_FWD_DEFINED__ */ 480 481 482#ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ 483#define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ 484typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; 485 486#endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */ 487 488 489#ifndef __ID3D12Tools_FWD_DEFINED__ 490#define __ID3D12Tools_FWD_DEFINED__ 491typedef interface ID3D12Tools ID3D12Tools; 492 493#endif /* __ID3D12Tools_FWD_DEFINED__ */ 494 495 496#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__ 497#define __ID3D12SDKConfiguration_FWD_DEFINED__ 498typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration; 499 500#endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */ 501 502 503#ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__ 504#define __ID3D12SDKConfiguration1_FWD_DEFINED__ 505typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1; 506 507#endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */ 508 509 510#ifndef __ID3D12DeviceFactory_FWD_DEFINED__ 511#define __ID3D12DeviceFactory_FWD_DEFINED__ 512typedef interface ID3D12DeviceFactory ID3D12DeviceFactory; 513 514#endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */ 515 516 517#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__ 518#define __ID3D12DeviceConfiguration_FWD_DEFINED__ 519typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration; 520 521#endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */ 522 523 524#ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__ 525#define __ID3D12DeviceConfiguration1_FWD_DEFINED__ 526typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1; 527 528#endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */ 529 530 531#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ 532#define __ID3D12GraphicsCommandList5_FWD_DEFINED__ 533typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; 534 535#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */ 536 537 538#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__ 539#define __ID3D12GraphicsCommandList6_FWD_DEFINED__ 540typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6; 541 542#endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */ 543 544 545#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__ 546#define __ID3D12GraphicsCommandList7_FWD_DEFINED__ 547typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7; 548 549#endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */ 550 551 552#ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__ 553#define __ID3D12GraphicsCommandList8_FWD_DEFINED__ 554typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8; 555 556#endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */ 557 558 559#ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__ 560#define __ID3D12GraphicsCommandList9_FWD_DEFINED__ 561typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9; 562 563#endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */ 564 565 566#ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__ 567#define __ID3D12GraphicsCommandList10_FWD_DEFINED__ 568typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10; 569 570#endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */ 571 572 573#ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__ 574#define __ID3D12GBVDiagnostics_FWD_DEFINED__ 575typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics; 576 577#endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */ 578 579 580/* header files for imported files */ 581#include "oaidl.h" 582#include "ocidl.h" 583#include "dxgicommon.h" 584#include "dxgiformat.h" 585#include "d3dcommon.h" 586 587#ifdef __cplusplus 588extern "C"{ 589#endif 590 591 592/* interface __MIDL_itf_d3d12_0000_0000 */ 593/* [local] */ 594 595#include <winapifamily.h> 596#ifdef _MSC_VER 597#pragma region App Family 598#endif 599#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) 600#ifndef _D3D12_CONSTANTS 601#define _D3D12_CONSTANTS 602#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) 603 604#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) 605 606#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) 607 608#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) 609 610#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) 611 612#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) 613 614#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) 615 616#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) 617 618#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) 619 620#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) 621 622#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) 623 624#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) 625 626#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) 627 628#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) 629 630#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) 631 632#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) 633 634#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) 635 636#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) 637 638#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) 639 640#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) 641 642#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) 643 644#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) 645 646#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) 647 648#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) 649 650#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) 651 652#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) 653 654#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) 655 656#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) 657 658#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) 659 660#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) 661 662#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) 663 664#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) 665 666#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) 667 668#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) 669 670#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 671 672#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) 673 674#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) 675 676#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) 677 678#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) 679 680#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) 681 682#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) 683 684#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) 685 686#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 ) 687 688#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) 689 690#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) 691 692#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) 693 694#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) 695 696#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) 697 698#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) 699 700#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) 701 702#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) 703 704#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) 705 706#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) 707 708#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) 709 710#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) 711 712#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) 713 714#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) 715 716#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) 717 718#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) 719 720#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) 721 722#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) 723 724#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) 725 726#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) 727 728#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) 729 730#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) 731 732#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) 733 734#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) 735 736#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) 737 738#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) 739 740#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) 741 742#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) 743 744#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) 745 746#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) 747 748#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) 749 750#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) 751 752#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) 753 754#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) 755 756#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) 757 758#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) 759 760#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) 761 762#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 ) 763 764#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) 765 766#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 ) 767 768#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) 769 770#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) 771 772#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) 773 774#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) 775 776#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) 777 778#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) 779 780#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) 781 782#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) 783 784#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) 785 786#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 ) 787 788#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 ) 789 790#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) 791 792#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 ) 793 794#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 ) 795 796#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 ) 797 798#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 ) 799 800#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 ) 801 802#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 ) 803 804#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) 805 806#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) 807#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) 808#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) 809#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) 810#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) 811#define D3D12_DEFAULT_DEPTH_BIAS ( 0 ) 812 813#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) 814#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 ) 815 816#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f ) 817#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 ) 818 819#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) 820 821#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) 822 823#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff ) 824 825#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 ) 826 827#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 ) 828 829#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 ) 830 831#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 ) 832 833#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) 834#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff ) 835 836#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 ) 837 838#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) 839 840#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) 841 842#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 ) 843 844#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) 845#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) 846#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) 847 848#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) 849 850#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 ) 851 852#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff ) 853 854#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 ) 855 856#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) 857 858#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) 859 860#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) 861 862#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 863 864#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) 865 866#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) 867 868#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) 869 870#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) 871 872#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 873 874#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) 875 876#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) 877 878#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) 879 880#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) 881 882#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 883 884#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) 885 886#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) 887 888#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) 889 890#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) 891 892#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 893 894#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) 895 896#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) 897 898#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) 899 900#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) 901 902#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 903 904#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 ) 905 906#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) 907#define D3D12_FLOAT32_MAX ( 3.402823466e+38f ) 908#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) 909#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) 910#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) 911#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f ) 912#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) 913#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) 914#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) 915#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) 916#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) 917#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) 918#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) 919#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) 920 921#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) 922 923#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) 924 925#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 926 927#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) 928 929#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) 930 931#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 932 933#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) 934 935#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) 936 937#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) 938 939#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 ) 940 941#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 942 943#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 ) 944 945#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) 946 947#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 ) 948 949#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 ) 950 951#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 ) 952 953#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) 954 955#define D3D12_GS_OUTPUT_ELEMENTS ( 32 ) 956 957#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) 958 959#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 960 961#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 ) 962 963#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) 964 965#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) 966 967#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) 968 969#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 970 971#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) 972 973#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) 974 975#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) 976 977#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) 978 979#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 980 981#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) 982 983#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) 984 985#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) 986 987#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) 988 989#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 990 991#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) 992 993#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) 994 995#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) 996 997#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) 998 999#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1000 1001#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) 1002 1003#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) 1004 1005#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) 1006 1007#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) 1008 1009#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) 1010#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) 1011#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) 1012 1013#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) 1014 1015#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1016 1017#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) 1018 1019#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) 1020 1021#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) 1022 1023#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) 1024 1025#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1026 1027#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) 1028 1029#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) 1030 1031#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) 1032 1033#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) 1034 1035#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) 1036 1037#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) 1038 1039#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) 1040 1041#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) 1042 1043#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 ) 1044 1045#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) 1046 1047#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) 1048 1049#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) 1050 1051#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 ) 1052 1053#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) 1054 1055#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) 1056 1057#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) 1058 1059#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) 1060 1061#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) 1062 1063#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) 1064 1065#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) 1066 1067#define D3D12_LINEAR_GAMMA ( 1.0f ) 1068#define D3D12_MAJOR_VERSION ( 12 ) 1069 1070#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) 1071#define D3D12_MAX_DEPTH ( 1.0f ) 1072#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 ) 1073 1074#define D3D12_MAX_MAXANISOTROPY ( 16 ) 1075 1076#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) 1077 1078#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f ) 1079#define D3D12_MAX_ROOT_COST ( 64 ) 1080 1081#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 ) 1082 1083#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 ) 1084 1085#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 ) 1086 1087#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) 1088 1089#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 ) 1090 1091#define D3D12_MINOR_VERSION ( 0 ) 1092 1093#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) 1094#define D3D12_MIN_DEPTH ( 0.0f ) 1095#define D3D12_MIN_MAXANISOTROPY ( 0 ) 1096 1097#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f ) 1098#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f ) 1099#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) 1100 1101#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 ) 1102 1103#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) 1104#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) 1105 1106#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) 1107 1108#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 ) 1109 1110#define D3D12_PACKED_TILE ( 0xffffffff ) 1111 1112#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) 1113 1114#define D3D12_PREVIEW_SDK_VERSION ( 714 ) 1115 1116#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) 1117 1118#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) 1119 1120#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 ) 1121 1122#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) 1123 1124#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) 1125 1126#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) 1127 1128#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 ) 1129 1130#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) 1131 1132#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 ) 1133 1134#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1135 1136#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 ) 1137 1138#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) 1139 1140#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 ) 1141 1142#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) 1143#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) 1144 1145#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1146 1147#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) 1148 1149#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) 1150 1151#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1152 1153#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) 1154 1155#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) 1156 1157#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1158 1159#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 ) 1160 1161#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) 1162#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) 1163 1164#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 ) 1165 1166#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 ) 1167 1168#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 ) 1169 1170#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 ) 1171 1172#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 ) 1173 1174#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) 1175 1176#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) 1177 1178#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 ) 1179 1180#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 ) 1181 1182#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 ) 1183 1184#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 ) 1185 1186#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 ) 1187 1188#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 ) 1189 1190#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) 1191 1192#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) 1193 1194#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) 1195 1196#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) 1197 1198#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) 1199 1200#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) 1201 1202#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) 1203 1204#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) 1205 1206#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) 1207 1208#define D3D12_REQ_MAXANISOTROPY ( 16 ) 1209 1210#define D3D12_REQ_MIP_LEVELS ( 15 ) 1211 1212#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) 1213 1214#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) 1215 1216#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) 1217 1218#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) 1219 1220#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) 1221#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) 1222 1223#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) 1224 1225#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) 1226 1227#define D3D12_REQ_SUBRESOURCES ( 30720 ) 1228 1229#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) 1230 1231#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) 1232 1233#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) 1234 1235#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) 1236 1237#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) 1238 1239#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 ) 1240 1241#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) 1242 1243#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff ) 1244 1245#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) 1246 1247#define D3D12_SDK_VERSION ( 614 ) 1248 1249#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) 1250 1251#define D3D12_SHADER_MAJOR_VERSION ( 5 ) 1252 1253#define D3D12_SHADER_MAX_INSTANCES ( 65535 ) 1254 1255#define D3D12_SHADER_MAX_INTERFACES ( 253 ) 1256 1257#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) 1258 1259#define D3D12_SHADER_MAX_TYPES ( 65535 ) 1260 1261#define D3D12_SHADER_MINOR_VERSION ( 1 ) 1262 1263#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) 1264 1265#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) 1266 1267#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) 1268 1269#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) 1270 1271#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 ) 1272 1273#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) 1274 1275#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) 1276 1277#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 ) 1278 1279#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) 1280 1281#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) 1282 1283#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 ) 1284 1285#define D3D12_SO_STREAM_COUNT ( 4 ) 1286 1287#define D3D12_SPEC_DATE_DAY ( 14 ) 1288 1289#define D3D12_SPEC_DATE_MONTH ( 11 ) 1290 1291#define D3D12_SPEC_DATE_YEAR ( 2014 ) 1292 1293#define D3D12_SPEC_VERSION ( 1.16 ) 1294#define D3D12_SRGB_GAMMA ( 2.2f ) 1295#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) 1296#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) 1297#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) 1298#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f ) 1299#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) 1300#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) 1301#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 ) 1302 1303#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) 1304 1305#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) 1306 1307#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) 1308 1309#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) 1310 1311#define D3D12_STANDARD_VECTOR_SIZE ( 4 ) 1312 1313#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) 1314 1315#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) 1316 1317#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) 1318 1319#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) 1320 1321#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) 1322 1323#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) 1324 1325#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) 1326 1327#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) 1328 1329#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) 1330 1331#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) 1332 1333#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) 1334 1335#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) 1336 1337#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) 1338 1339#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) 1340 1341#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 ) 1342 1343#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) 1344 1345#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) 1346 1347#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 ) 1348 1349#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 ) 1350 1351#define D3D12_UAV_SLOT_COUNT ( 64 ) 1352 1353#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) 1354 1355#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 ) 1356 1357#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 ) 1358 1359#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 ) 1360 1361#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 ) 1362 1363#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff ) 1364 1365#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff ) 1366 1367#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 ) 1368 1369#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 ) 1370 1371#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 ) 1372 1373#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 ) 1374 1375#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 ) 1376 1377#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 ) 1378 1379#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) 1380 1381#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) 1382 1383#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 ) 1384 1385#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 ) 1386 1387#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 ) 1388 1389#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1390 1391#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 ) 1392 1393#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) 1394 1395#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 ) 1396 1397#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) 1398 1399#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) 1400 1401#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 ) 1402 1403#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) 1404 1405#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) 1406 1407#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) 1408 1409#define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 ) 1410 1411#define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 ) 1412 1413#endif 1414 1415typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; 1416 1417typedef 1418enum D3D12_COMMAND_LIST_TYPE 1419 { 1420 D3D12_COMMAND_LIST_TYPE_DIRECT = 0, 1421 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, 1422 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, 1423 D3D12_COMMAND_LIST_TYPE_COPY = 3, 1424 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, 1425 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, 1426 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, 1427 D3D12_COMMAND_LIST_TYPE_NONE = -1 1428 } D3D12_COMMAND_LIST_TYPE; 1429 1430typedef 1431enum D3D12_COMMAND_QUEUE_FLAGS 1432 { 1433 D3D12_COMMAND_QUEUE_FLAG_NONE = 0, 1434 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 1435 } D3D12_COMMAND_QUEUE_FLAGS; 1436 1437DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ) 1438typedef 1439enum D3D12_COMMAND_QUEUE_PRIORITY 1440 { 1441 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, 1442 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, 1443 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 1444 } D3D12_COMMAND_QUEUE_PRIORITY; 1445 1446typedef struct D3D12_COMMAND_QUEUE_DESC 1447 { 1448 D3D12_COMMAND_LIST_TYPE Type; 1449 INT Priority; 1450 D3D12_COMMAND_QUEUE_FLAGS Flags; 1451 UINT NodeMask; 1452 } D3D12_COMMAND_QUEUE_DESC; 1453 1454typedef 1455enum D3D12_PRIMITIVE_TOPOLOGY_TYPE 1456 { 1457 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, 1458 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, 1459 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, 1460 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, 1461 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 1462 } D3D12_PRIMITIVE_TOPOLOGY_TYPE; 1463 1464typedef 1465enum D3D12_INPUT_CLASSIFICATION 1466 { 1467 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, 1468 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 1469 } D3D12_INPUT_CLASSIFICATION; 1470 1471typedef struct D3D12_INPUT_ELEMENT_DESC 1472 { 1473 LPCSTR SemanticName; 1474 UINT SemanticIndex; 1475 DXGI_FORMAT Format; 1476 UINT InputSlot; 1477 UINT AlignedByteOffset; 1478 D3D12_INPUT_CLASSIFICATION InputSlotClass; 1479 UINT InstanceDataStepRate; 1480 } D3D12_INPUT_ELEMENT_DESC; 1481 1482typedef 1483enum D3D12_FILL_MODE 1484 { 1485 D3D12_FILL_MODE_WIREFRAME = 2, 1486 D3D12_FILL_MODE_SOLID = 3 1487 } D3D12_FILL_MODE; 1488 1489typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; 1490 1491typedef D3D_PRIMITIVE D3D12_PRIMITIVE; 1492 1493typedef 1494enum D3D12_CULL_MODE 1495 { 1496 D3D12_CULL_MODE_NONE = 1, 1497 D3D12_CULL_MODE_FRONT = 2, 1498 D3D12_CULL_MODE_BACK = 3 1499 } D3D12_CULL_MODE; 1500 1501typedef struct D3D12_SO_DECLARATION_ENTRY 1502 { 1503 UINT Stream; 1504 LPCSTR SemanticName; 1505 UINT SemanticIndex; 1506 BYTE StartComponent; 1507 BYTE ComponentCount; 1508 BYTE OutputSlot; 1509 } D3D12_SO_DECLARATION_ENTRY; 1510 1511typedef struct D3D12_VIEWPORT 1512 { 1513 FLOAT TopLeftX; 1514 FLOAT TopLeftY; 1515 FLOAT Width; 1516 FLOAT Height; 1517 FLOAT MinDepth; 1518 FLOAT MaxDepth; 1519 } D3D12_VIEWPORT; 1520 1521typedef RECT D3D12_RECT; 1522 1523typedef struct D3D12_BOX 1524 { 1525 UINT left; 1526 UINT top; 1527 UINT front; 1528 UINT right; 1529 UINT bottom; 1530 UINT back; 1531 } D3D12_BOX; 1532 1533typedef 1534enum D3D12_COMPARISON_FUNC 1535 { 1536 D3D12_COMPARISON_FUNC_NONE = 0, 1537 D3D12_COMPARISON_FUNC_NEVER = 1, 1538 D3D12_COMPARISON_FUNC_LESS = 2, 1539 D3D12_COMPARISON_FUNC_EQUAL = 3, 1540 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, 1541 D3D12_COMPARISON_FUNC_GREATER = 5, 1542 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, 1543 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, 1544 D3D12_COMPARISON_FUNC_ALWAYS = 8 1545 } D3D12_COMPARISON_FUNC; 1546 1547typedef 1548enum D3D12_DEPTH_WRITE_MASK 1549 { 1550 D3D12_DEPTH_WRITE_MASK_ZERO = 0, 1551 D3D12_DEPTH_WRITE_MASK_ALL = 1 1552 } D3D12_DEPTH_WRITE_MASK; 1553 1554typedef 1555enum D3D12_STENCIL_OP 1556 { 1557 D3D12_STENCIL_OP_KEEP = 1, 1558 D3D12_STENCIL_OP_ZERO = 2, 1559 D3D12_STENCIL_OP_REPLACE = 3, 1560 D3D12_STENCIL_OP_INCR_SAT = 4, 1561 D3D12_STENCIL_OP_DECR_SAT = 5, 1562 D3D12_STENCIL_OP_INVERT = 6, 1563 D3D12_STENCIL_OP_INCR = 7, 1564 D3D12_STENCIL_OP_DECR = 8 1565 } D3D12_STENCIL_OP; 1566 1567typedef struct D3D12_DEPTH_STENCILOP_DESC 1568 { 1569 D3D12_STENCIL_OP StencilFailOp; 1570 D3D12_STENCIL_OP StencilDepthFailOp; 1571 D3D12_STENCIL_OP StencilPassOp; 1572 D3D12_COMPARISON_FUNC StencilFunc; 1573 } D3D12_DEPTH_STENCILOP_DESC; 1574 1575typedef struct D3D12_DEPTH_STENCIL_DESC 1576 { 1577 BOOL DepthEnable; 1578 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 1579 D3D12_COMPARISON_FUNC DepthFunc; 1580 BOOL StencilEnable; 1581 UINT8 StencilReadMask; 1582 UINT8 StencilWriteMask; 1583 D3D12_DEPTH_STENCILOP_DESC FrontFace; 1584 D3D12_DEPTH_STENCILOP_DESC BackFace; 1585 } D3D12_DEPTH_STENCIL_DESC; 1586 1587typedef struct D3D12_DEPTH_STENCIL_DESC1 1588 { 1589 BOOL DepthEnable; 1590 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 1591 D3D12_COMPARISON_FUNC DepthFunc; 1592 BOOL StencilEnable; 1593 UINT8 StencilReadMask; 1594 UINT8 StencilWriteMask; 1595 D3D12_DEPTH_STENCILOP_DESC FrontFace; 1596 D3D12_DEPTH_STENCILOP_DESC BackFace; 1597 BOOL DepthBoundsTestEnable; 1598 } D3D12_DEPTH_STENCIL_DESC1; 1599 1600typedef struct D3D12_DEPTH_STENCILOP_DESC1 1601 { 1602 D3D12_STENCIL_OP StencilFailOp; 1603 D3D12_STENCIL_OP StencilDepthFailOp; 1604 D3D12_STENCIL_OP StencilPassOp; 1605 D3D12_COMPARISON_FUNC StencilFunc; 1606 UINT8 StencilReadMask; 1607 UINT8 StencilWriteMask; 1608 } D3D12_DEPTH_STENCILOP_DESC1; 1609 1610typedef struct D3D12_DEPTH_STENCIL_DESC2 1611 { 1612 BOOL DepthEnable; 1613 D3D12_DEPTH_WRITE_MASK DepthWriteMask; 1614 D3D12_COMPARISON_FUNC DepthFunc; 1615 BOOL StencilEnable; 1616 D3D12_DEPTH_STENCILOP_DESC1 FrontFace; 1617 D3D12_DEPTH_STENCILOP_DESC1 BackFace; 1618 BOOL DepthBoundsTestEnable; 1619 } D3D12_DEPTH_STENCIL_DESC2; 1620 1621typedef 1622enum D3D12_BLEND 1623 { 1624 D3D12_BLEND_ZERO = 1, 1625 D3D12_BLEND_ONE = 2, 1626 D3D12_BLEND_SRC_COLOR = 3, 1627 D3D12_BLEND_INV_SRC_COLOR = 4, 1628 D3D12_BLEND_SRC_ALPHA = 5, 1629 D3D12_BLEND_INV_SRC_ALPHA = 6, 1630 D3D12_BLEND_DEST_ALPHA = 7, 1631 D3D12_BLEND_INV_DEST_ALPHA = 8, 1632 D3D12_BLEND_DEST_COLOR = 9, 1633 D3D12_BLEND_INV_DEST_COLOR = 10, 1634 D3D12_BLEND_SRC_ALPHA_SAT = 11, 1635 D3D12_BLEND_BLEND_FACTOR = 14, 1636 D3D12_BLEND_INV_BLEND_FACTOR = 15, 1637 D3D12_BLEND_SRC1_COLOR = 16, 1638 D3D12_BLEND_INV_SRC1_COLOR = 17, 1639 D3D12_BLEND_SRC1_ALPHA = 18, 1640 D3D12_BLEND_INV_SRC1_ALPHA = 19, 1641 D3D12_BLEND_ALPHA_FACTOR = 20, 1642 D3D12_BLEND_INV_ALPHA_FACTOR = 21 1643 } D3D12_BLEND; 1644 1645typedef 1646enum D3D12_BLEND_OP 1647 { 1648 D3D12_BLEND_OP_ADD = 1, 1649 D3D12_BLEND_OP_SUBTRACT = 2, 1650 D3D12_BLEND_OP_REV_SUBTRACT = 3, 1651 D3D12_BLEND_OP_MIN = 4, 1652 D3D12_BLEND_OP_MAX = 5 1653 } D3D12_BLEND_OP; 1654 1655typedef 1656enum D3D12_COLOR_WRITE_ENABLE 1657 { 1658 D3D12_COLOR_WRITE_ENABLE_RED = 1, 1659 D3D12_COLOR_WRITE_ENABLE_GREEN = 2, 1660 D3D12_COLOR_WRITE_ENABLE_BLUE = 4, 1661 D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, 1662 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 ) 1663 } D3D12_COLOR_WRITE_ENABLE; 1664 1665typedef 1666enum D3D12_LOGIC_OP 1667 { 1668 D3D12_LOGIC_OP_CLEAR = 0, 1669 D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , 1670 D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , 1671 D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , 1672 D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , 1673 D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , 1674 D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , 1675 D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , 1676 D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , 1677 D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , 1678 D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , 1679 D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , 1680 D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , 1681 D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , 1682 D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , 1683 D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) 1684 } D3D12_LOGIC_OP; 1685 1686typedef struct D3D12_RENDER_TARGET_BLEND_DESC 1687 { 1688 BOOL BlendEnable; 1689 BOOL LogicOpEnable; 1690 D3D12_BLEND SrcBlend; 1691 D3D12_BLEND DestBlend; 1692 D3D12_BLEND_OP BlendOp; 1693 D3D12_BLEND SrcBlendAlpha; 1694 D3D12_BLEND DestBlendAlpha; 1695 D3D12_BLEND_OP BlendOpAlpha; 1696 D3D12_LOGIC_OP LogicOp; 1697 UINT8 RenderTargetWriteMask; 1698 } D3D12_RENDER_TARGET_BLEND_DESC; 1699 1700typedef struct D3D12_BLEND_DESC 1701 { 1702 BOOL AlphaToCoverageEnable; 1703 BOOL IndependentBlendEnable; 1704 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; 1705 } D3D12_BLEND_DESC; 1706 1707/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. 1708 IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ 1709typedef 1710enum D3D12_CONSERVATIVE_RASTERIZATION_MODE 1711 { 1712 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, 1713 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 1714 } D3D12_CONSERVATIVE_RASTERIZATION_MODE; 1715 1716typedef struct D3D12_RASTERIZER_DESC 1717 { 1718 D3D12_FILL_MODE FillMode; 1719 D3D12_CULL_MODE CullMode; 1720 BOOL FrontCounterClockwise; 1721 INT DepthBias; 1722 FLOAT DepthBiasClamp; 1723 FLOAT SlopeScaledDepthBias; 1724 BOOL DepthClipEnable; 1725 BOOL MultisampleEnable; 1726 BOOL AntialiasedLineEnable; 1727 UINT ForcedSampleCount; 1728 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; 1729 } D3D12_RASTERIZER_DESC; 1730 1731typedef struct D3D12_RASTERIZER_DESC1 1732 { 1733 D3D12_FILL_MODE FillMode; 1734 D3D12_CULL_MODE CullMode; 1735 BOOL FrontCounterClockwise; 1736 FLOAT DepthBias; 1737 FLOAT DepthBiasClamp; 1738 FLOAT SlopeScaledDepthBias; 1739 BOOL DepthClipEnable; 1740 BOOL MultisampleEnable; 1741 BOOL AntialiasedLineEnable; 1742 UINT ForcedSampleCount; 1743 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; 1744 } D3D12_RASTERIZER_DESC1; 1745 1746typedef 1747enum D3D12_LINE_RASTERIZATION_MODE 1748 { 1749 D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0, 1750 D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) , 1751 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) , 1752 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 ) 1753 } D3D12_LINE_RASTERIZATION_MODE; 1754 1755typedef struct D3D12_RASTERIZER_DESC2 1756 { 1757 D3D12_FILL_MODE FillMode; 1758 D3D12_CULL_MODE CullMode; 1759 BOOL FrontCounterClockwise; 1760 FLOAT DepthBias; 1761 FLOAT DepthBiasClamp; 1762 FLOAT SlopeScaledDepthBias; 1763 BOOL DepthClipEnable; 1764 D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode; 1765 UINT ForcedSampleCount; 1766 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; 1767 } D3D12_RASTERIZER_DESC2; 1768 1769 1770 1771extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; 1772extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; 1773 1774#ifndef __ID3D12Object_INTERFACE_DEFINED__ 1775#define __ID3D12Object_INTERFACE_DEFINED__ 1776 1777/* interface ID3D12Object */ 1778/* [unique][local][object][uuid] */ 1779 1780 1781EXTERN_C const IID IID_ID3D12Object; 1782 1783#if defined(__cplusplus) && !defined(CINTERFACE) 1784 1785 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") 1786 ID3D12Object : public IUnknown 1787 { 1788 public: 1789 virtual HRESULT STDMETHODCALLTYPE GetPrivateData( 1790 _In_ REFGUID guid, 1791 _Inout_ UINT *pDataSize, 1792 _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; 1793 1794 virtual HRESULT STDMETHODCALLTYPE SetPrivateData( 1795 _In_ REFGUID guid, 1796 _In_ UINT DataSize, 1797 _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; 1798 1799 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( 1800 _In_ REFGUID guid, 1801 _In_opt_ const IUnknown *pData) = 0; 1802 1803 virtual HRESULT STDMETHODCALLTYPE SetName( 1804 _In_z_ LPCWSTR Name) = 0; 1805 1806 }; 1807 1808 1809#else /* C style interface */ 1810 1811 typedef struct ID3D12ObjectVtbl 1812 { 1813 BEGIN_INTERFACE 1814 1815 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 1816 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1817 ID3D12Object * This, 1818 REFIID riid, 1819 _COM_Outptr_ void **ppvObject); 1820 1821 DECLSPEC_XFGVIRT(IUnknown, AddRef) 1822 ULONG ( STDMETHODCALLTYPE *AddRef )( 1823 ID3D12Object * This); 1824 1825 DECLSPEC_XFGVIRT(IUnknown, Release) 1826 ULONG ( STDMETHODCALLTYPE *Release )( 1827 ID3D12Object * This); 1828 1829 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 1830 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1831 ID3D12Object * This, 1832 _In_ REFGUID guid, 1833 _Inout_ UINT *pDataSize, 1834 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 1835 1836 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 1837 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1838 ID3D12Object * This, 1839 _In_ REFGUID guid, 1840 _In_ UINT DataSize, 1841 _In_reads_bytes_opt_( DataSize ) const void *pData); 1842 1843 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 1844 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1845 ID3D12Object * This, 1846 _In_ REFGUID guid, 1847 _In_opt_ const IUnknown *pData); 1848 1849 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 1850 HRESULT ( STDMETHODCALLTYPE *SetName )( 1851 ID3D12Object * This, 1852 _In_z_ LPCWSTR Name); 1853 1854 END_INTERFACE 1855 } ID3D12ObjectVtbl; 1856 1857 interface ID3D12Object 1858 { 1859 CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl; 1860 }; 1861 1862 1863 1864#ifdef COBJMACROS 1865 1866 1867#define ID3D12Object_QueryInterface(This,riid,ppvObject) \ 1868 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1869 1870#define ID3D12Object_AddRef(This) \ 1871 ( (This)->lpVtbl -> AddRef(This) ) 1872 1873#define ID3D12Object_Release(This) \ 1874 ( (This)->lpVtbl -> Release(This) ) 1875 1876 1877#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \ 1878 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 1879 1880#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \ 1881 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 1882 1883#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \ 1884 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 1885 1886#define ID3D12Object_SetName(This,Name) \ 1887 ( (This)->lpVtbl -> SetName(This,Name) ) 1888 1889#endif /* COBJMACROS */ 1890 1891 1892#endif /* C style interface */ 1893 1894 1895 1896 1897#endif /* __ID3D12Object_INTERFACE_DEFINED__ */ 1898 1899 1900#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ 1901#define __ID3D12DeviceChild_INTERFACE_DEFINED__ 1902 1903/* interface ID3D12DeviceChild */ 1904/* [unique][local][object][uuid] */ 1905 1906 1907EXTERN_C const IID IID_ID3D12DeviceChild; 1908 1909#if defined(__cplusplus) && !defined(CINTERFACE) 1910 1911 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") 1912 ID3D12DeviceChild : public ID3D12Object 1913 { 1914 public: 1915 virtual HRESULT STDMETHODCALLTYPE GetDevice( 1916 REFIID riid, 1917 _COM_Outptr_opt_ void **ppvDevice) = 0; 1918 1919 }; 1920 1921 1922#else /* C style interface */ 1923 1924 typedef struct ID3D12DeviceChildVtbl 1925 { 1926 BEGIN_INTERFACE 1927 1928 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 1929 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1930 ID3D12DeviceChild * This, 1931 REFIID riid, 1932 _COM_Outptr_ void **ppvObject); 1933 1934 DECLSPEC_XFGVIRT(IUnknown, AddRef) 1935 ULONG ( STDMETHODCALLTYPE *AddRef )( 1936 ID3D12DeviceChild * This); 1937 1938 DECLSPEC_XFGVIRT(IUnknown, Release) 1939 ULONG ( STDMETHODCALLTYPE *Release )( 1940 ID3D12DeviceChild * This); 1941 1942 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 1943 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1944 ID3D12DeviceChild * This, 1945 _In_ REFGUID guid, 1946 _Inout_ UINT *pDataSize, 1947 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 1948 1949 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 1950 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1951 ID3D12DeviceChild * This, 1952 _In_ REFGUID guid, 1953 _In_ UINT DataSize, 1954 _In_reads_bytes_opt_( DataSize ) const void *pData); 1955 1956 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 1957 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1958 ID3D12DeviceChild * This, 1959 _In_ REFGUID guid, 1960 _In_opt_ const IUnknown *pData); 1961 1962 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 1963 HRESULT ( STDMETHODCALLTYPE *SetName )( 1964 ID3D12DeviceChild * This, 1965 _In_z_ LPCWSTR Name); 1966 1967 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 1968 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 1969 ID3D12DeviceChild * This, 1970 REFIID riid, 1971 _COM_Outptr_opt_ void **ppvDevice); 1972 1973 END_INTERFACE 1974 } ID3D12DeviceChildVtbl; 1975 1976 interface ID3D12DeviceChild 1977 { 1978 CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl; 1979 }; 1980 1981 1982 1983#ifdef COBJMACROS 1984 1985 1986#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \ 1987 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1988 1989#define ID3D12DeviceChild_AddRef(This) \ 1990 ( (This)->lpVtbl -> AddRef(This) ) 1991 1992#define ID3D12DeviceChild_Release(This) \ 1993 ( (This)->lpVtbl -> Release(This) ) 1994 1995 1996#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ 1997 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 1998 1999#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ 2000 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 2001 2002#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \ 2003 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 2004 2005#define ID3D12DeviceChild_SetName(This,Name) \ 2006 ( (This)->lpVtbl -> SetName(This,Name) ) 2007 2008 2009#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \ 2010 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 2011 2012#endif /* COBJMACROS */ 2013 2014 2015#endif /* C style interface */ 2016 2017 2018 2019 2020#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ 2021 2022 2023#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ 2024#define __ID3D12RootSignature_INTERFACE_DEFINED__ 2025 2026/* interface ID3D12RootSignature */ 2027/* [unique][local][object][uuid] */ 2028 2029 2030EXTERN_C const IID IID_ID3D12RootSignature; 2031 2032#if defined(__cplusplus) && !defined(CINTERFACE) 2033 2034 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") 2035 ID3D12RootSignature : public ID3D12DeviceChild 2036 { 2037 public: 2038 }; 2039 2040 2041#else /* C style interface */ 2042 2043 typedef struct ID3D12RootSignatureVtbl 2044 { 2045 BEGIN_INTERFACE 2046 2047 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 2048 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 2049 ID3D12RootSignature * This, 2050 REFIID riid, 2051 _COM_Outptr_ void **ppvObject); 2052 2053 DECLSPEC_XFGVIRT(IUnknown, AddRef) 2054 ULONG ( STDMETHODCALLTYPE *AddRef )( 2055 ID3D12RootSignature * This); 2056 2057 DECLSPEC_XFGVIRT(IUnknown, Release) 2058 ULONG ( STDMETHODCALLTYPE *Release )( 2059 ID3D12RootSignature * This); 2060 2061 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 2062 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 2063 ID3D12RootSignature * This, 2064 _In_ REFGUID guid, 2065 _Inout_ UINT *pDataSize, 2066 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 2067 2068 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 2069 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 2070 ID3D12RootSignature * This, 2071 _In_ REFGUID guid, 2072 _In_ UINT DataSize, 2073 _In_reads_bytes_opt_( DataSize ) const void *pData); 2074 2075 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 2076 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 2077 ID3D12RootSignature * This, 2078 _In_ REFGUID guid, 2079 _In_opt_ const IUnknown *pData); 2080 2081 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 2082 HRESULT ( STDMETHODCALLTYPE *SetName )( 2083 ID3D12RootSignature * This, 2084 _In_z_ LPCWSTR Name); 2085 2086 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 2087 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 2088 ID3D12RootSignature * This, 2089 REFIID riid, 2090 _COM_Outptr_opt_ void **ppvDevice); 2091 2092 END_INTERFACE 2093 } ID3D12RootSignatureVtbl; 2094 2095 interface ID3D12RootSignature 2096 { 2097 CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl; 2098 }; 2099 2100 2101 2102#ifdef COBJMACROS 2103 2104 2105#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \ 2106 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 2107 2108#define ID3D12RootSignature_AddRef(This) \ 2109 ( (This)->lpVtbl -> AddRef(This) ) 2110 2111#define ID3D12RootSignature_Release(This) \ 2112 ( (This)->lpVtbl -> Release(This) ) 2113 2114 2115#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \ 2116 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 2117 2118#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \ 2119 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 2120 2121#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \ 2122 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 2123 2124#define ID3D12RootSignature_SetName(This,Name) \ 2125 ( (This)->lpVtbl -> SetName(This,Name) ) 2126 2127 2128#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \ 2129 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 2130 2131 2132#endif /* COBJMACROS */ 2133 2134 2135#endif /* C style interface */ 2136 2137 2138 2139 2140#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ 2141 2142 2143/* interface __MIDL_itf_d3d12_0000_0001 */ 2144/* [local] */ 2145 2146typedef struct D3D12_SHADER_BYTECODE 2147 { 2148 _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode; 2149 SIZE_T BytecodeLength; 2150 } D3D12_SHADER_BYTECODE; 2151 2152typedef struct D3D12_STREAM_OUTPUT_DESC 2153 { 2154 _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; 2155 UINT NumEntries; 2156 _Field_size_full_(NumStrides) const UINT *pBufferStrides; 2157 UINT NumStrides; 2158 UINT RasterizedStream; 2159 } D3D12_STREAM_OUTPUT_DESC; 2160 2161typedef struct D3D12_INPUT_LAYOUT_DESC 2162 { 2163 _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; 2164 UINT NumElements; 2165 } D3D12_INPUT_LAYOUT_DESC; 2166 2167typedef 2168enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE 2169 { 2170 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, 2171 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, 2172 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 2173 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; 2174 2175typedef 2176enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS 2177 { 2178 D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, 2179 D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe 2180 } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS; 2181 2182typedef struct D3D12_CACHED_PIPELINE_STATE 2183 { 2184 _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob; 2185 SIZE_T CachedBlobSizeInBytes; 2186 } D3D12_CACHED_PIPELINE_STATE; 2187 2188typedef 2189enum D3D12_PIPELINE_STATE_FLAGS 2190 { 2191 D3D12_PIPELINE_STATE_FLAG_NONE = 0, 2192 D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1, 2193 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4, 2194 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8 2195 } D3D12_PIPELINE_STATE_FLAGS; 2196 2197DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS ) 2198typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC 2199 { 2200 ID3D12RootSignature *pRootSignature; 2201 D3D12_SHADER_BYTECODE VS; 2202 D3D12_SHADER_BYTECODE PS; 2203 D3D12_SHADER_BYTECODE DS; 2204 D3D12_SHADER_BYTECODE HS; 2205 D3D12_SHADER_BYTECODE GS; 2206 D3D12_STREAM_OUTPUT_DESC StreamOutput; 2207 D3D12_BLEND_DESC BlendState; 2208 UINT SampleMask; 2209 D3D12_RASTERIZER_DESC RasterizerState; 2210 D3D12_DEPTH_STENCIL_DESC DepthStencilState; 2211 D3D12_INPUT_LAYOUT_DESC InputLayout; 2212 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; 2213 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; 2214 UINT NumRenderTargets; 2215 DXGI_FORMAT RTVFormats[ 8 ]; 2216 DXGI_FORMAT DSVFormat; 2217 DXGI_SAMPLE_DESC SampleDesc; 2218 UINT NodeMask; 2219 D3D12_CACHED_PIPELINE_STATE CachedPSO; 2220 D3D12_PIPELINE_STATE_FLAGS Flags; 2221 } D3D12_GRAPHICS_PIPELINE_STATE_DESC; 2222 2223typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC 2224 { 2225 ID3D12RootSignature *pRootSignature; 2226 D3D12_SHADER_BYTECODE CS; 2227 UINT NodeMask; 2228 D3D12_CACHED_PIPELINE_STATE CachedPSO; 2229 D3D12_PIPELINE_STATE_FLAGS Flags; 2230 } D3D12_COMPUTE_PIPELINE_STATE_DESC; 2231 2232struct D3D12_RT_FORMAT_ARRAY 2233 { 2234 DXGI_FORMAT RTFormats[ 8 ]; 2235 UINT NumRenderTargets; 2236 } ; 2237typedef struct D3D12_PIPELINE_STATE_STREAM_DESC 2238 { 2239 _In_ SIZE_T SizeInBytes; 2240 _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream; 2241 } D3D12_PIPELINE_STATE_STREAM_DESC; 2242 2243typedef 2244enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE 2245 { 2246 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0, 2247 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) , 2248 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) , 2249 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) , 2250 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) , 2251 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) , 2252 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) , 2253 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) , 2254 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) , 2255 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) , 2256 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) , 2257 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) , 2258 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) , 2259 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) , 2260 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) , 2261 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) , 2262 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) , 2263 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) , 2264 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) , 2265 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) , 2266 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) , 2267 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) , 2268 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) , 2269 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, 2270 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, 2271 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, 2272 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, 2273 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, 2274 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 + 1 ) 2275 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; 2276 2277typedef 2278enum D3D12_FEATURE 2279 { 2280 D3D12_FEATURE_D3D12_OPTIONS = 0, 2281 D3D12_FEATURE_ARCHITECTURE = 1, 2282 D3D12_FEATURE_FEATURE_LEVELS = 2, 2283 D3D12_FEATURE_FORMAT_SUPPORT = 3, 2284 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, 2285 D3D12_FEATURE_FORMAT_INFO = 5, 2286 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, 2287 D3D12_FEATURE_SHADER_MODEL = 7, 2288 D3D12_FEATURE_D3D12_OPTIONS1 = 8, 2289 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, 2290 D3D12_FEATURE_ROOT_SIGNATURE = 12, 2291 D3D12_FEATURE_ARCHITECTURE1 = 16, 2292 D3D12_FEATURE_D3D12_OPTIONS2 = 18, 2293 D3D12_FEATURE_SHADER_CACHE = 19, 2294 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, 2295 D3D12_FEATURE_D3D12_OPTIONS3 = 21, 2296 D3D12_FEATURE_EXISTING_HEAPS = 22, 2297 D3D12_FEATURE_D3D12_OPTIONS4 = 23, 2298 D3D12_FEATURE_SERIALIZATION = 24, 2299 D3D12_FEATURE_CROSS_NODE = 25, 2300 D3D12_FEATURE_D3D12_OPTIONS5 = 27, 2301 D3D12_FEATURE_DISPLAYABLE = 28, 2302 D3D12_FEATURE_D3D12_OPTIONS6 = 30, 2303 D3D12_FEATURE_QUERY_META_COMMAND = 31, 2304 D3D12_FEATURE_D3D12_OPTIONS7 = 32, 2305 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, 2306 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, 2307 D3D12_FEATURE_D3D12_OPTIONS8 = 36, 2308 D3D12_FEATURE_D3D12_OPTIONS9 = 37, 2309 D3D12_FEATURE_D3D12_OPTIONS10 = 39, 2310 D3D12_FEATURE_D3D12_OPTIONS11 = 40, 2311 D3D12_FEATURE_D3D12_OPTIONS12 = 41, 2312 D3D12_FEATURE_D3D12_OPTIONS13 = 42, 2313 D3D12_FEATURE_D3D12_OPTIONS14 = 43, 2314 D3D12_FEATURE_D3D12_OPTIONS15 = 44, 2315 D3D12_FEATURE_D3D12_OPTIONS16 = 45, 2316 D3D12_FEATURE_D3D12_OPTIONS17 = 46, 2317 D3D12_FEATURE_D3D12_OPTIONS18 = 47, 2318 D3D12_FEATURE_D3D12_OPTIONS19 = 48, 2319 D3D12_FEATURE_D3D12_OPTIONS20 = 49, 2320 D3D12_FEATURE_PREDICATION = 50, 2321 D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, 2322 D3D12_FEATURE_HARDWARE_COPY = 52, 2323 D3D12_FEATURE_D3D12_OPTIONS21 = 53 2324 } D3D12_FEATURE; 2325 2326typedef 2327enum D3D12_SHADER_MIN_PRECISION_SUPPORT 2328 { 2329 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, 2330 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, 2331 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 2332 } D3D12_SHADER_MIN_PRECISION_SUPPORT; 2333 2334DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT ) 2335typedef 2336enum D3D12_TILED_RESOURCES_TIER 2337 { 2338 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, 2339 D3D12_TILED_RESOURCES_TIER_1 = 1, 2340 D3D12_TILED_RESOURCES_TIER_2 = 2, 2341 D3D12_TILED_RESOURCES_TIER_3 = 3, 2342 D3D12_TILED_RESOURCES_TIER_4 = 4 2343 } D3D12_TILED_RESOURCES_TIER; 2344 2345typedef 2346enum D3D12_RESOURCE_BINDING_TIER 2347 { 2348 D3D12_RESOURCE_BINDING_TIER_1 = 1, 2349 D3D12_RESOURCE_BINDING_TIER_2 = 2, 2350 D3D12_RESOURCE_BINDING_TIER_3 = 3 2351 } D3D12_RESOURCE_BINDING_TIER; 2352 2353typedef 2354enum D3D12_CONSERVATIVE_RASTERIZATION_TIER 2355 { 2356 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, 2357 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, 2358 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, 2359 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 2360 } D3D12_CONSERVATIVE_RASTERIZATION_TIER; 2361 2362typedef 2363enum D3D12_FORMAT_SUPPORT1 2364 { 2365 D3D12_FORMAT_SUPPORT1_NONE = 0, 2366 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, 2367 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, 2368 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, 2369 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, 2370 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, 2371 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, 2372 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, 2373 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, 2374 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, 2375 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, 2376 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, 2377 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, 2378 D3D12_FORMAT_SUPPORT1_MIP = 0x1000, 2379 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, 2380 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, 2381 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, 2382 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, 2383 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, 2384 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, 2385 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, 2386 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, 2387 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, 2388 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, 2389 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, 2390 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, 2391 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, 2392 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, 2393 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, 2394 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 2395 } D3D12_FORMAT_SUPPORT1; 2396 2397DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 ) 2398typedef 2399enum D3D12_FORMAT_SUPPORT2 2400 { 2401 D3D12_FORMAT_SUPPORT2_NONE = 0, 2402 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, 2403 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, 2404 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, 2405 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, 2406 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, 2407 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, 2408 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, 2409 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, 2410 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, 2411 D3D12_FORMAT_SUPPORT2_TILED = 0x200, 2412 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, 2413 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000 2414 } D3D12_FORMAT_SUPPORT2; 2415 2416DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ) 2417typedef 2418enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS 2419 { 2420 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, 2421 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 2422 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; 2423 2424DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS ) 2425typedef 2426enum D3D12_CROSS_NODE_SHARING_TIER 2427 { 2428 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, 2429 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, 2430 D3D12_CROSS_NODE_SHARING_TIER_1 = 2, 2431 D3D12_CROSS_NODE_SHARING_TIER_2 = 3, 2432 D3D12_CROSS_NODE_SHARING_TIER_3 = 4 2433 } D3D12_CROSS_NODE_SHARING_TIER; 2434 2435typedef 2436enum D3D12_RESOURCE_HEAP_TIER 2437 { 2438 D3D12_RESOURCE_HEAP_TIER_1 = 1, 2439 D3D12_RESOURCE_HEAP_TIER_2 = 2 2440 } D3D12_RESOURCE_HEAP_TIER; 2441 2442typedef 2443enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER 2444 { 2445 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, 2446 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, 2447 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2 2448 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; 2449 2450typedef 2451enum D3D12_VIEW_INSTANCING_TIER 2452 { 2453 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0, 2454 D3D12_VIEW_INSTANCING_TIER_1 = 1, 2455 D3D12_VIEW_INSTANCING_TIER_2 = 2, 2456 D3D12_VIEW_INSTANCING_TIER_3 = 3 2457 } D3D12_VIEW_INSTANCING_TIER; 2458 2459typedef 2460enum D3D12_WORK_GRAPHS_TIER 2461 { 2462 D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0, 2463 D3D12_WORK_GRAPHS_TIER_1_0 = 10 2464 } D3D12_WORK_GRAPHS_TIER; 2465 2466typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS 2467 { 2468 _Out_ BOOL DoublePrecisionFloatShaderOps; 2469 _Out_ BOOL OutputMergerLogicOp; 2470 _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; 2471 _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier; 2472 _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; 2473 _Out_ BOOL PSSpecifiedStencilRefSupported; 2474 _Out_ BOOL TypedUAVLoadAdditionalFormats; 2475 _Out_ BOOL ROVsSupported; 2476 _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; 2477 _Out_ UINT MaxGPUVirtualAddressBitsPerResource; 2478 _Out_ BOOL StandardSwizzle64KBSupported; 2479 _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; 2480 _Out_ BOOL CrossAdapterRowMajorTextureSupported; 2481 _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; 2482 _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; 2483 } D3D12_FEATURE_DATA_D3D12_OPTIONS; 2484 2485typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 2486 { 2487 _Out_ BOOL WaveOps; 2488 _Out_ UINT WaveLaneCountMin; 2489 _Out_ UINT WaveLaneCountMax; 2490 _Out_ UINT TotalLaneCount; 2491 _Out_ BOOL ExpandedComputeResourceStates; 2492 _Out_ BOOL Int64ShaderOps; 2493 } D3D12_FEATURE_DATA_D3D12_OPTIONS1; 2494 2495typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 2496 { 2497 _Out_ BOOL DepthBoundsTestSupported; 2498 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; 2499 } D3D12_FEATURE_DATA_D3D12_OPTIONS2; 2500 2501typedef 2502enum D3D_ROOT_SIGNATURE_VERSION 2503 { 2504 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, 2505 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, 2506 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, 2507 D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 2508 } D3D_ROOT_SIGNATURE_VERSION; 2509 2510typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE 2511 { 2512 _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion; 2513 } D3D12_FEATURE_DATA_ROOT_SIGNATURE; 2514 2515typedef struct D3D12_FEATURE_DATA_ARCHITECTURE 2516 { 2517 _In_ UINT NodeIndex; 2518 _Out_ BOOL TileBasedRenderer; 2519 _Out_ BOOL UMA; 2520 _Out_ BOOL CacheCoherentUMA; 2521 } D3D12_FEATURE_DATA_ARCHITECTURE; 2522 2523typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 2524 { 2525 _In_ UINT NodeIndex; 2526 _Out_ BOOL TileBasedRenderer; 2527 _Out_ BOOL UMA; 2528 _Out_ BOOL CacheCoherentUMA; 2529 _Out_ BOOL IsolatedMMU; 2530 } D3D12_FEATURE_DATA_ARCHITECTURE1; 2531 2532typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS 2533 { 2534 _In_ UINT NumFeatureLevels; 2535 _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; 2536 _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; 2537 } D3D12_FEATURE_DATA_FEATURE_LEVELS; 2538 2539typedef 2540enum D3D_SHADER_MODEL 2541 { 2542 D3D_SHADER_MODEL_NONE = 0, 2543 D3D_SHADER_MODEL_5_1 = 0x51, 2544 D3D_SHADER_MODEL_6_0 = 0x60, 2545 D3D_SHADER_MODEL_6_1 = 0x61, 2546 D3D_SHADER_MODEL_6_2 = 0x62, 2547 D3D_SHADER_MODEL_6_3 = 0x63, 2548 D3D_SHADER_MODEL_6_4 = 0x64, 2549 D3D_SHADER_MODEL_6_5 = 0x65, 2550 D3D_SHADER_MODEL_6_6 = 0x66, 2551 D3D_SHADER_MODEL_6_7 = 0x67, 2552 D3D_SHADER_MODEL_6_8 = 0x68, 2553 D3D_SHADER_MODEL_6_9 = 0x69, 2554 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9 2555 } D3D_SHADER_MODEL; 2556 2557typedef struct D3D12_FEATURE_DATA_SHADER_MODEL 2558 { 2559 _Inout_ D3D_SHADER_MODEL HighestShaderModel; 2560 } D3D12_FEATURE_DATA_SHADER_MODEL; 2561 2562typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT 2563 { 2564 _In_ DXGI_FORMAT Format; 2565 _Out_ D3D12_FORMAT_SUPPORT1 Support1; 2566 _Out_ D3D12_FORMAT_SUPPORT2 Support2; 2567 } D3D12_FEATURE_DATA_FORMAT_SUPPORT; 2568 2569typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS 2570 { 2571 _In_ DXGI_FORMAT Format; 2572 _In_ UINT SampleCount; 2573 _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; 2574 _Out_ UINT NumQualityLevels; 2575 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; 2576 2577typedef struct D3D12_FEATURE_DATA_FORMAT_INFO 2578 { 2579 DXGI_FORMAT Format; 2580 UINT8 PlaneCount; 2581 } D3D12_FEATURE_DATA_FORMAT_INFO; 2582 2583typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT 2584 { 2585 UINT MaxGPUVirtualAddressBitsPerResource; 2586 UINT MaxGPUVirtualAddressBitsPerProcess; 2587 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; 2588 2589typedef 2590enum D3D12_SHADER_CACHE_SUPPORT_FLAGS 2591 { 2592 D3D12_SHADER_CACHE_SUPPORT_NONE = 0, 2593 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, 2594 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, 2595 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, 2596 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, 2597 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, 2598 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, 2599 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 2600 } D3D12_SHADER_CACHE_SUPPORT_FLAGS; 2601 2602DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS ) 2603typedef struct D3D12_FEATURE_DATA_SHADER_CACHE 2604 { 2605 _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; 2606 } D3D12_FEATURE_DATA_SHADER_CACHE; 2607 2608typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY 2609 { 2610 _In_ D3D12_COMMAND_LIST_TYPE CommandListType; 2611 _In_ UINT Priority; 2612 _Out_ BOOL PriorityForTypeIsSupported; 2613 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; 2614 2615typedef 2616enum D3D12_COMMAND_LIST_SUPPORT_FLAGS 2617 { 2618 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0, 2619 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) , 2620 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) , 2621 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) , 2622 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) , 2623 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) , 2624 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) , 2625 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE ) 2626 } D3D12_COMMAND_LIST_SUPPORT_FLAGS; 2627 2628DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS ) 2629typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 2630 { 2631 _Out_ BOOL CopyQueueTimestampQueriesSupported; 2632 _Out_ BOOL CastingFullyTypedFormatSupported; 2633 _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; 2634 _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; 2635 _Out_ BOOL BarycentricsSupported; 2636 } D3D12_FEATURE_DATA_D3D12_OPTIONS3; 2637 2638typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS 2639 { 2640 _Out_ BOOL Supported; 2641 } D3D12_FEATURE_DATA_EXISTING_HEAPS; 2642 2643typedef 2644enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER 2645 { 2646 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0, 2647 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) , 2648 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 ) 2649 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; 2650 2651typedef struct D3D12_FEATURE_DATA_DISPLAYABLE 2652 { 2653 _Out_ BOOL DisplayableTexture; 2654 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; 2655 } D3D12_FEATURE_DATA_DISPLAYABLE; 2656 2657typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 2658 { 2659 _Out_ BOOL MSAA64KBAlignedTextureSupported; 2660 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; 2661 _Out_ BOOL Native16BitShaderOpsSupported; 2662 } D3D12_FEATURE_DATA_D3D12_OPTIONS4; 2663 2664typedef 2665enum D3D12_HEAP_SERIALIZATION_TIER 2666 { 2667 D3D12_HEAP_SERIALIZATION_TIER_0 = 0, 2668 D3D12_HEAP_SERIALIZATION_TIER_10 = 10 2669 } D3D12_HEAP_SERIALIZATION_TIER; 2670 2671typedef struct D3D12_FEATURE_DATA_SERIALIZATION 2672 { 2673 _In_ UINT NodeIndex; 2674 _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; 2675 } D3D12_FEATURE_DATA_SERIALIZATION; 2676 2677typedef struct D3D12_FEATURE_DATA_CROSS_NODE 2678 { 2679 D3D12_CROSS_NODE_SHARING_TIER SharingTier; 2680 BOOL AtomicShaderInstructions; 2681 } D3D12_FEATURE_DATA_CROSS_NODE; 2682 2683typedef 2684enum D3D12_RENDER_PASS_TIER 2685 { 2686 D3D12_RENDER_PASS_TIER_0 = 0, 2687 D3D12_RENDER_PASS_TIER_1 = 1, 2688 D3D12_RENDER_PASS_TIER_2 = 2 2689 } D3D12_RENDER_PASS_TIER; 2690 2691typedef 2692enum D3D12_RAYTRACING_TIER 2693 { 2694 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0, 2695 D3D12_RAYTRACING_TIER_1_0 = 10, 2696 D3D12_RAYTRACING_TIER_1_1 = 11 2697 } D3D12_RAYTRACING_TIER; 2698 2699typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 2700 { 2701 _Out_ BOOL SRVOnlyTiledResourceTier3; 2702 _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier; 2703 _Out_ D3D12_RAYTRACING_TIER RaytracingTier; 2704 } D3D12_FEATURE_DATA_D3D12_OPTIONS5; 2705 2706typedef 2707enum D3D12_VARIABLE_SHADING_RATE_TIER 2708 { 2709 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, 2710 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, 2711 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2 2712 } D3D12_VARIABLE_SHADING_RATE_TIER; 2713 2714typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 2715 { 2716 _Out_ BOOL AdditionalShadingRatesSupported; 2717 _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; 2718 _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; 2719 _Out_ UINT ShadingRateImageTileSize; 2720 _Out_ BOOL BackgroundProcessingSupported; 2721 } D3D12_FEATURE_DATA_D3D12_OPTIONS6; 2722 2723typedef 2724enum D3D12_MESH_SHADER_TIER 2725 { 2726 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0, 2727 D3D12_MESH_SHADER_TIER_1 = 10 2728 } D3D12_MESH_SHADER_TIER; 2729 2730typedef 2731enum D3D12_SAMPLER_FEEDBACK_TIER 2732 { 2733 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0, 2734 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90, 2735 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100 2736 } D3D12_SAMPLER_FEEDBACK_TIER; 2737 2738typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 2739 { 2740 _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier; 2741 _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; 2742 } D3D12_FEATURE_DATA_D3D12_OPTIONS7; 2743 2744typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND 2745 { 2746 _In_ GUID CommandId; 2747 _In_ UINT NodeMask; 2748 _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData; 2749 _In_ SIZE_T QueryInputDataSizeInBytes; 2750 _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData; 2751 _In_ SIZE_T QueryOutputDataSizeInBytes; 2752 } D3D12_FEATURE_DATA_QUERY_META_COMMAND; 2753 2754typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 2755 { 2756 _Out_ BOOL UnalignedBlockTexturesSupported; 2757 } D3D12_FEATURE_DATA_D3D12_OPTIONS8; 2758 2759typedef 2760enum D3D12_WAVE_MMA_TIER 2761 { 2762 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0, 2763 D3D12_WAVE_MMA_TIER_1_0 = 10 2764 } D3D12_WAVE_MMA_TIER; 2765 2766typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 2767 { 2768 _Out_ BOOL MeshShaderPipelineStatsSupported; 2769 _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; 2770 _Out_ BOOL AtomicInt64OnTypedResourceSupported; 2771 _Out_ BOOL AtomicInt64OnGroupSharedSupported; 2772 _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported; 2773 _Out_ D3D12_WAVE_MMA_TIER WaveMMATier; 2774 } D3D12_FEATURE_DATA_D3D12_OPTIONS9; 2775 2776typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 2777 { 2778 _Out_ BOOL VariableRateShadingSumCombinerSupported; 2779 _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported; 2780 } D3D12_FEATURE_DATA_D3D12_OPTIONS10; 2781 2782typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 2783 { 2784 _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported; 2785 } D3D12_FEATURE_DATA_D3D12_OPTIONS11; 2786 2787typedef 2788enum D3D12_TRI_STATE 2789 { 2790 D3D12_TRI_STATE_UNKNOWN = -1, 2791 D3D12_TRI_STATE_FALSE = 0, 2792 D3D12_TRI_STATE_TRUE = 1 2793 } D3D12_TRI_STATE; 2794 2795typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 2796 { 2797 _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; 2798 _Out_ BOOL EnhancedBarriersSupported; 2799 _Out_ BOOL RelaxedFormatCastingSupported; 2800 } D3D12_FEATURE_DATA_D3D12_OPTIONS12; 2801 2802typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 2803 { 2804 _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported; 2805 _Out_ BOOL UnrestrictedVertexElementAlignmentSupported; 2806 _Out_ BOOL InvertedViewportHeightFlipsYSupported; 2807 _Out_ BOOL InvertedViewportDepthFlipsZSupported; 2808 _Out_ BOOL TextureCopyBetweenDimensionsSupported; 2809 _Out_ BOOL AlphaBlendFactorSupported; 2810 } D3D12_FEATURE_DATA_D3D12_OPTIONS13; 2811 2812typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 2813 { 2814 _Out_ BOOL AdvancedTextureOpsSupported; 2815 _Out_ BOOL WriteableMSAATexturesSupported; 2816 _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported; 2817 } D3D12_FEATURE_DATA_D3D12_OPTIONS14; 2818 2819typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 2820 { 2821 _Out_ BOOL TriangleFanSupported; 2822 _Out_ BOOL DynamicIndexBufferStripCutSupported; 2823 } D3D12_FEATURE_DATA_D3D12_OPTIONS15; 2824 2825typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 2826 { 2827 _Out_ BOOL DynamicDepthBiasSupported; 2828 _Out_ BOOL GPUUploadHeapSupported; 2829 } D3D12_FEATURE_DATA_D3D12_OPTIONS16; 2830 2831typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 2832 { 2833 _Out_ BOOL NonNormalizedCoordinateSamplersSupported; 2834 _Out_ BOOL ManualWriteTrackingResourceSupported; 2835 } D3D12_FEATURE_DATA_D3D12_OPTIONS17; 2836 2837typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 2838 { 2839 _Out_ BOOL RenderPassesValid; 2840 } D3D12_FEATURE_DATA_D3D12_OPTIONS18; 2841 2842typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19 2843 { 2844 BOOL MismatchingOutputDimensionsSupported; 2845 UINT SupportedSampleCountsWithNoOutputs; 2846 BOOL PointSamplingAddressesNeverRoundUp; 2847 BOOL RasterizerDesc2Supported; 2848 BOOL NarrowQuadrilateralLinesSupported; 2849 BOOL AnisoFilterWithPointMipSupported; 2850 UINT MaxSamplerDescriptorHeapSize; 2851 UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers; 2852 UINT MaxViewDescriptorHeapSize; 2853 _Out_ BOOL ComputeOnlyCustomHeapSupported; 2854 } D3D12_FEATURE_DATA_D3D12_OPTIONS19; 2855 2856typedef 2857enum D3D12_RECREATE_AT_TIER 2858 { 2859 D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0, 2860 D3D12_RECREATE_AT_TIER_1 = 1 2861 } D3D12_RECREATE_AT_TIER; 2862 2863typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20 2864 { 2865 _Out_ BOOL ComputeOnlyWriteWatchSupported; 2866 D3D12_RECREATE_AT_TIER RecreateAtTier; 2867 } D3D12_FEATURE_DATA_D3D12_OPTIONS20; 2868 2869typedef 2870enum D3D12_EXECUTE_INDIRECT_TIER 2871 { 2872 D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10, 2873 D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11 2874 } D3D12_EXECUTE_INDIRECT_TIER; 2875 2876typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 2877 { 2878 _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier; 2879 _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier; 2880 _Out_ BOOL SampleCmpGradientAndBiasSupported; 2881 _Out_ BOOL ExtendedCommandInfoSupported; 2882 } D3D12_FEATURE_DATA_D3D12_OPTIONS21; 2883 2884typedef struct D3D12_FEATURE_DATA_PREDICATION 2885 { 2886 _Out_ BOOL Supported; 2887 } D3D12_FEATURE_DATA_PREDICATION; 2888 2889typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY 2890 { 2891 _Out_ BOOL Supported; 2892 } D3D12_FEATURE_DATA_HARDWARE_COPY; 2893 2894typedef struct D3D12_RESOURCE_ALLOCATION_INFO 2895 { 2896 UINT64 SizeInBytes; 2897 UINT64 Alignment; 2898 } D3D12_RESOURCE_ALLOCATION_INFO; 2899 2900typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 2901 { 2902 UINT64 Offset; 2903 UINT64 Alignment; 2904 UINT64 SizeInBytes; 2905 } D3D12_RESOURCE_ALLOCATION_INFO1; 2906 2907typedef 2908enum D3D12_HEAP_TYPE 2909 { 2910 D3D12_HEAP_TYPE_DEFAULT = 1, 2911 D3D12_HEAP_TYPE_UPLOAD = 2, 2912 D3D12_HEAP_TYPE_READBACK = 3, 2913 D3D12_HEAP_TYPE_CUSTOM = 4, 2914 D3D12_HEAP_TYPE_GPU_UPLOAD = 5 2915 } D3D12_HEAP_TYPE; 2916 2917typedef 2918enum D3D12_CPU_PAGE_PROPERTY 2919 { 2920 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, 2921 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, 2922 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, 2923 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 2924 } D3D12_CPU_PAGE_PROPERTY; 2925 2926typedef 2927enum D3D12_MEMORY_POOL 2928 { 2929 D3D12_MEMORY_POOL_UNKNOWN = 0, 2930 D3D12_MEMORY_POOL_L0 = 1, 2931 D3D12_MEMORY_POOL_L1 = 2 2932 } D3D12_MEMORY_POOL; 2933 2934typedef struct D3D12_HEAP_PROPERTIES 2935 { 2936 D3D12_HEAP_TYPE Type; 2937 D3D12_CPU_PAGE_PROPERTY CPUPageProperty; 2938 D3D12_MEMORY_POOL MemoryPoolPreference; 2939 UINT CreationNodeMask; 2940 UINT VisibleNodeMask; 2941 } D3D12_HEAP_PROPERTIES; 2942 2943typedef 2944enum D3D12_HEAP_FLAGS 2945 { 2946 D3D12_HEAP_FLAG_NONE = 0, 2947 D3D12_HEAP_FLAG_SHARED = 0x1, 2948 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, 2949 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, 2950 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, 2951 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, 2952 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, 2953 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, 2954 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, 2955 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, 2956 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, 2957 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, 2958 D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000, 2959 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, 2960 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, 2961 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, 2962 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 2963 } D3D12_HEAP_FLAGS; 2964 2965DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS ) 2966typedef struct D3D12_HEAP_DESC 2967 { 2968 UINT64 SizeInBytes; 2969 D3D12_HEAP_PROPERTIES Properties; 2970 UINT64 Alignment; 2971 D3D12_HEAP_FLAGS Flags; 2972 } D3D12_HEAP_DESC; 2973 2974typedef 2975enum D3D12_RESOURCE_DIMENSION 2976 { 2977 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, 2978 D3D12_RESOURCE_DIMENSION_BUFFER = 1, 2979 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, 2980 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, 2981 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 2982 } D3D12_RESOURCE_DIMENSION; 2983 2984typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO 2985 { 2986 _In_ DXGI_FORMAT Format; 2987 _In_ D3D12_RESOURCE_DIMENSION Dimension; 2988 _In_ D3D12_HEAP_PROPERTIES DestHeapProperties; 2989 _Out_ BOOL Supported; 2990 } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO; 2991 2992typedef 2993enum D3D12_TEXTURE_LAYOUT 2994 { 2995 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, 2996 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, 2997 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, 2998 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 2999 } D3D12_TEXTURE_LAYOUT; 3000 3001typedef 3002enum D3D12_RESOURCE_FLAGS 3003 { 3004 D3D12_RESOURCE_FLAG_NONE = 0, 3005 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, 3006 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, 3007 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, 3008 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, 3009 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, 3010 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, 3011 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, 3012 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, 3013 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100 3014 } D3D12_RESOURCE_FLAGS; 3015 3016DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) 3017typedef struct D3D12_MIP_REGION 3018 { 3019 UINT Width; 3020 UINT Height; 3021 UINT Depth; 3022 } D3D12_MIP_REGION; 3023 3024typedef struct D3D12_RESOURCE_DESC 3025 { 3026 D3D12_RESOURCE_DIMENSION Dimension; 3027 UINT64 Alignment; 3028 UINT64 Width; 3029 UINT Height; 3030 UINT16 DepthOrArraySize; 3031 UINT16 MipLevels; 3032 DXGI_FORMAT Format; 3033 DXGI_SAMPLE_DESC SampleDesc; 3034 D3D12_TEXTURE_LAYOUT Layout; 3035 D3D12_RESOURCE_FLAGS Flags; 3036 } D3D12_RESOURCE_DESC; 3037 3038typedef struct D3D12_RESOURCE_DESC1 3039 { 3040 D3D12_RESOURCE_DIMENSION Dimension; 3041 UINT64 Alignment; 3042 UINT64 Width; 3043 UINT Height; 3044 UINT16 DepthOrArraySize; 3045 UINT16 MipLevels; 3046 DXGI_FORMAT Format; 3047 DXGI_SAMPLE_DESC SampleDesc; 3048 D3D12_TEXTURE_LAYOUT Layout; 3049 D3D12_RESOURCE_FLAGS Flags; 3050 D3D12_MIP_REGION SamplerFeedbackMipRegion; 3051 } D3D12_RESOURCE_DESC1; 3052 3053typedef struct D3D12_DEPTH_STENCIL_VALUE 3054 { 3055 FLOAT Depth; 3056 UINT8 Stencil; 3057 } D3D12_DEPTH_STENCIL_VALUE; 3058 3059typedef struct D3D12_CLEAR_VALUE 3060 { 3061 DXGI_FORMAT Format; 3062 union 3063 { 3064 FLOAT Color[ 4 ]; 3065 D3D12_DEPTH_STENCIL_VALUE DepthStencil; 3066 } ; 3067 } D3D12_CLEAR_VALUE; 3068 3069typedef struct D3D12_RANGE 3070 { 3071 SIZE_T Begin; 3072 SIZE_T End; 3073 } D3D12_RANGE; 3074 3075typedef struct D3D12_RANGE_UINT64 3076 { 3077 UINT64 Begin; 3078 UINT64 End; 3079 } D3D12_RANGE_UINT64; 3080 3081typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 3082 { 3083 UINT Subresource; 3084 D3D12_RANGE_UINT64 Range; 3085 } D3D12_SUBRESOURCE_RANGE_UINT64; 3086 3087typedef struct D3D12_SUBRESOURCE_INFO 3088 { 3089 UINT64 Offset; 3090 UINT RowPitch; 3091 UINT DepthPitch; 3092 } D3D12_SUBRESOURCE_INFO; 3093 3094typedef struct D3D12_TILED_RESOURCE_COORDINATE 3095 { 3096 UINT X; 3097 UINT Y; 3098 UINT Z; 3099 UINT Subresource; 3100 } D3D12_TILED_RESOURCE_COORDINATE; 3101 3102typedef struct D3D12_TILE_REGION_SIZE 3103 { 3104 UINT NumTiles; 3105 BOOL UseBox; 3106 UINT Width; 3107 UINT16 Height; 3108 UINT16 Depth; 3109 } D3D12_TILE_REGION_SIZE; 3110 3111typedef 3112enum D3D12_TILE_RANGE_FLAGS 3113 { 3114 D3D12_TILE_RANGE_FLAG_NONE = 0, 3115 D3D12_TILE_RANGE_FLAG_NULL = 1, 3116 D3D12_TILE_RANGE_FLAG_SKIP = 2, 3117 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 3118 } D3D12_TILE_RANGE_FLAGS; 3119 3120typedef struct D3D12_SUBRESOURCE_TILING 3121 { 3122 UINT WidthInTiles; 3123 UINT16 HeightInTiles; 3124 UINT16 DepthInTiles; 3125 UINT StartTileIndexInOverallResource; 3126 } D3D12_SUBRESOURCE_TILING; 3127 3128typedef struct D3D12_TILE_SHAPE 3129 { 3130 UINT WidthInTexels; 3131 UINT HeightInTexels; 3132 UINT DepthInTexels; 3133 } D3D12_TILE_SHAPE; 3134 3135typedef struct D3D12_PACKED_MIP_INFO 3136 { 3137 UINT8 NumStandardMips; 3138 UINT8 NumPackedMips; 3139 UINT NumTilesForPackedMips; 3140 UINT StartTileIndexInOverallResource; 3141 } D3D12_PACKED_MIP_INFO; 3142 3143typedef 3144enum D3D12_TILE_MAPPING_FLAGS 3145 { 3146 D3D12_TILE_MAPPING_FLAG_NONE = 0, 3147 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 3148 } D3D12_TILE_MAPPING_FLAGS; 3149 3150DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS ) 3151typedef 3152enum D3D12_TILE_COPY_FLAGS 3153 { 3154 D3D12_TILE_COPY_FLAG_NONE = 0, 3155 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, 3156 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 3157 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 3158 } D3D12_TILE_COPY_FLAGS; 3159 3160DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS ) 3161typedef 3162enum D3D12_RESOURCE_STATES 3163 { 3164 D3D12_RESOURCE_STATE_COMMON = 0, 3165 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, 3166 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, 3167 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, 3168 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, 3169 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, 3170 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, 3171 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, 3172 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, 3173 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, 3174 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, 3175 D3D12_RESOURCE_STATE_COPY_DEST = 0x400, 3176 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, 3177 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, 3178 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, 3179 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, 3180 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, 3181 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000, 3182 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000, 3183 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000, 3184 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000, 3185 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000, 3186 D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , 3187 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) , 3188 D3D12_RESOURCE_STATE_PRESENT = 0, 3189 D3D12_RESOURCE_STATE_PREDICATION = 0x200, 3190 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000, 3191 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000, 3192 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000, 3193 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000, 3194 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000, 3195 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000 3196 } D3D12_RESOURCE_STATES; 3197 3198DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES ) 3199typedef 3200enum D3D12_RESOURCE_BARRIER_TYPE 3201 { 3202 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, 3203 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , 3204 D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) 3205 } D3D12_RESOURCE_BARRIER_TYPE; 3206 3207 3208typedef struct D3D12_RESOURCE_TRANSITION_BARRIER 3209 { 3210 ID3D12Resource *pResource; 3211 UINT Subresource; 3212 D3D12_RESOURCE_STATES StateBefore; 3213 D3D12_RESOURCE_STATES StateAfter; 3214 } D3D12_RESOURCE_TRANSITION_BARRIER; 3215 3216typedef struct D3D12_RESOURCE_ALIASING_BARRIER 3217 { 3218 ID3D12Resource *pResourceBefore; 3219 ID3D12Resource *pResourceAfter; 3220 } D3D12_RESOURCE_ALIASING_BARRIER; 3221 3222typedef struct D3D12_RESOURCE_UAV_BARRIER 3223 { 3224 ID3D12Resource *pResource; 3225 } D3D12_RESOURCE_UAV_BARRIER; 3226 3227typedef 3228enum D3D12_RESOURCE_BARRIER_FLAGS 3229 { 3230 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, 3231 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, 3232 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 3233 } D3D12_RESOURCE_BARRIER_FLAGS; 3234 3235DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS ) 3236typedef struct D3D12_RESOURCE_BARRIER 3237 { 3238 D3D12_RESOURCE_BARRIER_TYPE Type; 3239 D3D12_RESOURCE_BARRIER_FLAGS Flags; 3240 union 3241 { 3242 D3D12_RESOURCE_TRANSITION_BARRIER Transition; 3243 D3D12_RESOURCE_ALIASING_BARRIER Aliasing; 3244 D3D12_RESOURCE_UAV_BARRIER UAV; 3245 } ; 3246 } D3D12_RESOURCE_BARRIER; 3247 3248typedef struct D3D12_SUBRESOURCE_FOOTPRINT 3249 { 3250 DXGI_FORMAT Format; 3251 UINT Width; 3252 UINT Height; 3253 UINT Depth; 3254 UINT RowPitch; 3255 } D3D12_SUBRESOURCE_FOOTPRINT; 3256 3257typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT 3258 { 3259 UINT64 Offset; 3260 D3D12_SUBRESOURCE_FOOTPRINT Footprint; 3261 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; 3262 3263typedef 3264enum D3D12_TEXTURE_COPY_TYPE 3265 { 3266 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, 3267 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 3268 } D3D12_TEXTURE_COPY_TYPE; 3269 3270typedef struct D3D12_TEXTURE_COPY_LOCATION 3271 { 3272 ID3D12Resource *pResource; 3273 D3D12_TEXTURE_COPY_TYPE Type; 3274 union 3275 { 3276 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; 3277 UINT SubresourceIndex; 3278 } ; 3279 } D3D12_TEXTURE_COPY_LOCATION; 3280 3281typedef 3282enum D3D12_RESOLVE_MODE 3283 { 3284 D3D12_RESOLVE_MODE_DECOMPRESS = 0, 3285 D3D12_RESOLVE_MODE_MIN = 1, 3286 D3D12_RESOLVE_MODE_MAX = 2, 3287 D3D12_RESOLVE_MODE_AVERAGE = 3, 3288 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, 3289 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 3290 } D3D12_RESOLVE_MODE; 3291 3292typedef struct D3D12_SAMPLE_POSITION 3293 { 3294 INT8 X; 3295 INT8 Y; 3296 } D3D12_SAMPLE_POSITION; 3297 3298typedef struct D3D12_VIEW_INSTANCE_LOCATION 3299 { 3300 UINT ViewportArrayIndex; 3301 UINT RenderTargetArrayIndex; 3302 } D3D12_VIEW_INSTANCE_LOCATION; 3303 3304typedef 3305enum D3D12_VIEW_INSTANCING_FLAGS 3306 { 3307 D3D12_VIEW_INSTANCING_FLAG_NONE = 0, 3308 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1 3309 } D3D12_VIEW_INSTANCING_FLAGS; 3310 3311DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS ) 3312typedef struct D3D12_VIEW_INSTANCING_DESC 3313 { 3314 UINT ViewInstanceCount; 3315 _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; 3316 D3D12_VIEW_INSTANCING_FLAGS Flags; 3317 } D3D12_VIEW_INSTANCING_DESC; 3318 3319typedef 3320enum D3D12_SHADER_COMPONENT_MAPPING 3321 { 3322 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, 3323 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, 3324 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, 3325 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, 3326 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, 3327 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 3328 } D3D12_SHADER_COMPONENT_MAPPING; 3329 3330#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 3331#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 3332#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) 3333#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ 3334 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \ 3335 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \ 3336 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \ 3337 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)) 3338#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) 3339#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) 3340typedef 3341enum D3D12_BUFFER_SRV_FLAGS 3342 { 3343 D3D12_BUFFER_SRV_FLAG_NONE = 0, 3344 D3D12_BUFFER_SRV_FLAG_RAW = 0x1 3345 } D3D12_BUFFER_SRV_FLAGS; 3346 3347DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS ) 3348typedef struct D3D12_BUFFER_SRV 3349 { 3350 UINT64 FirstElement; 3351 UINT NumElements; 3352 UINT StructureByteStride; 3353 D3D12_BUFFER_SRV_FLAGS Flags; 3354 } D3D12_BUFFER_SRV; 3355 3356typedef struct D3D12_TEX1D_SRV 3357 { 3358 UINT MostDetailedMip; 3359 UINT MipLevels; 3360 FLOAT ResourceMinLODClamp; 3361 } D3D12_TEX1D_SRV; 3362 3363typedef struct D3D12_TEX1D_ARRAY_SRV 3364 { 3365 UINT MostDetailedMip; 3366 UINT MipLevels; 3367 UINT FirstArraySlice; 3368 UINT ArraySize; 3369 FLOAT ResourceMinLODClamp; 3370 } D3D12_TEX1D_ARRAY_SRV; 3371 3372typedef struct D3D12_TEX2D_SRV 3373 { 3374 UINT MostDetailedMip; 3375 UINT MipLevels; 3376 UINT PlaneSlice; 3377 FLOAT ResourceMinLODClamp; 3378 } D3D12_TEX2D_SRV; 3379 3380typedef struct D3D12_TEX2D_ARRAY_SRV 3381 { 3382 UINT MostDetailedMip; 3383 UINT MipLevels; 3384 UINT FirstArraySlice; 3385 UINT ArraySize; 3386 UINT PlaneSlice; 3387 FLOAT ResourceMinLODClamp; 3388 } D3D12_TEX2D_ARRAY_SRV; 3389 3390typedef struct D3D12_TEX3D_SRV 3391 { 3392 UINT MostDetailedMip; 3393 UINT MipLevels; 3394 FLOAT ResourceMinLODClamp; 3395 } D3D12_TEX3D_SRV; 3396 3397typedef struct D3D12_TEXCUBE_SRV 3398 { 3399 UINT MostDetailedMip; 3400 UINT MipLevels; 3401 FLOAT ResourceMinLODClamp; 3402 } D3D12_TEXCUBE_SRV; 3403 3404typedef struct D3D12_TEXCUBE_ARRAY_SRV 3405 { 3406 UINT MostDetailedMip; 3407 UINT MipLevels; 3408 UINT First2DArrayFace; 3409 UINT NumCubes; 3410 FLOAT ResourceMinLODClamp; 3411 } D3D12_TEXCUBE_ARRAY_SRV; 3412 3413typedef struct D3D12_TEX2DMS_SRV 3414 { 3415 UINT UnusedField_NothingToDefine; 3416 } D3D12_TEX2DMS_SRV; 3417 3418typedef struct D3D12_TEX2DMS_ARRAY_SRV 3419 { 3420 UINT FirstArraySlice; 3421 UINT ArraySize; 3422 } D3D12_TEX2DMS_ARRAY_SRV; 3423 3424typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV 3425 { 3426 D3D12_GPU_VIRTUAL_ADDRESS Location; 3427 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; 3428 3429typedef 3430enum D3D12_SRV_DIMENSION 3431 { 3432 D3D12_SRV_DIMENSION_UNKNOWN = 0, 3433 D3D12_SRV_DIMENSION_BUFFER = 1, 3434 D3D12_SRV_DIMENSION_TEXTURE1D = 2, 3435 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, 3436 D3D12_SRV_DIMENSION_TEXTURE2D = 4, 3437 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, 3438 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, 3439 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, 3440 D3D12_SRV_DIMENSION_TEXTURE3D = 8, 3441 D3D12_SRV_DIMENSION_TEXTURECUBE = 9, 3442 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, 3443 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11 3444 } D3D12_SRV_DIMENSION; 3445 3446typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC 3447 { 3448 DXGI_FORMAT Format; 3449 D3D12_SRV_DIMENSION ViewDimension; 3450 UINT Shader4ComponentMapping; 3451 union 3452 { 3453 D3D12_BUFFER_SRV Buffer; 3454 D3D12_TEX1D_SRV Texture1D; 3455 D3D12_TEX1D_ARRAY_SRV Texture1DArray; 3456 D3D12_TEX2D_SRV Texture2D; 3457 D3D12_TEX2D_ARRAY_SRV Texture2DArray; 3458 D3D12_TEX2DMS_SRV Texture2DMS; 3459 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; 3460 D3D12_TEX3D_SRV Texture3D; 3461 D3D12_TEXCUBE_SRV TextureCube; 3462 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; 3463 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; 3464 } ; 3465 } D3D12_SHADER_RESOURCE_VIEW_DESC; 3466 3467typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC 3468 { 3469 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 3470 UINT SizeInBytes; 3471 } D3D12_CONSTANT_BUFFER_VIEW_DESC; 3472 3473typedef 3474enum D3D12_FILTER 3475 { 3476 D3D12_FILTER_MIN_MAG_MIP_POINT = 0, 3477 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, 3478 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, 3479 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, 3480 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 3481 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 3482 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 3483 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 3484 D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54, 3485 D3D12_FILTER_ANISOTROPIC = 0x55, 3486 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 3487 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 3488 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 3489 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 3490 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 3491 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 3492 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 3493 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 3494 D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4, 3495 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, 3496 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, 3497 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, 3498 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, 3499 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, 3500 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, 3501 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, 3502 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, 3503 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, 3504 D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154, 3505 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, 3506 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, 3507 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, 3508 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, 3509 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, 3510 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, 3511 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, 3512 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, 3513 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, 3514 D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4, 3515 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 3516 } D3D12_FILTER; 3517 3518typedef 3519enum D3D12_FILTER_TYPE 3520 { 3521 D3D12_FILTER_TYPE_POINT = 0, 3522 D3D12_FILTER_TYPE_LINEAR = 1 3523 } D3D12_FILTER_TYPE; 3524 3525typedef 3526enum D3D12_FILTER_REDUCTION_TYPE 3527 { 3528 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, 3529 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, 3530 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, 3531 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 3532 } D3D12_FILTER_REDUCTION_TYPE; 3533 3534#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) 3535 3536#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) 3537 3538#define D3D12_FILTER_TYPE_MASK ( 0x3 ) 3539 3540#define D3D12_MIN_FILTER_SHIFT ( 4 ) 3541 3542#define D3D12_MAG_FILTER_SHIFT ( 2 ) 3543 3544#define D3D12_MIP_FILTER_SHIFT ( 0 ) 3545 3546#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 ) 3547 3548#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ 3549 ( ( D3D12_FILTER ) ( \ 3550 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ 3551 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ 3552 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ 3553 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 3554#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ 3555 ( ( D3D12_FILTER ) ( \ 3556 D3D12_ANISOTROPIC_FILTERING_BIT | \ 3557 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ 3558 D3D12_FILTER_TYPE_LINEAR, \ 3559 D3D12_FILTER_TYPE_LINEAR, \ 3560 reduction ) ) ) 3561#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \ 3562 ( ( D3D12_FILTER ) ( \ 3563 D3D12_ANISOTROPIC_FILTERING_BIT | \ 3564 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ 3565 D3D12_FILTER_TYPE_LINEAR, \ 3566 D3D12_FILTER_TYPE_POINT, \ 3567 reduction ) ) ) 3568#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ 3569 ( ( D3D12_FILTER_TYPE ) \ 3570 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 3571#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ 3572 ( ( D3D12_FILTER_TYPE ) \ 3573 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 3574#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ 3575 ( ( D3D12_FILTER_TYPE ) \ 3576 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 3577#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ 3578 ( ( D3D12_FILTER_REDUCTION_TYPE ) \ 3579 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) 3580#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ 3581 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) 3582#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ 3583 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ 3584 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ 3585 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) ) 3586typedef 3587enum D3D12_TEXTURE_ADDRESS_MODE 3588 { 3589 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, 3590 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, 3591 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, 3592 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, 3593 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 3594 } D3D12_TEXTURE_ADDRESS_MODE; 3595 3596typedef struct D3D12_SAMPLER_DESC 3597 { 3598 D3D12_FILTER Filter; 3599 D3D12_TEXTURE_ADDRESS_MODE AddressU; 3600 D3D12_TEXTURE_ADDRESS_MODE AddressV; 3601 D3D12_TEXTURE_ADDRESS_MODE AddressW; 3602 FLOAT MipLODBias; 3603 UINT MaxAnisotropy; 3604 D3D12_COMPARISON_FUNC ComparisonFunc; 3605 FLOAT BorderColor[ 4 ]; 3606 FLOAT MinLOD; 3607 FLOAT MaxLOD; 3608 } D3D12_SAMPLER_DESC; 3609 3610typedef 3611enum D3D12_SAMPLER_FLAGS 3612 { 3613 D3D12_SAMPLER_FLAG_NONE = 0, 3614 D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1, 3615 D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2 3616 } D3D12_SAMPLER_FLAGS; 3617 3618DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS ) 3619typedef struct D3D12_SAMPLER_DESC2 3620 { 3621 D3D12_FILTER Filter; 3622 D3D12_TEXTURE_ADDRESS_MODE AddressU; 3623 D3D12_TEXTURE_ADDRESS_MODE AddressV; 3624 D3D12_TEXTURE_ADDRESS_MODE AddressW; 3625 FLOAT MipLODBias; 3626 UINT MaxAnisotropy; 3627 D3D12_COMPARISON_FUNC ComparisonFunc; 3628 union 3629 { 3630 FLOAT FloatBorderColor[ 4 ]; 3631 UINT UintBorderColor[ 4 ]; 3632 } ; 3633 FLOAT MinLOD; 3634 FLOAT MaxLOD; 3635 D3D12_SAMPLER_FLAGS Flags; 3636 } D3D12_SAMPLER_DESC2; 3637 3638typedef 3639enum D3D12_BUFFER_UAV_FLAGS 3640 { 3641 D3D12_BUFFER_UAV_FLAG_NONE = 0, 3642 D3D12_BUFFER_UAV_FLAG_RAW = 0x1 3643 } D3D12_BUFFER_UAV_FLAGS; 3644 3645DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS ) 3646typedef struct D3D12_BUFFER_UAV 3647 { 3648 UINT64 FirstElement; 3649 UINT NumElements; 3650 UINT StructureByteStride; 3651 UINT64 CounterOffsetInBytes; 3652 D3D12_BUFFER_UAV_FLAGS Flags; 3653 } D3D12_BUFFER_UAV; 3654 3655typedef struct D3D12_TEX1D_UAV 3656 { 3657 UINT MipSlice; 3658 } D3D12_TEX1D_UAV; 3659 3660typedef struct D3D12_TEX1D_ARRAY_UAV 3661 { 3662 UINT MipSlice; 3663 UINT FirstArraySlice; 3664 UINT ArraySize; 3665 } D3D12_TEX1D_ARRAY_UAV; 3666 3667typedef struct D3D12_TEX2D_UAV 3668 { 3669 UINT MipSlice; 3670 UINT PlaneSlice; 3671 } D3D12_TEX2D_UAV; 3672 3673typedef struct D3D12_TEX2D_ARRAY_UAV 3674 { 3675 UINT MipSlice; 3676 UINT FirstArraySlice; 3677 UINT ArraySize; 3678 UINT PlaneSlice; 3679 } D3D12_TEX2D_ARRAY_UAV; 3680 3681typedef struct D3D12_TEX2DMS_UAV 3682 { 3683 UINT UnusedField_NothingToDefine; 3684 } D3D12_TEX2DMS_UAV; 3685 3686typedef struct D3D12_TEX2DMS_ARRAY_UAV 3687 { 3688 UINT FirstArraySlice; 3689 UINT ArraySize; 3690 } D3D12_TEX2DMS_ARRAY_UAV; 3691 3692typedef struct D3D12_TEX3D_UAV 3693 { 3694 UINT MipSlice; 3695 UINT FirstWSlice; 3696 UINT WSize; 3697 } D3D12_TEX3D_UAV; 3698 3699typedef 3700enum D3D12_UAV_DIMENSION 3701 { 3702 D3D12_UAV_DIMENSION_UNKNOWN = 0, 3703 D3D12_UAV_DIMENSION_BUFFER = 1, 3704 D3D12_UAV_DIMENSION_TEXTURE1D = 2, 3705 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, 3706 D3D12_UAV_DIMENSION_TEXTURE2D = 4, 3707 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, 3708 D3D12_UAV_DIMENSION_TEXTURE2DMS = 6, 3709 D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7, 3710 D3D12_UAV_DIMENSION_TEXTURE3D = 8 3711 } D3D12_UAV_DIMENSION; 3712 3713typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC 3714 { 3715 DXGI_FORMAT Format; 3716 D3D12_UAV_DIMENSION ViewDimension; 3717 union 3718 { 3719 D3D12_BUFFER_UAV Buffer; 3720 D3D12_TEX1D_UAV Texture1D; 3721 D3D12_TEX1D_ARRAY_UAV Texture1DArray; 3722 D3D12_TEX2D_UAV Texture2D; 3723 D3D12_TEX2D_ARRAY_UAV Texture2DArray; 3724 D3D12_TEX2DMS_UAV Texture2DMS; 3725 D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray; 3726 D3D12_TEX3D_UAV Texture3D; 3727 } ; 3728 } D3D12_UNORDERED_ACCESS_VIEW_DESC; 3729 3730typedef struct D3D12_BUFFER_RTV 3731 { 3732 UINT64 FirstElement; 3733 UINT NumElements; 3734 } D3D12_BUFFER_RTV; 3735 3736typedef struct D3D12_TEX1D_RTV 3737 { 3738 UINT MipSlice; 3739 } D3D12_TEX1D_RTV; 3740 3741typedef struct D3D12_TEX1D_ARRAY_RTV 3742 { 3743 UINT MipSlice; 3744 UINT FirstArraySlice; 3745 UINT ArraySize; 3746 } D3D12_TEX1D_ARRAY_RTV; 3747 3748typedef struct D3D12_TEX2D_RTV 3749 { 3750 UINT MipSlice; 3751 UINT PlaneSlice; 3752 } D3D12_TEX2D_RTV; 3753 3754typedef struct D3D12_TEX2DMS_RTV 3755 { 3756 UINT UnusedField_NothingToDefine; 3757 } D3D12_TEX2DMS_RTV; 3758 3759typedef struct D3D12_TEX2D_ARRAY_RTV 3760 { 3761 UINT MipSlice; 3762 UINT FirstArraySlice; 3763 UINT ArraySize; 3764 UINT PlaneSlice; 3765 } D3D12_TEX2D_ARRAY_RTV; 3766 3767typedef struct D3D12_TEX2DMS_ARRAY_RTV 3768 { 3769 UINT FirstArraySlice; 3770 UINT ArraySize; 3771 } D3D12_TEX2DMS_ARRAY_RTV; 3772 3773typedef struct D3D12_TEX3D_RTV 3774 { 3775 UINT MipSlice; 3776 UINT FirstWSlice; 3777 UINT WSize; 3778 } D3D12_TEX3D_RTV; 3779 3780typedef 3781enum D3D12_RTV_DIMENSION 3782 { 3783 D3D12_RTV_DIMENSION_UNKNOWN = 0, 3784 D3D12_RTV_DIMENSION_BUFFER = 1, 3785 D3D12_RTV_DIMENSION_TEXTURE1D = 2, 3786 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, 3787 D3D12_RTV_DIMENSION_TEXTURE2D = 4, 3788 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, 3789 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, 3790 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, 3791 D3D12_RTV_DIMENSION_TEXTURE3D = 8 3792 } D3D12_RTV_DIMENSION; 3793 3794typedef struct D3D12_RENDER_TARGET_VIEW_DESC 3795 { 3796 DXGI_FORMAT Format; 3797 D3D12_RTV_DIMENSION ViewDimension; 3798 union 3799 { 3800 D3D12_BUFFER_RTV Buffer; 3801 D3D12_TEX1D_RTV Texture1D; 3802 D3D12_TEX1D_ARRAY_RTV Texture1DArray; 3803 D3D12_TEX2D_RTV Texture2D; 3804 D3D12_TEX2D_ARRAY_RTV Texture2DArray; 3805 D3D12_TEX2DMS_RTV Texture2DMS; 3806 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; 3807 D3D12_TEX3D_RTV Texture3D; 3808 } ; 3809 } D3D12_RENDER_TARGET_VIEW_DESC; 3810 3811typedef struct D3D12_TEX1D_DSV 3812 { 3813 UINT MipSlice; 3814 } D3D12_TEX1D_DSV; 3815 3816typedef struct D3D12_TEX1D_ARRAY_DSV 3817 { 3818 UINT MipSlice; 3819 UINT FirstArraySlice; 3820 UINT ArraySize; 3821 } D3D12_TEX1D_ARRAY_DSV; 3822 3823typedef struct D3D12_TEX2D_DSV 3824 { 3825 UINT MipSlice; 3826 } D3D12_TEX2D_DSV; 3827 3828typedef struct D3D12_TEX2D_ARRAY_DSV 3829 { 3830 UINT MipSlice; 3831 UINT FirstArraySlice; 3832 UINT ArraySize; 3833 } D3D12_TEX2D_ARRAY_DSV; 3834 3835typedef struct D3D12_TEX2DMS_DSV 3836 { 3837 UINT UnusedField_NothingToDefine; 3838 } D3D12_TEX2DMS_DSV; 3839 3840typedef struct D3D12_TEX2DMS_ARRAY_DSV 3841 { 3842 UINT FirstArraySlice; 3843 UINT ArraySize; 3844 } D3D12_TEX2DMS_ARRAY_DSV; 3845 3846typedef 3847enum D3D12_DSV_FLAGS 3848 { 3849 D3D12_DSV_FLAG_NONE = 0, 3850 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, 3851 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 3852 } D3D12_DSV_FLAGS; 3853 3854DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS ) 3855typedef 3856enum D3D12_DSV_DIMENSION 3857 { 3858 D3D12_DSV_DIMENSION_UNKNOWN = 0, 3859 D3D12_DSV_DIMENSION_TEXTURE1D = 1, 3860 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, 3861 D3D12_DSV_DIMENSION_TEXTURE2D = 3, 3862 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, 3863 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, 3864 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 3865 } D3D12_DSV_DIMENSION; 3866 3867typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC 3868 { 3869 DXGI_FORMAT Format; 3870 D3D12_DSV_DIMENSION ViewDimension; 3871 D3D12_DSV_FLAGS Flags; 3872 union 3873 { 3874 D3D12_TEX1D_DSV Texture1D; 3875 D3D12_TEX1D_ARRAY_DSV Texture1DArray; 3876 D3D12_TEX2D_DSV Texture2D; 3877 D3D12_TEX2D_ARRAY_DSV Texture2DArray; 3878 D3D12_TEX2DMS_DSV Texture2DMS; 3879 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; 3880 } ; 3881 } D3D12_DEPTH_STENCIL_VIEW_DESC; 3882 3883typedef 3884enum D3D12_CLEAR_FLAGS 3885 { 3886 D3D12_CLEAR_FLAG_DEPTH = 0x1, 3887 D3D12_CLEAR_FLAG_STENCIL = 0x2 3888 } D3D12_CLEAR_FLAGS; 3889 3890DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS ) 3891typedef 3892enum D3D12_FENCE_FLAGS 3893 { 3894 D3D12_FENCE_FLAG_NONE = 0, 3895 D3D12_FENCE_FLAG_SHARED = 0x1, 3896 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, 3897 D3D12_FENCE_FLAG_NON_MONITORED = 0x4 3898 } D3D12_FENCE_FLAGS; 3899 3900DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS ) 3901typedef 3902enum D3D12_DESCRIPTOR_HEAP_TYPE 3903 { 3904 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, 3905 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , 3906 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , 3907 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , 3908 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) 3909 } D3D12_DESCRIPTOR_HEAP_TYPE; 3910 3911typedef 3912enum D3D12_DESCRIPTOR_HEAP_FLAGS 3913 { 3914 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, 3915 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 3916 } D3D12_DESCRIPTOR_HEAP_FLAGS; 3917 3918DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS ) 3919typedef struct D3D12_DESCRIPTOR_HEAP_DESC 3920 { 3921 D3D12_DESCRIPTOR_HEAP_TYPE Type; 3922 UINT NumDescriptors; 3923 D3D12_DESCRIPTOR_HEAP_FLAGS Flags; 3924 UINT NodeMask; 3925 } D3D12_DESCRIPTOR_HEAP_DESC; 3926 3927typedef 3928enum D3D12_DESCRIPTOR_RANGE_TYPE 3929 { 3930 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, 3931 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , 3932 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , 3933 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) 3934 } D3D12_DESCRIPTOR_RANGE_TYPE; 3935 3936typedef struct D3D12_DESCRIPTOR_RANGE 3937 { 3938 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 3939 UINT NumDescriptors; 3940 UINT BaseShaderRegister; 3941 UINT RegisterSpace; 3942 UINT OffsetInDescriptorsFromTableStart; 3943 } D3D12_DESCRIPTOR_RANGE; 3944 3945typedef struct D3D12_ROOT_DESCRIPTOR_TABLE 3946 { 3947 UINT NumDescriptorRanges; 3948 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; 3949 } D3D12_ROOT_DESCRIPTOR_TABLE; 3950 3951typedef struct D3D12_ROOT_CONSTANTS 3952 { 3953 UINT ShaderRegister; 3954 UINT RegisterSpace; 3955 UINT Num32BitValues; 3956 } D3D12_ROOT_CONSTANTS; 3957 3958typedef struct D3D12_ROOT_DESCRIPTOR 3959 { 3960 UINT ShaderRegister; 3961 UINT RegisterSpace; 3962 } D3D12_ROOT_DESCRIPTOR; 3963 3964typedef 3965enum D3D12_SHADER_VISIBILITY 3966 { 3967 D3D12_SHADER_VISIBILITY_ALL = 0, 3968 D3D12_SHADER_VISIBILITY_VERTEX = 1, 3969 D3D12_SHADER_VISIBILITY_HULL = 2, 3970 D3D12_SHADER_VISIBILITY_DOMAIN = 3, 3971 D3D12_SHADER_VISIBILITY_GEOMETRY = 4, 3972 D3D12_SHADER_VISIBILITY_PIXEL = 5, 3973 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, 3974 D3D12_SHADER_VISIBILITY_MESH = 7 3975 } D3D12_SHADER_VISIBILITY; 3976 3977typedef 3978enum D3D12_ROOT_PARAMETER_TYPE 3979 { 3980 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, 3981 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , 3982 D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , 3983 D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , 3984 D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) 3985 } D3D12_ROOT_PARAMETER_TYPE; 3986 3987typedef struct D3D12_ROOT_PARAMETER 3988 { 3989 D3D12_ROOT_PARAMETER_TYPE ParameterType; 3990 union 3991 { 3992 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; 3993 D3D12_ROOT_CONSTANTS Constants; 3994 D3D12_ROOT_DESCRIPTOR Descriptor; 3995 } ; 3996 D3D12_SHADER_VISIBILITY ShaderVisibility; 3997 } D3D12_ROOT_PARAMETER; 3998 3999typedef 4000enum D3D12_ROOT_SIGNATURE_FLAGS 4001 { 4002 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, 4003 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, 4004 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, 4005 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, 4006 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, 4007 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, 4008 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, 4009 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, 4010 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, 4011 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, 4012 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, 4013 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, 4014 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800 4015 } D3D12_ROOT_SIGNATURE_FLAGS; 4016 4017DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS ) 4018typedef 4019enum D3D12_STATIC_BORDER_COLOR 4020 { 4021 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, 4022 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , 4023 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) , 4024 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) , 4025 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 ) 4026 } D3D12_STATIC_BORDER_COLOR; 4027 4028typedef struct D3D12_STATIC_SAMPLER_DESC 4029 { 4030 D3D12_FILTER Filter; 4031 D3D12_TEXTURE_ADDRESS_MODE AddressU; 4032 D3D12_TEXTURE_ADDRESS_MODE AddressV; 4033 D3D12_TEXTURE_ADDRESS_MODE AddressW; 4034 FLOAT MipLODBias; 4035 UINT MaxAnisotropy; 4036 D3D12_COMPARISON_FUNC ComparisonFunc; 4037 D3D12_STATIC_BORDER_COLOR BorderColor; 4038 FLOAT MinLOD; 4039 FLOAT MaxLOD; 4040 UINT ShaderRegister; 4041 UINT RegisterSpace; 4042 D3D12_SHADER_VISIBILITY ShaderVisibility; 4043 } D3D12_STATIC_SAMPLER_DESC; 4044 4045typedef struct D3D12_STATIC_SAMPLER_DESC1 4046 { 4047 D3D12_FILTER Filter; 4048 D3D12_TEXTURE_ADDRESS_MODE AddressU; 4049 D3D12_TEXTURE_ADDRESS_MODE AddressV; 4050 D3D12_TEXTURE_ADDRESS_MODE AddressW; 4051 FLOAT MipLODBias; 4052 UINT MaxAnisotropy; 4053 D3D12_COMPARISON_FUNC ComparisonFunc; 4054 D3D12_STATIC_BORDER_COLOR BorderColor; 4055 FLOAT MinLOD; 4056 FLOAT MaxLOD; 4057 UINT ShaderRegister; 4058 UINT RegisterSpace; 4059 D3D12_SHADER_VISIBILITY ShaderVisibility; 4060 D3D12_SAMPLER_FLAGS Flags; 4061 } D3D12_STATIC_SAMPLER_DESC1; 4062 4063typedef struct D3D12_ROOT_SIGNATURE_DESC 4064 { 4065 UINT NumParameters; 4066 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters; 4067 UINT NumStaticSamplers; 4068 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 4069 D3D12_ROOT_SIGNATURE_FLAGS Flags; 4070 } D3D12_ROOT_SIGNATURE_DESC; 4071 4072typedef 4073enum D3D12_DESCRIPTOR_RANGE_FLAGS 4074 { 4075 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, 4076 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, 4077 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, 4078 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 4079 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, 4080 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000 4081 } D3D12_DESCRIPTOR_RANGE_FLAGS; 4082 4083DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS ) 4084typedef struct D3D12_DESCRIPTOR_RANGE1 4085 { 4086 D3D12_DESCRIPTOR_RANGE_TYPE RangeType; 4087 UINT NumDescriptors; 4088 UINT BaseShaderRegister; 4089 UINT RegisterSpace; 4090 D3D12_DESCRIPTOR_RANGE_FLAGS Flags; 4091 UINT OffsetInDescriptorsFromTableStart; 4092 } D3D12_DESCRIPTOR_RANGE1; 4093 4094typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 4095 { 4096 UINT NumDescriptorRanges; 4097 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; 4098 } D3D12_ROOT_DESCRIPTOR_TABLE1; 4099 4100typedef 4101enum D3D12_ROOT_DESCRIPTOR_FLAGS 4102 { 4103 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, 4104 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, 4105 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, 4106 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8 4107 } D3D12_ROOT_DESCRIPTOR_FLAGS; 4108 4109DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS ) 4110typedef struct D3D12_ROOT_DESCRIPTOR1 4111 { 4112 UINT ShaderRegister; 4113 UINT RegisterSpace; 4114 D3D12_ROOT_DESCRIPTOR_FLAGS Flags; 4115 } D3D12_ROOT_DESCRIPTOR1; 4116 4117typedef struct D3D12_ROOT_PARAMETER1 4118 { 4119 D3D12_ROOT_PARAMETER_TYPE ParameterType; 4120 union 4121 { 4122 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; 4123 D3D12_ROOT_CONSTANTS Constants; 4124 D3D12_ROOT_DESCRIPTOR1 Descriptor; 4125 } ; 4126 D3D12_SHADER_VISIBILITY ShaderVisibility; 4127 } D3D12_ROOT_PARAMETER1; 4128 4129typedef struct D3D12_ROOT_SIGNATURE_DESC1 4130 { 4131 UINT NumParameters; 4132 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; 4133 UINT NumStaticSamplers; 4134 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; 4135 D3D12_ROOT_SIGNATURE_FLAGS Flags; 4136 } D3D12_ROOT_SIGNATURE_DESC1; 4137 4138typedef struct D3D12_ROOT_SIGNATURE_DESC2 4139 { 4140 UINT NumParameters; 4141 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; 4142 UINT NumStaticSamplers; 4143 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers; 4144 D3D12_ROOT_SIGNATURE_FLAGS Flags; 4145 } D3D12_ROOT_SIGNATURE_DESC2; 4146 4147typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC 4148 { 4149 D3D_ROOT_SIGNATURE_VERSION Version; 4150 union 4151 { 4152 D3D12_ROOT_SIGNATURE_DESC Desc_1_0; 4153 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; 4154 D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2; 4155 } ; 4156 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; 4157 4158 4159 4160extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; 4161extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; 4162 4163#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ 4164#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ 4165 4166/* interface ID3D12RootSignatureDeserializer */ 4167/* [unique][local][object][uuid] */ 4168 4169 4170EXTERN_C const IID IID_ID3D12RootSignatureDeserializer; 4171 4172#if defined(__cplusplus) && !defined(CINTERFACE) 4173 4174 MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046") 4175 ID3D12RootSignatureDeserializer : public IUnknown 4176 { 4177 public: 4178 virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0; 4179 4180 }; 4181 4182 4183#else /* C style interface */ 4184 4185 typedef struct ID3D12RootSignatureDeserializerVtbl 4186 { 4187 BEGIN_INTERFACE 4188 4189 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 4190 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 4191 ID3D12RootSignatureDeserializer * This, 4192 REFIID riid, 4193 _COM_Outptr_ void **ppvObject); 4194 4195 DECLSPEC_XFGVIRT(IUnknown, AddRef) 4196 ULONG ( STDMETHODCALLTYPE *AddRef )( 4197 ID3D12RootSignatureDeserializer * This); 4198 4199 DECLSPEC_XFGVIRT(IUnknown, Release) 4200 ULONG ( STDMETHODCALLTYPE *Release )( 4201 ID3D12RootSignatureDeserializer * This); 4202 4203 DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc) 4204 const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )( 4205 ID3D12RootSignatureDeserializer * This); 4206 4207 END_INTERFACE 4208 } ID3D12RootSignatureDeserializerVtbl; 4209 4210 interface ID3D12RootSignatureDeserializer 4211 { 4212 CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl; 4213 }; 4214 4215 4216 4217#ifdef COBJMACROS 4218 4219 4220#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ 4221 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 4222 4223#define ID3D12RootSignatureDeserializer_AddRef(This) \ 4224 ( (This)->lpVtbl -> AddRef(This) ) 4225 4226#define ID3D12RootSignatureDeserializer_Release(This) \ 4227 ( (This)->lpVtbl -> Release(This) ) 4228 4229 4230#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \ 4231 ( (This)->lpVtbl -> GetRootSignatureDesc(This) ) 4232 4233#endif /* COBJMACROS */ 4234 4235 4236#endif /* C style interface */ 4237 4238 4239 4240 4241#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ 4242 4243 4244#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ 4245#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ 4246 4247/* interface ID3D12VersionedRootSignatureDeserializer */ 4248/* [unique][local][object][uuid] */ 4249 4250 4251EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer; 4252 4253#if defined(__cplusplus) && !defined(CINTERFACE) 4254 4255 MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0") 4256 ID3D12VersionedRootSignatureDeserializer : public IUnknown 4257 { 4258 public: 4259 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion( 4260 D3D_ROOT_SIGNATURE_VERSION convertToVersion, 4261 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0; 4262 4263 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0; 4264 4265 }; 4266 4267 4268#else /* C style interface */ 4269 4270 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl 4271 { 4272 BEGIN_INTERFACE 4273 4274 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 4275 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 4276 ID3D12VersionedRootSignatureDeserializer * This, 4277 REFIID riid, 4278 _COM_Outptr_ void **ppvObject); 4279 4280 DECLSPEC_XFGVIRT(IUnknown, AddRef) 4281 ULONG ( STDMETHODCALLTYPE *AddRef )( 4282 ID3D12VersionedRootSignatureDeserializer * This); 4283 4284 DECLSPEC_XFGVIRT(IUnknown, Release) 4285 ULONG ( STDMETHODCALLTYPE *Release )( 4286 ID3D12VersionedRootSignatureDeserializer * This); 4287 4288 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion) 4289 HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )( 4290 ID3D12VersionedRootSignatureDeserializer * This, 4291 D3D_ROOT_SIGNATURE_VERSION convertToVersion, 4292 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc); 4293 4294 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc) 4295 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )( 4296 ID3D12VersionedRootSignatureDeserializer * This); 4297 4298 END_INTERFACE 4299 } ID3D12VersionedRootSignatureDeserializerVtbl; 4300 4301 interface ID3D12VersionedRootSignatureDeserializer 4302 { 4303 CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl; 4304 }; 4305 4306 4307 4308#ifdef COBJMACROS 4309 4310 4311#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ 4312 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 4313 4314#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \ 4315 ( (This)->lpVtbl -> AddRef(This) ) 4316 4317#define ID3D12VersionedRootSignatureDeserializer_Release(This) \ 4318 ( (This)->lpVtbl -> Release(This) ) 4319 4320 4321#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \ 4322 ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) ) 4323 4324#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \ 4325 ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) ) 4326 4327#endif /* COBJMACROS */ 4328 4329 4330#endif /* C style interface */ 4331 4332 4333 4334 4335#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */ 4336 4337 4338/* interface __MIDL_itf_d3d12_0000_0003 */ 4339/* [local] */ 4340 4341typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( 4342 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, 4343 _In_ D3D_ROOT_SIGNATURE_VERSION Version, 4344 _Out_ ID3DBlob** ppBlob, 4345 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); 4346 4347HRESULT WINAPI D3D12SerializeRootSignature( 4348 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, 4349 _In_ D3D_ROOT_SIGNATURE_VERSION Version, 4350 _Out_ ID3DBlob** ppBlob, 4351 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); 4352 4353typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( 4354 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, 4355 _In_ SIZE_T SrcDataSizeInBytes, 4356 _In_ REFIID pRootSignatureDeserializerInterface, 4357 _Out_ void** ppRootSignatureDeserializer); 4358 4359HRESULT WINAPI D3D12CreateRootSignatureDeserializer( 4360 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, 4361 _In_ SIZE_T SrcDataSizeInBytes, 4362 _In_ REFIID pRootSignatureDeserializerInterface, 4363 _Out_ void** ppRootSignatureDeserializer); 4364 4365typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)( 4366 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, 4367 _Out_ ID3DBlob** ppBlob, 4368 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); 4369 4370HRESULT WINAPI D3D12SerializeVersionedRootSignature( 4371 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, 4372 _Out_ ID3DBlob** ppBlob, 4373 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); 4374 4375typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)( 4376 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, 4377 _In_ SIZE_T SrcDataSizeInBytes, 4378 _In_ REFIID pRootSignatureDeserializerInterface, 4379 _Out_ void** ppRootSignatureDeserializer); 4380 4381HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer( 4382 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, 4383 _In_ SIZE_T SrcDataSizeInBytes, 4384 _In_ REFIID pRootSignatureDeserializerInterface, 4385 _Out_ void** ppRootSignatureDeserializer); 4386 4387typedef struct D3D12_CPU_DESCRIPTOR_HANDLE 4388 { 4389 SIZE_T ptr; 4390 } D3D12_CPU_DESCRIPTOR_HANDLE; 4391 4392typedef struct D3D12_GPU_DESCRIPTOR_HANDLE 4393 { 4394 UINT64 ptr; 4395 } D3D12_GPU_DESCRIPTOR_HANDLE; 4396 4397// If rects are supplied in D3D12_DISCARD_REGION, below, the resource 4398// must have 2D subresources with all specified subresources the same dimension. 4399typedef struct D3D12_DISCARD_REGION 4400 { 4401 UINT NumRects; 4402 _In_reads_(NumRects) const D3D12_RECT *pRects; 4403 UINT FirstSubresource; 4404 UINT NumSubresources; 4405 } D3D12_DISCARD_REGION; 4406 4407typedef 4408enum D3D12_QUERY_HEAP_TYPE 4409 { 4410 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, 4411 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, 4412 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, 4413 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, 4414 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, 4415 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, 4416 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7 4417 } D3D12_QUERY_HEAP_TYPE; 4418 4419typedef struct D3D12_QUERY_HEAP_DESC 4420 { 4421 D3D12_QUERY_HEAP_TYPE Type; 4422 UINT Count; 4423 UINT NodeMask; 4424 } D3D12_QUERY_HEAP_DESC; 4425 4426typedef 4427enum D3D12_QUERY_TYPE 4428 { 4429 D3D12_QUERY_TYPE_OCCLUSION = 0, 4430 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, 4431 D3D12_QUERY_TYPE_TIMESTAMP = 2, 4432 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, 4433 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, 4434 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, 4435 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, 4436 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, 4437 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, 4438 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10 4439 } D3D12_QUERY_TYPE; 4440 4441typedef 4442enum D3D12_PREDICATION_OP 4443 { 4444 D3D12_PREDICATION_OP_EQUAL_ZERO = 0, 4445 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 4446 } D3D12_PREDICATION_OP; 4447 4448typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS 4449 { 4450 UINT64 IAVertices; 4451 UINT64 IAPrimitives; 4452 UINT64 VSInvocations; 4453 UINT64 GSInvocations; 4454 UINT64 GSPrimitives; 4455 UINT64 CInvocations; 4456 UINT64 CPrimitives; 4457 UINT64 PSInvocations; 4458 UINT64 HSInvocations; 4459 UINT64 DSInvocations; 4460 UINT64 CSInvocations; 4461 } D3D12_QUERY_DATA_PIPELINE_STATISTICS; 4462 4463typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 4464 { 4465 UINT64 IAVertices; 4466 UINT64 IAPrimitives; 4467 UINT64 VSInvocations; 4468 UINT64 GSInvocations; 4469 UINT64 GSPrimitives; 4470 UINT64 CInvocations; 4471 UINT64 CPrimitives; 4472 UINT64 PSInvocations; 4473 UINT64 HSInvocations; 4474 UINT64 DSInvocations; 4475 UINT64 CSInvocations; 4476 UINT64 ASInvocations; 4477 UINT64 MSInvocations; 4478 UINT64 MSPrimitives; 4479 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1; 4480 4481typedef struct D3D12_QUERY_DATA_SO_STATISTICS 4482 { 4483 UINT64 NumPrimitivesWritten; 4484 UINT64 PrimitivesStorageNeeded; 4485 } D3D12_QUERY_DATA_SO_STATISTICS; 4486 4487typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW 4488 { 4489 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 4490 UINT64 SizeInBytes; 4491 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; 4492 } D3D12_STREAM_OUTPUT_BUFFER_VIEW; 4493 4494typedef struct D3D12_DRAW_ARGUMENTS 4495 { 4496 UINT VertexCountPerInstance; 4497 UINT InstanceCount; 4498 UINT StartVertexLocation; 4499 UINT StartInstanceLocation; 4500 } D3D12_DRAW_ARGUMENTS; 4501 4502typedef struct D3D12_DRAW_INDEXED_ARGUMENTS 4503 { 4504 UINT IndexCountPerInstance; 4505 UINT InstanceCount; 4506 UINT StartIndexLocation; 4507 INT BaseVertexLocation; 4508 UINT StartInstanceLocation; 4509 } D3D12_DRAW_INDEXED_ARGUMENTS; 4510 4511typedef struct D3D12_DISPATCH_ARGUMENTS 4512 { 4513 UINT ThreadGroupCountX; 4514 UINT ThreadGroupCountY; 4515 UINT ThreadGroupCountZ; 4516 } D3D12_DISPATCH_ARGUMENTS; 4517 4518typedef struct D3D12_VERTEX_BUFFER_VIEW 4519 { 4520 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 4521 UINT SizeInBytes; 4522 UINT StrideInBytes; 4523 } D3D12_VERTEX_BUFFER_VIEW; 4524 4525typedef struct D3D12_INDEX_BUFFER_VIEW 4526 { 4527 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; 4528 UINT SizeInBytes; 4529 DXGI_FORMAT Format; 4530 } D3D12_INDEX_BUFFER_VIEW; 4531 4532typedef 4533enum D3D12_INDIRECT_ARGUMENT_TYPE 4534 { 4535 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, 4536 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , 4537 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , 4538 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , 4539 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , 4540 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , 4541 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , 4542 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , 4543 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) , 4544 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) , 4545 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) , 4546 D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 ) 4547 } D3D12_INDIRECT_ARGUMENT_TYPE; 4548 4549typedef struct D3D12_INDIRECT_ARGUMENT_DESC 4550 { 4551 D3D12_INDIRECT_ARGUMENT_TYPE Type; 4552 union 4553 { 4554 struct 4555 { 4556 UINT Slot; 4557 } VertexBuffer; 4558 struct 4559 { 4560 UINT RootParameterIndex; 4561 UINT DestOffsetIn32BitValues; 4562 UINT Num32BitValuesToSet; 4563 } Constant; 4564 struct 4565 { 4566 UINT RootParameterIndex; 4567 } ConstantBufferView; 4568 struct 4569 { 4570 UINT RootParameterIndex; 4571 } ShaderResourceView; 4572 struct 4573 { 4574 UINT RootParameterIndex; 4575 } UnorderedAccessView; 4576 struct 4577 { 4578 UINT RootParameterIndex; 4579 UINT DestOffsetIn32BitValues; 4580 } IncrementingConstant; 4581 } ; 4582 } D3D12_INDIRECT_ARGUMENT_DESC; 4583 4584typedef struct D3D12_COMMAND_SIGNATURE_DESC 4585 { 4586 UINT ByteStride; 4587 UINT NumArgumentDescs; 4588 _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; 4589 UINT NodeMask; 4590 } D3D12_COMMAND_SIGNATURE_DESC; 4591 4592 4593 4594 4595extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec; 4596extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec; 4597 4598#ifndef __ID3D12Pageable_INTERFACE_DEFINED__ 4599#define __ID3D12Pageable_INTERFACE_DEFINED__ 4600 4601/* interface ID3D12Pageable */ 4602/* [unique][local][object][uuid] */ 4603 4604 4605EXTERN_C const IID IID_ID3D12Pageable; 4606 4607#if defined(__cplusplus) && !defined(CINTERFACE) 4608 4609 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") 4610 ID3D12Pageable : public ID3D12DeviceChild 4611 { 4612 public: 4613 }; 4614 4615 4616#else /* C style interface */ 4617 4618 typedef struct ID3D12PageableVtbl 4619 { 4620 BEGIN_INTERFACE 4621 4622 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 4623 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 4624 ID3D12Pageable * This, 4625 REFIID riid, 4626 _COM_Outptr_ void **ppvObject); 4627 4628 DECLSPEC_XFGVIRT(IUnknown, AddRef) 4629 ULONG ( STDMETHODCALLTYPE *AddRef )( 4630 ID3D12Pageable * This); 4631 4632 DECLSPEC_XFGVIRT(IUnknown, Release) 4633 ULONG ( STDMETHODCALLTYPE *Release )( 4634 ID3D12Pageable * This); 4635 4636 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 4637 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 4638 ID3D12Pageable * This, 4639 _In_ REFGUID guid, 4640 _Inout_ UINT *pDataSize, 4641 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 4642 4643 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 4644 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 4645 ID3D12Pageable * This, 4646 _In_ REFGUID guid, 4647 _In_ UINT DataSize, 4648 _In_reads_bytes_opt_( DataSize ) const void *pData); 4649 4650 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 4651 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 4652 ID3D12Pageable * This, 4653 _In_ REFGUID guid, 4654 _In_opt_ const IUnknown *pData); 4655 4656 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 4657 HRESULT ( STDMETHODCALLTYPE *SetName )( 4658 ID3D12Pageable * This, 4659 _In_z_ LPCWSTR Name); 4660 4661 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 4662 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 4663 ID3D12Pageable * This, 4664 REFIID riid, 4665 _COM_Outptr_opt_ void **ppvDevice); 4666 4667 END_INTERFACE 4668 } ID3D12PageableVtbl; 4669 4670 interface ID3D12Pageable 4671 { 4672 CONST_VTBL struct ID3D12PageableVtbl *lpVtbl; 4673 }; 4674 4675 4676 4677#ifdef COBJMACROS 4678 4679 4680#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \ 4681 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 4682 4683#define ID3D12Pageable_AddRef(This) \ 4684 ( (This)->lpVtbl -> AddRef(This) ) 4685 4686#define ID3D12Pageable_Release(This) \ 4687 ( (This)->lpVtbl -> Release(This) ) 4688 4689 4690#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \ 4691 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 4692 4693#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \ 4694 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 4695 4696#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \ 4697 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 4698 4699#define ID3D12Pageable_SetName(This,Name) \ 4700 ( (This)->lpVtbl -> SetName(This,Name) ) 4701 4702 4703#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \ 4704 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 4705 4706 4707#endif /* COBJMACROS */ 4708 4709 4710#endif /* C style interface */ 4711 4712 4713 4714 4715#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ 4716 4717 4718#ifndef __ID3D12Heap_INTERFACE_DEFINED__ 4719#define __ID3D12Heap_INTERFACE_DEFINED__ 4720 4721/* interface ID3D12Heap */ 4722/* [unique][local][object][uuid] */ 4723 4724 4725EXTERN_C const IID IID_ID3D12Heap; 4726 4727#if defined(__cplusplus) && !defined(CINTERFACE) 4728 4729 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") 4730 ID3D12Heap : public ID3D12Pageable 4731 { 4732 public: 4733#if defined(_MSC_VER) || !defined(_WIN32) 4734 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 4735#else 4736 virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc( 4737 D3D12_HEAP_DESC * RetVal) = 0; 4738#endif 4739 4740 }; 4741 4742 4743#else /* C style interface */ 4744 4745 typedef struct ID3D12HeapVtbl 4746 { 4747 BEGIN_INTERFACE 4748 4749 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 4750 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 4751 ID3D12Heap * This, 4752 REFIID riid, 4753 _COM_Outptr_ void **ppvObject); 4754 4755 DECLSPEC_XFGVIRT(IUnknown, AddRef) 4756 ULONG ( STDMETHODCALLTYPE *AddRef )( 4757 ID3D12Heap * This); 4758 4759 DECLSPEC_XFGVIRT(IUnknown, Release) 4760 ULONG ( STDMETHODCALLTYPE *Release )( 4761 ID3D12Heap * This); 4762 4763 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 4764 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 4765 ID3D12Heap * This, 4766 _In_ REFGUID guid, 4767 _Inout_ UINT *pDataSize, 4768 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 4769 4770 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 4771 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 4772 ID3D12Heap * This, 4773 _In_ REFGUID guid, 4774 _In_ UINT DataSize, 4775 _In_reads_bytes_opt_( DataSize ) const void *pData); 4776 4777 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 4778 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 4779 ID3D12Heap * This, 4780 _In_ REFGUID guid, 4781 _In_opt_ const IUnknown *pData); 4782 4783 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 4784 HRESULT ( STDMETHODCALLTYPE *SetName )( 4785 ID3D12Heap * This, 4786 _In_z_ LPCWSTR Name); 4787 4788 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 4789 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 4790 ID3D12Heap * This, 4791 REFIID riid, 4792 _COM_Outptr_opt_ void **ppvDevice); 4793 4794 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) 4795#if !defined(_WIN32) 4796 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( 4797 ID3D12Heap * This); 4798 4799#else 4800 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( 4801 ID3D12Heap * This, 4802 D3D12_HEAP_DESC * RetVal); 4803 4804#endif 4805 4806 END_INTERFACE 4807 } ID3D12HeapVtbl; 4808 4809 interface ID3D12Heap 4810 { 4811 CONST_VTBL struct ID3D12HeapVtbl *lpVtbl; 4812 }; 4813 4814 4815 4816#ifdef COBJMACROS 4817 4818 4819#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \ 4820 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 4821 4822#define ID3D12Heap_AddRef(This) \ 4823 ( (This)->lpVtbl -> AddRef(This) ) 4824 4825#define ID3D12Heap_Release(This) \ 4826 ( (This)->lpVtbl -> Release(This) ) 4827 4828 4829#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \ 4830 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 4831 4832#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \ 4833 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 4834 4835#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \ 4836 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 4837 4838#define ID3D12Heap_SetName(This,Name) \ 4839 ( (This)->lpVtbl -> SetName(This,Name) ) 4840 4841 4842#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \ 4843 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 4844 4845 4846#if !defined(_WIN32) 4847 4848#define ID3D12Heap_GetDesc(This) \ 4849 ( (This)->lpVtbl -> GetDesc(This) ) 4850#else 4851#define ID3D12Heap_GetDesc(This,RetVal) \ 4852 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 4853#endif 4854 4855#endif /* COBJMACROS */ 4856 4857 4858#endif /* C style interface */ 4859 4860 4861 4862 4863#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ 4864 4865 4866#ifndef __ID3D12Resource_INTERFACE_DEFINED__ 4867#define __ID3D12Resource_INTERFACE_DEFINED__ 4868 4869/* interface ID3D12Resource */ 4870/* [unique][local][object][uuid] */ 4871 4872 4873EXTERN_C const IID IID_ID3D12Resource; 4874 4875#if defined(__cplusplus) && !defined(CINTERFACE) 4876 4877 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") 4878 ID3D12Resource : public ID3D12Pageable 4879 { 4880 public: 4881 virtual HRESULT STDMETHODCALLTYPE Map( 4882 UINT Subresource, 4883 _In_opt_ const D3D12_RANGE *pReadRange, 4884 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0; 4885 4886 virtual void STDMETHODCALLTYPE Unmap( 4887 UINT Subresource, 4888 _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; 4889 4890#if defined(_MSC_VER) || !defined(_WIN32) 4891 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 4892#else 4893 virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc( 4894 D3D12_RESOURCE_DESC * RetVal) = 0; 4895#endif 4896 4897 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0; 4898 4899 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( 4900 UINT DstSubresource, 4901 _In_opt_ const D3D12_BOX *pDstBox, 4902 _In_ const void *pSrcData, 4903 UINT SrcRowPitch, 4904 UINT SrcDepthPitch) = 0; 4905 4906 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( 4907 _Out_ void *pDstData, 4908 UINT DstRowPitch, 4909 UINT DstDepthPitch, 4910 UINT SrcSubresource, 4911 _In_opt_ const D3D12_BOX *pSrcBox) = 0; 4912 4913 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( 4914 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, 4915 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0; 4916 4917 }; 4918 4919 4920#else /* C style interface */ 4921 4922 typedef struct ID3D12ResourceVtbl 4923 { 4924 BEGIN_INTERFACE 4925 4926 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 4927 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 4928 ID3D12Resource * This, 4929 REFIID riid, 4930 _COM_Outptr_ void **ppvObject); 4931 4932 DECLSPEC_XFGVIRT(IUnknown, AddRef) 4933 ULONG ( STDMETHODCALLTYPE *AddRef )( 4934 ID3D12Resource * This); 4935 4936 DECLSPEC_XFGVIRT(IUnknown, Release) 4937 ULONG ( STDMETHODCALLTYPE *Release )( 4938 ID3D12Resource * This); 4939 4940 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 4941 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 4942 ID3D12Resource * This, 4943 _In_ REFGUID guid, 4944 _Inout_ UINT *pDataSize, 4945 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 4946 4947 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 4948 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 4949 ID3D12Resource * This, 4950 _In_ REFGUID guid, 4951 _In_ UINT DataSize, 4952 _In_reads_bytes_opt_( DataSize ) const void *pData); 4953 4954 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 4955 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 4956 ID3D12Resource * This, 4957 _In_ REFGUID guid, 4958 _In_opt_ const IUnknown *pData); 4959 4960 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 4961 HRESULT ( STDMETHODCALLTYPE *SetName )( 4962 ID3D12Resource * This, 4963 _In_z_ LPCWSTR Name); 4964 4965 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 4966 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 4967 ID3D12Resource * This, 4968 REFIID riid, 4969 _COM_Outptr_opt_ void **ppvDevice); 4970 4971 DECLSPEC_XFGVIRT(ID3D12Resource, Map) 4972 HRESULT ( STDMETHODCALLTYPE *Map )( 4973 ID3D12Resource * This, 4974 UINT Subresource, 4975 _In_opt_ const D3D12_RANGE *pReadRange, 4976 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); 4977 4978 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) 4979 void ( STDMETHODCALLTYPE *Unmap )( 4980 ID3D12Resource * This, 4981 UINT Subresource, 4982 _In_opt_ const D3D12_RANGE *pWrittenRange); 4983 4984 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) 4985#if !defined(_WIN32) 4986 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( 4987 ID3D12Resource * This); 4988 4989#else 4990 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( 4991 ID3D12Resource * This, 4992 D3D12_RESOURCE_DESC * RetVal); 4993 4994#endif 4995 4996 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) 4997 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( 4998 ID3D12Resource * This); 4999 5000 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) 5001 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( 5002 ID3D12Resource * This, 5003 UINT DstSubresource, 5004 _In_opt_ const D3D12_BOX *pDstBox, 5005 _In_ const void *pSrcData, 5006 UINT SrcRowPitch, 5007 UINT SrcDepthPitch); 5008 5009 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) 5010 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( 5011 ID3D12Resource * This, 5012 _Out_ void *pDstData, 5013 UINT DstRowPitch, 5014 UINT DstDepthPitch, 5015 UINT SrcSubresource, 5016 _In_opt_ const D3D12_BOX *pSrcBox); 5017 5018 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) 5019 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( 5020 ID3D12Resource * This, 5021 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, 5022 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); 5023 5024 END_INTERFACE 5025 } ID3D12ResourceVtbl; 5026 5027 interface ID3D12Resource 5028 { 5029 CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl; 5030 }; 5031 5032 5033 5034#ifdef COBJMACROS 5035 5036 5037#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \ 5038 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5039 5040#define ID3D12Resource_AddRef(This) \ 5041 ( (This)->lpVtbl -> AddRef(This) ) 5042 5043#define ID3D12Resource_Release(This) \ 5044 ( (This)->lpVtbl -> Release(This) ) 5045 5046 5047#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \ 5048 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5049 5050#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \ 5051 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5052 5053#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \ 5054 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5055 5056#define ID3D12Resource_SetName(This,Name) \ 5057 ( (This)->lpVtbl -> SetName(This,Name) ) 5058 5059 5060#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \ 5061 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5062 5063 5064 5065#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \ 5066 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) 5067 5068#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \ 5069 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) 5070#if !defined(_WIN32) 5071 5072#define ID3D12Resource_GetDesc(This) \ 5073 ( (This)->lpVtbl -> GetDesc(This) ) 5074#else 5075#define ID3D12Resource_GetDesc(This,RetVal) \ 5076 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 5077#endif 5078 5079#define ID3D12Resource_GetGPUVirtualAddress(This) \ 5080 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) 5081 5082#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ 5083 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) 5084 5085#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ 5086 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) 5087 5088#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ 5089 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) 5090 5091#endif /* COBJMACROS */ 5092 5093 5094#endif /* C style interface */ 5095 5096 5097 5098 5099#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ 5100 5101 5102#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ 5103#define __ID3D12CommandAllocator_INTERFACE_DEFINED__ 5104 5105/* interface ID3D12CommandAllocator */ 5106/* [unique][local][object][uuid] */ 5107 5108 5109EXTERN_C const IID IID_ID3D12CommandAllocator; 5110 5111#if defined(__cplusplus) && !defined(CINTERFACE) 5112 5113 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") 5114 ID3D12CommandAllocator : public ID3D12Pageable 5115 { 5116 public: 5117 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; 5118 5119 }; 5120 5121 5122#else /* C style interface */ 5123 5124 typedef struct ID3D12CommandAllocatorVtbl 5125 { 5126 BEGIN_INTERFACE 5127 5128 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5129 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5130 ID3D12CommandAllocator * This, 5131 REFIID riid, 5132 _COM_Outptr_ void **ppvObject); 5133 5134 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5135 ULONG ( STDMETHODCALLTYPE *AddRef )( 5136 ID3D12CommandAllocator * This); 5137 5138 DECLSPEC_XFGVIRT(IUnknown, Release) 5139 ULONG ( STDMETHODCALLTYPE *Release )( 5140 ID3D12CommandAllocator * This); 5141 5142 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5143 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5144 ID3D12CommandAllocator * This, 5145 _In_ REFGUID guid, 5146 _Inout_ UINT *pDataSize, 5147 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5148 5149 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5150 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5151 ID3D12CommandAllocator * This, 5152 _In_ REFGUID guid, 5153 _In_ UINT DataSize, 5154 _In_reads_bytes_opt_( DataSize ) const void *pData); 5155 5156 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5157 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5158 ID3D12CommandAllocator * This, 5159 _In_ REFGUID guid, 5160 _In_opt_ const IUnknown *pData); 5161 5162 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5163 HRESULT ( STDMETHODCALLTYPE *SetName )( 5164 ID3D12CommandAllocator * This, 5165 _In_z_ LPCWSTR Name); 5166 5167 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5168 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5169 ID3D12CommandAllocator * This, 5170 REFIID riid, 5171 _COM_Outptr_opt_ void **ppvDevice); 5172 5173 DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset) 5174 HRESULT ( STDMETHODCALLTYPE *Reset )( 5175 ID3D12CommandAllocator * This); 5176 5177 END_INTERFACE 5178 } ID3D12CommandAllocatorVtbl; 5179 5180 interface ID3D12CommandAllocator 5181 { 5182 CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl; 5183 }; 5184 5185 5186 5187#ifdef COBJMACROS 5188 5189 5190#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \ 5191 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5192 5193#define ID3D12CommandAllocator_AddRef(This) \ 5194 ( (This)->lpVtbl -> AddRef(This) ) 5195 5196#define ID3D12CommandAllocator_Release(This) \ 5197 ( (This)->lpVtbl -> Release(This) ) 5198 5199 5200#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \ 5201 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5202 5203#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \ 5204 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5205 5206#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \ 5207 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5208 5209#define ID3D12CommandAllocator_SetName(This,Name) \ 5210 ( (This)->lpVtbl -> SetName(This,Name) ) 5211 5212 5213#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \ 5214 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5215 5216 5217 5218#define ID3D12CommandAllocator_Reset(This) \ 5219 ( (This)->lpVtbl -> Reset(This) ) 5220 5221#endif /* COBJMACROS */ 5222 5223 5224#endif /* C style interface */ 5225 5226 5227 5228 5229#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ 5230 5231 5232#ifndef __ID3D12Fence_INTERFACE_DEFINED__ 5233#define __ID3D12Fence_INTERFACE_DEFINED__ 5234 5235/* interface ID3D12Fence */ 5236/* [unique][local][object][uuid] */ 5237 5238 5239EXTERN_C const IID IID_ID3D12Fence; 5240 5241#if defined(__cplusplus) && !defined(CINTERFACE) 5242 5243 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") 5244 ID3D12Fence : public ID3D12Pageable 5245 { 5246 public: 5247 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; 5248 5249 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( 5250 UINT64 Value, 5251 HANDLE hEvent) = 0; 5252 5253 virtual HRESULT STDMETHODCALLTYPE Signal( 5254 UINT64 Value) = 0; 5255 5256 }; 5257 5258 5259#else /* C style interface */ 5260 5261 typedef struct ID3D12FenceVtbl 5262 { 5263 BEGIN_INTERFACE 5264 5265 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5266 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5267 ID3D12Fence * This, 5268 REFIID riid, 5269 _COM_Outptr_ void **ppvObject); 5270 5271 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5272 ULONG ( STDMETHODCALLTYPE *AddRef )( 5273 ID3D12Fence * This); 5274 5275 DECLSPEC_XFGVIRT(IUnknown, Release) 5276 ULONG ( STDMETHODCALLTYPE *Release )( 5277 ID3D12Fence * This); 5278 5279 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5280 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5281 ID3D12Fence * This, 5282 _In_ REFGUID guid, 5283 _Inout_ UINT *pDataSize, 5284 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5285 5286 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5287 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5288 ID3D12Fence * This, 5289 _In_ REFGUID guid, 5290 _In_ UINT DataSize, 5291 _In_reads_bytes_opt_( DataSize ) const void *pData); 5292 5293 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5294 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5295 ID3D12Fence * This, 5296 _In_ REFGUID guid, 5297 _In_opt_ const IUnknown *pData); 5298 5299 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5300 HRESULT ( STDMETHODCALLTYPE *SetName )( 5301 ID3D12Fence * This, 5302 _In_z_ LPCWSTR Name); 5303 5304 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5305 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5306 ID3D12Fence * This, 5307 REFIID riid, 5308 _COM_Outptr_opt_ void **ppvDevice); 5309 5310 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) 5311 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( 5312 ID3D12Fence * This); 5313 5314 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) 5315 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( 5316 ID3D12Fence * This, 5317 UINT64 Value, 5318 HANDLE hEvent); 5319 5320 DECLSPEC_XFGVIRT(ID3D12Fence, Signal) 5321 HRESULT ( STDMETHODCALLTYPE *Signal )( 5322 ID3D12Fence * This, 5323 UINT64 Value); 5324 5325 END_INTERFACE 5326 } ID3D12FenceVtbl; 5327 5328 interface ID3D12Fence 5329 { 5330 CONST_VTBL struct ID3D12FenceVtbl *lpVtbl; 5331 }; 5332 5333 5334 5335#ifdef COBJMACROS 5336 5337 5338#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \ 5339 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5340 5341#define ID3D12Fence_AddRef(This) \ 5342 ( (This)->lpVtbl -> AddRef(This) ) 5343 5344#define ID3D12Fence_Release(This) \ 5345 ( (This)->lpVtbl -> Release(This) ) 5346 5347 5348#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \ 5349 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5350 5351#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \ 5352 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5353 5354#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \ 5355 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5356 5357#define ID3D12Fence_SetName(This,Name) \ 5358 ( (This)->lpVtbl -> SetName(This,Name) ) 5359 5360 5361#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \ 5362 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5363 5364 5365 5366#define ID3D12Fence_GetCompletedValue(This) \ 5367 ( (This)->lpVtbl -> GetCompletedValue(This) ) 5368 5369#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \ 5370 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) 5371 5372#define ID3D12Fence_Signal(This,Value) \ 5373 ( (This)->lpVtbl -> Signal(This,Value) ) 5374 5375#endif /* COBJMACROS */ 5376 5377 5378#endif /* C style interface */ 5379 5380 5381 5382 5383#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ 5384 5385 5386#ifndef __ID3D12Fence1_INTERFACE_DEFINED__ 5387#define __ID3D12Fence1_INTERFACE_DEFINED__ 5388 5389/* interface ID3D12Fence1 */ 5390/* [unique][local][object][uuid] */ 5391 5392 5393EXTERN_C const IID IID_ID3D12Fence1; 5394 5395#if defined(__cplusplus) && !defined(CINTERFACE) 5396 5397 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a") 5398 ID3D12Fence1 : public ID3D12Fence 5399 { 5400 public: 5401 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0; 5402 5403 }; 5404 5405 5406#else /* C style interface */ 5407 5408 typedef struct ID3D12Fence1Vtbl 5409 { 5410 BEGIN_INTERFACE 5411 5412 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5413 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5414 ID3D12Fence1 * This, 5415 REFIID riid, 5416 _COM_Outptr_ void **ppvObject); 5417 5418 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5419 ULONG ( STDMETHODCALLTYPE *AddRef )( 5420 ID3D12Fence1 * This); 5421 5422 DECLSPEC_XFGVIRT(IUnknown, Release) 5423 ULONG ( STDMETHODCALLTYPE *Release )( 5424 ID3D12Fence1 * This); 5425 5426 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5427 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5428 ID3D12Fence1 * This, 5429 _In_ REFGUID guid, 5430 _Inout_ UINT *pDataSize, 5431 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5432 5433 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5434 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5435 ID3D12Fence1 * This, 5436 _In_ REFGUID guid, 5437 _In_ UINT DataSize, 5438 _In_reads_bytes_opt_( DataSize ) const void *pData); 5439 5440 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5441 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5442 ID3D12Fence1 * This, 5443 _In_ REFGUID guid, 5444 _In_opt_ const IUnknown *pData); 5445 5446 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5447 HRESULT ( STDMETHODCALLTYPE *SetName )( 5448 ID3D12Fence1 * This, 5449 _In_z_ LPCWSTR Name); 5450 5451 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5452 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5453 ID3D12Fence1 * This, 5454 REFIID riid, 5455 _COM_Outptr_opt_ void **ppvDevice); 5456 5457 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) 5458 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( 5459 ID3D12Fence1 * This); 5460 5461 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) 5462 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( 5463 ID3D12Fence1 * This, 5464 UINT64 Value, 5465 HANDLE hEvent); 5466 5467 DECLSPEC_XFGVIRT(ID3D12Fence, Signal) 5468 HRESULT ( STDMETHODCALLTYPE *Signal )( 5469 ID3D12Fence1 * This, 5470 UINT64 Value); 5471 5472 DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags) 5473 D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )( 5474 ID3D12Fence1 * This); 5475 5476 END_INTERFACE 5477 } ID3D12Fence1Vtbl; 5478 5479 interface ID3D12Fence1 5480 { 5481 CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl; 5482 }; 5483 5484 5485 5486#ifdef COBJMACROS 5487 5488 5489#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \ 5490 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5491 5492#define ID3D12Fence1_AddRef(This) \ 5493 ( (This)->lpVtbl -> AddRef(This) ) 5494 5495#define ID3D12Fence1_Release(This) \ 5496 ( (This)->lpVtbl -> Release(This) ) 5497 5498 5499#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \ 5500 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5501 5502#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \ 5503 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5504 5505#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \ 5506 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5507 5508#define ID3D12Fence1_SetName(This,Name) \ 5509 ( (This)->lpVtbl -> SetName(This,Name) ) 5510 5511 5512#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \ 5513 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5514 5515 5516 5517#define ID3D12Fence1_GetCompletedValue(This) \ 5518 ( (This)->lpVtbl -> GetCompletedValue(This) ) 5519 5520#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \ 5521 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) 5522 5523#define ID3D12Fence1_Signal(This,Value) \ 5524 ( (This)->lpVtbl -> Signal(This,Value) ) 5525 5526 5527#define ID3D12Fence1_GetCreationFlags(This) \ 5528 ( (This)->lpVtbl -> GetCreationFlags(This) ) 5529 5530#endif /* COBJMACROS */ 5531 5532 5533#endif /* C style interface */ 5534 5535 5536 5537 5538#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */ 5539 5540 5541#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ 5542#define __ID3D12PipelineState_INTERFACE_DEFINED__ 5543 5544/* interface ID3D12PipelineState */ 5545/* [unique][local][object][uuid] */ 5546 5547 5548EXTERN_C const IID IID_ID3D12PipelineState; 5549 5550#if defined(__cplusplus) && !defined(CINTERFACE) 5551 5552 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") 5553 ID3D12PipelineState : public ID3D12Pageable 5554 { 5555 public: 5556 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( 5557 _COM_Outptr_ ID3DBlob **ppBlob) = 0; 5558 5559 }; 5560 5561 5562#else /* C style interface */ 5563 5564 typedef struct ID3D12PipelineStateVtbl 5565 { 5566 BEGIN_INTERFACE 5567 5568 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5569 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5570 ID3D12PipelineState * This, 5571 REFIID riid, 5572 _COM_Outptr_ void **ppvObject); 5573 5574 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5575 ULONG ( STDMETHODCALLTYPE *AddRef )( 5576 ID3D12PipelineState * This); 5577 5578 DECLSPEC_XFGVIRT(IUnknown, Release) 5579 ULONG ( STDMETHODCALLTYPE *Release )( 5580 ID3D12PipelineState * This); 5581 5582 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5583 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5584 ID3D12PipelineState * This, 5585 _In_ REFGUID guid, 5586 _Inout_ UINT *pDataSize, 5587 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5588 5589 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5590 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5591 ID3D12PipelineState * This, 5592 _In_ REFGUID guid, 5593 _In_ UINT DataSize, 5594 _In_reads_bytes_opt_( DataSize ) const void *pData); 5595 5596 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5597 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5598 ID3D12PipelineState * This, 5599 _In_ REFGUID guid, 5600 _In_opt_ const IUnknown *pData); 5601 5602 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5603 HRESULT ( STDMETHODCALLTYPE *SetName )( 5604 ID3D12PipelineState * This, 5605 _In_z_ LPCWSTR Name); 5606 5607 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5608 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5609 ID3D12PipelineState * This, 5610 REFIID riid, 5611 _COM_Outptr_opt_ void **ppvDevice); 5612 5613 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) 5614 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( 5615 ID3D12PipelineState * This, 5616 _COM_Outptr_ ID3DBlob **ppBlob); 5617 5618 END_INTERFACE 5619 } ID3D12PipelineStateVtbl; 5620 5621 interface ID3D12PipelineState 5622 { 5623 CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl; 5624 }; 5625 5626 5627 5628#ifdef COBJMACROS 5629 5630 5631#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \ 5632 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5633 5634#define ID3D12PipelineState_AddRef(This) \ 5635 ( (This)->lpVtbl -> AddRef(This) ) 5636 5637#define ID3D12PipelineState_Release(This) \ 5638 ( (This)->lpVtbl -> Release(This) ) 5639 5640 5641#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \ 5642 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5643 5644#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \ 5645 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5646 5647#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \ 5648 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5649 5650#define ID3D12PipelineState_SetName(This,Name) \ 5651 ( (This)->lpVtbl -> SetName(This,Name) ) 5652 5653 5654#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \ 5655 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5656 5657 5658 5659#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \ 5660 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) 5661 5662#endif /* COBJMACROS */ 5663 5664 5665#endif /* C style interface */ 5666 5667 5668 5669 5670#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ 5671 5672 5673#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ 5674#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ 5675 5676/* interface ID3D12DescriptorHeap */ 5677/* [unique][local][object][uuid] */ 5678 5679 5680EXTERN_C const IID IID_ID3D12DescriptorHeap; 5681 5682#if defined(__cplusplus) && !defined(CINTERFACE) 5683 5684 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") 5685 ID3D12DescriptorHeap : public ID3D12Pageable 5686 { 5687 public: 5688#if defined(_MSC_VER) || !defined(_WIN32) 5689 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 5690#else 5691 virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc( 5692 D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0; 5693#endif 5694 5695#if defined(_MSC_VER) || !defined(_WIN32) 5696 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0; 5697#else 5698 virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( 5699 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0; 5700#endif 5701 5702#if defined(_MSC_VER) || !defined(_WIN32) 5703 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0; 5704#else 5705 virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( 5706 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0; 5707#endif 5708 5709 }; 5710 5711 5712#else /* C style interface */ 5713 5714 typedef struct ID3D12DescriptorHeapVtbl 5715 { 5716 BEGIN_INTERFACE 5717 5718 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5719 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5720 ID3D12DescriptorHeap * This, 5721 REFIID riid, 5722 _COM_Outptr_ void **ppvObject); 5723 5724 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5725 ULONG ( STDMETHODCALLTYPE *AddRef )( 5726 ID3D12DescriptorHeap * This); 5727 5728 DECLSPEC_XFGVIRT(IUnknown, Release) 5729 ULONG ( STDMETHODCALLTYPE *Release )( 5730 ID3D12DescriptorHeap * This); 5731 5732 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5733 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5734 ID3D12DescriptorHeap * This, 5735 _In_ REFGUID guid, 5736 _Inout_ UINT *pDataSize, 5737 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5738 5739 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5740 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5741 ID3D12DescriptorHeap * This, 5742 _In_ REFGUID guid, 5743 _In_ UINT DataSize, 5744 _In_reads_bytes_opt_( DataSize ) const void *pData); 5745 5746 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5747 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5748 ID3D12DescriptorHeap * This, 5749 _In_ REFGUID guid, 5750 _In_opt_ const IUnknown *pData); 5751 5752 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5753 HRESULT ( STDMETHODCALLTYPE *SetName )( 5754 ID3D12DescriptorHeap * This, 5755 _In_z_ LPCWSTR Name); 5756 5757 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5758 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5759 ID3D12DescriptorHeap * This, 5760 REFIID riid, 5761 _COM_Outptr_opt_ void **ppvDevice); 5762 5763 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc) 5764#if !defined(_WIN32) 5765 D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( 5766 ID3D12DescriptorHeap * This); 5767 5768#else 5769 D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( 5770 ID3D12DescriptorHeap * This, 5771 D3D12_DESCRIPTOR_HEAP_DESC * RetVal); 5772 5773#endif 5774 5775 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart) 5776#if !defined(_WIN32) 5777 D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( 5778 ID3D12DescriptorHeap * This); 5779 5780#else 5781 D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( 5782 ID3D12DescriptorHeap * This, 5783 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal); 5784 5785#endif 5786 5787 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart) 5788#if !defined(_WIN32) 5789 D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( 5790 ID3D12DescriptorHeap * This); 5791 5792#else 5793 D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( 5794 ID3D12DescriptorHeap * This, 5795 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal); 5796 5797#endif 5798 5799 END_INTERFACE 5800 } ID3D12DescriptorHeapVtbl; 5801 5802 interface ID3D12DescriptorHeap 5803 { 5804 CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl; 5805 }; 5806 5807 5808 5809#ifdef COBJMACROS 5810 5811 5812#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \ 5813 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5814 5815#define ID3D12DescriptorHeap_AddRef(This) \ 5816 ( (This)->lpVtbl -> AddRef(This) ) 5817 5818#define ID3D12DescriptorHeap_Release(This) \ 5819 ( (This)->lpVtbl -> Release(This) ) 5820 5821 5822#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \ 5823 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5824 5825#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \ 5826 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5827 5828#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \ 5829 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5830 5831#define ID3D12DescriptorHeap_SetName(This,Name) \ 5832 ( (This)->lpVtbl -> SetName(This,Name) ) 5833 5834 5835#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \ 5836 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5837 5838 5839#if !defined(_WIN32) 5840 5841#define ID3D12DescriptorHeap_GetDesc(This) \ 5842 ( (This)->lpVtbl -> GetDesc(This) ) 5843#else 5844#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \ 5845 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 5846#endif 5847#if !defined(_WIN32) 5848 5849#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \ 5850 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) ) 5851#else 5852#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \ 5853 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) ) 5854#endif 5855#if !defined(_WIN32) 5856 5857#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \ 5858 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) ) 5859#else 5860#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \ 5861 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) ) 5862#endif 5863 5864#endif /* COBJMACROS */ 5865 5866 5867#endif /* C style interface */ 5868 5869 5870 5871 5872#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ 5873 5874 5875#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ 5876#define __ID3D12QueryHeap_INTERFACE_DEFINED__ 5877 5878/* interface ID3D12QueryHeap */ 5879/* [unique][local][object][uuid] */ 5880 5881 5882EXTERN_C const IID IID_ID3D12QueryHeap; 5883 5884#if defined(__cplusplus) && !defined(CINTERFACE) 5885 5886 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") 5887 ID3D12QueryHeap : public ID3D12Pageable 5888 { 5889 public: 5890 }; 5891 5892 5893#else /* C style interface */ 5894 5895 typedef struct ID3D12QueryHeapVtbl 5896 { 5897 BEGIN_INTERFACE 5898 5899 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 5900 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 5901 ID3D12QueryHeap * This, 5902 REFIID riid, 5903 _COM_Outptr_ void **ppvObject); 5904 5905 DECLSPEC_XFGVIRT(IUnknown, AddRef) 5906 ULONG ( STDMETHODCALLTYPE *AddRef )( 5907 ID3D12QueryHeap * This); 5908 5909 DECLSPEC_XFGVIRT(IUnknown, Release) 5910 ULONG ( STDMETHODCALLTYPE *Release )( 5911 ID3D12QueryHeap * This); 5912 5913 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 5914 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 5915 ID3D12QueryHeap * This, 5916 _In_ REFGUID guid, 5917 _Inout_ UINT *pDataSize, 5918 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 5919 5920 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 5921 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 5922 ID3D12QueryHeap * This, 5923 _In_ REFGUID guid, 5924 _In_ UINT DataSize, 5925 _In_reads_bytes_opt_( DataSize ) const void *pData); 5926 5927 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 5928 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 5929 ID3D12QueryHeap * This, 5930 _In_ REFGUID guid, 5931 _In_opt_ const IUnknown *pData); 5932 5933 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 5934 HRESULT ( STDMETHODCALLTYPE *SetName )( 5935 ID3D12QueryHeap * This, 5936 _In_z_ LPCWSTR Name); 5937 5938 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 5939 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 5940 ID3D12QueryHeap * This, 5941 REFIID riid, 5942 _COM_Outptr_opt_ void **ppvDevice); 5943 5944 END_INTERFACE 5945 } ID3D12QueryHeapVtbl; 5946 5947 interface ID3D12QueryHeap 5948 { 5949 CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl; 5950 }; 5951 5952 5953 5954#ifdef COBJMACROS 5955 5956 5957#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \ 5958 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 5959 5960#define ID3D12QueryHeap_AddRef(This) \ 5961 ( (This)->lpVtbl -> AddRef(This) ) 5962 5963#define ID3D12QueryHeap_Release(This) \ 5964 ( (This)->lpVtbl -> Release(This) ) 5965 5966 5967#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \ 5968 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 5969 5970#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \ 5971 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 5972 5973#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \ 5974 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 5975 5976#define ID3D12QueryHeap_SetName(This,Name) \ 5977 ( (This)->lpVtbl -> SetName(This,Name) ) 5978 5979 5980#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \ 5981 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 5982 5983 5984 5985#endif /* COBJMACROS */ 5986 5987 5988#endif /* C style interface */ 5989 5990 5991 5992 5993#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ 5994 5995 5996#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ 5997#define __ID3D12CommandSignature_INTERFACE_DEFINED__ 5998 5999/* interface ID3D12CommandSignature */ 6000/* [unique][local][object][uuid] */ 6001 6002 6003EXTERN_C const IID IID_ID3D12CommandSignature; 6004 6005#if defined(__cplusplus) && !defined(CINTERFACE) 6006 6007 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") 6008 ID3D12CommandSignature : public ID3D12Pageable 6009 { 6010 public: 6011 }; 6012 6013 6014#else /* C style interface */ 6015 6016 typedef struct ID3D12CommandSignatureVtbl 6017 { 6018 BEGIN_INTERFACE 6019 6020 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 6021 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 6022 ID3D12CommandSignature * This, 6023 REFIID riid, 6024 _COM_Outptr_ void **ppvObject); 6025 6026 DECLSPEC_XFGVIRT(IUnknown, AddRef) 6027 ULONG ( STDMETHODCALLTYPE *AddRef )( 6028 ID3D12CommandSignature * This); 6029 6030 DECLSPEC_XFGVIRT(IUnknown, Release) 6031 ULONG ( STDMETHODCALLTYPE *Release )( 6032 ID3D12CommandSignature * This); 6033 6034 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 6035 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 6036 ID3D12CommandSignature * This, 6037 _In_ REFGUID guid, 6038 _Inout_ UINT *pDataSize, 6039 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 6040 6041 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 6042 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 6043 ID3D12CommandSignature * This, 6044 _In_ REFGUID guid, 6045 _In_ UINT DataSize, 6046 _In_reads_bytes_opt_( DataSize ) const void *pData); 6047 6048 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 6049 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 6050 ID3D12CommandSignature * This, 6051 _In_ REFGUID guid, 6052 _In_opt_ const IUnknown *pData); 6053 6054 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 6055 HRESULT ( STDMETHODCALLTYPE *SetName )( 6056 ID3D12CommandSignature * This, 6057 _In_z_ LPCWSTR Name); 6058 6059 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 6060 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 6061 ID3D12CommandSignature * This, 6062 REFIID riid, 6063 _COM_Outptr_opt_ void **ppvDevice); 6064 6065 END_INTERFACE 6066 } ID3D12CommandSignatureVtbl; 6067 6068 interface ID3D12CommandSignature 6069 { 6070 CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl; 6071 }; 6072 6073 6074 6075#ifdef COBJMACROS 6076 6077 6078#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \ 6079 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 6080 6081#define ID3D12CommandSignature_AddRef(This) \ 6082 ( (This)->lpVtbl -> AddRef(This) ) 6083 6084#define ID3D12CommandSignature_Release(This) \ 6085 ( (This)->lpVtbl -> Release(This) ) 6086 6087 6088#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \ 6089 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 6090 6091#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \ 6092 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 6093 6094#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \ 6095 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 6096 6097#define ID3D12CommandSignature_SetName(This,Name) \ 6098 ( (This)->lpVtbl -> SetName(This,Name) ) 6099 6100 6101#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \ 6102 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 6103 6104 6105 6106#endif /* COBJMACROS */ 6107 6108 6109#endif /* C style interface */ 6110 6111 6112 6113 6114#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ 6115 6116 6117#ifndef __ID3D12CommandList_INTERFACE_DEFINED__ 6118#define __ID3D12CommandList_INTERFACE_DEFINED__ 6119 6120/* interface ID3D12CommandList */ 6121/* [unique][local][object][uuid] */ 6122 6123 6124EXTERN_C const IID IID_ID3D12CommandList; 6125 6126#if defined(__cplusplus) && !defined(CINTERFACE) 6127 6128 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") 6129 ID3D12CommandList : public ID3D12DeviceChild 6130 { 6131 public: 6132 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0; 6133 6134 }; 6135 6136 6137#else /* C style interface */ 6138 6139 typedef struct ID3D12CommandListVtbl 6140 { 6141 BEGIN_INTERFACE 6142 6143 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 6144 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 6145 ID3D12CommandList * This, 6146 REFIID riid, 6147 _COM_Outptr_ void **ppvObject); 6148 6149 DECLSPEC_XFGVIRT(IUnknown, AddRef) 6150 ULONG ( STDMETHODCALLTYPE *AddRef )( 6151 ID3D12CommandList * This); 6152 6153 DECLSPEC_XFGVIRT(IUnknown, Release) 6154 ULONG ( STDMETHODCALLTYPE *Release )( 6155 ID3D12CommandList * This); 6156 6157 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 6158 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 6159 ID3D12CommandList * This, 6160 _In_ REFGUID guid, 6161 _Inout_ UINT *pDataSize, 6162 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 6163 6164 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 6165 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 6166 ID3D12CommandList * This, 6167 _In_ REFGUID guid, 6168 _In_ UINT DataSize, 6169 _In_reads_bytes_opt_( DataSize ) const void *pData); 6170 6171 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 6172 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 6173 ID3D12CommandList * This, 6174 _In_ REFGUID guid, 6175 _In_opt_ const IUnknown *pData); 6176 6177 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 6178 HRESULT ( STDMETHODCALLTYPE *SetName )( 6179 ID3D12CommandList * This, 6180 _In_z_ LPCWSTR Name); 6181 6182 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 6183 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 6184 ID3D12CommandList * This, 6185 REFIID riid, 6186 _COM_Outptr_opt_ void **ppvDevice); 6187 6188 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 6189 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 6190 ID3D12CommandList * This); 6191 6192 END_INTERFACE 6193 } ID3D12CommandListVtbl; 6194 6195 interface ID3D12CommandList 6196 { 6197 CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl; 6198 }; 6199 6200 6201 6202#ifdef COBJMACROS 6203 6204 6205#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \ 6206 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 6207 6208#define ID3D12CommandList_AddRef(This) \ 6209 ( (This)->lpVtbl -> AddRef(This) ) 6210 6211#define ID3D12CommandList_Release(This) \ 6212 ( (This)->lpVtbl -> Release(This) ) 6213 6214 6215#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \ 6216 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 6217 6218#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \ 6219 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 6220 6221#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \ 6222 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 6223 6224#define ID3D12CommandList_SetName(This,Name) \ 6225 ( (This)->lpVtbl -> SetName(This,Name) ) 6226 6227 6228#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \ 6229 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 6230 6231 6232#define ID3D12CommandList_GetType(This) \ 6233 ( (This)->lpVtbl -> GetType(This) ) 6234 6235#endif /* COBJMACROS */ 6236 6237 6238#endif /* C style interface */ 6239 6240 6241 6242 6243#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ 6244 6245 6246#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ 6247#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ 6248 6249/* interface ID3D12GraphicsCommandList */ 6250/* [unique][local][object][uuid] */ 6251 6252 6253EXTERN_C const IID IID_ID3D12GraphicsCommandList; 6254 6255#if defined(__cplusplus) && !defined(CINTERFACE) 6256 6257 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") 6258 ID3D12GraphicsCommandList : public ID3D12CommandList 6259 { 6260 public: 6261 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; 6262 6263 virtual HRESULT STDMETHODCALLTYPE Reset( 6264 _In_ ID3D12CommandAllocator *pAllocator, 6265 _In_opt_ ID3D12PipelineState *pInitialState) = 0; 6266 6267 virtual void STDMETHODCALLTYPE ClearState( 6268 _In_opt_ ID3D12PipelineState *pPipelineState) = 0; 6269 6270 virtual void STDMETHODCALLTYPE DrawInstanced( 6271 _In_ UINT VertexCountPerInstance, 6272 _In_ UINT InstanceCount, 6273 _In_ UINT StartVertexLocation, 6274 _In_ UINT StartInstanceLocation) = 0; 6275 6276 virtual void STDMETHODCALLTYPE DrawIndexedInstanced( 6277 _In_ UINT IndexCountPerInstance, 6278 _In_ UINT InstanceCount, 6279 _In_ UINT StartIndexLocation, 6280 _In_ INT BaseVertexLocation, 6281 _In_ UINT StartInstanceLocation) = 0; 6282 6283 virtual void STDMETHODCALLTYPE Dispatch( 6284 _In_ UINT ThreadGroupCountX, 6285 _In_ UINT ThreadGroupCountY, 6286 _In_ UINT ThreadGroupCountZ) = 0; 6287 6288 virtual void STDMETHODCALLTYPE CopyBufferRegion( 6289 _In_ ID3D12Resource *pDstBuffer, 6290 UINT64 DstOffset, 6291 _In_ ID3D12Resource *pSrcBuffer, 6292 UINT64 SrcOffset, 6293 UINT64 NumBytes) = 0; 6294 6295 virtual void STDMETHODCALLTYPE CopyTextureRegion( 6296 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 6297 UINT DstX, 6298 UINT DstY, 6299 UINT DstZ, 6300 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 6301 _In_opt_ const D3D12_BOX *pSrcBox) = 0; 6302 6303 virtual void STDMETHODCALLTYPE CopyResource( 6304 _In_ ID3D12Resource *pDstResource, 6305 _In_ ID3D12Resource *pSrcResource) = 0; 6306 6307 virtual void STDMETHODCALLTYPE CopyTiles( 6308 _In_ ID3D12Resource *pTiledResource, 6309 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 6310 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 6311 _In_ ID3D12Resource *pBuffer, 6312 UINT64 BufferStartOffsetInBytes, 6313 D3D12_TILE_COPY_FLAGS Flags) = 0; 6314 6315 virtual void STDMETHODCALLTYPE ResolveSubresource( 6316 _In_ ID3D12Resource *pDstResource, 6317 _In_ UINT DstSubresource, 6318 _In_ ID3D12Resource *pSrcResource, 6319 _In_ UINT SrcSubresource, 6320 _In_ DXGI_FORMAT Format) = 0; 6321 6322 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( 6323 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; 6324 6325 virtual void STDMETHODCALLTYPE RSSetViewports( 6326 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 6327 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0; 6328 6329 virtual void STDMETHODCALLTYPE RSSetScissorRects( 6330 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 6331 _In_reads_( NumRects) const D3D12_RECT *pRects) = 0; 6332 6333 virtual void STDMETHODCALLTYPE OMSetBlendFactor( 6334 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0; 6335 6336 virtual void STDMETHODCALLTYPE OMSetStencilRef( 6337 _In_ UINT StencilRef) = 0; 6338 6339 virtual void STDMETHODCALLTYPE SetPipelineState( 6340 _In_ ID3D12PipelineState *pPipelineState) = 0; 6341 6342 virtual void STDMETHODCALLTYPE ResourceBarrier( 6343 _In_ UINT NumBarriers, 6344 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; 6345 6346 virtual void STDMETHODCALLTYPE ExecuteBundle( 6347 _In_ ID3D12GraphicsCommandList *pCommandList) = 0; 6348 6349 virtual void STDMETHODCALLTYPE SetDescriptorHeaps( 6350 _In_ UINT NumDescriptorHeaps, 6351 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0; 6352 6353 virtual void STDMETHODCALLTYPE SetComputeRootSignature( 6354 _In_opt_ ID3D12RootSignature *pRootSignature) = 0; 6355 6356 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( 6357 _In_opt_ ID3D12RootSignature *pRootSignature) = 0; 6358 6359 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( 6360 _In_ UINT RootParameterIndex, 6361 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; 6362 6363 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( 6364 _In_ UINT RootParameterIndex, 6365 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; 6366 6367 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( 6368 _In_ UINT RootParameterIndex, 6369 _In_ UINT SrcData, 6370 _In_ UINT DestOffsetIn32BitValues) = 0; 6371 6372 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( 6373 _In_ UINT RootParameterIndex, 6374 _In_ UINT SrcData, 6375 _In_ UINT DestOffsetIn32BitValues) = 0; 6376 6377 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( 6378 _In_ UINT RootParameterIndex, 6379 _In_ UINT Num32BitValuesToSet, 6380 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 6381 _In_ UINT DestOffsetIn32BitValues) = 0; 6382 6383 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( 6384 _In_ UINT RootParameterIndex, 6385 _In_ UINT Num32BitValuesToSet, 6386 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 6387 _In_ UINT DestOffsetIn32BitValues) = 0; 6388 6389 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( 6390 _In_ UINT RootParameterIndex, 6391 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6392 6393 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( 6394 _In_ UINT RootParameterIndex, 6395 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6396 6397 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( 6398 _In_ UINT RootParameterIndex, 6399 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6400 6401 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( 6402 _In_ UINT RootParameterIndex, 6403 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6404 6405 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( 6406 _In_ UINT RootParameterIndex, 6407 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6408 6409 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( 6410 _In_ UINT RootParameterIndex, 6411 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; 6412 6413 virtual void STDMETHODCALLTYPE IASetIndexBuffer( 6414 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0; 6415 6416 virtual void STDMETHODCALLTYPE IASetVertexBuffers( 6417 _In_ UINT StartSlot, 6418 _In_ UINT NumViews, 6419 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; 6420 6421 virtual void STDMETHODCALLTYPE SOSetTargets( 6422 _In_ UINT StartSlot, 6423 _In_ UINT NumViews, 6424 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; 6425 6426 virtual void STDMETHODCALLTYPE OMSetRenderTargets( 6427 _In_ UINT NumRenderTargetDescriptors, 6428 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 6429 _In_ BOOL RTsSingleHandleToDescriptorRange, 6430 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; 6431 6432 virtual void STDMETHODCALLTYPE ClearDepthStencilView( 6433 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 6434 _In_ D3D12_CLEAR_FLAGS ClearFlags, 6435 _In_ FLOAT Depth, 6436 _In_ UINT8 Stencil, 6437 _In_ UINT NumRects, 6438 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; 6439 6440 virtual void STDMETHODCALLTYPE ClearRenderTargetView( 6441 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 6442 _In_ const FLOAT ColorRGBA[ 4 ], 6443 _In_ UINT NumRects, 6444 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; 6445 6446 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( 6447 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 6448 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 6449 _In_ ID3D12Resource *pResource, 6450 _In_ const UINT Values[ 4 ], 6451 _In_ UINT NumRects, 6452 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; 6453 6454 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( 6455 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 6456 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 6457 _In_ ID3D12Resource *pResource, 6458 _In_ const FLOAT Values[ 4 ], 6459 _In_ UINT NumRects, 6460 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; 6461 6462 virtual void STDMETHODCALLTYPE DiscardResource( 6463 _In_ ID3D12Resource *pResource, 6464 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; 6465 6466 virtual void STDMETHODCALLTYPE BeginQuery( 6467 _In_ ID3D12QueryHeap *pQueryHeap, 6468 _In_ D3D12_QUERY_TYPE Type, 6469 _In_ UINT Index) = 0; 6470 6471 virtual void STDMETHODCALLTYPE EndQuery( 6472 _In_ ID3D12QueryHeap *pQueryHeap, 6473 _In_ D3D12_QUERY_TYPE Type, 6474 _In_ UINT Index) = 0; 6475 6476 virtual void STDMETHODCALLTYPE ResolveQueryData( 6477 _In_ ID3D12QueryHeap *pQueryHeap, 6478 _In_ D3D12_QUERY_TYPE Type, 6479 _In_ UINT StartIndex, 6480 _In_ UINT NumQueries, 6481 _In_ ID3D12Resource *pDestinationBuffer, 6482 _In_ UINT64 AlignedDestinationBufferOffset) = 0; 6483 6484 virtual void STDMETHODCALLTYPE SetPredication( 6485 _In_opt_ ID3D12Resource *pBuffer, 6486 _In_ UINT64 AlignedBufferOffset, 6487 _In_ D3D12_PREDICATION_OP Operation) = 0; 6488 6489 virtual void STDMETHODCALLTYPE SetMarker( 6490 UINT Metadata, 6491 _In_reads_bytes_opt_(Size) const void *pData, 6492 UINT Size) = 0; 6493 6494 virtual void STDMETHODCALLTYPE BeginEvent( 6495 UINT Metadata, 6496 _In_reads_bytes_opt_(Size) const void *pData, 6497 UINT Size) = 0; 6498 6499 virtual void STDMETHODCALLTYPE EndEvent( void) = 0; 6500 6501 virtual void STDMETHODCALLTYPE ExecuteIndirect( 6502 _In_ ID3D12CommandSignature *pCommandSignature, 6503 _In_ UINT MaxCommandCount, 6504 _In_ ID3D12Resource *pArgumentBuffer, 6505 _In_ UINT64 ArgumentBufferOffset, 6506 _In_opt_ ID3D12Resource *pCountBuffer, 6507 _In_ UINT64 CountBufferOffset) = 0; 6508 6509 }; 6510 6511 6512#else /* C style interface */ 6513 6514 typedef struct ID3D12GraphicsCommandListVtbl 6515 { 6516 BEGIN_INTERFACE 6517 6518 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 6519 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 6520 ID3D12GraphicsCommandList * This, 6521 REFIID riid, 6522 _COM_Outptr_ void **ppvObject); 6523 6524 DECLSPEC_XFGVIRT(IUnknown, AddRef) 6525 ULONG ( STDMETHODCALLTYPE *AddRef )( 6526 ID3D12GraphicsCommandList * This); 6527 6528 DECLSPEC_XFGVIRT(IUnknown, Release) 6529 ULONG ( STDMETHODCALLTYPE *Release )( 6530 ID3D12GraphicsCommandList * This); 6531 6532 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 6533 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 6534 ID3D12GraphicsCommandList * This, 6535 _In_ REFGUID guid, 6536 _Inout_ UINT *pDataSize, 6537 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 6538 6539 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 6540 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 6541 ID3D12GraphicsCommandList * This, 6542 _In_ REFGUID guid, 6543 _In_ UINT DataSize, 6544 _In_reads_bytes_opt_( DataSize ) const void *pData); 6545 6546 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 6547 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 6548 ID3D12GraphicsCommandList * This, 6549 _In_ REFGUID guid, 6550 _In_opt_ const IUnknown *pData); 6551 6552 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 6553 HRESULT ( STDMETHODCALLTYPE *SetName )( 6554 ID3D12GraphicsCommandList * This, 6555 _In_z_ LPCWSTR Name); 6556 6557 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 6558 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 6559 ID3D12GraphicsCommandList * This, 6560 REFIID riid, 6561 _COM_Outptr_opt_ void **ppvDevice); 6562 6563 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 6564 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 6565 ID3D12GraphicsCommandList * This); 6566 6567 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 6568 HRESULT ( STDMETHODCALLTYPE *Close )( 6569 ID3D12GraphicsCommandList * This); 6570 6571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 6572 HRESULT ( STDMETHODCALLTYPE *Reset )( 6573 ID3D12GraphicsCommandList * This, 6574 _In_ ID3D12CommandAllocator *pAllocator, 6575 _In_opt_ ID3D12PipelineState *pInitialState); 6576 6577 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 6578 void ( STDMETHODCALLTYPE *ClearState )( 6579 ID3D12GraphicsCommandList * This, 6580 _In_opt_ ID3D12PipelineState *pPipelineState); 6581 6582 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 6583 void ( STDMETHODCALLTYPE *DrawInstanced )( 6584 ID3D12GraphicsCommandList * This, 6585 _In_ UINT VertexCountPerInstance, 6586 _In_ UINT InstanceCount, 6587 _In_ UINT StartVertexLocation, 6588 _In_ UINT StartInstanceLocation); 6589 6590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 6591 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 6592 ID3D12GraphicsCommandList * This, 6593 _In_ UINT IndexCountPerInstance, 6594 _In_ UINT InstanceCount, 6595 _In_ UINT StartIndexLocation, 6596 _In_ INT BaseVertexLocation, 6597 _In_ UINT StartInstanceLocation); 6598 6599 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 6600 void ( STDMETHODCALLTYPE *Dispatch )( 6601 ID3D12GraphicsCommandList * This, 6602 _In_ UINT ThreadGroupCountX, 6603 _In_ UINT ThreadGroupCountY, 6604 _In_ UINT ThreadGroupCountZ); 6605 6606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 6607 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 6608 ID3D12GraphicsCommandList * This, 6609 _In_ ID3D12Resource *pDstBuffer, 6610 UINT64 DstOffset, 6611 _In_ ID3D12Resource *pSrcBuffer, 6612 UINT64 SrcOffset, 6613 UINT64 NumBytes); 6614 6615 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 6616 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 6617 ID3D12GraphicsCommandList * This, 6618 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 6619 UINT DstX, 6620 UINT DstY, 6621 UINT DstZ, 6622 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 6623 _In_opt_ const D3D12_BOX *pSrcBox); 6624 6625 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 6626 void ( STDMETHODCALLTYPE *CopyResource )( 6627 ID3D12GraphicsCommandList * This, 6628 _In_ ID3D12Resource *pDstResource, 6629 _In_ ID3D12Resource *pSrcResource); 6630 6631 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 6632 void ( STDMETHODCALLTYPE *CopyTiles )( 6633 ID3D12GraphicsCommandList * This, 6634 _In_ ID3D12Resource *pTiledResource, 6635 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 6636 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 6637 _In_ ID3D12Resource *pBuffer, 6638 UINT64 BufferStartOffsetInBytes, 6639 D3D12_TILE_COPY_FLAGS Flags); 6640 6641 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 6642 void ( STDMETHODCALLTYPE *ResolveSubresource )( 6643 ID3D12GraphicsCommandList * This, 6644 _In_ ID3D12Resource *pDstResource, 6645 _In_ UINT DstSubresource, 6646 _In_ ID3D12Resource *pSrcResource, 6647 _In_ UINT SrcSubresource, 6648 _In_ DXGI_FORMAT Format); 6649 6650 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 6651 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 6652 ID3D12GraphicsCommandList * This, 6653 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 6654 6655 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 6656 void ( STDMETHODCALLTYPE *RSSetViewports )( 6657 ID3D12GraphicsCommandList * This, 6658 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 6659 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 6660 6661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 6662 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 6663 ID3D12GraphicsCommandList * This, 6664 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 6665 _In_reads_( NumRects) const D3D12_RECT *pRects); 6666 6667 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 6668 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 6669 ID3D12GraphicsCommandList * This, 6670 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 6671 6672 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 6673 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 6674 ID3D12GraphicsCommandList * This, 6675 _In_ UINT StencilRef); 6676 6677 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 6678 void ( STDMETHODCALLTYPE *SetPipelineState )( 6679 ID3D12GraphicsCommandList * This, 6680 _In_ ID3D12PipelineState *pPipelineState); 6681 6682 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 6683 void ( STDMETHODCALLTYPE *ResourceBarrier )( 6684 ID3D12GraphicsCommandList * This, 6685 _In_ UINT NumBarriers, 6686 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 6687 6688 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 6689 void ( STDMETHODCALLTYPE *ExecuteBundle )( 6690 ID3D12GraphicsCommandList * This, 6691 _In_ ID3D12GraphicsCommandList *pCommandList); 6692 6693 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 6694 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 6695 ID3D12GraphicsCommandList * This, 6696 _In_ UINT NumDescriptorHeaps, 6697 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 6698 6699 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 6700 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 6701 ID3D12GraphicsCommandList * This, 6702 _In_opt_ ID3D12RootSignature *pRootSignature); 6703 6704 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 6705 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 6706 ID3D12GraphicsCommandList * This, 6707 _In_opt_ ID3D12RootSignature *pRootSignature); 6708 6709 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 6710 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 6711 ID3D12GraphicsCommandList * This, 6712 _In_ UINT RootParameterIndex, 6713 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 6714 6715 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 6716 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 6717 ID3D12GraphicsCommandList * This, 6718 _In_ UINT RootParameterIndex, 6719 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 6720 6721 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 6722 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 6723 ID3D12GraphicsCommandList * This, 6724 _In_ UINT RootParameterIndex, 6725 _In_ UINT SrcData, 6726 _In_ UINT DestOffsetIn32BitValues); 6727 6728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 6729 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 6730 ID3D12GraphicsCommandList * This, 6731 _In_ UINT RootParameterIndex, 6732 _In_ UINT SrcData, 6733 _In_ UINT DestOffsetIn32BitValues); 6734 6735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 6736 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 6737 ID3D12GraphicsCommandList * This, 6738 _In_ UINT RootParameterIndex, 6739 _In_ UINT Num32BitValuesToSet, 6740 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 6741 _In_ UINT DestOffsetIn32BitValues); 6742 6743 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 6744 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 6745 ID3D12GraphicsCommandList * This, 6746 _In_ UINT RootParameterIndex, 6747 _In_ UINT Num32BitValuesToSet, 6748 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 6749 _In_ UINT DestOffsetIn32BitValues); 6750 6751 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 6752 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 6753 ID3D12GraphicsCommandList * This, 6754 _In_ UINT RootParameterIndex, 6755 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6756 6757 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 6758 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 6759 ID3D12GraphicsCommandList * This, 6760 _In_ UINT RootParameterIndex, 6761 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6762 6763 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 6764 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 6765 ID3D12GraphicsCommandList * This, 6766 _In_ UINT RootParameterIndex, 6767 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6768 6769 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 6770 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 6771 ID3D12GraphicsCommandList * This, 6772 _In_ UINT RootParameterIndex, 6773 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6774 6775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 6776 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 6777 ID3D12GraphicsCommandList * This, 6778 _In_ UINT RootParameterIndex, 6779 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6780 6781 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 6782 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 6783 ID3D12GraphicsCommandList * This, 6784 _In_ UINT RootParameterIndex, 6785 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 6786 6787 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 6788 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 6789 ID3D12GraphicsCommandList * This, 6790 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 6791 6792 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 6793 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 6794 ID3D12GraphicsCommandList * This, 6795 _In_ UINT StartSlot, 6796 _In_ UINT NumViews, 6797 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 6798 6799 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 6800 void ( STDMETHODCALLTYPE *SOSetTargets )( 6801 ID3D12GraphicsCommandList * This, 6802 _In_ UINT StartSlot, 6803 _In_ UINT NumViews, 6804 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 6805 6806 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 6807 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 6808 ID3D12GraphicsCommandList * This, 6809 _In_ UINT NumRenderTargetDescriptors, 6810 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 6811 _In_ BOOL RTsSingleHandleToDescriptorRange, 6812 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 6813 6814 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 6815 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 6816 ID3D12GraphicsCommandList * This, 6817 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 6818 _In_ D3D12_CLEAR_FLAGS ClearFlags, 6819 _In_ FLOAT Depth, 6820 _In_ UINT8 Stencil, 6821 _In_ UINT NumRects, 6822 _In_reads_(NumRects) const D3D12_RECT *pRects); 6823 6824 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 6825 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 6826 ID3D12GraphicsCommandList * This, 6827 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 6828 _In_ const FLOAT ColorRGBA[ 4 ], 6829 _In_ UINT NumRects, 6830 _In_reads_(NumRects) const D3D12_RECT *pRects); 6831 6832 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 6833 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 6834 ID3D12GraphicsCommandList * This, 6835 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 6836 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 6837 _In_ ID3D12Resource *pResource, 6838 _In_ const UINT Values[ 4 ], 6839 _In_ UINT NumRects, 6840 _In_reads_(NumRects) const D3D12_RECT *pRects); 6841 6842 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 6843 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 6844 ID3D12GraphicsCommandList * This, 6845 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 6846 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 6847 _In_ ID3D12Resource *pResource, 6848 _In_ const FLOAT Values[ 4 ], 6849 _In_ UINT NumRects, 6850 _In_reads_(NumRects) const D3D12_RECT *pRects); 6851 6852 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 6853 void ( STDMETHODCALLTYPE *DiscardResource )( 6854 ID3D12GraphicsCommandList * This, 6855 _In_ ID3D12Resource *pResource, 6856 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 6857 6858 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 6859 void ( STDMETHODCALLTYPE *BeginQuery )( 6860 ID3D12GraphicsCommandList * This, 6861 _In_ ID3D12QueryHeap *pQueryHeap, 6862 _In_ D3D12_QUERY_TYPE Type, 6863 _In_ UINT Index); 6864 6865 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 6866 void ( STDMETHODCALLTYPE *EndQuery )( 6867 ID3D12GraphicsCommandList * This, 6868 _In_ ID3D12QueryHeap *pQueryHeap, 6869 _In_ D3D12_QUERY_TYPE Type, 6870 _In_ UINT Index); 6871 6872 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 6873 void ( STDMETHODCALLTYPE *ResolveQueryData )( 6874 ID3D12GraphicsCommandList * This, 6875 _In_ ID3D12QueryHeap *pQueryHeap, 6876 _In_ D3D12_QUERY_TYPE Type, 6877 _In_ UINT StartIndex, 6878 _In_ UINT NumQueries, 6879 _In_ ID3D12Resource *pDestinationBuffer, 6880 _In_ UINT64 AlignedDestinationBufferOffset); 6881 6882 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 6883 void ( STDMETHODCALLTYPE *SetPredication )( 6884 ID3D12GraphicsCommandList * This, 6885 _In_opt_ ID3D12Resource *pBuffer, 6886 _In_ UINT64 AlignedBufferOffset, 6887 _In_ D3D12_PREDICATION_OP Operation); 6888 6889 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 6890 void ( STDMETHODCALLTYPE *SetMarker )( 6891 ID3D12GraphicsCommandList * This, 6892 UINT Metadata, 6893 _In_reads_bytes_opt_(Size) const void *pData, 6894 UINT Size); 6895 6896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 6897 void ( STDMETHODCALLTYPE *BeginEvent )( 6898 ID3D12GraphicsCommandList * This, 6899 UINT Metadata, 6900 _In_reads_bytes_opt_(Size) const void *pData, 6901 UINT Size); 6902 6903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 6904 void ( STDMETHODCALLTYPE *EndEvent )( 6905 ID3D12GraphicsCommandList * This); 6906 6907 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 6908 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 6909 ID3D12GraphicsCommandList * This, 6910 _In_ ID3D12CommandSignature *pCommandSignature, 6911 _In_ UINT MaxCommandCount, 6912 _In_ ID3D12Resource *pArgumentBuffer, 6913 _In_ UINT64 ArgumentBufferOffset, 6914 _In_opt_ ID3D12Resource *pCountBuffer, 6915 _In_ UINT64 CountBufferOffset); 6916 6917 END_INTERFACE 6918 } ID3D12GraphicsCommandListVtbl; 6919 6920 interface ID3D12GraphicsCommandList 6921 { 6922 CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl; 6923 }; 6924 6925 6926 6927#ifdef COBJMACROS 6928 6929 6930#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \ 6931 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 6932 6933#define ID3D12GraphicsCommandList_AddRef(This) \ 6934 ( (This)->lpVtbl -> AddRef(This) ) 6935 6936#define ID3D12GraphicsCommandList_Release(This) \ 6937 ( (This)->lpVtbl -> Release(This) ) 6938 6939 6940#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \ 6941 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 6942 6943#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \ 6944 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 6945 6946#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \ 6947 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 6948 6949#define ID3D12GraphicsCommandList_SetName(This,Name) \ 6950 ( (This)->lpVtbl -> SetName(This,Name) ) 6951 6952 6953#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \ 6954 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 6955 6956 6957#define ID3D12GraphicsCommandList_GetType(This) \ 6958 ( (This)->lpVtbl -> GetType(This) ) 6959 6960 6961#define ID3D12GraphicsCommandList_Close(This) \ 6962 ( (This)->lpVtbl -> Close(This) ) 6963 6964#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \ 6965 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 6966 6967#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \ 6968 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 6969 6970#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 6971 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 6972 6973#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 6974 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 6975 6976#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 6977 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 6978 6979#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 6980 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 6981 6982#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 6983 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 6984 6985#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \ 6986 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 6987 6988#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 6989 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 6990 6991#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 6992 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 6993 6994#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \ 6995 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 6996 6997#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \ 6998 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 6999 7000#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \ 7001 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 7002 7003#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \ 7004 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 7005 7006#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \ 7007 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 7008 7009#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \ 7010 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 7011 7012#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ 7013 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 7014 7015#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \ 7016 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 7017 7018#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 7019 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 7020 7021#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \ 7022 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 7023 7024#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \ 7025 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 7026 7027#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 7028 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 7029 7030#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 7031 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 7032 7033#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 7034 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 7035 7036#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 7037 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 7038 7039#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 7040 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 7041 7042#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 7043 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 7044 7045#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 7046 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 7047 7048#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 7049 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 7050 7051#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 7052 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 7053 7054#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 7055 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 7056 7057#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 7058 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 7059 7060#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 7061 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 7062 7063#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \ 7064 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 7065 7066#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 7067 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 7068 7069#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \ 7070 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 7071 7072#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 7073 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 7074 7075#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 7076 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 7077 7078#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 7079 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 7080 7081#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 7082 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 7083 7084#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 7085 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 7086 7087#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \ 7088 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 7089 7090#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ 7091 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 7092 7093#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \ 7094 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 7095 7096#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 7097 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 7098 7099#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 7100 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 7101 7102#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \ 7103 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 7104 7105#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \ 7106 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 7107 7108#define ID3D12GraphicsCommandList_EndEvent(This) \ 7109 ( (This)->lpVtbl -> EndEvent(This) ) 7110 7111#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 7112 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 7113 7114#endif /* COBJMACROS */ 7115 7116 7117#endif /* C style interface */ 7118 7119 7120 7121 7122#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ 7123 7124 7125#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ 7126#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ 7127 7128/* interface ID3D12GraphicsCommandList1 */ 7129/* [unique][local][object][uuid] */ 7130 7131 7132EXTERN_C const IID IID_ID3D12GraphicsCommandList1; 7133 7134#if defined(__cplusplus) && !defined(CINTERFACE) 7135 7136 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7") 7137 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList 7138 { 7139 public: 7140 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT( 7141 _In_ ID3D12Resource *pDstBuffer, 7142 UINT64 DstOffset, 7143 _In_ ID3D12Resource *pSrcBuffer, 7144 UINT64 SrcOffset, 7145 UINT Dependencies, 7146 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 7147 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; 7148 7149 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64( 7150 _In_ ID3D12Resource *pDstBuffer, 7151 UINT64 DstOffset, 7152 _In_ ID3D12Resource *pSrcBuffer, 7153 UINT64 SrcOffset, 7154 UINT Dependencies, 7155 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 7156 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; 7157 7158 virtual void STDMETHODCALLTYPE OMSetDepthBounds( 7159 _In_ FLOAT Min, 7160 _In_ FLOAT Max) = 0; 7161 7162 virtual void STDMETHODCALLTYPE SetSamplePositions( 7163 _In_ UINT NumSamplesPerPixel, 7164 _In_ UINT NumPixels, 7165 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0; 7166 7167 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion( 7168 _In_ ID3D12Resource *pDstResource, 7169 _In_ UINT DstSubresource, 7170 _In_ UINT DstX, 7171 _In_ UINT DstY, 7172 _In_ ID3D12Resource *pSrcResource, 7173 _In_ UINT SrcSubresource, 7174 _In_opt_ D3D12_RECT *pSrcRect, 7175 _In_ DXGI_FORMAT Format, 7176 _In_ D3D12_RESOLVE_MODE ResolveMode) = 0; 7177 7178 virtual void STDMETHODCALLTYPE SetViewInstanceMask( 7179 _In_ UINT Mask) = 0; 7180 7181 }; 7182 7183 7184#else /* C style interface */ 7185 7186 typedef struct ID3D12GraphicsCommandList1Vtbl 7187 { 7188 BEGIN_INTERFACE 7189 7190 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 7191 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 7192 ID3D12GraphicsCommandList1 * This, 7193 REFIID riid, 7194 _COM_Outptr_ void **ppvObject); 7195 7196 DECLSPEC_XFGVIRT(IUnknown, AddRef) 7197 ULONG ( STDMETHODCALLTYPE *AddRef )( 7198 ID3D12GraphicsCommandList1 * This); 7199 7200 DECLSPEC_XFGVIRT(IUnknown, Release) 7201 ULONG ( STDMETHODCALLTYPE *Release )( 7202 ID3D12GraphicsCommandList1 * This); 7203 7204 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 7205 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 7206 ID3D12GraphicsCommandList1 * This, 7207 _In_ REFGUID guid, 7208 _Inout_ UINT *pDataSize, 7209 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 7210 7211 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 7212 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 7213 ID3D12GraphicsCommandList1 * This, 7214 _In_ REFGUID guid, 7215 _In_ UINT DataSize, 7216 _In_reads_bytes_opt_( DataSize ) const void *pData); 7217 7218 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 7219 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 7220 ID3D12GraphicsCommandList1 * This, 7221 _In_ REFGUID guid, 7222 _In_opt_ const IUnknown *pData); 7223 7224 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 7225 HRESULT ( STDMETHODCALLTYPE *SetName )( 7226 ID3D12GraphicsCommandList1 * This, 7227 _In_z_ LPCWSTR Name); 7228 7229 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 7230 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 7231 ID3D12GraphicsCommandList1 * This, 7232 REFIID riid, 7233 _COM_Outptr_opt_ void **ppvDevice); 7234 7235 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 7236 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 7237 ID3D12GraphicsCommandList1 * This); 7238 7239 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 7240 HRESULT ( STDMETHODCALLTYPE *Close )( 7241 ID3D12GraphicsCommandList1 * This); 7242 7243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 7244 HRESULT ( STDMETHODCALLTYPE *Reset )( 7245 ID3D12GraphicsCommandList1 * This, 7246 _In_ ID3D12CommandAllocator *pAllocator, 7247 _In_opt_ ID3D12PipelineState *pInitialState); 7248 7249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 7250 void ( STDMETHODCALLTYPE *ClearState )( 7251 ID3D12GraphicsCommandList1 * This, 7252 _In_opt_ ID3D12PipelineState *pPipelineState); 7253 7254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 7255 void ( STDMETHODCALLTYPE *DrawInstanced )( 7256 ID3D12GraphicsCommandList1 * This, 7257 _In_ UINT VertexCountPerInstance, 7258 _In_ UINT InstanceCount, 7259 _In_ UINT StartVertexLocation, 7260 _In_ UINT StartInstanceLocation); 7261 7262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 7263 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 7264 ID3D12GraphicsCommandList1 * This, 7265 _In_ UINT IndexCountPerInstance, 7266 _In_ UINT InstanceCount, 7267 _In_ UINT StartIndexLocation, 7268 _In_ INT BaseVertexLocation, 7269 _In_ UINT StartInstanceLocation); 7270 7271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 7272 void ( STDMETHODCALLTYPE *Dispatch )( 7273 ID3D12GraphicsCommandList1 * This, 7274 _In_ UINT ThreadGroupCountX, 7275 _In_ UINT ThreadGroupCountY, 7276 _In_ UINT ThreadGroupCountZ); 7277 7278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 7279 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 7280 ID3D12GraphicsCommandList1 * This, 7281 _In_ ID3D12Resource *pDstBuffer, 7282 UINT64 DstOffset, 7283 _In_ ID3D12Resource *pSrcBuffer, 7284 UINT64 SrcOffset, 7285 UINT64 NumBytes); 7286 7287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 7288 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 7289 ID3D12GraphicsCommandList1 * This, 7290 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 7291 UINT DstX, 7292 UINT DstY, 7293 UINT DstZ, 7294 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 7295 _In_opt_ const D3D12_BOX *pSrcBox); 7296 7297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 7298 void ( STDMETHODCALLTYPE *CopyResource )( 7299 ID3D12GraphicsCommandList1 * This, 7300 _In_ ID3D12Resource *pDstResource, 7301 _In_ ID3D12Resource *pSrcResource); 7302 7303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 7304 void ( STDMETHODCALLTYPE *CopyTiles )( 7305 ID3D12GraphicsCommandList1 * This, 7306 _In_ ID3D12Resource *pTiledResource, 7307 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 7308 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 7309 _In_ ID3D12Resource *pBuffer, 7310 UINT64 BufferStartOffsetInBytes, 7311 D3D12_TILE_COPY_FLAGS Flags); 7312 7313 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 7314 void ( STDMETHODCALLTYPE *ResolveSubresource )( 7315 ID3D12GraphicsCommandList1 * This, 7316 _In_ ID3D12Resource *pDstResource, 7317 _In_ UINT DstSubresource, 7318 _In_ ID3D12Resource *pSrcResource, 7319 _In_ UINT SrcSubresource, 7320 _In_ DXGI_FORMAT Format); 7321 7322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 7323 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 7324 ID3D12GraphicsCommandList1 * This, 7325 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 7326 7327 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 7328 void ( STDMETHODCALLTYPE *RSSetViewports )( 7329 ID3D12GraphicsCommandList1 * This, 7330 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 7331 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 7332 7333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 7334 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 7335 ID3D12GraphicsCommandList1 * This, 7336 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 7337 _In_reads_( NumRects) const D3D12_RECT *pRects); 7338 7339 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 7340 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 7341 ID3D12GraphicsCommandList1 * This, 7342 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 7343 7344 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 7345 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 7346 ID3D12GraphicsCommandList1 * This, 7347 _In_ UINT StencilRef); 7348 7349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 7350 void ( STDMETHODCALLTYPE *SetPipelineState )( 7351 ID3D12GraphicsCommandList1 * This, 7352 _In_ ID3D12PipelineState *pPipelineState); 7353 7354 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 7355 void ( STDMETHODCALLTYPE *ResourceBarrier )( 7356 ID3D12GraphicsCommandList1 * This, 7357 _In_ UINT NumBarriers, 7358 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 7359 7360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 7361 void ( STDMETHODCALLTYPE *ExecuteBundle )( 7362 ID3D12GraphicsCommandList1 * This, 7363 _In_ ID3D12GraphicsCommandList *pCommandList); 7364 7365 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 7366 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 7367 ID3D12GraphicsCommandList1 * This, 7368 _In_ UINT NumDescriptorHeaps, 7369 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 7370 7371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 7372 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 7373 ID3D12GraphicsCommandList1 * This, 7374 _In_opt_ ID3D12RootSignature *pRootSignature); 7375 7376 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 7377 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 7378 ID3D12GraphicsCommandList1 * This, 7379 _In_opt_ ID3D12RootSignature *pRootSignature); 7380 7381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 7382 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 7383 ID3D12GraphicsCommandList1 * This, 7384 _In_ UINT RootParameterIndex, 7385 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 7386 7387 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 7388 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 7389 ID3D12GraphicsCommandList1 * This, 7390 _In_ UINT RootParameterIndex, 7391 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 7392 7393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 7394 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 7395 ID3D12GraphicsCommandList1 * This, 7396 _In_ UINT RootParameterIndex, 7397 _In_ UINT SrcData, 7398 _In_ UINT DestOffsetIn32BitValues); 7399 7400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 7401 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 7402 ID3D12GraphicsCommandList1 * This, 7403 _In_ UINT RootParameterIndex, 7404 _In_ UINT SrcData, 7405 _In_ UINT DestOffsetIn32BitValues); 7406 7407 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 7408 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 7409 ID3D12GraphicsCommandList1 * This, 7410 _In_ UINT RootParameterIndex, 7411 _In_ UINT Num32BitValuesToSet, 7412 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 7413 _In_ UINT DestOffsetIn32BitValues); 7414 7415 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 7416 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 7417 ID3D12GraphicsCommandList1 * This, 7418 _In_ UINT RootParameterIndex, 7419 _In_ UINT Num32BitValuesToSet, 7420 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 7421 _In_ UINT DestOffsetIn32BitValues); 7422 7423 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 7424 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 7425 ID3D12GraphicsCommandList1 * This, 7426 _In_ UINT RootParameterIndex, 7427 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7428 7429 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 7430 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 7431 ID3D12GraphicsCommandList1 * This, 7432 _In_ UINT RootParameterIndex, 7433 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7434 7435 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 7436 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 7437 ID3D12GraphicsCommandList1 * This, 7438 _In_ UINT RootParameterIndex, 7439 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7440 7441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 7442 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 7443 ID3D12GraphicsCommandList1 * This, 7444 _In_ UINT RootParameterIndex, 7445 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7446 7447 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 7448 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 7449 ID3D12GraphicsCommandList1 * This, 7450 _In_ UINT RootParameterIndex, 7451 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7452 7453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 7454 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 7455 ID3D12GraphicsCommandList1 * This, 7456 _In_ UINT RootParameterIndex, 7457 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 7458 7459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 7460 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 7461 ID3D12GraphicsCommandList1 * This, 7462 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 7463 7464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 7465 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 7466 ID3D12GraphicsCommandList1 * This, 7467 _In_ UINT StartSlot, 7468 _In_ UINT NumViews, 7469 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 7470 7471 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 7472 void ( STDMETHODCALLTYPE *SOSetTargets )( 7473 ID3D12GraphicsCommandList1 * This, 7474 _In_ UINT StartSlot, 7475 _In_ UINT NumViews, 7476 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 7477 7478 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 7479 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 7480 ID3D12GraphicsCommandList1 * This, 7481 _In_ UINT NumRenderTargetDescriptors, 7482 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 7483 _In_ BOOL RTsSingleHandleToDescriptorRange, 7484 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 7485 7486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 7487 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 7488 ID3D12GraphicsCommandList1 * This, 7489 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 7490 _In_ D3D12_CLEAR_FLAGS ClearFlags, 7491 _In_ FLOAT Depth, 7492 _In_ UINT8 Stencil, 7493 _In_ UINT NumRects, 7494 _In_reads_(NumRects) const D3D12_RECT *pRects); 7495 7496 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 7497 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 7498 ID3D12GraphicsCommandList1 * This, 7499 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 7500 _In_ const FLOAT ColorRGBA[ 4 ], 7501 _In_ UINT NumRects, 7502 _In_reads_(NumRects) const D3D12_RECT *pRects); 7503 7504 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 7505 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 7506 ID3D12GraphicsCommandList1 * This, 7507 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 7508 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 7509 _In_ ID3D12Resource *pResource, 7510 _In_ const UINT Values[ 4 ], 7511 _In_ UINT NumRects, 7512 _In_reads_(NumRects) const D3D12_RECT *pRects); 7513 7514 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 7515 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 7516 ID3D12GraphicsCommandList1 * This, 7517 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 7518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 7519 _In_ ID3D12Resource *pResource, 7520 _In_ const FLOAT Values[ 4 ], 7521 _In_ UINT NumRects, 7522 _In_reads_(NumRects) const D3D12_RECT *pRects); 7523 7524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 7525 void ( STDMETHODCALLTYPE *DiscardResource )( 7526 ID3D12GraphicsCommandList1 * This, 7527 _In_ ID3D12Resource *pResource, 7528 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 7529 7530 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 7531 void ( STDMETHODCALLTYPE *BeginQuery )( 7532 ID3D12GraphicsCommandList1 * This, 7533 _In_ ID3D12QueryHeap *pQueryHeap, 7534 _In_ D3D12_QUERY_TYPE Type, 7535 _In_ UINT Index); 7536 7537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 7538 void ( STDMETHODCALLTYPE *EndQuery )( 7539 ID3D12GraphicsCommandList1 * This, 7540 _In_ ID3D12QueryHeap *pQueryHeap, 7541 _In_ D3D12_QUERY_TYPE Type, 7542 _In_ UINT Index); 7543 7544 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 7545 void ( STDMETHODCALLTYPE *ResolveQueryData )( 7546 ID3D12GraphicsCommandList1 * This, 7547 _In_ ID3D12QueryHeap *pQueryHeap, 7548 _In_ D3D12_QUERY_TYPE Type, 7549 _In_ UINT StartIndex, 7550 _In_ UINT NumQueries, 7551 _In_ ID3D12Resource *pDestinationBuffer, 7552 _In_ UINT64 AlignedDestinationBufferOffset); 7553 7554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 7555 void ( STDMETHODCALLTYPE *SetPredication )( 7556 ID3D12GraphicsCommandList1 * This, 7557 _In_opt_ ID3D12Resource *pBuffer, 7558 _In_ UINT64 AlignedBufferOffset, 7559 _In_ D3D12_PREDICATION_OP Operation); 7560 7561 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 7562 void ( STDMETHODCALLTYPE *SetMarker )( 7563 ID3D12GraphicsCommandList1 * This, 7564 UINT Metadata, 7565 _In_reads_bytes_opt_(Size) const void *pData, 7566 UINT Size); 7567 7568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 7569 void ( STDMETHODCALLTYPE *BeginEvent )( 7570 ID3D12GraphicsCommandList1 * This, 7571 UINT Metadata, 7572 _In_reads_bytes_opt_(Size) const void *pData, 7573 UINT Size); 7574 7575 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 7576 void ( STDMETHODCALLTYPE *EndEvent )( 7577 ID3D12GraphicsCommandList1 * This); 7578 7579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 7580 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 7581 ID3D12GraphicsCommandList1 * This, 7582 _In_ ID3D12CommandSignature *pCommandSignature, 7583 _In_ UINT MaxCommandCount, 7584 _In_ ID3D12Resource *pArgumentBuffer, 7585 _In_ UINT64 ArgumentBufferOffset, 7586 _In_opt_ ID3D12Resource *pCountBuffer, 7587 _In_ UINT64 CountBufferOffset); 7588 7589 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 7590 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 7591 ID3D12GraphicsCommandList1 * This, 7592 _In_ ID3D12Resource *pDstBuffer, 7593 UINT64 DstOffset, 7594 _In_ ID3D12Resource *pSrcBuffer, 7595 UINT64 SrcOffset, 7596 UINT Dependencies, 7597 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 7598 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 7599 7600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 7601 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 7602 ID3D12GraphicsCommandList1 * This, 7603 _In_ ID3D12Resource *pDstBuffer, 7604 UINT64 DstOffset, 7605 _In_ ID3D12Resource *pSrcBuffer, 7606 UINT64 SrcOffset, 7607 UINT Dependencies, 7608 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 7609 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 7610 7611 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 7612 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 7613 ID3D12GraphicsCommandList1 * This, 7614 _In_ FLOAT Min, 7615 _In_ FLOAT Max); 7616 7617 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 7618 void ( STDMETHODCALLTYPE *SetSamplePositions )( 7619 ID3D12GraphicsCommandList1 * This, 7620 _In_ UINT NumSamplesPerPixel, 7621 _In_ UINT NumPixels, 7622 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 7623 7624 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 7625 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 7626 ID3D12GraphicsCommandList1 * This, 7627 _In_ ID3D12Resource *pDstResource, 7628 _In_ UINT DstSubresource, 7629 _In_ UINT DstX, 7630 _In_ UINT DstY, 7631 _In_ ID3D12Resource *pSrcResource, 7632 _In_ UINT SrcSubresource, 7633 _In_opt_ D3D12_RECT *pSrcRect, 7634 _In_ DXGI_FORMAT Format, 7635 _In_ D3D12_RESOLVE_MODE ResolveMode); 7636 7637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 7638 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 7639 ID3D12GraphicsCommandList1 * This, 7640 _In_ UINT Mask); 7641 7642 END_INTERFACE 7643 } ID3D12GraphicsCommandList1Vtbl; 7644 7645 interface ID3D12GraphicsCommandList1 7646 { 7647 CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl; 7648 }; 7649 7650 7651 7652#ifdef COBJMACROS 7653 7654 7655#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \ 7656 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 7657 7658#define ID3D12GraphicsCommandList1_AddRef(This) \ 7659 ( (This)->lpVtbl -> AddRef(This) ) 7660 7661#define ID3D12GraphicsCommandList1_Release(This) \ 7662 ( (This)->lpVtbl -> Release(This) ) 7663 7664 7665#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ 7666 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 7667 7668#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \ 7669 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 7670 7671#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \ 7672 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 7673 7674#define ID3D12GraphicsCommandList1_SetName(This,Name) \ 7675 ( (This)->lpVtbl -> SetName(This,Name) ) 7676 7677 7678#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \ 7679 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 7680 7681 7682#define ID3D12GraphicsCommandList1_GetType(This) \ 7683 ( (This)->lpVtbl -> GetType(This) ) 7684 7685 7686#define ID3D12GraphicsCommandList1_Close(This) \ 7687 ( (This)->lpVtbl -> Close(This) ) 7688 7689#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \ 7690 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 7691 7692#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \ 7693 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 7694 7695#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 7696 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 7697 7698#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 7699 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 7700 7701#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 7702 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 7703 7704#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 7705 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 7706 7707#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 7708 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 7709 7710#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \ 7711 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 7712 7713#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 7714 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 7715 7716#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 7717 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 7718 7719#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \ 7720 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 7721 7722#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \ 7723 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 7724 7725#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \ 7726 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 7727 7728#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \ 7729 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 7730 7731#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \ 7732 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 7733 7734#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \ 7735 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 7736 7737#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ 7738 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 7739 7740#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \ 7741 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 7742 7743#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 7744 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 7745 7746#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \ 7747 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 7748 7749#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \ 7750 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 7751 7752#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 7753 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 7754 7755#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 7756 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 7757 7758#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 7759 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 7760 7761#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 7762 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 7763 7764#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 7765 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 7766 7767#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 7768 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 7769 7770#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 7771 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 7772 7773#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 7774 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 7775 7776#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 7777 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 7778 7779#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 7780 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 7781 7782#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 7783 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 7784 7785#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 7786 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 7787 7788#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \ 7789 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 7790 7791#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 7792 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 7793 7794#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \ 7795 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 7796 7797#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 7798 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 7799 7800#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 7801 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 7802 7803#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 7804 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 7805 7806#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 7807 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 7808 7809#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 7810 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 7811 7812#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \ 7813 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 7814 7815#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ 7816 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 7817 7818#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ 7819 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 7820 7821#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 7822 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 7823 7824#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 7825 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 7826 7827#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \ 7828 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 7829 7830#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \ 7831 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 7832 7833#define ID3D12GraphicsCommandList1_EndEvent(This) \ 7834 ( (This)->lpVtbl -> EndEvent(This) ) 7835 7836#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 7837 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 7838 7839 7840#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 7841 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 7842 7843#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 7844 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 7845 7846#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \ 7847 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 7848 7849#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 7850 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 7851 7852#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 7853 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 7854 7855#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \ 7856 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 7857 7858#endif /* COBJMACROS */ 7859 7860 7861#endif /* C style interface */ 7862 7863 7864 7865 7866#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ 7867 7868 7869/* interface __MIDL_itf_d3d12_0000_0018 */ 7870/* [local] */ 7871 7872typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER 7873 { 7874 D3D12_GPU_VIRTUAL_ADDRESS Dest; 7875 UINT32 Value; 7876 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; 7877 7878typedef 7879enum D3D12_WRITEBUFFERIMMEDIATE_MODE 7880 { 7881 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, 7882 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, 7883 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2 7884 } D3D12_WRITEBUFFERIMMEDIATE_MODE; 7885 7886 7887 7888extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec; 7889extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec; 7890 7891#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ 7892#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ 7893 7894/* interface ID3D12GraphicsCommandList2 */ 7895/* [unique][local][object][uuid] */ 7896 7897 7898EXTERN_C const IID IID_ID3D12GraphicsCommandList2; 7899 7900#if defined(__cplusplus) && !defined(CINTERFACE) 7901 7902 MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28") 7903 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1 7904 { 7905 public: 7906 virtual void STDMETHODCALLTYPE WriteBufferImmediate( 7907 UINT Count, 7908 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 7909 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; 7910 7911 }; 7912 7913 7914#else /* C style interface */ 7915 7916 typedef struct ID3D12GraphicsCommandList2Vtbl 7917 { 7918 BEGIN_INTERFACE 7919 7920 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 7921 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 7922 ID3D12GraphicsCommandList2 * This, 7923 REFIID riid, 7924 _COM_Outptr_ void **ppvObject); 7925 7926 DECLSPEC_XFGVIRT(IUnknown, AddRef) 7927 ULONG ( STDMETHODCALLTYPE *AddRef )( 7928 ID3D12GraphicsCommandList2 * This); 7929 7930 DECLSPEC_XFGVIRT(IUnknown, Release) 7931 ULONG ( STDMETHODCALLTYPE *Release )( 7932 ID3D12GraphicsCommandList2 * This); 7933 7934 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 7935 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 7936 ID3D12GraphicsCommandList2 * This, 7937 _In_ REFGUID guid, 7938 _Inout_ UINT *pDataSize, 7939 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 7940 7941 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 7942 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 7943 ID3D12GraphicsCommandList2 * This, 7944 _In_ REFGUID guid, 7945 _In_ UINT DataSize, 7946 _In_reads_bytes_opt_( DataSize ) const void *pData); 7947 7948 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 7949 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 7950 ID3D12GraphicsCommandList2 * This, 7951 _In_ REFGUID guid, 7952 _In_opt_ const IUnknown *pData); 7953 7954 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 7955 HRESULT ( STDMETHODCALLTYPE *SetName )( 7956 ID3D12GraphicsCommandList2 * This, 7957 _In_z_ LPCWSTR Name); 7958 7959 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 7960 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 7961 ID3D12GraphicsCommandList2 * This, 7962 REFIID riid, 7963 _COM_Outptr_opt_ void **ppvDevice); 7964 7965 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 7966 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 7967 ID3D12GraphicsCommandList2 * This); 7968 7969 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 7970 HRESULT ( STDMETHODCALLTYPE *Close )( 7971 ID3D12GraphicsCommandList2 * This); 7972 7973 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 7974 HRESULT ( STDMETHODCALLTYPE *Reset )( 7975 ID3D12GraphicsCommandList2 * This, 7976 _In_ ID3D12CommandAllocator *pAllocator, 7977 _In_opt_ ID3D12PipelineState *pInitialState); 7978 7979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 7980 void ( STDMETHODCALLTYPE *ClearState )( 7981 ID3D12GraphicsCommandList2 * This, 7982 _In_opt_ ID3D12PipelineState *pPipelineState); 7983 7984 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 7985 void ( STDMETHODCALLTYPE *DrawInstanced )( 7986 ID3D12GraphicsCommandList2 * This, 7987 _In_ UINT VertexCountPerInstance, 7988 _In_ UINT InstanceCount, 7989 _In_ UINT StartVertexLocation, 7990 _In_ UINT StartInstanceLocation); 7991 7992 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 7993 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 7994 ID3D12GraphicsCommandList2 * This, 7995 _In_ UINT IndexCountPerInstance, 7996 _In_ UINT InstanceCount, 7997 _In_ UINT StartIndexLocation, 7998 _In_ INT BaseVertexLocation, 7999 _In_ UINT StartInstanceLocation); 8000 8001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 8002 void ( STDMETHODCALLTYPE *Dispatch )( 8003 ID3D12GraphicsCommandList2 * This, 8004 _In_ UINT ThreadGroupCountX, 8005 _In_ UINT ThreadGroupCountY, 8006 _In_ UINT ThreadGroupCountZ); 8007 8008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 8009 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 8010 ID3D12GraphicsCommandList2 * This, 8011 _In_ ID3D12Resource *pDstBuffer, 8012 UINT64 DstOffset, 8013 _In_ ID3D12Resource *pSrcBuffer, 8014 UINT64 SrcOffset, 8015 UINT64 NumBytes); 8016 8017 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 8018 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 8019 ID3D12GraphicsCommandList2 * This, 8020 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 8021 UINT DstX, 8022 UINT DstY, 8023 UINT DstZ, 8024 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 8025 _In_opt_ const D3D12_BOX *pSrcBox); 8026 8027 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 8028 void ( STDMETHODCALLTYPE *CopyResource )( 8029 ID3D12GraphicsCommandList2 * This, 8030 _In_ ID3D12Resource *pDstResource, 8031 _In_ ID3D12Resource *pSrcResource); 8032 8033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 8034 void ( STDMETHODCALLTYPE *CopyTiles )( 8035 ID3D12GraphicsCommandList2 * This, 8036 _In_ ID3D12Resource *pTiledResource, 8037 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 8038 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 8039 _In_ ID3D12Resource *pBuffer, 8040 UINT64 BufferStartOffsetInBytes, 8041 D3D12_TILE_COPY_FLAGS Flags); 8042 8043 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 8044 void ( STDMETHODCALLTYPE *ResolveSubresource )( 8045 ID3D12GraphicsCommandList2 * This, 8046 _In_ ID3D12Resource *pDstResource, 8047 _In_ UINT DstSubresource, 8048 _In_ ID3D12Resource *pSrcResource, 8049 _In_ UINT SrcSubresource, 8050 _In_ DXGI_FORMAT Format); 8051 8052 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 8053 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 8054 ID3D12GraphicsCommandList2 * This, 8055 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 8056 8057 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 8058 void ( STDMETHODCALLTYPE *RSSetViewports )( 8059 ID3D12GraphicsCommandList2 * This, 8060 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 8061 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 8062 8063 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 8064 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 8065 ID3D12GraphicsCommandList2 * This, 8066 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 8067 _In_reads_( NumRects) const D3D12_RECT *pRects); 8068 8069 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 8070 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 8071 ID3D12GraphicsCommandList2 * This, 8072 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 8073 8074 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 8075 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 8076 ID3D12GraphicsCommandList2 * This, 8077 _In_ UINT StencilRef); 8078 8079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 8080 void ( STDMETHODCALLTYPE *SetPipelineState )( 8081 ID3D12GraphicsCommandList2 * This, 8082 _In_ ID3D12PipelineState *pPipelineState); 8083 8084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 8085 void ( STDMETHODCALLTYPE *ResourceBarrier )( 8086 ID3D12GraphicsCommandList2 * This, 8087 _In_ UINT NumBarriers, 8088 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 8089 8090 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 8091 void ( STDMETHODCALLTYPE *ExecuteBundle )( 8092 ID3D12GraphicsCommandList2 * This, 8093 _In_ ID3D12GraphicsCommandList *pCommandList); 8094 8095 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 8096 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 8097 ID3D12GraphicsCommandList2 * This, 8098 _In_ UINT NumDescriptorHeaps, 8099 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 8100 8101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 8102 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 8103 ID3D12GraphicsCommandList2 * This, 8104 _In_opt_ ID3D12RootSignature *pRootSignature); 8105 8106 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 8107 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 8108 ID3D12GraphicsCommandList2 * This, 8109 _In_opt_ ID3D12RootSignature *pRootSignature); 8110 8111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 8112 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 8113 ID3D12GraphicsCommandList2 * This, 8114 _In_ UINT RootParameterIndex, 8115 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 8116 8117 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 8118 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 8119 ID3D12GraphicsCommandList2 * This, 8120 _In_ UINT RootParameterIndex, 8121 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 8122 8123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 8124 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 8125 ID3D12GraphicsCommandList2 * This, 8126 _In_ UINT RootParameterIndex, 8127 _In_ UINT SrcData, 8128 _In_ UINT DestOffsetIn32BitValues); 8129 8130 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 8131 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 8132 ID3D12GraphicsCommandList2 * This, 8133 _In_ UINT RootParameterIndex, 8134 _In_ UINT SrcData, 8135 _In_ UINT DestOffsetIn32BitValues); 8136 8137 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 8138 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 8139 ID3D12GraphicsCommandList2 * This, 8140 _In_ UINT RootParameterIndex, 8141 _In_ UINT Num32BitValuesToSet, 8142 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 8143 _In_ UINT DestOffsetIn32BitValues); 8144 8145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 8146 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 8147 ID3D12GraphicsCommandList2 * This, 8148 _In_ UINT RootParameterIndex, 8149 _In_ UINT Num32BitValuesToSet, 8150 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 8151 _In_ UINT DestOffsetIn32BitValues); 8152 8153 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 8154 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 8155 ID3D12GraphicsCommandList2 * This, 8156 _In_ UINT RootParameterIndex, 8157 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8158 8159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 8160 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 8161 ID3D12GraphicsCommandList2 * This, 8162 _In_ UINT RootParameterIndex, 8163 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8164 8165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 8166 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 8167 ID3D12GraphicsCommandList2 * This, 8168 _In_ UINT RootParameterIndex, 8169 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8170 8171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 8172 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 8173 ID3D12GraphicsCommandList2 * This, 8174 _In_ UINT RootParameterIndex, 8175 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8176 8177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 8178 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 8179 ID3D12GraphicsCommandList2 * This, 8180 _In_ UINT RootParameterIndex, 8181 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8182 8183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 8184 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 8185 ID3D12GraphicsCommandList2 * This, 8186 _In_ UINT RootParameterIndex, 8187 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 8188 8189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 8190 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 8191 ID3D12GraphicsCommandList2 * This, 8192 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 8193 8194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 8195 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 8196 ID3D12GraphicsCommandList2 * This, 8197 _In_ UINT StartSlot, 8198 _In_ UINT NumViews, 8199 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 8200 8201 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 8202 void ( STDMETHODCALLTYPE *SOSetTargets )( 8203 ID3D12GraphicsCommandList2 * This, 8204 _In_ UINT StartSlot, 8205 _In_ UINT NumViews, 8206 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 8207 8208 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 8209 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 8210 ID3D12GraphicsCommandList2 * This, 8211 _In_ UINT NumRenderTargetDescriptors, 8212 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 8213 _In_ BOOL RTsSingleHandleToDescriptorRange, 8214 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 8215 8216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 8217 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 8218 ID3D12GraphicsCommandList2 * This, 8219 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 8220 _In_ D3D12_CLEAR_FLAGS ClearFlags, 8221 _In_ FLOAT Depth, 8222 _In_ UINT8 Stencil, 8223 _In_ UINT NumRects, 8224 _In_reads_(NumRects) const D3D12_RECT *pRects); 8225 8226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 8227 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 8228 ID3D12GraphicsCommandList2 * This, 8229 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 8230 _In_ const FLOAT ColorRGBA[ 4 ], 8231 _In_ UINT NumRects, 8232 _In_reads_(NumRects) const D3D12_RECT *pRects); 8233 8234 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 8235 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 8236 ID3D12GraphicsCommandList2 * This, 8237 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 8238 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 8239 _In_ ID3D12Resource *pResource, 8240 _In_ const UINT Values[ 4 ], 8241 _In_ UINT NumRects, 8242 _In_reads_(NumRects) const D3D12_RECT *pRects); 8243 8244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 8245 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 8246 ID3D12GraphicsCommandList2 * This, 8247 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 8248 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 8249 _In_ ID3D12Resource *pResource, 8250 _In_ const FLOAT Values[ 4 ], 8251 _In_ UINT NumRects, 8252 _In_reads_(NumRects) const D3D12_RECT *pRects); 8253 8254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 8255 void ( STDMETHODCALLTYPE *DiscardResource )( 8256 ID3D12GraphicsCommandList2 * This, 8257 _In_ ID3D12Resource *pResource, 8258 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 8259 8260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 8261 void ( STDMETHODCALLTYPE *BeginQuery )( 8262 ID3D12GraphicsCommandList2 * This, 8263 _In_ ID3D12QueryHeap *pQueryHeap, 8264 _In_ D3D12_QUERY_TYPE Type, 8265 _In_ UINT Index); 8266 8267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 8268 void ( STDMETHODCALLTYPE *EndQuery )( 8269 ID3D12GraphicsCommandList2 * This, 8270 _In_ ID3D12QueryHeap *pQueryHeap, 8271 _In_ D3D12_QUERY_TYPE Type, 8272 _In_ UINT Index); 8273 8274 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 8275 void ( STDMETHODCALLTYPE *ResolveQueryData )( 8276 ID3D12GraphicsCommandList2 * This, 8277 _In_ ID3D12QueryHeap *pQueryHeap, 8278 _In_ D3D12_QUERY_TYPE Type, 8279 _In_ UINT StartIndex, 8280 _In_ UINT NumQueries, 8281 _In_ ID3D12Resource *pDestinationBuffer, 8282 _In_ UINT64 AlignedDestinationBufferOffset); 8283 8284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 8285 void ( STDMETHODCALLTYPE *SetPredication )( 8286 ID3D12GraphicsCommandList2 * This, 8287 _In_opt_ ID3D12Resource *pBuffer, 8288 _In_ UINT64 AlignedBufferOffset, 8289 _In_ D3D12_PREDICATION_OP Operation); 8290 8291 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 8292 void ( STDMETHODCALLTYPE *SetMarker )( 8293 ID3D12GraphicsCommandList2 * This, 8294 UINT Metadata, 8295 _In_reads_bytes_opt_(Size) const void *pData, 8296 UINT Size); 8297 8298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 8299 void ( STDMETHODCALLTYPE *BeginEvent )( 8300 ID3D12GraphicsCommandList2 * This, 8301 UINT Metadata, 8302 _In_reads_bytes_opt_(Size) const void *pData, 8303 UINT Size); 8304 8305 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 8306 void ( STDMETHODCALLTYPE *EndEvent )( 8307 ID3D12GraphicsCommandList2 * This); 8308 8309 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 8310 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 8311 ID3D12GraphicsCommandList2 * This, 8312 _In_ ID3D12CommandSignature *pCommandSignature, 8313 _In_ UINT MaxCommandCount, 8314 _In_ ID3D12Resource *pArgumentBuffer, 8315 _In_ UINT64 ArgumentBufferOffset, 8316 _In_opt_ ID3D12Resource *pCountBuffer, 8317 _In_ UINT64 CountBufferOffset); 8318 8319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 8320 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 8321 ID3D12GraphicsCommandList2 * This, 8322 _In_ ID3D12Resource *pDstBuffer, 8323 UINT64 DstOffset, 8324 _In_ ID3D12Resource *pSrcBuffer, 8325 UINT64 SrcOffset, 8326 UINT Dependencies, 8327 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 8328 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 8329 8330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 8331 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 8332 ID3D12GraphicsCommandList2 * This, 8333 _In_ ID3D12Resource *pDstBuffer, 8334 UINT64 DstOffset, 8335 _In_ ID3D12Resource *pSrcBuffer, 8336 UINT64 SrcOffset, 8337 UINT Dependencies, 8338 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 8339 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 8340 8341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 8342 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 8343 ID3D12GraphicsCommandList2 * This, 8344 _In_ FLOAT Min, 8345 _In_ FLOAT Max); 8346 8347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 8348 void ( STDMETHODCALLTYPE *SetSamplePositions )( 8349 ID3D12GraphicsCommandList2 * This, 8350 _In_ UINT NumSamplesPerPixel, 8351 _In_ UINT NumPixels, 8352 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 8353 8354 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 8355 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 8356 ID3D12GraphicsCommandList2 * This, 8357 _In_ ID3D12Resource *pDstResource, 8358 _In_ UINT DstSubresource, 8359 _In_ UINT DstX, 8360 _In_ UINT DstY, 8361 _In_ ID3D12Resource *pSrcResource, 8362 _In_ UINT SrcSubresource, 8363 _In_opt_ D3D12_RECT *pSrcRect, 8364 _In_ DXGI_FORMAT Format, 8365 _In_ D3D12_RESOLVE_MODE ResolveMode); 8366 8367 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 8368 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 8369 ID3D12GraphicsCommandList2 * This, 8370 _In_ UINT Mask); 8371 8372 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 8373 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 8374 ID3D12GraphicsCommandList2 * This, 8375 UINT Count, 8376 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 8377 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 8378 8379 END_INTERFACE 8380 } ID3D12GraphicsCommandList2Vtbl; 8381 8382 interface ID3D12GraphicsCommandList2 8383 { 8384 CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl; 8385 }; 8386 8387 8388 8389#ifdef COBJMACROS 8390 8391 8392#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \ 8393 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 8394 8395#define ID3D12GraphicsCommandList2_AddRef(This) \ 8396 ( (This)->lpVtbl -> AddRef(This) ) 8397 8398#define ID3D12GraphicsCommandList2_Release(This) \ 8399 ( (This)->lpVtbl -> Release(This) ) 8400 8401 8402#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ 8403 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 8404 8405#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \ 8406 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 8407 8408#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \ 8409 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 8410 8411#define ID3D12GraphicsCommandList2_SetName(This,Name) \ 8412 ( (This)->lpVtbl -> SetName(This,Name) ) 8413 8414 8415#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \ 8416 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 8417 8418 8419#define ID3D12GraphicsCommandList2_GetType(This) \ 8420 ( (This)->lpVtbl -> GetType(This) ) 8421 8422 8423#define ID3D12GraphicsCommandList2_Close(This) \ 8424 ( (This)->lpVtbl -> Close(This) ) 8425 8426#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \ 8427 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 8428 8429#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \ 8430 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 8431 8432#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 8433 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 8434 8435#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 8436 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 8437 8438#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 8439 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 8440 8441#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 8442 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 8443 8444#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 8445 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 8446 8447#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \ 8448 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 8449 8450#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 8451 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 8452 8453#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 8454 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 8455 8456#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \ 8457 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 8458 8459#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \ 8460 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 8461 8462#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \ 8463 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 8464 8465#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \ 8466 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 8467 8468#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \ 8469 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 8470 8471#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \ 8472 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 8473 8474#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ 8475 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 8476 8477#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \ 8478 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 8479 8480#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 8481 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 8482 8483#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \ 8484 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 8485 8486#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \ 8487 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 8488 8489#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 8490 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 8491 8492#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 8493 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 8494 8495#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 8496 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 8497 8498#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 8499 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 8500 8501#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 8502 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 8503 8504#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 8505 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 8506 8507#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 8508 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 8509 8510#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 8511 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 8512 8513#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 8514 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 8515 8516#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 8517 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 8518 8519#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 8520 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 8521 8522#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 8523 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 8524 8525#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \ 8526 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 8527 8528#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 8529 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 8530 8531#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \ 8532 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 8533 8534#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 8535 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 8536 8537#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 8538 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 8539 8540#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 8541 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 8542 8543#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 8544 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 8545 8546#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 8547 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 8548 8549#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \ 8550 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 8551 8552#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ 8553 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 8554 8555#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ 8556 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 8557 8558#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 8559 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 8560 8561#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 8562 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 8563 8564#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \ 8565 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 8566 8567#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \ 8568 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 8569 8570#define ID3D12GraphicsCommandList2_EndEvent(This) \ 8571 ( (This)->lpVtbl -> EndEvent(This) ) 8572 8573#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 8574 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 8575 8576 8577#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 8578 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 8579 8580#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 8581 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 8582 8583#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \ 8584 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 8585 8586#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 8587 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 8588 8589#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 8590 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 8591 8592#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \ 8593 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 8594 8595 8596#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ 8597 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 8598 8599#endif /* COBJMACROS */ 8600 8601 8602#endif /* C style interface */ 8603 8604 8605 8606 8607#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */ 8608 8609 8610#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ 8611#define __ID3D12CommandQueue_INTERFACE_DEFINED__ 8612 8613/* interface ID3D12CommandQueue */ 8614/* [unique][local][object][uuid] */ 8615 8616 8617EXTERN_C const IID IID_ID3D12CommandQueue; 8618 8619#if defined(__cplusplus) && !defined(CINTERFACE) 8620 8621 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") 8622 ID3D12CommandQueue : public ID3D12Pageable 8623 { 8624 public: 8625 virtual void STDMETHODCALLTYPE UpdateTileMappings( 8626 _In_ ID3D12Resource *pResource, 8627 UINT NumResourceRegions, 8628 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, 8629 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, 8630 _In_opt_ ID3D12Heap *pHeap, 8631 UINT NumRanges, 8632 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, 8633 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, 8634 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, 8635 D3D12_TILE_MAPPING_FLAGS Flags) = 0; 8636 8637 virtual void STDMETHODCALLTYPE CopyTileMappings( 8638 _In_ ID3D12Resource *pDstResource, 8639 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, 8640 _In_ ID3D12Resource *pSrcResource, 8641 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, 8642 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, 8643 D3D12_TILE_MAPPING_FLAGS Flags) = 0; 8644 8645 virtual void STDMETHODCALLTYPE ExecuteCommandLists( 8646 _In_ UINT NumCommandLists, 8647 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0; 8648 8649 virtual void STDMETHODCALLTYPE SetMarker( 8650 UINT Metadata, 8651 _In_reads_bytes_opt_(Size) const void *pData, 8652 UINT Size) = 0; 8653 8654 virtual void STDMETHODCALLTYPE BeginEvent( 8655 UINT Metadata, 8656 _In_reads_bytes_opt_(Size) const void *pData, 8657 UINT Size) = 0; 8658 8659 virtual void STDMETHODCALLTYPE EndEvent( void) = 0; 8660 8661 virtual HRESULT STDMETHODCALLTYPE Signal( 8662 ID3D12Fence *pFence, 8663 UINT64 Value) = 0; 8664 8665 virtual HRESULT STDMETHODCALLTYPE Wait( 8666 ID3D12Fence *pFence, 8667 UINT64 Value) = 0; 8668 8669 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( 8670 _Out_ UINT64 *pFrequency) = 0; 8671 8672 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( 8673 _Out_ UINT64 *pGPUTimestamp, 8674 _Out_ UINT64 *pCpuTimestamp) = 0; 8675 8676#if defined(_MSC_VER) || !defined(_WIN32) 8677 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 8678#else 8679 virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc( 8680 D3D12_COMMAND_QUEUE_DESC * RetVal) = 0; 8681#endif 8682 8683 }; 8684 8685 8686#else /* C style interface */ 8687 8688 typedef struct ID3D12CommandQueueVtbl 8689 { 8690 BEGIN_INTERFACE 8691 8692 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 8693 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 8694 ID3D12CommandQueue * This, 8695 REFIID riid, 8696 _COM_Outptr_ void **ppvObject); 8697 8698 DECLSPEC_XFGVIRT(IUnknown, AddRef) 8699 ULONG ( STDMETHODCALLTYPE *AddRef )( 8700 ID3D12CommandQueue * This); 8701 8702 DECLSPEC_XFGVIRT(IUnknown, Release) 8703 ULONG ( STDMETHODCALLTYPE *Release )( 8704 ID3D12CommandQueue * This); 8705 8706 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 8707 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 8708 ID3D12CommandQueue * This, 8709 _In_ REFGUID guid, 8710 _Inout_ UINT *pDataSize, 8711 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 8712 8713 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 8714 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 8715 ID3D12CommandQueue * This, 8716 _In_ REFGUID guid, 8717 _In_ UINT DataSize, 8718 _In_reads_bytes_opt_( DataSize ) const void *pData); 8719 8720 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 8721 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 8722 ID3D12CommandQueue * This, 8723 _In_ REFGUID guid, 8724 _In_opt_ const IUnknown *pData); 8725 8726 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 8727 HRESULT ( STDMETHODCALLTYPE *SetName )( 8728 ID3D12CommandQueue * This, 8729 _In_z_ LPCWSTR Name); 8730 8731 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 8732 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 8733 ID3D12CommandQueue * This, 8734 REFIID riid, 8735 _COM_Outptr_opt_ void **ppvDevice); 8736 8737 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) 8738 void ( STDMETHODCALLTYPE *UpdateTileMappings )( 8739 ID3D12CommandQueue * This, 8740 _In_ ID3D12Resource *pResource, 8741 UINT NumResourceRegions, 8742 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, 8743 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, 8744 _In_opt_ ID3D12Heap *pHeap, 8745 UINT NumRanges, 8746 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, 8747 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, 8748 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, 8749 D3D12_TILE_MAPPING_FLAGS Flags); 8750 8751 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) 8752 void ( STDMETHODCALLTYPE *CopyTileMappings )( 8753 ID3D12CommandQueue * This, 8754 _In_ ID3D12Resource *pDstResource, 8755 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, 8756 _In_ ID3D12Resource *pSrcResource, 8757 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, 8758 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, 8759 D3D12_TILE_MAPPING_FLAGS Flags); 8760 8761 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) 8762 void ( STDMETHODCALLTYPE *ExecuteCommandLists )( 8763 ID3D12CommandQueue * This, 8764 _In_ UINT NumCommandLists, 8765 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); 8766 8767 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) 8768 void ( STDMETHODCALLTYPE *SetMarker )( 8769 ID3D12CommandQueue * This, 8770 UINT Metadata, 8771 _In_reads_bytes_opt_(Size) const void *pData, 8772 UINT Size); 8773 8774 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) 8775 void ( STDMETHODCALLTYPE *BeginEvent )( 8776 ID3D12CommandQueue * This, 8777 UINT Metadata, 8778 _In_reads_bytes_opt_(Size) const void *pData, 8779 UINT Size); 8780 8781 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) 8782 void ( STDMETHODCALLTYPE *EndEvent )( 8783 ID3D12CommandQueue * This); 8784 8785 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) 8786 HRESULT ( STDMETHODCALLTYPE *Signal )( 8787 ID3D12CommandQueue * This, 8788 ID3D12Fence *pFence, 8789 UINT64 Value); 8790 8791 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) 8792 HRESULT ( STDMETHODCALLTYPE *Wait )( 8793 ID3D12CommandQueue * This, 8794 ID3D12Fence *pFence, 8795 UINT64 Value); 8796 8797 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) 8798 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( 8799 ID3D12CommandQueue * This, 8800 _Out_ UINT64 *pFrequency); 8801 8802 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) 8803 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( 8804 ID3D12CommandQueue * This, 8805 _Out_ UINT64 *pGPUTimestamp, 8806 _Out_ UINT64 *pCpuTimestamp); 8807 8808 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) 8809#if !defined(_WIN32) 8810 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( 8811 ID3D12CommandQueue * This); 8812 8813#else 8814 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( 8815 ID3D12CommandQueue * This, 8816 D3D12_COMMAND_QUEUE_DESC * RetVal); 8817 8818#endif 8819 8820 END_INTERFACE 8821 } ID3D12CommandQueueVtbl; 8822 8823 interface ID3D12CommandQueue 8824 { 8825 CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl; 8826 }; 8827 8828 8829 8830#ifdef COBJMACROS 8831 8832 8833#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \ 8834 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 8835 8836#define ID3D12CommandQueue_AddRef(This) \ 8837 ( (This)->lpVtbl -> AddRef(This) ) 8838 8839#define ID3D12CommandQueue_Release(This) \ 8840 ( (This)->lpVtbl -> Release(This) ) 8841 8842 8843#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \ 8844 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 8845 8846#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \ 8847 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 8848 8849#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \ 8850 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 8851 8852#define ID3D12CommandQueue_SetName(This,Name) \ 8853 ( (This)->lpVtbl -> SetName(This,Name) ) 8854 8855 8856#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \ 8857 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 8858 8859 8860 8861#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ 8862 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) 8863 8864#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ 8865 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) 8866 8867#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ 8868 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) 8869 8870#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \ 8871 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 8872 8873#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \ 8874 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 8875 8876#define ID3D12CommandQueue_EndEvent(This) \ 8877 ( (This)->lpVtbl -> EndEvent(This) ) 8878 8879#define ID3D12CommandQueue_Signal(This,pFence,Value) \ 8880 ( (This)->lpVtbl -> Signal(This,pFence,Value) ) 8881 8882#define ID3D12CommandQueue_Wait(This,pFence,Value) \ 8883 ( (This)->lpVtbl -> Wait(This,pFence,Value) ) 8884 8885#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \ 8886 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) 8887 8888#define ID3D12CommandQueue_GetClockCalibration(This,pGPUTimestamp,pCpuTimestamp) \ 8889 ( (This)->lpVtbl -> GetClockCalibration(This,pGPUTimestamp,pCpuTimestamp) ) 8890#if !defined(_WIN32) 8891 8892#define ID3D12CommandQueue_GetDesc(This) \ 8893 ( (This)->lpVtbl -> GetDesc(This) ) 8894#else 8895#define ID3D12CommandQueue_GetDesc(This,RetVal) \ 8896 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 8897#endif 8898 8899#endif /* COBJMACROS */ 8900 8901 8902#endif /* C style interface */ 8903 8904 8905 8906 8907#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ 8908 8909 8910/* interface __MIDL_itf_d3d12_0000_0020 */ 8911/* [local] */ 8912 8913#ifdef __midl 8914#ifndef LUID_DEFINED 8915#define LUID_DEFINED 1 8916typedef struct __LUID 8917 { 8918 DWORD LowPart; 8919 LONG HighPart; 8920 } LUID; 8921 8922typedef struct __LUID *PLUID; 8923 8924#endif 8925#endif 8926 8927 8928extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec; 8929extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec; 8930 8931#ifndef __ID3D12Device_INTERFACE_DEFINED__ 8932#define __ID3D12Device_INTERFACE_DEFINED__ 8933 8934/* interface ID3D12Device */ 8935/* [unique][local][object][uuid] */ 8936 8937 8938EXTERN_C const IID IID_ID3D12Device; 8939 8940#if defined(__cplusplus) && !defined(CINTERFACE) 8941 8942 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") 8943 ID3D12Device : public ID3D12Object 8944 { 8945 public: 8946 virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0; 8947 8948 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( 8949 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 8950 REFIID riid, 8951 _COM_Outptr_ void **ppCommandQueue) = 0; 8952 8953 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( 8954 _In_ D3D12_COMMAND_LIST_TYPE type, 8955 REFIID riid, 8956 _COM_Outptr_ void **ppCommandAllocator) = 0; 8957 8958 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( 8959 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 8960 REFIID riid, 8961 _COM_Outptr_ void **ppPipelineState) = 0; 8962 8963 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( 8964 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 8965 REFIID riid, 8966 _COM_Outptr_ void **ppPipelineState) = 0; 8967 8968 virtual HRESULT STDMETHODCALLTYPE CreateCommandList( 8969 _In_ UINT nodeMask, 8970 _In_ D3D12_COMMAND_LIST_TYPE type, 8971 _In_ ID3D12CommandAllocator *pCommandAllocator, 8972 _In_opt_ ID3D12PipelineState *pInitialState, 8973 REFIID riid, 8974 _COM_Outptr_ void **ppCommandList) = 0; 8975 8976 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( 8977 D3D12_FEATURE Feature, 8978 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 8979 UINT FeatureSupportDataSize) = 0; 8980 8981 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( 8982 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 8983 REFIID riid, 8984 _COM_Outptr_ void **ppvHeap) = 0; 8985 8986 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( 8987 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; 8988 8989 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( 8990 _In_ UINT nodeMask, 8991 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 8992 _In_ SIZE_T blobLengthInBytes, 8993 REFIID riid, 8994 _COM_Outptr_ void **ppvRootSignature) = 0; 8995 8996 virtual void STDMETHODCALLTYPE CreateConstantBufferView( 8997 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 8998 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 8999 9000 virtual void STDMETHODCALLTYPE CreateShaderResourceView( 9001 _In_opt_ ID3D12Resource *pResource, 9002 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 9003 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 9004 9005 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( 9006 _In_opt_ ID3D12Resource *pResource, 9007 _In_opt_ ID3D12Resource *pCounterResource, 9008 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 9009 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 9010 9011 virtual void STDMETHODCALLTYPE CreateRenderTargetView( 9012 _In_opt_ ID3D12Resource *pResource, 9013 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 9014 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 9015 9016 virtual void STDMETHODCALLTYPE CreateDepthStencilView( 9017 _In_opt_ ID3D12Resource *pResource, 9018 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 9019 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 9020 9021 virtual void STDMETHODCALLTYPE CreateSampler( 9022 _In_ const D3D12_SAMPLER_DESC *pDesc, 9023 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 9024 9025 virtual void STDMETHODCALLTYPE CopyDescriptors( 9026 _In_ UINT NumDestDescriptorRanges, 9027 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 9028 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 9029 _In_ UINT NumSrcDescriptorRanges, 9030 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 9031 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 9032 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; 9033 9034 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( 9035 _In_ UINT NumDescriptors, 9036 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 9037 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 9038 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; 9039 9040#if defined(_MSC_VER) || !defined(_WIN32) 9041 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( 9042 _In_ UINT visibleMask, 9043 _In_ UINT numResourceDescs, 9044 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; 9045#else 9046 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo( 9047 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 9048 _In_ UINT visibleMask, 9049 _In_ UINT numResourceDescs, 9050 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; 9051#endif 9052 9053#if defined(_MSC_VER) || !defined(_WIN32) 9054 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( 9055 _In_ UINT nodeMask, 9056 D3D12_HEAP_TYPE heapType) = 0; 9057#else 9058 virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties( 9059 D3D12_HEAP_PROPERTIES * RetVal, 9060 _In_ UINT nodeMask, 9061 D3D12_HEAP_TYPE heapType) = 0; 9062#endif 9063 9064 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( 9065 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 9066 D3D12_HEAP_FLAGS HeapFlags, 9067 _In_ const D3D12_RESOURCE_DESC *pDesc, 9068 D3D12_RESOURCE_STATES InitialResourceState, 9069 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9070 REFIID riidResource, 9071 _COM_Outptr_opt_ void **ppvResource) = 0; 9072 9073 virtual HRESULT STDMETHODCALLTYPE CreateHeap( 9074 _In_ const D3D12_HEAP_DESC *pDesc, 9075 REFIID riid, 9076 _COM_Outptr_opt_ void **ppvHeap) = 0; 9077 9078 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( 9079 _In_ ID3D12Heap *pHeap, 9080 UINT64 HeapOffset, 9081 _In_ const D3D12_RESOURCE_DESC *pDesc, 9082 D3D12_RESOURCE_STATES InitialState, 9083 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9084 REFIID riid, 9085 _COM_Outptr_opt_ void **ppvResource) = 0; 9086 9087 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( 9088 _In_ const D3D12_RESOURCE_DESC *pDesc, 9089 D3D12_RESOURCE_STATES InitialState, 9090 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9091 REFIID riid, 9092 _COM_Outptr_opt_ void **ppvResource) = 0; 9093 9094 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( 9095 _In_ ID3D12DeviceChild *pObject, 9096 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 9097 DWORD Access, 9098 _In_opt_ LPCWSTR Name, 9099 _Out_ HANDLE *pHandle) = 0; 9100 9101 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( 9102 _In_ HANDLE NTHandle, 9103 REFIID riid, 9104 _COM_Outptr_opt_ void **ppvObj) = 0; 9105 9106 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( 9107 _In_ LPCWSTR Name, 9108 DWORD Access, 9109 /* [annotation][out] */ 9110 _Out_ HANDLE *pNTHandle) = 0; 9111 9112 virtual HRESULT STDMETHODCALLTYPE MakeResident( 9113 UINT NumObjects, 9114 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; 9115 9116 virtual HRESULT STDMETHODCALLTYPE Evict( 9117 UINT NumObjects, 9118 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; 9119 9120 virtual HRESULT STDMETHODCALLTYPE CreateFence( 9121 UINT64 InitialValue, 9122 D3D12_FENCE_FLAGS Flags, 9123 REFIID riid, 9124 _COM_Outptr_ void **ppFence) = 0; 9125 9126 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; 9127 9128 virtual void STDMETHODCALLTYPE GetCopyableFootprints( 9129 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 9130 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 9131 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 9132 UINT64 BaseOffset, 9133 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 9134 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 9135 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 9136 _Out_opt_ UINT64 *pTotalBytes) = 0; 9137 9138 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( 9139 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 9140 REFIID riid, 9141 _COM_Outptr_opt_ void **ppvHeap) = 0; 9142 9143 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( 9144 BOOL Enable) = 0; 9145 9146 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( 9147 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 9148 _In_opt_ ID3D12RootSignature *pRootSignature, 9149 REFIID riid, 9150 _COM_Outptr_opt_ void **ppvCommandSignature) = 0; 9151 9152 virtual void STDMETHODCALLTYPE GetResourceTiling( 9153 _In_ ID3D12Resource *pTiledResource, 9154 _Out_opt_ UINT *pNumTilesForEntireResource, 9155 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 9156 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 9157 _Inout_opt_ UINT *pNumSubresourceTilings, 9158 _In_ UINT FirstSubresourceTilingToGet, 9159 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0; 9160 9161#if defined(_MSC_VER) || !defined(_WIN32) 9162 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0; 9163#else 9164 virtual LUID *STDMETHODCALLTYPE GetAdapterLuid( 9165 LUID * RetVal) = 0; 9166#endif 9167 9168 }; 9169 9170 9171#else /* C style interface */ 9172 9173 typedef struct ID3D12DeviceVtbl 9174 { 9175 BEGIN_INTERFACE 9176 9177 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 9178 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 9179 ID3D12Device * This, 9180 REFIID riid, 9181 _COM_Outptr_ void **ppvObject); 9182 9183 DECLSPEC_XFGVIRT(IUnknown, AddRef) 9184 ULONG ( STDMETHODCALLTYPE *AddRef )( 9185 ID3D12Device * This); 9186 9187 DECLSPEC_XFGVIRT(IUnknown, Release) 9188 ULONG ( STDMETHODCALLTYPE *Release )( 9189 ID3D12Device * This); 9190 9191 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 9192 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 9193 ID3D12Device * This, 9194 _In_ REFGUID guid, 9195 _Inout_ UINT *pDataSize, 9196 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 9197 9198 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 9199 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 9200 ID3D12Device * This, 9201 _In_ REFGUID guid, 9202 _In_ UINT DataSize, 9203 _In_reads_bytes_opt_( DataSize ) const void *pData); 9204 9205 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 9206 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 9207 ID3D12Device * This, 9208 _In_ REFGUID guid, 9209 _In_opt_ const IUnknown *pData); 9210 9211 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 9212 HRESULT ( STDMETHODCALLTYPE *SetName )( 9213 ID3D12Device * This, 9214 _In_z_ LPCWSTR Name); 9215 9216 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 9217 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 9218 ID3D12Device * This); 9219 9220 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 9221 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 9222 ID3D12Device * This, 9223 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 9224 REFIID riid, 9225 _COM_Outptr_ void **ppCommandQueue); 9226 9227 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 9228 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 9229 ID3D12Device * This, 9230 _In_ D3D12_COMMAND_LIST_TYPE type, 9231 REFIID riid, 9232 _COM_Outptr_ void **ppCommandAllocator); 9233 9234 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 9235 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 9236 ID3D12Device * This, 9237 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 9238 REFIID riid, 9239 _COM_Outptr_ void **ppPipelineState); 9240 9241 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 9242 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 9243 ID3D12Device * This, 9244 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 9245 REFIID riid, 9246 _COM_Outptr_ void **ppPipelineState); 9247 9248 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 9249 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 9250 ID3D12Device * This, 9251 _In_ UINT nodeMask, 9252 _In_ D3D12_COMMAND_LIST_TYPE type, 9253 _In_ ID3D12CommandAllocator *pCommandAllocator, 9254 _In_opt_ ID3D12PipelineState *pInitialState, 9255 REFIID riid, 9256 _COM_Outptr_ void **ppCommandList); 9257 9258 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 9259 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 9260 ID3D12Device * This, 9261 D3D12_FEATURE Feature, 9262 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 9263 UINT FeatureSupportDataSize); 9264 9265 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 9266 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 9267 ID3D12Device * This, 9268 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 9269 REFIID riid, 9270 _COM_Outptr_ void **ppvHeap); 9271 9272 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 9273 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 9274 ID3D12Device * This, 9275 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 9276 9277 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 9278 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 9279 ID3D12Device * This, 9280 _In_ UINT nodeMask, 9281 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 9282 _In_ SIZE_T blobLengthInBytes, 9283 REFIID riid, 9284 _COM_Outptr_ void **ppvRootSignature); 9285 9286 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 9287 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 9288 ID3D12Device * This, 9289 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 9290 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9291 9292 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 9293 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 9294 ID3D12Device * This, 9295 _In_opt_ ID3D12Resource *pResource, 9296 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 9297 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9298 9299 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 9300 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 9301 ID3D12Device * This, 9302 _In_opt_ ID3D12Resource *pResource, 9303 _In_opt_ ID3D12Resource *pCounterResource, 9304 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 9305 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9306 9307 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 9308 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 9309 ID3D12Device * This, 9310 _In_opt_ ID3D12Resource *pResource, 9311 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 9312 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9313 9314 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 9315 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 9316 ID3D12Device * This, 9317 _In_opt_ ID3D12Resource *pResource, 9318 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 9319 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9320 9321 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 9322 void ( STDMETHODCALLTYPE *CreateSampler )( 9323 ID3D12Device * This, 9324 _In_ const D3D12_SAMPLER_DESC *pDesc, 9325 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 9326 9327 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 9328 void ( STDMETHODCALLTYPE *CopyDescriptors )( 9329 ID3D12Device * This, 9330 _In_ UINT NumDestDescriptorRanges, 9331 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 9332 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 9333 _In_ UINT NumSrcDescriptorRanges, 9334 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 9335 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 9336 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 9337 9338 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 9339 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 9340 ID3D12Device * This, 9341 _In_ UINT NumDescriptors, 9342 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 9343 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 9344 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 9345 9346 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 9347#if !defined(_WIN32) 9348 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 9349 ID3D12Device * This, 9350 _In_ UINT visibleMask, 9351 _In_ UINT numResourceDescs, 9352 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 9353 9354#else 9355 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 9356 ID3D12Device * This, 9357 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 9358 _In_ UINT visibleMask, 9359 _In_ UINT numResourceDescs, 9360 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 9361 9362#endif 9363 9364 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 9365#if !defined(_WIN32) 9366 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 9367 ID3D12Device * This, 9368 _In_ UINT nodeMask, 9369 D3D12_HEAP_TYPE heapType); 9370 9371#else 9372 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 9373 ID3D12Device * This, 9374 D3D12_HEAP_PROPERTIES * RetVal, 9375 _In_ UINT nodeMask, 9376 D3D12_HEAP_TYPE heapType); 9377 9378#endif 9379 9380 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 9381 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 9382 ID3D12Device * This, 9383 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 9384 D3D12_HEAP_FLAGS HeapFlags, 9385 _In_ const D3D12_RESOURCE_DESC *pDesc, 9386 D3D12_RESOURCE_STATES InitialResourceState, 9387 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9388 REFIID riidResource, 9389 _COM_Outptr_opt_ void **ppvResource); 9390 9391 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 9392 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 9393 ID3D12Device * This, 9394 _In_ const D3D12_HEAP_DESC *pDesc, 9395 REFIID riid, 9396 _COM_Outptr_opt_ void **ppvHeap); 9397 9398 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 9399 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 9400 ID3D12Device * This, 9401 _In_ ID3D12Heap *pHeap, 9402 UINT64 HeapOffset, 9403 _In_ const D3D12_RESOURCE_DESC *pDesc, 9404 D3D12_RESOURCE_STATES InitialState, 9405 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9406 REFIID riid, 9407 _COM_Outptr_opt_ void **ppvResource); 9408 9409 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 9410 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 9411 ID3D12Device * This, 9412 _In_ const D3D12_RESOURCE_DESC *pDesc, 9413 D3D12_RESOURCE_STATES InitialState, 9414 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 9415 REFIID riid, 9416 _COM_Outptr_opt_ void **ppvResource); 9417 9418 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 9419 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 9420 ID3D12Device * This, 9421 _In_ ID3D12DeviceChild *pObject, 9422 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 9423 DWORD Access, 9424 _In_opt_ LPCWSTR Name, 9425 _Out_ HANDLE *pHandle); 9426 9427 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 9428 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 9429 ID3D12Device * This, 9430 _In_ HANDLE NTHandle, 9431 REFIID riid, 9432 _COM_Outptr_opt_ void **ppvObj); 9433 9434 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 9435 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 9436 ID3D12Device * This, 9437 _In_ LPCWSTR Name, 9438 DWORD Access, 9439 /* [annotation][out] */ 9440 _Out_ HANDLE *pNTHandle); 9441 9442 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 9443 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 9444 ID3D12Device * This, 9445 UINT NumObjects, 9446 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 9447 9448 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 9449 HRESULT ( STDMETHODCALLTYPE *Evict )( 9450 ID3D12Device * This, 9451 UINT NumObjects, 9452 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 9453 9454 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 9455 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 9456 ID3D12Device * This, 9457 UINT64 InitialValue, 9458 D3D12_FENCE_FLAGS Flags, 9459 REFIID riid, 9460 _COM_Outptr_ void **ppFence); 9461 9462 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 9463 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 9464 ID3D12Device * This); 9465 9466 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 9467 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 9468 ID3D12Device * This, 9469 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 9470 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 9471 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 9472 UINT64 BaseOffset, 9473 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 9474 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 9475 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 9476 _Out_opt_ UINT64 *pTotalBytes); 9477 9478 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 9479 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 9480 ID3D12Device * This, 9481 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 9482 REFIID riid, 9483 _COM_Outptr_opt_ void **ppvHeap); 9484 9485 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 9486 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 9487 ID3D12Device * This, 9488 BOOL Enable); 9489 9490 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 9491 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 9492 ID3D12Device * This, 9493 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 9494 _In_opt_ ID3D12RootSignature *pRootSignature, 9495 REFIID riid, 9496 _COM_Outptr_opt_ void **ppvCommandSignature); 9497 9498 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 9499 void ( STDMETHODCALLTYPE *GetResourceTiling )( 9500 ID3D12Device * This, 9501 _In_ ID3D12Resource *pTiledResource, 9502 _Out_opt_ UINT *pNumTilesForEntireResource, 9503 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 9504 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 9505 _Inout_opt_ UINT *pNumSubresourceTilings, 9506 _In_ UINT FirstSubresourceTilingToGet, 9507 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 9508 9509 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 9510#if !defined(_WIN32) 9511 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 9512 ID3D12Device * This); 9513 9514#else 9515 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 9516 ID3D12Device * This, 9517 LUID * RetVal); 9518 9519#endif 9520 9521 END_INTERFACE 9522 } ID3D12DeviceVtbl; 9523 9524 interface ID3D12Device 9525 { 9526 CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl; 9527 }; 9528 9529 9530 9531#ifdef COBJMACROS 9532 9533 9534#define ID3D12Device_QueryInterface(This,riid,ppvObject) \ 9535 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 9536 9537#define ID3D12Device_AddRef(This) \ 9538 ( (This)->lpVtbl -> AddRef(This) ) 9539 9540#define ID3D12Device_Release(This) \ 9541 ( (This)->lpVtbl -> Release(This) ) 9542 9543 9544#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \ 9545 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 9546 9547#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \ 9548 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 9549 9550#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \ 9551 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 9552 9553#define ID3D12Device_SetName(This,Name) \ 9554 ( (This)->lpVtbl -> SetName(This,Name) ) 9555 9556 9557#define ID3D12Device_GetNodeCount(This) \ 9558 ( (This)->lpVtbl -> GetNodeCount(This) ) 9559 9560#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 9561 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 9562 9563#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 9564 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 9565 9566#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 9567 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 9568 9569#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 9570 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 9571 9572#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 9573 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 9574 9575#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 9576 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 9577 9578#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 9579 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 9580 9581#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 9582 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 9583 9584#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 9585 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 9586 9587#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 9588 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 9589 9590#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 9591 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 9592 9593#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 9594 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 9595 9596#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 9597 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 9598 9599#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 9600 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 9601 9602#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \ 9603 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 9604 9605#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 9606 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 9607 9608#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 9609 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 9610#if !defined(_WIN32) 9611 9612#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 9613 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 9614#else 9615#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 9616 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 9617#endif 9618#if !defined(_WIN32) 9619 9620#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \ 9621 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 9622#else 9623#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 9624 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 9625#endif 9626 9627#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 9628 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 9629 9630#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \ 9631 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 9632 9633#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 9634 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 9635 9636#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 9637 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 9638 9639#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 9640 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 9641 9642#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 9643 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 9644 9645#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 9646 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 9647 9648#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \ 9649 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 9650 9651#define ID3D12Device_Evict(This,NumObjects,ppObjects) \ 9652 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 9653 9654#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 9655 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 9656 9657#define ID3D12Device_GetDeviceRemovedReason(This) \ 9658 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 9659 9660#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 9661 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 9662 9663#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 9664 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 9665 9666#define ID3D12Device_SetStablePowerState(This,Enable) \ 9667 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 9668 9669#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 9670 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 9671 9672#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 9673 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 9674#if !defined(_WIN32) 9675 9676#define ID3D12Device_GetAdapterLuid(This) \ 9677 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 9678#else 9679#define ID3D12Device_GetAdapterLuid(This,RetVal) \ 9680 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 9681#endif 9682 9683#endif /* COBJMACROS */ 9684 9685 9686#endif /* C style interface */ 9687 9688 9689 9690 9691#endif /* __ID3D12Device_INTERFACE_DEFINED__ */ 9692 9693 9694#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__ 9695#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__ 9696 9697/* interface ID3D12PipelineLibrary */ 9698/* [unique][local][object][uuid] */ 9699 9700 9701EXTERN_C const IID IID_ID3D12PipelineLibrary; 9702 9703#if defined(__cplusplus) && !defined(CINTERFACE) 9704 9705 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f") 9706 ID3D12PipelineLibrary : public ID3D12DeviceChild 9707 { 9708 public: 9709 virtual HRESULT STDMETHODCALLTYPE StorePipeline( 9710 _In_opt_ LPCWSTR pName, 9711 _In_ ID3D12PipelineState *pPipeline) = 0; 9712 9713 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline( 9714 _In_ LPCWSTR pName, 9715 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 9716 REFIID riid, 9717 _COM_Outptr_ void **ppPipelineState) = 0; 9718 9719 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline( 9720 _In_ LPCWSTR pName, 9721 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 9722 REFIID riid, 9723 _COM_Outptr_ void **ppPipelineState) = 0; 9724 9725 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0; 9726 9727 virtual HRESULT STDMETHODCALLTYPE Serialize( 9728 _Out_writes_(DataSizeInBytes) void *pData, 9729 SIZE_T DataSizeInBytes) = 0; 9730 9731 }; 9732 9733 9734#else /* C style interface */ 9735 9736 typedef struct ID3D12PipelineLibraryVtbl 9737 { 9738 BEGIN_INTERFACE 9739 9740 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 9741 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 9742 ID3D12PipelineLibrary * This, 9743 REFIID riid, 9744 _COM_Outptr_ void **ppvObject); 9745 9746 DECLSPEC_XFGVIRT(IUnknown, AddRef) 9747 ULONG ( STDMETHODCALLTYPE *AddRef )( 9748 ID3D12PipelineLibrary * This); 9749 9750 DECLSPEC_XFGVIRT(IUnknown, Release) 9751 ULONG ( STDMETHODCALLTYPE *Release )( 9752 ID3D12PipelineLibrary * This); 9753 9754 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 9755 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 9756 ID3D12PipelineLibrary * This, 9757 _In_ REFGUID guid, 9758 _Inout_ UINT *pDataSize, 9759 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 9760 9761 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 9762 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 9763 ID3D12PipelineLibrary * This, 9764 _In_ REFGUID guid, 9765 _In_ UINT DataSize, 9766 _In_reads_bytes_opt_( DataSize ) const void *pData); 9767 9768 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 9769 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 9770 ID3D12PipelineLibrary * This, 9771 _In_ REFGUID guid, 9772 _In_opt_ const IUnknown *pData); 9773 9774 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 9775 HRESULT ( STDMETHODCALLTYPE *SetName )( 9776 ID3D12PipelineLibrary * This, 9777 _In_z_ LPCWSTR Name); 9778 9779 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 9780 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 9781 ID3D12PipelineLibrary * This, 9782 REFIID riid, 9783 _COM_Outptr_opt_ void **ppvDevice); 9784 9785 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) 9786 HRESULT ( STDMETHODCALLTYPE *StorePipeline )( 9787 ID3D12PipelineLibrary * This, 9788 _In_opt_ LPCWSTR pName, 9789 _In_ ID3D12PipelineState *pPipeline); 9790 9791 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) 9792 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( 9793 ID3D12PipelineLibrary * This, 9794 _In_ LPCWSTR pName, 9795 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 9796 REFIID riid, 9797 _COM_Outptr_ void **ppPipelineState); 9798 9799 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) 9800 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( 9801 ID3D12PipelineLibrary * This, 9802 _In_ LPCWSTR pName, 9803 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 9804 REFIID riid, 9805 _COM_Outptr_ void **ppPipelineState); 9806 9807 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) 9808 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( 9809 ID3D12PipelineLibrary * This); 9810 9811 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) 9812 HRESULT ( STDMETHODCALLTYPE *Serialize )( 9813 ID3D12PipelineLibrary * This, 9814 _Out_writes_(DataSizeInBytes) void *pData, 9815 SIZE_T DataSizeInBytes); 9816 9817 END_INTERFACE 9818 } ID3D12PipelineLibraryVtbl; 9819 9820 interface ID3D12PipelineLibrary 9821 { 9822 CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl; 9823 }; 9824 9825 9826 9827#ifdef COBJMACROS 9828 9829 9830#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \ 9831 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 9832 9833#define ID3D12PipelineLibrary_AddRef(This) \ 9834 ( (This)->lpVtbl -> AddRef(This) ) 9835 9836#define ID3D12PipelineLibrary_Release(This) \ 9837 ( (This)->lpVtbl -> Release(This) ) 9838 9839 9840#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \ 9841 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 9842 9843#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \ 9844 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 9845 9846#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \ 9847 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 9848 9849#define ID3D12PipelineLibrary_SetName(This,Name) \ 9850 ( (This)->lpVtbl -> SetName(This,Name) ) 9851 9852 9853#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \ 9854 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 9855 9856 9857#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \ 9858 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) 9859 9860#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ 9861 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) 9862 9863#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ 9864 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) 9865 9866#define ID3D12PipelineLibrary_GetSerializedSize(This) \ 9867 ( (This)->lpVtbl -> GetSerializedSize(This) ) 9868 9869#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \ 9870 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) 9871 9872#endif /* COBJMACROS */ 9873 9874 9875#endif /* C style interface */ 9876 9877 9878 9879 9880#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */ 9881 9882 9883#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ 9884#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ 9885 9886/* interface ID3D12PipelineLibrary1 */ 9887/* [unique][local][object][uuid] */ 9888 9889 9890EXTERN_C const IID IID_ID3D12PipelineLibrary1; 9891 9892#if defined(__cplusplus) && !defined(CINTERFACE) 9893 9894 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3") 9895 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary 9896 { 9897 public: 9898 virtual HRESULT STDMETHODCALLTYPE LoadPipeline( 9899 _In_ LPCWSTR pName, 9900 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 9901 REFIID riid, 9902 _COM_Outptr_ void **ppPipelineState) = 0; 9903 9904 }; 9905 9906 9907#else /* C style interface */ 9908 9909 typedef struct ID3D12PipelineLibrary1Vtbl 9910 { 9911 BEGIN_INTERFACE 9912 9913 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 9914 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 9915 ID3D12PipelineLibrary1 * This, 9916 REFIID riid, 9917 _COM_Outptr_ void **ppvObject); 9918 9919 DECLSPEC_XFGVIRT(IUnknown, AddRef) 9920 ULONG ( STDMETHODCALLTYPE *AddRef )( 9921 ID3D12PipelineLibrary1 * This); 9922 9923 DECLSPEC_XFGVIRT(IUnknown, Release) 9924 ULONG ( STDMETHODCALLTYPE *Release )( 9925 ID3D12PipelineLibrary1 * This); 9926 9927 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 9928 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 9929 ID3D12PipelineLibrary1 * This, 9930 _In_ REFGUID guid, 9931 _Inout_ UINT *pDataSize, 9932 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 9933 9934 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 9935 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 9936 ID3D12PipelineLibrary1 * This, 9937 _In_ REFGUID guid, 9938 _In_ UINT DataSize, 9939 _In_reads_bytes_opt_( DataSize ) const void *pData); 9940 9941 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 9942 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 9943 ID3D12PipelineLibrary1 * This, 9944 _In_ REFGUID guid, 9945 _In_opt_ const IUnknown *pData); 9946 9947 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 9948 HRESULT ( STDMETHODCALLTYPE *SetName )( 9949 ID3D12PipelineLibrary1 * This, 9950 _In_z_ LPCWSTR Name); 9951 9952 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 9953 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 9954 ID3D12PipelineLibrary1 * This, 9955 REFIID riid, 9956 _COM_Outptr_opt_ void **ppvDevice); 9957 9958 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) 9959 HRESULT ( STDMETHODCALLTYPE *StorePipeline )( 9960 ID3D12PipelineLibrary1 * This, 9961 _In_opt_ LPCWSTR pName, 9962 _In_ ID3D12PipelineState *pPipeline); 9963 9964 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) 9965 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( 9966 ID3D12PipelineLibrary1 * This, 9967 _In_ LPCWSTR pName, 9968 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 9969 REFIID riid, 9970 _COM_Outptr_ void **ppPipelineState); 9971 9972 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) 9973 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( 9974 ID3D12PipelineLibrary1 * This, 9975 _In_ LPCWSTR pName, 9976 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 9977 REFIID riid, 9978 _COM_Outptr_ void **ppPipelineState); 9979 9980 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) 9981 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( 9982 ID3D12PipelineLibrary1 * This); 9983 9984 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) 9985 HRESULT ( STDMETHODCALLTYPE *Serialize )( 9986 ID3D12PipelineLibrary1 * This, 9987 _Out_writes_(DataSizeInBytes) void *pData, 9988 SIZE_T DataSizeInBytes); 9989 9990 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline) 9991 HRESULT ( STDMETHODCALLTYPE *LoadPipeline )( 9992 ID3D12PipelineLibrary1 * This, 9993 _In_ LPCWSTR pName, 9994 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 9995 REFIID riid, 9996 _COM_Outptr_ void **ppPipelineState); 9997 9998 END_INTERFACE 9999 } ID3D12PipelineLibrary1Vtbl; 10000 10001 interface ID3D12PipelineLibrary1 10002 { 10003 CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl; 10004 }; 10005 10006 10007 10008#ifdef COBJMACROS 10009 10010 10011#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \ 10012 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 10013 10014#define ID3D12PipelineLibrary1_AddRef(This) \ 10015 ( (This)->lpVtbl -> AddRef(This) ) 10016 10017#define ID3D12PipelineLibrary1_Release(This) \ 10018 ( (This)->lpVtbl -> Release(This) ) 10019 10020 10021#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \ 10022 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 10023 10024#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \ 10025 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 10026 10027#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \ 10028 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 10029 10030#define ID3D12PipelineLibrary1_SetName(This,Name) \ 10031 ( (This)->lpVtbl -> SetName(This,Name) ) 10032 10033 10034#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \ 10035 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 10036 10037 10038#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \ 10039 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) 10040 10041#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ 10042 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) 10043 10044#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ 10045 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) 10046 10047#define ID3D12PipelineLibrary1_GetSerializedSize(This) \ 10048 ( (This)->lpVtbl -> GetSerializedSize(This) ) 10049 10050#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \ 10051 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) 10052 10053 10054#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \ 10055 ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) ) 10056 10057#endif /* COBJMACROS */ 10058 10059 10060#endif /* C style interface */ 10061 10062 10063 10064 10065#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ 10066 10067 10068/* interface __MIDL_itf_d3d12_0000_0023 */ 10069/* [local] */ 10070 10071typedef 10072enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS 10073 { 10074 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0, 10075 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, 10076 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0 10077 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; 10078 10079DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS ) 10080typedef 10081enum D3D12_RESIDENCY_PRIORITY 10082 { 10083 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, 10084 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, 10085 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, 10086 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, 10087 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 10088 } D3D12_RESIDENCY_PRIORITY; 10089 10090 10091 10092extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec; 10093extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec; 10094 10095#ifndef __ID3D12Device1_INTERFACE_DEFINED__ 10096#define __ID3D12Device1_INTERFACE_DEFINED__ 10097 10098/* interface ID3D12Device1 */ 10099/* [unique][local][object][uuid] */ 10100 10101 10102EXTERN_C const IID IID_ID3D12Device1; 10103 10104#if defined(__cplusplus) && !defined(CINTERFACE) 10105 10106 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e") 10107 ID3D12Device1 : public ID3D12Device 10108 { 10109 public: 10110 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary( 10111 _In_reads_(BlobLength) const void *pLibraryBlob, 10112 SIZE_T BlobLength, 10113 REFIID riid, 10114 _COM_Outptr_ void **ppPipelineLibrary) = 0; 10115 10116 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion( 10117 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 10118 _In_reads_(NumFences) const UINT64 *pFenceValues, 10119 UINT NumFences, 10120 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 10121 HANDLE hEvent) = 0; 10122 10123 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority( 10124 UINT NumObjects, 10125 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 10126 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0; 10127 10128 }; 10129 10130 10131#else /* C style interface */ 10132 10133 typedef struct ID3D12Device1Vtbl 10134 { 10135 BEGIN_INTERFACE 10136 10137 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 10138 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 10139 ID3D12Device1 * This, 10140 REFIID riid, 10141 _COM_Outptr_ void **ppvObject); 10142 10143 DECLSPEC_XFGVIRT(IUnknown, AddRef) 10144 ULONG ( STDMETHODCALLTYPE *AddRef )( 10145 ID3D12Device1 * This); 10146 10147 DECLSPEC_XFGVIRT(IUnknown, Release) 10148 ULONG ( STDMETHODCALLTYPE *Release )( 10149 ID3D12Device1 * This); 10150 10151 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 10152 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 10153 ID3D12Device1 * This, 10154 _In_ REFGUID guid, 10155 _Inout_ UINT *pDataSize, 10156 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 10157 10158 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 10159 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 10160 ID3D12Device1 * This, 10161 _In_ REFGUID guid, 10162 _In_ UINT DataSize, 10163 _In_reads_bytes_opt_( DataSize ) const void *pData); 10164 10165 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 10166 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 10167 ID3D12Device1 * This, 10168 _In_ REFGUID guid, 10169 _In_opt_ const IUnknown *pData); 10170 10171 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 10172 HRESULT ( STDMETHODCALLTYPE *SetName )( 10173 ID3D12Device1 * This, 10174 _In_z_ LPCWSTR Name); 10175 10176 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 10177 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 10178 ID3D12Device1 * This); 10179 10180 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 10181 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 10182 ID3D12Device1 * This, 10183 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 10184 REFIID riid, 10185 _COM_Outptr_ void **ppCommandQueue); 10186 10187 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 10188 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 10189 ID3D12Device1 * This, 10190 _In_ D3D12_COMMAND_LIST_TYPE type, 10191 REFIID riid, 10192 _COM_Outptr_ void **ppCommandAllocator); 10193 10194 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 10195 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 10196 ID3D12Device1 * This, 10197 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 10198 REFIID riid, 10199 _COM_Outptr_ void **ppPipelineState); 10200 10201 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 10202 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 10203 ID3D12Device1 * This, 10204 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 10205 REFIID riid, 10206 _COM_Outptr_ void **ppPipelineState); 10207 10208 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 10209 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 10210 ID3D12Device1 * This, 10211 _In_ UINT nodeMask, 10212 _In_ D3D12_COMMAND_LIST_TYPE type, 10213 _In_ ID3D12CommandAllocator *pCommandAllocator, 10214 _In_opt_ ID3D12PipelineState *pInitialState, 10215 REFIID riid, 10216 _COM_Outptr_ void **ppCommandList); 10217 10218 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 10219 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 10220 ID3D12Device1 * This, 10221 D3D12_FEATURE Feature, 10222 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 10223 UINT FeatureSupportDataSize); 10224 10225 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 10226 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 10227 ID3D12Device1 * This, 10228 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 10229 REFIID riid, 10230 _COM_Outptr_ void **ppvHeap); 10231 10232 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 10233 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 10234 ID3D12Device1 * This, 10235 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 10236 10237 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 10238 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 10239 ID3D12Device1 * This, 10240 _In_ UINT nodeMask, 10241 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 10242 _In_ SIZE_T blobLengthInBytes, 10243 REFIID riid, 10244 _COM_Outptr_ void **ppvRootSignature); 10245 10246 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 10247 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 10248 ID3D12Device1 * This, 10249 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 10250 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10251 10252 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 10253 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 10254 ID3D12Device1 * This, 10255 _In_opt_ ID3D12Resource *pResource, 10256 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 10257 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10258 10259 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 10260 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 10261 ID3D12Device1 * This, 10262 _In_opt_ ID3D12Resource *pResource, 10263 _In_opt_ ID3D12Resource *pCounterResource, 10264 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 10265 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10266 10267 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 10268 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 10269 ID3D12Device1 * This, 10270 _In_opt_ ID3D12Resource *pResource, 10271 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 10272 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10273 10274 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 10275 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 10276 ID3D12Device1 * This, 10277 _In_opt_ ID3D12Resource *pResource, 10278 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 10279 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10280 10281 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 10282 void ( STDMETHODCALLTYPE *CreateSampler )( 10283 ID3D12Device1 * This, 10284 _In_ const D3D12_SAMPLER_DESC *pDesc, 10285 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10286 10287 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 10288 void ( STDMETHODCALLTYPE *CopyDescriptors )( 10289 ID3D12Device1 * This, 10290 _In_ UINT NumDestDescriptorRanges, 10291 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 10292 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 10293 _In_ UINT NumSrcDescriptorRanges, 10294 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 10295 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 10296 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 10297 10298 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 10299 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 10300 ID3D12Device1 * This, 10301 _In_ UINT NumDescriptors, 10302 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 10303 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 10304 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 10305 10306 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 10307#if !defined(_WIN32) 10308 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 10309 ID3D12Device1 * This, 10310 _In_ UINT visibleMask, 10311 _In_ UINT numResourceDescs, 10312 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 10313 10314#else 10315 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 10316 ID3D12Device1 * This, 10317 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 10318 _In_ UINT visibleMask, 10319 _In_ UINT numResourceDescs, 10320 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 10321 10322#endif 10323 10324 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 10325#if !defined(_WIN32) 10326 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 10327 ID3D12Device1 * This, 10328 _In_ UINT nodeMask, 10329 D3D12_HEAP_TYPE heapType); 10330 10331#else 10332 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 10333 ID3D12Device1 * This, 10334 D3D12_HEAP_PROPERTIES * RetVal, 10335 _In_ UINT nodeMask, 10336 D3D12_HEAP_TYPE heapType); 10337 10338#endif 10339 10340 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 10341 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 10342 ID3D12Device1 * This, 10343 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 10344 D3D12_HEAP_FLAGS HeapFlags, 10345 _In_ const D3D12_RESOURCE_DESC *pDesc, 10346 D3D12_RESOURCE_STATES InitialResourceState, 10347 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10348 REFIID riidResource, 10349 _COM_Outptr_opt_ void **ppvResource); 10350 10351 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 10352 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 10353 ID3D12Device1 * This, 10354 _In_ const D3D12_HEAP_DESC *pDesc, 10355 REFIID riid, 10356 _COM_Outptr_opt_ void **ppvHeap); 10357 10358 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 10359 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 10360 ID3D12Device1 * This, 10361 _In_ ID3D12Heap *pHeap, 10362 UINT64 HeapOffset, 10363 _In_ const D3D12_RESOURCE_DESC *pDesc, 10364 D3D12_RESOURCE_STATES InitialState, 10365 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10366 REFIID riid, 10367 _COM_Outptr_opt_ void **ppvResource); 10368 10369 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 10370 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 10371 ID3D12Device1 * This, 10372 _In_ const D3D12_RESOURCE_DESC *pDesc, 10373 D3D12_RESOURCE_STATES InitialState, 10374 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10375 REFIID riid, 10376 _COM_Outptr_opt_ void **ppvResource); 10377 10378 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 10379 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 10380 ID3D12Device1 * This, 10381 _In_ ID3D12DeviceChild *pObject, 10382 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 10383 DWORD Access, 10384 _In_opt_ LPCWSTR Name, 10385 _Out_ HANDLE *pHandle); 10386 10387 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 10388 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 10389 ID3D12Device1 * This, 10390 _In_ HANDLE NTHandle, 10391 REFIID riid, 10392 _COM_Outptr_opt_ void **ppvObj); 10393 10394 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 10395 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 10396 ID3D12Device1 * This, 10397 _In_ LPCWSTR Name, 10398 DWORD Access, 10399 /* [annotation][out] */ 10400 _Out_ HANDLE *pNTHandle); 10401 10402 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 10403 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 10404 ID3D12Device1 * This, 10405 UINT NumObjects, 10406 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 10407 10408 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 10409 HRESULT ( STDMETHODCALLTYPE *Evict )( 10410 ID3D12Device1 * This, 10411 UINT NumObjects, 10412 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 10413 10414 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 10415 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 10416 ID3D12Device1 * This, 10417 UINT64 InitialValue, 10418 D3D12_FENCE_FLAGS Flags, 10419 REFIID riid, 10420 _COM_Outptr_ void **ppFence); 10421 10422 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 10423 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 10424 ID3D12Device1 * This); 10425 10426 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 10427 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 10428 ID3D12Device1 * This, 10429 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 10430 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 10431 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 10432 UINT64 BaseOffset, 10433 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 10434 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 10435 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 10436 _Out_opt_ UINT64 *pTotalBytes); 10437 10438 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 10439 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 10440 ID3D12Device1 * This, 10441 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 10442 REFIID riid, 10443 _COM_Outptr_opt_ void **ppvHeap); 10444 10445 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 10446 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 10447 ID3D12Device1 * This, 10448 BOOL Enable); 10449 10450 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 10451 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 10452 ID3D12Device1 * This, 10453 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 10454 _In_opt_ ID3D12RootSignature *pRootSignature, 10455 REFIID riid, 10456 _COM_Outptr_opt_ void **ppvCommandSignature); 10457 10458 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 10459 void ( STDMETHODCALLTYPE *GetResourceTiling )( 10460 ID3D12Device1 * This, 10461 _In_ ID3D12Resource *pTiledResource, 10462 _Out_opt_ UINT *pNumTilesForEntireResource, 10463 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 10464 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 10465 _Inout_opt_ UINT *pNumSubresourceTilings, 10466 _In_ UINT FirstSubresourceTilingToGet, 10467 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 10468 10469 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 10470#if !defined(_WIN32) 10471 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 10472 ID3D12Device1 * This); 10473 10474#else 10475 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 10476 ID3D12Device1 * This, 10477 LUID * RetVal); 10478 10479#endif 10480 10481 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 10482 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 10483 ID3D12Device1 * This, 10484 _In_reads_(BlobLength) const void *pLibraryBlob, 10485 SIZE_T BlobLength, 10486 REFIID riid, 10487 _COM_Outptr_ void **ppPipelineLibrary); 10488 10489 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 10490 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 10491 ID3D12Device1 * This, 10492 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 10493 _In_reads_(NumFences) const UINT64 *pFenceValues, 10494 UINT NumFences, 10495 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 10496 HANDLE hEvent); 10497 10498 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 10499 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 10500 ID3D12Device1 * This, 10501 UINT NumObjects, 10502 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 10503 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 10504 10505 END_INTERFACE 10506 } ID3D12Device1Vtbl; 10507 10508 interface ID3D12Device1 10509 { 10510 CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl; 10511 }; 10512 10513 10514 10515#ifdef COBJMACROS 10516 10517 10518#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \ 10519 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 10520 10521#define ID3D12Device1_AddRef(This) \ 10522 ( (This)->lpVtbl -> AddRef(This) ) 10523 10524#define ID3D12Device1_Release(This) \ 10525 ( (This)->lpVtbl -> Release(This) ) 10526 10527 10528#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \ 10529 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 10530 10531#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \ 10532 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 10533 10534#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \ 10535 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 10536 10537#define ID3D12Device1_SetName(This,Name) \ 10538 ( (This)->lpVtbl -> SetName(This,Name) ) 10539 10540 10541#define ID3D12Device1_GetNodeCount(This) \ 10542 ( (This)->lpVtbl -> GetNodeCount(This) ) 10543 10544#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 10545 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 10546 10547#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 10548 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 10549 10550#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 10551 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 10552 10553#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 10554 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 10555 10556#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 10557 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 10558 10559#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 10560 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 10561 10562#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 10563 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 10564 10565#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 10566 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 10567 10568#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 10569 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 10570 10571#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 10572 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 10573 10574#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 10575 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 10576 10577#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 10578 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 10579 10580#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 10581 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 10582 10583#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 10584 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 10585 10586#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \ 10587 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 10588 10589#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 10590 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 10591 10592#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 10593 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 10594#if !defined(_WIN32) 10595 10596#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 10597 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 10598#else 10599#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 10600 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 10601#endif 10602#if !defined(_WIN32) 10603 10604#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \ 10605 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 10606#else 10607#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 10608 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 10609#endif 10610 10611#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 10612 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 10613 10614#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \ 10615 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 10616 10617#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 10618 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 10619 10620#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 10621 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 10622 10623#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 10624 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 10625 10626#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 10627 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 10628 10629#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 10630 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 10631 10632#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \ 10633 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 10634 10635#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \ 10636 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 10637 10638#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 10639 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 10640 10641#define ID3D12Device1_GetDeviceRemovedReason(This) \ 10642 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 10643 10644#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 10645 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 10646 10647#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 10648 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 10649 10650#define ID3D12Device1_SetStablePowerState(This,Enable) \ 10651 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 10652 10653#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 10654 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 10655 10656#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 10657 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 10658#if !defined(_WIN32) 10659 10660#define ID3D12Device1_GetAdapterLuid(This) \ 10661 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 10662#else 10663#define ID3D12Device1_GetAdapterLuid(This,RetVal) \ 10664 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 10665#endif 10666 10667 10668#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 10669 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 10670 10671#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 10672 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 10673 10674#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 10675 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 10676 10677#endif /* COBJMACROS */ 10678 10679 10680#endif /* C style interface */ 10681 10682 10683 10684 10685#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */ 10686 10687 10688#ifndef __ID3D12Device2_INTERFACE_DEFINED__ 10689#define __ID3D12Device2_INTERFACE_DEFINED__ 10690 10691/* interface ID3D12Device2 */ 10692/* [unique][local][object][uuid] */ 10693 10694 10695EXTERN_C const IID IID_ID3D12Device2; 10696 10697#if defined(__cplusplus) && !defined(CINTERFACE) 10698 10699 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328") 10700 ID3D12Device2 : public ID3D12Device1 10701 { 10702 public: 10703 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState( 10704 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 10705 REFIID riid, 10706 _COM_Outptr_ void **ppPipelineState) = 0; 10707 10708 }; 10709 10710 10711#else /* C style interface */ 10712 10713 typedef struct ID3D12Device2Vtbl 10714 { 10715 BEGIN_INTERFACE 10716 10717 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 10718 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 10719 ID3D12Device2 * This, 10720 REFIID riid, 10721 _COM_Outptr_ void **ppvObject); 10722 10723 DECLSPEC_XFGVIRT(IUnknown, AddRef) 10724 ULONG ( STDMETHODCALLTYPE *AddRef )( 10725 ID3D12Device2 * This); 10726 10727 DECLSPEC_XFGVIRT(IUnknown, Release) 10728 ULONG ( STDMETHODCALLTYPE *Release )( 10729 ID3D12Device2 * This); 10730 10731 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 10732 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 10733 ID3D12Device2 * This, 10734 _In_ REFGUID guid, 10735 _Inout_ UINT *pDataSize, 10736 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 10737 10738 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 10739 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 10740 ID3D12Device2 * This, 10741 _In_ REFGUID guid, 10742 _In_ UINT DataSize, 10743 _In_reads_bytes_opt_( DataSize ) const void *pData); 10744 10745 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 10746 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 10747 ID3D12Device2 * This, 10748 _In_ REFGUID guid, 10749 _In_opt_ const IUnknown *pData); 10750 10751 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 10752 HRESULT ( STDMETHODCALLTYPE *SetName )( 10753 ID3D12Device2 * This, 10754 _In_z_ LPCWSTR Name); 10755 10756 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 10757 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 10758 ID3D12Device2 * This); 10759 10760 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 10761 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 10762 ID3D12Device2 * This, 10763 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 10764 REFIID riid, 10765 _COM_Outptr_ void **ppCommandQueue); 10766 10767 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 10768 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 10769 ID3D12Device2 * This, 10770 _In_ D3D12_COMMAND_LIST_TYPE type, 10771 REFIID riid, 10772 _COM_Outptr_ void **ppCommandAllocator); 10773 10774 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 10775 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 10776 ID3D12Device2 * This, 10777 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 10778 REFIID riid, 10779 _COM_Outptr_ void **ppPipelineState); 10780 10781 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 10782 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 10783 ID3D12Device2 * This, 10784 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 10785 REFIID riid, 10786 _COM_Outptr_ void **ppPipelineState); 10787 10788 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 10789 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 10790 ID3D12Device2 * This, 10791 _In_ UINT nodeMask, 10792 _In_ D3D12_COMMAND_LIST_TYPE type, 10793 _In_ ID3D12CommandAllocator *pCommandAllocator, 10794 _In_opt_ ID3D12PipelineState *pInitialState, 10795 REFIID riid, 10796 _COM_Outptr_ void **ppCommandList); 10797 10798 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 10799 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 10800 ID3D12Device2 * This, 10801 D3D12_FEATURE Feature, 10802 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 10803 UINT FeatureSupportDataSize); 10804 10805 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 10806 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 10807 ID3D12Device2 * This, 10808 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 10809 REFIID riid, 10810 _COM_Outptr_ void **ppvHeap); 10811 10812 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 10813 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 10814 ID3D12Device2 * This, 10815 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 10816 10817 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 10818 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 10819 ID3D12Device2 * This, 10820 _In_ UINT nodeMask, 10821 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 10822 _In_ SIZE_T blobLengthInBytes, 10823 REFIID riid, 10824 _COM_Outptr_ void **ppvRootSignature); 10825 10826 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 10827 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 10828 ID3D12Device2 * This, 10829 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 10830 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10831 10832 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 10833 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 10834 ID3D12Device2 * This, 10835 _In_opt_ ID3D12Resource *pResource, 10836 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 10837 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10838 10839 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 10840 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 10841 ID3D12Device2 * This, 10842 _In_opt_ ID3D12Resource *pResource, 10843 _In_opt_ ID3D12Resource *pCounterResource, 10844 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 10845 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10846 10847 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 10848 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 10849 ID3D12Device2 * This, 10850 _In_opt_ ID3D12Resource *pResource, 10851 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 10852 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10853 10854 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 10855 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 10856 ID3D12Device2 * This, 10857 _In_opt_ ID3D12Resource *pResource, 10858 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 10859 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10860 10861 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 10862 void ( STDMETHODCALLTYPE *CreateSampler )( 10863 ID3D12Device2 * This, 10864 _In_ const D3D12_SAMPLER_DESC *pDesc, 10865 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 10866 10867 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 10868 void ( STDMETHODCALLTYPE *CopyDescriptors )( 10869 ID3D12Device2 * This, 10870 _In_ UINT NumDestDescriptorRanges, 10871 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 10872 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 10873 _In_ UINT NumSrcDescriptorRanges, 10874 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 10875 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 10876 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 10877 10878 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 10879 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 10880 ID3D12Device2 * This, 10881 _In_ UINT NumDescriptors, 10882 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 10883 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 10884 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 10885 10886 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 10887#if !defined(_WIN32) 10888 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 10889 ID3D12Device2 * This, 10890 _In_ UINT visibleMask, 10891 _In_ UINT numResourceDescs, 10892 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 10893 10894#else 10895 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 10896 ID3D12Device2 * This, 10897 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 10898 _In_ UINT visibleMask, 10899 _In_ UINT numResourceDescs, 10900 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 10901 10902#endif 10903 10904 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 10905#if !defined(_WIN32) 10906 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 10907 ID3D12Device2 * This, 10908 _In_ UINT nodeMask, 10909 D3D12_HEAP_TYPE heapType); 10910 10911#else 10912 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 10913 ID3D12Device2 * This, 10914 D3D12_HEAP_PROPERTIES * RetVal, 10915 _In_ UINT nodeMask, 10916 D3D12_HEAP_TYPE heapType); 10917 10918#endif 10919 10920 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 10921 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 10922 ID3D12Device2 * This, 10923 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 10924 D3D12_HEAP_FLAGS HeapFlags, 10925 _In_ const D3D12_RESOURCE_DESC *pDesc, 10926 D3D12_RESOURCE_STATES InitialResourceState, 10927 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10928 REFIID riidResource, 10929 _COM_Outptr_opt_ void **ppvResource); 10930 10931 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 10932 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 10933 ID3D12Device2 * This, 10934 _In_ const D3D12_HEAP_DESC *pDesc, 10935 REFIID riid, 10936 _COM_Outptr_opt_ void **ppvHeap); 10937 10938 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 10939 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 10940 ID3D12Device2 * This, 10941 _In_ ID3D12Heap *pHeap, 10942 UINT64 HeapOffset, 10943 _In_ const D3D12_RESOURCE_DESC *pDesc, 10944 D3D12_RESOURCE_STATES InitialState, 10945 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10946 REFIID riid, 10947 _COM_Outptr_opt_ void **ppvResource); 10948 10949 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 10950 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 10951 ID3D12Device2 * This, 10952 _In_ const D3D12_RESOURCE_DESC *pDesc, 10953 D3D12_RESOURCE_STATES InitialState, 10954 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 10955 REFIID riid, 10956 _COM_Outptr_opt_ void **ppvResource); 10957 10958 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 10959 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 10960 ID3D12Device2 * This, 10961 _In_ ID3D12DeviceChild *pObject, 10962 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 10963 DWORD Access, 10964 _In_opt_ LPCWSTR Name, 10965 _Out_ HANDLE *pHandle); 10966 10967 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 10968 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 10969 ID3D12Device2 * This, 10970 _In_ HANDLE NTHandle, 10971 REFIID riid, 10972 _COM_Outptr_opt_ void **ppvObj); 10973 10974 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 10975 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 10976 ID3D12Device2 * This, 10977 _In_ LPCWSTR Name, 10978 DWORD Access, 10979 /* [annotation][out] */ 10980 _Out_ HANDLE *pNTHandle); 10981 10982 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 10983 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 10984 ID3D12Device2 * This, 10985 UINT NumObjects, 10986 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 10987 10988 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 10989 HRESULT ( STDMETHODCALLTYPE *Evict )( 10990 ID3D12Device2 * This, 10991 UINT NumObjects, 10992 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 10993 10994 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 10995 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 10996 ID3D12Device2 * This, 10997 UINT64 InitialValue, 10998 D3D12_FENCE_FLAGS Flags, 10999 REFIID riid, 11000 _COM_Outptr_ void **ppFence); 11001 11002 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 11003 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 11004 ID3D12Device2 * This); 11005 11006 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 11007 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 11008 ID3D12Device2 * This, 11009 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 11010 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 11011 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 11012 UINT64 BaseOffset, 11013 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 11014 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 11015 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 11016 _Out_opt_ UINT64 *pTotalBytes); 11017 11018 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 11019 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 11020 ID3D12Device2 * This, 11021 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 11022 REFIID riid, 11023 _COM_Outptr_opt_ void **ppvHeap); 11024 11025 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 11026 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 11027 ID3D12Device2 * This, 11028 BOOL Enable); 11029 11030 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 11031 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 11032 ID3D12Device2 * This, 11033 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 11034 _In_opt_ ID3D12RootSignature *pRootSignature, 11035 REFIID riid, 11036 _COM_Outptr_opt_ void **ppvCommandSignature); 11037 11038 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 11039 void ( STDMETHODCALLTYPE *GetResourceTiling )( 11040 ID3D12Device2 * This, 11041 _In_ ID3D12Resource *pTiledResource, 11042 _Out_opt_ UINT *pNumTilesForEntireResource, 11043 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 11044 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 11045 _Inout_opt_ UINT *pNumSubresourceTilings, 11046 _In_ UINT FirstSubresourceTilingToGet, 11047 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 11048 11049 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 11050#if !defined(_WIN32) 11051 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 11052 ID3D12Device2 * This); 11053 11054#else 11055 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 11056 ID3D12Device2 * This, 11057 LUID * RetVal); 11058 11059#endif 11060 11061 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 11062 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 11063 ID3D12Device2 * This, 11064 _In_reads_(BlobLength) const void *pLibraryBlob, 11065 SIZE_T BlobLength, 11066 REFIID riid, 11067 _COM_Outptr_ void **ppPipelineLibrary); 11068 11069 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 11070 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 11071 ID3D12Device2 * This, 11072 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 11073 _In_reads_(NumFences) const UINT64 *pFenceValues, 11074 UINT NumFences, 11075 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 11076 HANDLE hEvent); 11077 11078 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 11079 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 11080 ID3D12Device2 * This, 11081 UINT NumObjects, 11082 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 11083 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 11084 11085 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 11086 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 11087 ID3D12Device2 * This, 11088 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 11089 REFIID riid, 11090 _COM_Outptr_ void **ppPipelineState); 11091 11092 END_INTERFACE 11093 } ID3D12Device2Vtbl; 11094 11095 interface ID3D12Device2 11096 { 11097 CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl; 11098 }; 11099 11100 11101 11102#ifdef COBJMACROS 11103 11104 11105#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \ 11106 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 11107 11108#define ID3D12Device2_AddRef(This) \ 11109 ( (This)->lpVtbl -> AddRef(This) ) 11110 11111#define ID3D12Device2_Release(This) \ 11112 ( (This)->lpVtbl -> Release(This) ) 11113 11114 11115#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \ 11116 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 11117 11118#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \ 11119 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 11120 11121#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \ 11122 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 11123 11124#define ID3D12Device2_SetName(This,Name) \ 11125 ( (This)->lpVtbl -> SetName(This,Name) ) 11126 11127 11128#define ID3D12Device2_GetNodeCount(This) \ 11129 ( (This)->lpVtbl -> GetNodeCount(This) ) 11130 11131#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 11132 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 11133 11134#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 11135 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 11136 11137#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 11138 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 11139 11140#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 11141 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 11142 11143#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 11144 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 11145 11146#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 11147 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 11148 11149#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 11150 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 11151 11152#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 11153 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 11154 11155#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 11156 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 11157 11158#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 11159 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 11160 11161#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 11162 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 11163 11164#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 11165 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 11166 11167#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 11168 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 11169 11170#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 11171 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 11172 11173#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \ 11174 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 11175 11176#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 11177 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 11178 11179#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 11180 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 11181#if !defined(_WIN32) 11182 11183#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 11184 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 11185#else 11186#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 11187 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 11188#endif 11189#if !defined(_WIN32) 11190 11191#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \ 11192 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 11193#else 11194#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 11195 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 11196#endif 11197 11198#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 11199 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 11200 11201#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \ 11202 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 11203 11204#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 11205 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 11206 11207#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 11208 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 11209 11210#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 11211 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 11212 11213#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 11214 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 11215 11216#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 11217 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 11218 11219#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \ 11220 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 11221 11222#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \ 11223 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 11224 11225#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 11226 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 11227 11228#define ID3D12Device2_GetDeviceRemovedReason(This) \ 11229 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 11230 11231#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 11232 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 11233 11234#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 11235 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 11236 11237#define ID3D12Device2_SetStablePowerState(This,Enable) \ 11238 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 11239 11240#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 11241 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 11242 11243#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 11244 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 11245#if !defined(_WIN32) 11246 11247#define ID3D12Device2_GetAdapterLuid(This) \ 11248 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 11249#else 11250#define ID3D12Device2_GetAdapterLuid(This,RetVal) \ 11251 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 11252#endif 11253 11254 11255#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 11256 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 11257 11258#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 11259 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 11260 11261#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 11262 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 11263 11264 11265#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 11266 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 11267 11268#endif /* COBJMACROS */ 11269 11270 11271#endif /* C style interface */ 11272 11273 11274 11275 11276#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ 11277 11278 11279/* interface __MIDL_itf_d3d12_0000_0025 */ 11280/* [local] */ 11281 11282typedef 11283enum D3D12_RESIDENCY_FLAGS 11284 { 11285 D3D12_RESIDENCY_FLAG_NONE = 0, 11286 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1 11287 } D3D12_RESIDENCY_FLAGS; 11288 11289DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS ) 11290 11291 11292extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; 11293extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; 11294 11295#ifndef __ID3D12Device3_INTERFACE_DEFINED__ 11296#define __ID3D12Device3_INTERFACE_DEFINED__ 11297 11298/* interface ID3D12Device3 */ 11299/* [unique][local][object][uuid] */ 11300 11301 11302EXTERN_C const IID IID_ID3D12Device3; 11303 11304#if defined(__cplusplus) && !defined(CINTERFACE) 11305 11306 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98") 11307 ID3D12Device3 : public ID3D12Device2 11308 { 11309 public: 11310 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress( 11311 _In_ const void *pAddress, 11312 REFIID riid, 11313 _COM_Outptr_ void **ppvHeap) = 0; 11314 11315 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping( 11316 _In_ HANDLE hFileMapping, 11317 REFIID riid, 11318 _COM_Outptr_ void **ppvHeap) = 0; 11319 11320 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident( 11321 D3D12_RESIDENCY_FLAGS Flags, 11322 UINT NumObjects, 11323 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 11324 _In_ ID3D12Fence *pFenceToSignal, 11325 UINT64 FenceValueToSignal) = 0; 11326 11327 }; 11328 11329 11330#else /* C style interface */ 11331 11332 typedef struct ID3D12Device3Vtbl 11333 { 11334 BEGIN_INTERFACE 11335 11336 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 11337 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 11338 ID3D12Device3 * This, 11339 REFIID riid, 11340 _COM_Outptr_ void **ppvObject); 11341 11342 DECLSPEC_XFGVIRT(IUnknown, AddRef) 11343 ULONG ( STDMETHODCALLTYPE *AddRef )( 11344 ID3D12Device3 * This); 11345 11346 DECLSPEC_XFGVIRT(IUnknown, Release) 11347 ULONG ( STDMETHODCALLTYPE *Release )( 11348 ID3D12Device3 * This); 11349 11350 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 11351 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 11352 ID3D12Device3 * This, 11353 _In_ REFGUID guid, 11354 _Inout_ UINT *pDataSize, 11355 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 11356 11357 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 11358 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 11359 ID3D12Device3 * This, 11360 _In_ REFGUID guid, 11361 _In_ UINT DataSize, 11362 _In_reads_bytes_opt_( DataSize ) const void *pData); 11363 11364 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 11365 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 11366 ID3D12Device3 * This, 11367 _In_ REFGUID guid, 11368 _In_opt_ const IUnknown *pData); 11369 11370 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 11371 HRESULT ( STDMETHODCALLTYPE *SetName )( 11372 ID3D12Device3 * This, 11373 _In_z_ LPCWSTR Name); 11374 11375 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 11376 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 11377 ID3D12Device3 * This); 11378 11379 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 11380 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 11381 ID3D12Device3 * This, 11382 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 11383 REFIID riid, 11384 _COM_Outptr_ void **ppCommandQueue); 11385 11386 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 11387 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 11388 ID3D12Device3 * This, 11389 _In_ D3D12_COMMAND_LIST_TYPE type, 11390 REFIID riid, 11391 _COM_Outptr_ void **ppCommandAllocator); 11392 11393 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 11394 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 11395 ID3D12Device3 * This, 11396 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 11397 REFIID riid, 11398 _COM_Outptr_ void **ppPipelineState); 11399 11400 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 11401 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 11402 ID3D12Device3 * This, 11403 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 11404 REFIID riid, 11405 _COM_Outptr_ void **ppPipelineState); 11406 11407 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 11408 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 11409 ID3D12Device3 * This, 11410 _In_ UINT nodeMask, 11411 _In_ D3D12_COMMAND_LIST_TYPE type, 11412 _In_ ID3D12CommandAllocator *pCommandAllocator, 11413 _In_opt_ ID3D12PipelineState *pInitialState, 11414 REFIID riid, 11415 _COM_Outptr_ void **ppCommandList); 11416 11417 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 11418 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 11419 ID3D12Device3 * This, 11420 D3D12_FEATURE Feature, 11421 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 11422 UINT FeatureSupportDataSize); 11423 11424 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 11425 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 11426 ID3D12Device3 * This, 11427 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 11428 REFIID riid, 11429 _COM_Outptr_ void **ppvHeap); 11430 11431 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 11432 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 11433 ID3D12Device3 * This, 11434 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 11435 11436 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 11437 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 11438 ID3D12Device3 * This, 11439 _In_ UINT nodeMask, 11440 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 11441 _In_ SIZE_T blobLengthInBytes, 11442 REFIID riid, 11443 _COM_Outptr_ void **ppvRootSignature); 11444 11445 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 11446 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 11447 ID3D12Device3 * This, 11448 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 11449 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11450 11451 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 11452 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 11453 ID3D12Device3 * This, 11454 _In_opt_ ID3D12Resource *pResource, 11455 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 11456 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11457 11458 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 11459 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 11460 ID3D12Device3 * This, 11461 _In_opt_ ID3D12Resource *pResource, 11462 _In_opt_ ID3D12Resource *pCounterResource, 11463 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 11464 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11465 11466 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 11467 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 11468 ID3D12Device3 * This, 11469 _In_opt_ ID3D12Resource *pResource, 11470 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 11471 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11472 11473 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 11474 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 11475 ID3D12Device3 * This, 11476 _In_opt_ ID3D12Resource *pResource, 11477 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 11478 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11479 11480 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 11481 void ( STDMETHODCALLTYPE *CreateSampler )( 11482 ID3D12Device3 * This, 11483 _In_ const D3D12_SAMPLER_DESC *pDesc, 11484 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 11485 11486 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 11487 void ( STDMETHODCALLTYPE *CopyDescriptors )( 11488 ID3D12Device3 * This, 11489 _In_ UINT NumDestDescriptorRanges, 11490 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 11491 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 11492 _In_ UINT NumSrcDescriptorRanges, 11493 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 11494 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 11495 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 11496 11497 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 11498 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 11499 ID3D12Device3 * This, 11500 _In_ UINT NumDescriptors, 11501 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 11502 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 11503 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 11504 11505 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 11506#if !defined(_WIN32) 11507 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 11508 ID3D12Device3 * This, 11509 _In_ UINT visibleMask, 11510 _In_ UINT numResourceDescs, 11511 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 11512 11513#else 11514 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 11515 ID3D12Device3 * This, 11516 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 11517 _In_ UINT visibleMask, 11518 _In_ UINT numResourceDescs, 11519 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 11520 11521#endif 11522 11523 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 11524#if !defined(_WIN32) 11525 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 11526 ID3D12Device3 * This, 11527 _In_ UINT nodeMask, 11528 D3D12_HEAP_TYPE heapType); 11529 11530#else 11531 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 11532 ID3D12Device3 * This, 11533 D3D12_HEAP_PROPERTIES * RetVal, 11534 _In_ UINT nodeMask, 11535 D3D12_HEAP_TYPE heapType); 11536 11537#endif 11538 11539 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 11540 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 11541 ID3D12Device3 * This, 11542 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 11543 D3D12_HEAP_FLAGS HeapFlags, 11544 _In_ const D3D12_RESOURCE_DESC *pDesc, 11545 D3D12_RESOURCE_STATES InitialResourceState, 11546 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 11547 REFIID riidResource, 11548 _COM_Outptr_opt_ void **ppvResource); 11549 11550 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 11551 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 11552 ID3D12Device3 * This, 11553 _In_ const D3D12_HEAP_DESC *pDesc, 11554 REFIID riid, 11555 _COM_Outptr_opt_ void **ppvHeap); 11556 11557 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 11558 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 11559 ID3D12Device3 * This, 11560 _In_ ID3D12Heap *pHeap, 11561 UINT64 HeapOffset, 11562 _In_ const D3D12_RESOURCE_DESC *pDesc, 11563 D3D12_RESOURCE_STATES InitialState, 11564 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 11565 REFIID riid, 11566 _COM_Outptr_opt_ void **ppvResource); 11567 11568 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 11569 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 11570 ID3D12Device3 * This, 11571 _In_ const D3D12_RESOURCE_DESC *pDesc, 11572 D3D12_RESOURCE_STATES InitialState, 11573 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 11574 REFIID riid, 11575 _COM_Outptr_opt_ void **ppvResource); 11576 11577 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 11578 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 11579 ID3D12Device3 * This, 11580 _In_ ID3D12DeviceChild *pObject, 11581 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 11582 DWORD Access, 11583 _In_opt_ LPCWSTR Name, 11584 _Out_ HANDLE *pHandle); 11585 11586 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 11587 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 11588 ID3D12Device3 * This, 11589 _In_ HANDLE NTHandle, 11590 REFIID riid, 11591 _COM_Outptr_opt_ void **ppvObj); 11592 11593 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 11594 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 11595 ID3D12Device3 * This, 11596 _In_ LPCWSTR Name, 11597 DWORD Access, 11598 /* [annotation][out] */ 11599 _Out_ HANDLE *pNTHandle); 11600 11601 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 11602 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 11603 ID3D12Device3 * This, 11604 UINT NumObjects, 11605 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 11606 11607 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 11608 HRESULT ( STDMETHODCALLTYPE *Evict )( 11609 ID3D12Device3 * This, 11610 UINT NumObjects, 11611 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 11612 11613 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 11614 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 11615 ID3D12Device3 * This, 11616 UINT64 InitialValue, 11617 D3D12_FENCE_FLAGS Flags, 11618 REFIID riid, 11619 _COM_Outptr_ void **ppFence); 11620 11621 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 11622 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 11623 ID3D12Device3 * This); 11624 11625 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 11626 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 11627 ID3D12Device3 * This, 11628 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 11629 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 11630 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 11631 UINT64 BaseOffset, 11632 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 11633 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 11634 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 11635 _Out_opt_ UINT64 *pTotalBytes); 11636 11637 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 11638 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 11639 ID3D12Device3 * This, 11640 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 11641 REFIID riid, 11642 _COM_Outptr_opt_ void **ppvHeap); 11643 11644 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 11645 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 11646 ID3D12Device3 * This, 11647 BOOL Enable); 11648 11649 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 11650 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 11651 ID3D12Device3 * This, 11652 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 11653 _In_opt_ ID3D12RootSignature *pRootSignature, 11654 REFIID riid, 11655 _COM_Outptr_opt_ void **ppvCommandSignature); 11656 11657 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 11658 void ( STDMETHODCALLTYPE *GetResourceTiling )( 11659 ID3D12Device3 * This, 11660 _In_ ID3D12Resource *pTiledResource, 11661 _Out_opt_ UINT *pNumTilesForEntireResource, 11662 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 11663 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 11664 _Inout_opt_ UINT *pNumSubresourceTilings, 11665 _In_ UINT FirstSubresourceTilingToGet, 11666 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 11667 11668 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 11669#if !defined(_WIN32) 11670 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 11671 ID3D12Device3 * This); 11672 11673#else 11674 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 11675 ID3D12Device3 * This, 11676 LUID * RetVal); 11677 11678#endif 11679 11680 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 11681 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 11682 ID3D12Device3 * This, 11683 _In_reads_(BlobLength) const void *pLibraryBlob, 11684 SIZE_T BlobLength, 11685 REFIID riid, 11686 _COM_Outptr_ void **ppPipelineLibrary); 11687 11688 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 11689 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 11690 ID3D12Device3 * This, 11691 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 11692 _In_reads_(NumFences) const UINT64 *pFenceValues, 11693 UINT NumFences, 11694 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 11695 HANDLE hEvent); 11696 11697 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 11698 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 11699 ID3D12Device3 * This, 11700 UINT NumObjects, 11701 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 11702 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 11703 11704 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 11705 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 11706 ID3D12Device3 * This, 11707 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 11708 REFIID riid, 11709 _COM_Outptr_ void **ppPipelineState); 11710 11711 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 11712 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 11713 ID3D12Device3 * This, 11714 _In_ const void *pAddress, 11715 REFIID riid, 11716 _COM_Outptr_ void **ppvHeap); 11717 11718 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 11719 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 11720 ID3D12Device3 * This, 11721 _In_ HANDLE hFileMapping, 11722 REFIID riid, 11723 _COM_Outptr_ void **ppvHeap); 11724 11725 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 11726 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 11727 ID3D12Device3 * This, 11728 D3D12_RESIDENCY_FLAGS Flags, 11729 UINT NumObjects, 11730 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 11731 _In_ ID3D12Fence *pFenceToSignal, 11732 UINT64 FenceValueToSignal); 11733 11734 END_INTERFACE 11735 } ID3D12Device3Vtbl; 11736 11737 interface ID3D12Device3 11738 { 11739 CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl; 11740 }; 11741 11742 11743 11744#ifdef COBJMACROS 11745 11746 11747#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \ 11748 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 11749 11750#define ID3D12Device3_AddRef(This) \ 11751 ( (This)->lpVtbl -> AddRef(This) ) 11752 11753#define ID3D12Device3_Release(This) \ 11754 ( (This)->lpVtbl -> Release(This) ) 11755 11756 11757#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \ 11758 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 11759 11760#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \ 11761 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 11762 11763#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \ 11764 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 11765 11766#define ID3D12Device3_SetName(This,Name) \ 11767 ( (This)->lpVtbl -> SetName(This,Name) ) 11768 11769 11770#define ID3D12Device3_GetNodeCount(This) \ 11771 ( (This)->lpVtbl -> GetNodeCount(This) ) 11772 11773#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 11774 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 11775 11776#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 11777 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 11778 11779#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 11780 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 11781 11782#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 11783 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 11784 11785#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 11786 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 11787 11788#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 11789 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 11790 11791#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 11792 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 11793 11794#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 11795 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 11796 11797#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 11798 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 11799 11800#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 11801 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 11802 11803#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 11804 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 11805 11806#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 11807 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 11808 11809#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 11810 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 11811 11812#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 11813 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 11814 11815#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \ 11816 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 11817 11818#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 11819 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 11820 11821#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 11822 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 11823#if !defined(_WIN32) 11824 11825#define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 11826 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 11827#else 11828#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 11829 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 11830#endif 11831#if !defined(_WIN32) 11832 11833#define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \ 11834 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 11835#else 11836#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 11837 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 11838#endif 11839 11840#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 11841 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 11842 11843#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \ 11844 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 11845 11846#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 11847 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 11848 11849#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 11850 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 11851 11852#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 11853 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 11854 11855#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 11856 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 11857 11858#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 11859 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 11860 11861#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \ 11862 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 11863 11864#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \ 11865 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 11866 11867#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 11868 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 11869 11870#define ID3D12Device3_GetDeviceRemovedReason(This) \ 11871 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 11872 11873#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 11874 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 11875 11876#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 11877 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 11878 11879#define ID3D12Device3_SetStablePowerState(This,Enable) \ 11880 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 11881 11882#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 11883 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 11884 11885#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 11886 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 11887#if !defined(_WIN32) 11888 11889#define ID3D12Device3_GetAdapterLuid(This) \ 11890 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 11891#else 11892#define ID3D12Device3_GetAdapterLuid(This,RetVal) \ 11893 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 11894#endif 11895 11896 11897#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 11898 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 11899 11900#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 11901 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 11902 11903#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 11904 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 11905 11906 11907#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 11908 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 11909 11910 11911#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 11912 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 11913 11914#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 11915 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 11916 11917#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 11918 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 11919 11920#endif /* COBJMACROS */ 11921 11922 11923#endif /* C style interface */ 11924 11925 11926 11927 11928#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ 11929 11930 11931/* interface __MIDL_itf_d3d12_0000_0026 */ 11932/* [local] */ 11933 11934typedef 11935enum D3D12_COMMAND_LIST_FLAGS 11936 { 11937 D3D12_COMMAND_LIST_FLAG_NONE = 0 11938 } D3D12_COMMAND_LIST_FLAGS; 11939 11940DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS ) 11941typedef 11942enum D3D12_COMMAND_POOL_FLAGS 11943 { 11944 D3D12_COMMAND_POOL_FLAG_NONE = 0 11945 } D3D12_COMMAND_POOL_FLAGS; 11946 11947DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS ) 11948typedef 11949enum D3D12_COMMAND_RECORDER_FLAGS 11950 { 11951 D3D12_COMMAND_RECORDER_FLAG_NONE = 0 11952 } D3D12_COMMAND_RECORDER_FLAGS; 11953 11954DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS ) 11955typedef 11956enum D3D12_PROTECTED_SESSION_STATUS 11957 { 11958 D3D12_PROTECTED_SESSION_STATUS_OK = 0, 11959 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1 11960 } D3D12_PROTECTED_SESSION_STATUS; 11961 11962 11963 11964extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec; 11965extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec; 11966 11967#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ 11968#define __ID3D12ProtectedSession_INTERFACE_DEFINED__ 11969 11970/* interface ID3D12ProtectedSession */ 11971/* [unique][local][object][uuid] */ 11972 11973 11974EXTERN_C const IID IID_ID3D12ProtectedSession; 11975 11976#if defined(__cplusplus) && !defined(CINTERFACE) 11977 11978 MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B") 11979 ID3D12ProtectedSession : public ID3D12DeviceChild 11980 { 11981 public: 11982 virtual HRESULT STDMETHODCALLTYPE GetStatusFence( 11983 REFIID riid, 11984 _COM_Outptr_opt_ void **ppFence) = 0; 11985 11986 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0; 11987 11988 }; 11989 11990 11991#else /* C style interface */ 11992 11993 typedef struct ID3D12ProtectedSessionVtbl 11994 { 11995 BEGIN_INTERFACE 11996 11997 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 11998 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 11999 ID3D12ProtectedSession * This, 12000 REFIID riid, 12001 _COM_Outptr_ void **ppvObject); 12002 12003 DECLSPEC_XFGVIRT(IUnknown, AddRef) 12004 ULONG ( STDMETHODCALLTYPE *AddRef )( 12005 ID3D12ProtectedSession * This); 12006 12007 DECLSPEC_XFGVIRT(IUnknown, Release) 12008 ULONG ( STDMETHODCALLTYPE *Release )( 12009 ID3D12ProtectedSession * This); 12010 12011 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 12012 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 12013 ID3D12ProtectedSession * This, 12014 _In_ REFGUID guid, 12015 _Inout_ UINT *pDataSize, 12016 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 12017 12018 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 12019 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 12020 ID3D12ProtectedSession * This, 12021 _In_ REFGUID guid, 12022 _In_ UINT DataSize, 12023 _In_reads_bytes_opt_( DataSize ) const void *pData); 12024 12025 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 12026 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 12027 ID3D12ProtectedSession * This, 12028 _In_ REFGUID guid, 12029 _In_opt_ const IUnknown *pData); 12030 12031 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 12032 HRESULT ( STDMETHODCALLTYPE *SetName )( 12033 ID3D12ProtectedSession * This, 12034 _In_z_ LPCWSTR Name); 12035 12036 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 12037 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 12038 ID3D12ProtectedSession * This, 12039 REFIID riid, 12040 _COM_Outptr_opt_ void **ppvDevice); 12041 12042 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) 12043 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( 12044 ID3D12ProtectedSession * This, 12045 REFIID riid, 12046 _COM_Outptr_opt_ void **ppFence); 12047 12048 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) 12049 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( 12050 ID3D12ProtectedSession * This); 12051 12052 END_INTERFACE 12053 } ID3D12ProtectedSessionVtbl; 12054 12055 interface ID3D12ProtectedSession 12056 { 12057 CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl; 12058 }; 12059 12060 12061 12062#ifdef COBJMACROS 12063 12064 12065#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \ 12066 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 12067 12068#define ID3D12ProtectedSession_AddRef(This) \ 12069 ( (This)->lpVtbl -> AddRef(This) ) 12070 12071#define ID3D12ProtectedSession_Release(This) \ 12072 ( (This)->lpVtbl -> Release(This) ) 12073 12074 12075#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \ 12076 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 12077 12078#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \ 12079 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 12080 12081#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \ 12082 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 12083 12084#define ID3D12ProtectedSession_SetName(This,Name) \ 12085 ( (This)->lpVtbl -> SetName(This,Name) ) 12086 12087 12088#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \ 12089 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 12090 12091 12092#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \ 12093 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) 12094 12095#define ID3D12ProtectedSession_GetSessionStatus(This) \ 12096 ( (This)->lpVtbl -> GetSessionStatus(This) ) 12097 12098#endif /* COBJMACROS */ 12099 12100 12101#endif /* C style interface */ 12102 12103 12104 12105 12106#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ 12107 12108 12109/* interface __MIDL_itf_d3d12_0000_0027 */ 12110/* [local] */ 12111 12112typedef 12113enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS 12114 { 12115 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0, 12116 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1 12117 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; 12118 12119DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS ) 12120typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT 12121 { 12122 UINT NodeIndex; 12123 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; 12124 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; 12125 12126typedef 12127enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS 12128 { 12129 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0 12130 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; 12131 12132DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS ) 12133typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC 12134 { 12135 UINT NodeMask; 12136 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; 12137 } D3D12_PROTECTED_RESOURCE_SESSION_DESC; 12138 12139 12140 12141extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; 12142extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; 12143 12144#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ 12145#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ 12146 12147/* interface ID3D12ProtectedResourceSession */ 12148/* [unique][local][object][uuid] */ 12149 12150 12151EXTERN_C const IID IID_ID3D12ProtectedResourceSession; 12152 12153#if defined(__cplusplus) && !defined(CINTERFACE) 12154 12155 MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D") 12156 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession 12157 { 12158 public: 12159#if defined(_MSC_VER) || !defined(_WIN32) 12160 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 12161#else 12162 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( 12163 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0; 12164#endif 12165 12166 }; 12167 12168 12169#else /* C style interface */ 12170 12171 typedef struct ID3D12ProtectedResourceSessionVtbl 12172 { 12173 BEGIN_INTERFACE 12174 12175 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 12176 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 12177 ID3D12ProtectedResourceSession * This, 12178 REFIID riid, 12179 _COM_Outptr_ void **ppvObject); 12180 12181 DECLSPEC_XFGVIRT(IUnknown, AddRef) 12182 ULONG ( STDMETHODCALLTYPE *AddRef )( 12183 ID3D12ProtectedResourceSession * This); 12184 12185 DECLSPEC_XFGVIRT(IUnknown, Release) 12186 ULONG ( STDMETHODCALLTYPE *Release )( 12187 ID3D12ProtectedResourceSession * This); 12188 12189 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 12190 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 12191 ID3D12ProtectedResourceSession * This, 12192 _In_ REFGUID guid, 12193 _Inout_ UINT *pDataSize, 12194 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 12195 12196 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 12197 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 12198 ID3D12ProtectedResourceSession * This, 12199 _In_ REFGUID guid, 12200 _In_ UINT DataSize, 12201 _In_reads_bytes_opt_( DataSize ) const void *pData); 12202 12203 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 12204 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 12205 ID3D12ProtectedResourceSession * This, 12206 _In_ REFGUID guid, 12207 _In_opt_ const IUnknown *pData); 12208 12209 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 12210 HRESULT ( STDMETHODCALLTYPE *SetName )( 12211 ID3D12ProtectedResourceSession * This, 12212 _In_z_ LPCWSTR Name); 12213 12214 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 12215 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 12216 ID3D12ProtectedResourceSession * This, 12217 REFIID riid, 12218 _COM_Outptr_opt_ void **ppvDevice); 12219 12220 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) 12221 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( 12222 ID3D12ProtectedResourceSession * This, 12223 REFIID riid, 12224 _COM_Outptr_opt_ void **ppFence); 12225 12226 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) 12227 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( 12228 ID3D12ProtectedResourceSession * This); 12229 12230 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) 12231#if !defined(_WIN32) 12232 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( 12233 ID3D12ProtectedResourceSession * This); 12234 12235#else 12236 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( 12237 ID3D12ProtectedResourceSession * This, 12238 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); 12239 12240#endif 12241 12242 END_INTERFACE 12243 } ID3D12ProtectedResourceSessionVtbl; 12244 12245 interface ID3D12ProtectedResourceSession 12246 { 12247 CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl; 12248 }; 12249 12250 12251 12252#ifdef COBJMACROS 12253 12254 12255#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \ 12256 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 12257 12258#define ID3D12ProtectedResourceSession_AddRef(This) \ 12259 ( (This)->lpVtbl -> AddRef(This) ) 12260 12261#define ID3D12ProtectedResourceSession_Release(This) \ 12262 ( (This)->lpVtbl -> Release(This) ) 12263 12264 12265#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \ 12266 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 12267 12268#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \ 12269 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 12270 12271#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \ 12272 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 12273 12274#define ID3D12ProtectedResourceSession_SetName(This,Name) \ 12275 ( (This)->lpVtbl -> SetName(This,Name) ) 12276 12277 12278#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \ 12279 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 12280 12281 12282#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \ 12283 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) 12284 12285#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \ 12286 ( (This)->lpVtbl -> GetSessionStatus(This) ) 12287 12288#if !defined(_WIN32) 12289 12290#define ID3D12ProtectedResourceSession_GetDesc(This) \ 12291 ( (This)->lpVtbl -> GetDesc(This) ) 12292#else 12293#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \ 12294 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 12295#endif 12296 12297#endif /* COBJMACROS */ 12298 12299 12300#endif /* C style interface */ 12301 12302 12303 12304 12305#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */ 12306 12307 12308#ifndef __ID3D12Device4_INTERFACE_DEFINED__ 12309#define __ID3D12Device4_INTERFACE_DEFINED__ 12310 12311/* interface ID3D12Device4 */ 12312/* [unique][local][object][uuid] */ 12313 12314 12315EXTERN_C const IID IID_ID3D12Device4; 12316 12317#if defined(__cplusplus) && !defined(CINTERFACE) 12318 12319 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5") 12320 ID3D12Device4 : public ID3D12Device3 12321 { 12322 public: 12323 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1( 12324 _In_ UINT nodeMask, 12325 _In_ D3D12_COMMAND_LIST_TYPE type, 12326 _In_ D3D12_COMMAND_LIST_FLAGS flags, 12327 REFIID riid, 12328 _COM_Outptr_ void **ppCommandList) = 0; 12329 12330 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession( 12331 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 12332 _In_ REFIID riid, 12333 _COM_Outptr_ void **ppSession) = 0; 12334 12335 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1( 12336 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 12337 D3D12_HEAP_FLAGS HeapFlags, 12338 _In_ const D3D12_RESOURCE_DESC *pDesc, 12339 D3D12_RESOURCE_STATES InitialResourceState, 12340 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12341 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12342 REFIID riidResource, 12343 _COM_Outptr_opt_ void **ppvResource) = 0; 12344 12345 virtual HRESULT STDMETHODCALLTYPE CreateHeap1( 12346 _In_ const D3D12_HEAP_DESC *pDesc, 12347 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12348 REFIID riid, 12349 _COM_Outptr_opt_ void **ppvHeap) = 0; 12350 12351 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1( 12352 _In_ const D3D12_RESOURCE_DESC *pDesc, 12353 D3D12_RESOURCE_STATES InitialState, 12354 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12355 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12356 REFIID riid, 12357 _COM_Outptr_opt_ void **ppvResource) = 0; 12358 12359#if defined(_MSC_VER) || !defined(_WIN32) 12360 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1( 12361 UINT visibleMask, 12362 UINT numResourceDescs, 12363 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 12364 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 12365#else 12366 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1( 12367 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 12368 UINT visibleMask, 12369 UINT numResourceDescs, 12370 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 12371 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 12372#endif 12373 12374 }; 12375 12376 12377#else /* C style interface */ 12378 12379 typedef struct ID3D12Device4Vtbl 12380 { 12381 BEGIN_INTERFACE 12382 12383 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 12384 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 12385 ID3D12Device4 * This, 12386 REFIID riid, 12387 _COM_Outptr_ void **ppvObject); 12388 12389 DECLSPEC_XFGVIRT(IUnknown, AddRef) 12390 ULONG ( STDMETHODCALLTYPE *AddRef )( 12391 ID3D12Device4 * This); 12392 12393 DECLSPEC_XFGVIRT(IUnknown, Release) 12394 ULONG ( STDMETHODCALLTYPE *Release )( 12395 ID3D12Device4 * This); 12396 12397 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 12398 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 12399 ID3D12Device4 * This, 12400 _In_ REFGUID guid, 12401 _Inout_ UINT *pDataSize, 12402 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 12403 12404 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 12405 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 12406 ID3D12Device4 * This, 12407 _In_ REFGUID guid, 12408 _In_ UINT DataSize, 12409 _In_reads_bytes_opt_( DataSize ) const void *pData); 12410 12411 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 12412 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 12413 ID3D12Device4 * This, 12414 _In_ REFGUID guid, 12415 _In_opt_ const IUnknown *pData); 12416 12417 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 12418 HRESULT ( STDMETHODCALLTYPE *SetName )( 12419 ID3D12Device4 * This, 12420 _In_z_ LPCWSTR Name); 12421 12422 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 12423 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 12424 ID3D12Device4 * This); 12425 12426 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 12427 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 12428 ID3D12Device4 * This, 12429 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 12430 REFIID riid, 12431 _COM_Outptr_ void **ppCommandQueue); 12432 12433 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 12434 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 12435 ID3D12Device4 * This, 12436 _In_ D3D12_COMMAND_LIST_TYPE type, 12437 REFIID riid, 12438 _COM_Outptr_ void **ppCommandAllocator); 12439 12440 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 12441 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 12442 ID3D12Device4 * This, 12443 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 12444 REFIID riid, 12445 _COM_Outptr_ void **ppPipelineState); 12446 12447 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 12448 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 12449 ID3D12Device4 * This, 12450 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 12451 REFIID riid, 12452 _COM_Outptr_ void **ppPipelineState); 12453 12454 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 12455 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 12456 ID3D12Device4 * This, 12457 _In_ UINT nodeMask, 12458 _In_ D3D12_COMMAND_LIST_TYPE type, 12459 _In_ ID3D12CommandAllocator *pCommandAllocator, 12460 _In_opt_ ID3D12PipelineState *pInitialState, 12461 REFIID riid, 12462 _COM_Outptr_ void **ppCommandList); 12463 12464 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 12465 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 12466 ID3D12Device4 * This, 12467 D3D12_FEATURE Feature, 12468 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 12469 UINT FeatureSupportDataSize); 12470 12471 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 12472 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 12473 ID3D12Device4 * This, 12474 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 12475 REFIID riid, 12476 _COM_Outptr_ void **ppvHeap); 12477 12478 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 12479 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 12480 ID3D12Device4 * This, 12481 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 12482 12483 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 12484 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 12485 ID3D12Device4 * This, 12486 _In_ UINT nodeMask, 12487 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 12488 _In_ SIZE_T blobLengthInBytes, 12489 REFIID riid, 12490 _COM_Outptr_ void **ppvRootSignature); 12491 12492 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 12493 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 12494 ID3D12Device4 * This, 12495 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 12496 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12497 12498 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 12499 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 12500 ID3D12Device4 * This, 12501 _In_opt_ ID3D12Resource *pResource, 12502 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 12503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12504 12505 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 12506 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 12507 ID3D12Device4 * This, 12508 _In_opt_ ID3D12Resource *pResource, 12509 _In_opt_ ID3D12Resource *pCounterResource, 12510 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 12511 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12512 12513 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 12514 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 12515 ID3D12Device4 * This, 12516 _In_opt_ ID3D12Resource *pResource, 12517 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 12518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12519 12520 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 12521 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 12522 ID3D12Device4 * This, 12523 _In_opt_ ID3D12Resource *pResource, 12524 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 12525 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12526 12527 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 12528 void ( STDMETHODCALLTYPE *CreateSampler )( 12529 ID3D12Device4 * This, 12530 _In_ const D3D12_SAMPLER_DESC *pDesc, 12531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 12532 12533 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 12534 void ( STDMETHODCALLTYPE *CopyDescriptors )( 12535 ID3D12Device4 * This, 12536 _In_ UINT NumDestDescriptorRanges, 12537 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 12538 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 12539 _In_ UINT NumSrcDescriptorRanges, 12540 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 12541 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 12542 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 12543 12544 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 12545 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 12546 ID3D12Device4 * This, 12547 _In_ UINT NumDescriptors, 12548 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 12549 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 12550 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 12551 12552 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 12553#if !defined(_WIN32) 12554 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 12555 ID3D12Device4 * This, 12556 _In_ UINT visibleMask, 12557 _In_ UINT numResourceDescs, 12558 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 12559 12560#else 12561 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 12562 ID3D12Device4 * This, 12563 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 12564 _In_ UINT visibleMask, 12565 _In_ UINT numResourceDescs, 12566 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 12567 12568#endif 12569 12570 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 12571#if !defined(_WIN32) 12572 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 12573 ID3D12Device4 * This, 12574 _In_ UINT nodeMask, 12575 D3D12_HEAP_TYPE heapType); 12576 12577#else 12578 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 12579 ID3D12Device4 * This, 12580 D3D12_HEAP_PROPERTIES * RetVal, 12581 _In_ UINT nodeMask, 12582 D3D12_HEAP_TYPE heapType); 12583 12584#endif 12585 12586 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 12587 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 12588 ID3D12Device4 * This, 12589 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 12590 D3D12_HEAP_FLAGS HeapFlags, 12591 _In_ const D3D12_RESOURCE_DESC *pDesc, 12592 D3D12_RESOURCE_STATES InitialResourceState, 12593 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12594 REFIID riidResource, 12595 _COM_Outptr_opt_ void **ppvResource); 12596 12597 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 12598 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 12599 ID3D12Device4 * This, 12600 _In_ const D3D12_HEAP_DESC *pDesc, 12601 REFIID riid, 12602 _COM_Outptr_opt_ void **ppvHeap); 12603 12604 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 12605 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 12606 ID3D12Device4 * This, 12607 _In_ ID3D12Heap *pHeap, 12608 UINT64 HeapOffset, 12609 _In_ const D3D12_RESOURCE_DESC *pDesc, 12610 D3D12_RESOURCE_STATES InitialState, 12611 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12612 REFIID riid, 12613 _COM_Outptr_opt_ void **ppvResource); 12614 12615 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 12616 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 12617 ID3D12Device4 * This, 12618 _In_ const D3D12_RESOURCE_DESC *pDesc, 12619 D3D12_RESOURCE_STATES InitialState, 12620 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12621 REFIID riid, 12622 _COM_Outptr_opt_ void **ppvResource); 12623 12624 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 12625 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 12626 ID3D12Device4 * This, 12627 _In_ ID3D12DeviceChild *pObject, 12628 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 12629 DWORD Access, 12630 _In_opt_ LPCWSTR Name, 12631 _Out_ HANDLE *pHandle); 12632 12633 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 12634 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 12635 ID3D12Device4 * This, 12636 _In_ HANDLE NTHandle, 12637 REFIID riid, 12638 _COM_Outptr_opt_ void **ppvObj); 12639 12640 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 12641 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 12642 ID3D12Device4 * This, 12643 _In_ LPCWSTR Name, 12644 DWORD Access, 12645 /* [annotation][out] */ 12646 _Out_ HANDLE *pNTHandle); 12647 12648 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 12649 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 12650 ID3D12Device4 * This, 12651 UINT NumObjects, 12652 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 12653 12654 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 12655 HRESULT ( STDMETHODCALLTYPE *Evict )( 12656 ID3D12Device4 * This, 12657 UINT NumObjects, 12658 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 12659 12660 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 12661 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 12662 ID3D12Device4 * This, 12663 UINT64 InitialValue, 12664 D3D12_FENCE_FLAGS Flags, 12665 REFIID riid, 12666 _COM_Outptr_ void **ppFence); 12667 12668 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 12669 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 12670 ID3D12Device4 * This); 12671 12672 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 12673 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 12674 ID3D12Device4 * This, 12675 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 12676 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 12677 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 12678 UINT64 BaseOffset, 12679 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 12680 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 12681 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 12682 _Out_opt_ UINT64 *pTotalBytes); 12683 12684 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 12685 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 12686 ID3D12Device4 * This, 12687 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 12688 REFIID riid, 12689 _COM_Outptr_opt_ void **ppvHeap); 12690 12691 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 12692 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 12693 ID3D12Device4 * This, 12694 BOOL Enable); 12695 12696 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 12697 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 12698 ID3D12Device4 * This, 12699 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 12700 _In_opt_ ID3D12RootSignature *pRootSignature, 12701 REFIID riid, 12702 _COM_Outptr_opt_ void **ppvCommandSignature); 12703 12704 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 12705 void ( STDMETHODCALLTYPE *GetResourceTiling )( 12706 ID3D12Device4 * This, 12707 _In_ ID3D12Resource *pTiledResource, 12708 _Out_opt_ UINT *pNumTilesForEntireResource, 12709 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 12710 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 12711 _Inout_opt_ UINT *pNumSubresourceTilings, 12712 _In_ UINT FirstSubresourceTilingToGet, 12713 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 12714 12715 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 12716#if !defined(_WIN32) 12717 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 12718 ID3D12Device4 * This); 12719 12720#else 12721 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 12722 ID3D12Device4 * This, 12723 LUID * RetVal); 12724 12725#endif 12726 12727 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 12728 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 12729 ID3D12Device4 * This, 12730 _In_reads_(BlobLength) const void *pLibraryBlob, 12731 SIZE_T BlobLength, 12732 REFIID riid, 12733 _COM_Outptr_ void **ppPipelineLibrary); 12734 12735 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 12736 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 12737 ID3D12Device4 * This, 12738 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 12739 _In_reads_(NumFences) const UINT64 *pFenceValues, 12740 UINT NumFences, 12741 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 12742 HANDLE hEvent); 12743 12744 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 12745 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 12746 ID3D12Device4 * This, 12747 UINT NumObjects, 12748 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 12749 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 12750 12751 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 12752 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 12753 ID3D12Device4 * This, 12754 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 12755 REFIID riid, 12756 _COM_Outptr_ void **ppPipelineState); 12757 12758 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 12759 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 12760 ID3D12Device4 * This, 12761 _In_ const void *pAddress, 12762 REFIID riid, 12763 _COM_Outptr_ void **ppvHeap); 12764 12765 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 12766 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 12767 ID3D12Device4 * This, 12768 _In_ HANDLE hFileMapping, 12769 REFIID riid, 12770 _COM_Outptr_ void **ppvHeap); 12771 12772 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 12773 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 12774 ID3D12Device4 * This, 12775 D3D12_RESIDENCY_FLAGS Flags, 12776 UINT NumObjects, 12777 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 12778 _In_ ID3D12Fence *pFenceToSignal, 12779 UINT64 FenceValueToSignal); 12780 12781 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 12782 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 12783 ID3D12Device4 * This, 12784 _In_ UINT nodeMask, 12785 _In_ D3D12_COMMAND_LIST_TYPE type, 12786 _In_ D3D12_COMMAND_LIST_FLAGS flags, 12787 REFIID riid, 12788 _COM_Outptr_ void **ppCommandList); 12789 12790 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 12791 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 12792 ID3D12Device4 * This, 12793 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 12794 _In_ REFIID riid, 12795 _COM_Outptr_ void **ppSession); 12796 12797 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 12798 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 12799 ID3D12Device4 * This, 12800 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 12801 D3D12_HEAP_FLAGS HeapFlags, 12802 _In_ const D3D12_RESOURCE_DESC *pDesc, 12803 D3D12_RESOURCE_STATES InitialResourceState, 12804 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12806 REFIID riidResource, 12807 _COM_Outptr_opt_ void **ppvResource); 12808 12809 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 12810 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 12811 ID3D12Device4 * This, 12812 _In_ const D3D12_HEAP_DESC *pDesc, 12813 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12814 REFIID riid, 12815 _COM_Outptr_opt_ void **ppvHeap); 12816 12817 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 12818 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 12819 ID3D12Device4 * This, 12820 _In_ const D3D12_RESOURCE_DESC *pDesc, 12821 D3D12_RESOURCE_STATES InitialState, 12822 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 12823 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 12824 REFIID riid, 12825 _COM_Outptr_opt_ void **ppvResource); 12826 12827 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 12828#if !defined(_WIN32) 12829 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 12830 ID3D12Device4 * This, 12831 UINT visibleMask, 12832 UINT numResourceDescs, 12833 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 12834 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 12835 12836#else 12837 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 12838 ID3D12Device4 * This, 12839 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 12840 UINT visibleMask, 12841 UINT numResourceDescs, 12842 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 12843 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 12844 12845#endif 12846 12847 END_INTERFACE 12848 } ID3D12Device4Vtbl; 12849 12850 interface ID3D12Device4 12851 { 12852 CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl; 12853 }; 12854 12855 12856 12857#ifdef COBJMACROS 12858 12859 12860#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \ 12861 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 12862 12863#define ID3D12Device4_AddRef(This) \ 12864 ( (This)->lpVtbl -> AddRef(This) ) 12865 12866#define ID3D12Device4_Release(This) \ 12867 ( (This)->lpVtbl -> Release(This) ) 12868 12869 12870#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \ 12871 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 12872 12873#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \ 12874 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 12875 12876#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \ 12877 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 12878 12879#define ID3D12Device4_SetName(This,Name) \ 12880 ( (This)->lpVtbl -> SetName(This,Name) ) 12881 12882 12883#define ID3D12Device4_GetNodeCount(This) \ 12884 ( (This)->lpVtbl -> GetNodeCount(This) ) 12885 12886#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 12887 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 12888 12889#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 12890 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 12891 12892#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 12893 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 12894 12895#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 12896 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 12897 12898#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 12899 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 12900 12901#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 12902 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 12903 12904#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 12905 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 12906 12907#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 12908 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 12909 12910#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 12911 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 12912 12913#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 12914 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 12915 12916#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 12917 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 12918 12919#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 12920 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 12921 12922#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 12923 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 12924 12925#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 12926 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 12927 12928#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \ 12929 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 12930 12931#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 12932 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 12933 12934#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 12935 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 12936#if !defined(_WIN32) 12937 12938#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 12939 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 12940#else 12941#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 12942 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 12943#endif 12944#if !defined(_WIN32) 12945 12946#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \ 12947 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 12948#else 12949#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 12950 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 12951#endif 12952 12953#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 12954 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 12955 12956#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \ 12957 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 12958 12959#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 12960 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 12961 12962#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 12963 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 12964 12965#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 12966 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 12967 12968#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 12969 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 12970 12971#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 12972 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 12973 12974#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \ 12975 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 12976 12977#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \ 12978 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 12979 12980#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 12981 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 12982 12983#define ID3D12Device4_GetDeviceRemovedReason(This) \ 12984 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 12985 12986#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 12987 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 12988 12989#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 12990 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 12991 12992#define ID3D12Device4_SetStablePowerState(This,Enable) \ 12993 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 12994 12995#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 12996 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 12997 12998#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 12999 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 13000#if !defined(_WIN32) 13001 13002#define ID3D12Device4_GetAdapterLuid(This) \ 13003 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 13004#else 13005#define ID3D12Device4_GetAdapterLuid(This,RetVal) \ 13006 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 13007#endif 13008 13009 13010#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 13011 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 13012 13013#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 13014 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 13015 13016#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 13017 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 13018 13019 13020#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 13021 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 13022 13023 13024#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 13025 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 13026 13027#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 13028 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 13029 13030#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 13031 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 13032 13033 13034#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 13035 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 13036 13037#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 13038 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 13039 13040#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 13041 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 13042 13043#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 13044 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 13045 13046#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 13047 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 13048#if !defined(_WIN32) 13049 13050#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 13051 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 13052#else 13053#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 13054 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 13055#endif 13056 13057#endif /* COBJMACROS */ 13058 13059 13060#endif /* C style interface */ 13061 13062 13063 13064 13065#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ 13066 13067 13068/* interface __MIDL_itf_d3d12_0000_0029 */ 13069/* [local] */ 13070 13071typedef 13072enum D3D12_LIFETIME_STATE 13073 { 13074 D3D12_LIFETIME_STATE_IN_USE = 0, 13075 D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 ) 13076 } D3D12_LIFETIME_STATE; 13077 13078 13079 13080 13081extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; 13082extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; 13083 13084#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ 13085#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ 13086 13087/* interface ID3D12LifetimeOwner */ 13088/* [unique][local][object][uuid] */ 13089 13090 13091EXTERN_C const IID IID_ID3D12LifetimeOwner; 13092 13093#if defined(__cplusplus) && !defined(CINTERFACE) 13094 13095 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8") 13096 ID3D12LifetimeOwner : public IUnknown 13097 { 13098 public: 13099 virtual void STDMETHODCALLTYPE LifetimeStateUpdated( 13100 D3D12_LIFETIME_STATE NewState) = 0; 13101 13102 }; 13103 13104 13105#else /* C style interface */ 13106 13107 typedef struct ID3D12LifetimeOwnerVtbl 13108 { 13109 BEGIN_INTERFACE 13110 13111 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13112 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13113 ID3D12LifetimeOwner * This, 13114 REFIID riid, 13115 _COM_Outptr_ void **ppvObject); 13116 13117 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13118 ULONG ( STDMETHODCALLTYPE *AddRef )( 13119 ID3D12LifetimeOwner * This); 13120 13121 DECLSPEC_XFGVIRT(IUnknown, Release) 13122 ULONG ( STDMETHODCALLTYPE *Release )( 13123 ID3D12LifetimeOwner * This); 13124 13125 DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated) 13126 void ( STDMETHODCALLTYPE *LifetimeStateUpdated )( 13127 ID3D12LifetimeOwner * This, 13128 D3D12_LIFETIME_STATE NewState); 13129 13130 END_INTERFACE 13131 } ID3D12LifetimeOwnerVtbl; 13132 13133 interface ID3D12LifetimeOwner 13134 { 13135 CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl; 13136 }; 13137 13138 13139 13140#ifdef COBJMACROS 13141 13142 13143#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \ 13144 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13145 13146#define ID3D12LifetimeOwner_AddRef(This) \ 13147 ( (This)->lpVtbl -> AddRef(This) ) 13148 13149#define ID3D12LifetimeOwner_Release(This) \ 13150 ( (This)->lpVtbl -> Release(This) ) 13151 13152 13153#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \ 13154 ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) ) 13155 13156#endif /* COBJMACROS */ 13157 13158 13159#endif /* C style interface */ 13160 13161 13162 13163 13164#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */ 13165 13166 13167#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ 13168#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ 13169 13170/* interface ID3D12SwapChainAssistant */ 13171/* [unique][local][object][uuid] */ 13172 13173 13174EXTERN_C const IID IID_ID3D12SwapChainAssistant; 13175 13176#if defined(__cplusplus) && !defined(CINTERFACE) 13177 13178 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f") 13179 ID3D12SwapChainAssistant : public IUnknown 13180 { 13181 public: 13182#if defined(_MSC_VER) || !defined(_WIN32) 13183 virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0; 13184#else 13185 virtual LUID *STDMETHODCALLTYPE GetLUID( 13186 LUID * RetVal) = 0; 13187#endif 13188 13189 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject( 13190 REFIID riid, 13191 _COM_Outptr_ void **ppv) = 0; 13192 13193 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue( 13194 REFIID riidResource, 13195 _COM_Outptr_ void **ppvResource, 13196 REFIID riidQueue, 13197 _COM_Outptr_ void **ppvQueue) = 0; 13198 13199 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0; 13200 13201 }; 13202 13203 13204#else /* C style interface */ 13205 13206 typedef struct ID3D12SwapChainAssistantVtbl 13207 { 13208 BEGIN_INTERFACE 13209 13210 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13211 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13212 ID3D12SwapChainAssistant * This, 13213 REFIID riid, 13214 _COM_Outptr_ void **ppvObject); 13215 13216 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13217 ULONG ( STDMETHODCALLTYPE *AddRef )( 13218 ID3D12SwapChainAssistant * This); 13219 13220 DECLSPEC_XFGVIRT(IUnknown, Release) 13221 ULONG ( STDMETHODCALLTYPE *Release )( 13222 ID3D12SwapChainAssistant * This); 13223 13224 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID) 13225#if !defined(_WIN32) 13226 LUID ( STDMETHODCALLTYPE *GetLUID )( 13227 ID3D12SwapChainAssistant * This); 13228 13229#else 13230 LUID *( STDMETHODCALLTYPE *GetLUID )( 13231 ID3D12SwapChainAssistant * This, 13232 LUID * RetVal); 13233 13234#endif 13235 13236 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject) 13237 HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )( 13238 ID3D12SwapChainAssistant * This, 13239 REFIID riid, 13240 _COM_Outptr_ void **ppv); 13241 13242 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue) 13243 HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )( 13244 ID3D12SwapChainAssistant * This, 13245 REFIID riidResource, 13246 _COM_Outptr_ void **ppvResource, 13247 REFIID riidQueue, 13248 _COM_Outptr_ void **ppvQueue); 13249 13250 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync) 13251 HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )( 13252 ID3D12SwapChainAssistant * This); 13253 13254 END_INTERFACE 13255 } ID3D12SwapChainAssistantVtbl; 13256 13257 interface ID3D12SwapChainAssistant 13258 { 13259 CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl; 13260 }; 13261 13262 13263 13264#ifdef COBJMACROS 13265 13266 13267#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \ 13268 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13269 13270#define ID3D12SwapChainAssistant_AddRef(This) \ 13271 ( (This)->lpVtbl -> AddRef(This) ) 13272 13273#define ID3D12SwapChainAssistant_Release(This) \ 13274 ( (This)->lpVtbl -> Release(This) ) 13275 13276#if !defined(_WIN32) 13277 13278#define ID3D12SwapChainAssistant_GetLUID(This) \ 13279 ( (This)->lpVtbl -> GetLUID(This) ) 13280#else 13281#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \ 13282 ( (This)->lpVtbl -> GetLUID(This,RetVal) ) 13283#endif 13284 13285#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \ 13286 ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) ) 13287 13288#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \ 13289 ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) ) 13290 13291#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \ 13292 ( (This)->lpVtbl -> InsertImplicitSync(This) ) 13293 13294#endif /* COBJMACROS */ 13295 13296 13297#endif /* C style interface */ 13298 13299 13300 13301 13302#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */ 13303 13304 13305#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__ 13306#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__ 13307 13308/* interface ID3D12LifetimeTracker */ 13309/* [unique][local][object][uuid] */ 13310 13311 13312EXTERN_C const IID IID_ID3D12LifetimeTracker; 13313 13314#if defined(__cplusplus) && !defined(CINTERFACE) 13315 13316 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813") 13317 ID3D12LifetimeTracker : public ID3D12DeviceChild 13318 { 13319 public: 13320 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject( 13321 _In_ ID3D12DeviceChild *pObject) = 0; 13322 13323 }; 13324 13325 13326#else /* C style interface */ 13327 13328 typedef struct ID3D12LifetimeTrackerVtbl 13329 { 13330 BEGIN_INTERFACE 13331 13332 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13333 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13334 ID3D12LifetimeTracker * This, 13335 REFIID riid, 13336 _COM_Outptr_ void **ppvObject); 13337 13338 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13339 ULONG ( STDMETHODCALLTYPE *AddRef )( 13340 ID3D12LifetimeTracker * This); 13341 13342 DECLSPEC_XFGVIRT(IUnknown, Release) 13343 ULONG ( STDMETHODCALLTYPE *Release )( 13344 ID3D12LifetimeTracker * This); 13345 13346 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 13347 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 13348 ID3D12LifetimeTracker * This, 13349 _In_ REFGUID guid, 13350 _Inout_ UINT *pDataSize, 13351 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 13352 13353 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 13354 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 13355 ID3D12LifetimeTracker * This, 13356 _In_ REFGUID guid, 13357 _In_ UINT DataSize, 13358 _In_reads_bytes_opt_( DataSize ) const void *pData); 13359 13360 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 13361 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 13362 ID3D12LifetimeTracker * This, 13363 _In_ REFGUID guid, 13364 _In_opt_ const IUnknown *pData); 13365 13366 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 13367 HRESULT ( STDMETHODCALLTYPE *SetName )( 13368 ID3D12LifetimeTracker * This, 13369 _In_z_ LPCWSTR Name); 13370 13371 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 13372 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 13373 ID3D12LifetimeTracker * This, 13374 REFIID riid, 13375 _COM_Outptr_opt_ void **ppvDevice); 13376 13377 DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject) 13378 HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )( 13379 ID3D12LifetimeTracker * This, 13380 _In_ ID3D12DeviceChild *pObject); 13381 13382 END_INTERFACE 13383 } ID3D12LifetimeTrackerVtbl; 13384 13385 interface ID3D12LifetimeTracker 13386 { 13387 CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl; 13388 }; 13389 13390 13391 13392#ifdef COBJMACROS 13393 13394 13395#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \ 13396 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13397 13398#define ID3D12LifetimeTracker_AddRef(This) \ 13399 ( (This)->lpVtbl -> AddRef(This) ) 13400 13401#define ID3D12LifetimeTracker_Release(This) \ 13402 ( (This)->lpVtbl -> Release(This) ) 13403 13404 13405#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \ 13406 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 13407 13408#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \ 13409 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 13410 13411#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \ 13412 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 13413 13414#define ID3D12LifetimeTracker_SetName(This,Name) \ 13415 ( (This)->lpVtbl -> SetName(This,Name) ) 13416 13417 13418#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \ 13419 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 13420 13421 13422#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \ 13423 ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) ) 13424 13425#endif /* COBJMACROS */ 13426 13427 13428#endif /* C style interface */ 13429 13430 13431 13432 13433#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ 13434 13435 13436/* interface __MIDL_itf_d3d12_0000_0032 */ 13437/* [local] */ 13438 13439typedef 13440enum D3D12_META_COMMAND_PARAMETER_TYPE 13441 { 13442 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0, 13443 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1, 13444 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2, 13445 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3, 13446 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4 13447 } D3D12_META_COMMAND_PARAMETER_TYPE; 13448 13449typedef 13450enum D3D12_META_COMMAND_PARAMETER_FLAGS 13451 { 13452 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1, 13453 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2 13454 } D3D12_META_COMMAND_PARAMETER_FLAGS; 13455 13456DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS ) 13457typedef 13458enum D3D12_META_COMMAND_PARAMETER_STAGE 13459 { 13460 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0, 13461 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, 13462 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2 13463 } D3D12_META_COMMAND_PARAMETER_STAGE; 13464 13465typedef struct D3D12_META_COMMAND_PARAMETER_DESC 13466 { 13467 LPCWSTR Name; 13468 D3D12_META_COMMAND_PARAMETER_TYPE Type; 13469 D3D12_META_COMMAND_PARAMETER_FLAGS Flags; 13470 D3D12_RESOURCE_STATES RequiredResourceState; 13471 UINT StructureOffset; 13472 } D3D12_META_COMMAND_PARAMETER_DESC; 13473 13474typedef 13475enum D3D12_GRAPHICS_STATES 13476 { 13477 D3D12_GRAPHICS_STATE_NONE = 0, 13478 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) , 13479 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) , 13480 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) , 13481 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) , 13482 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) , 13483 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) , 13484 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) , 13485 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) , 13486 D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) , 13487 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) , 13488 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) , 13489 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) , 13490 D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) , 13491 D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) , 13492 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) , 13493 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) , 13494 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 ) 13495 } D3D12_GRAPHICS_STATES; 13496 13497DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES ) 13498typedef struct D3D12_META_COMMAND_DESC 13499 { 13500 GUID Id; 13501 LPCWSTR Name; 13502 D3D12_GRAPHICS_STATES InitializationDirtyState; 13503 D3D12_GRAPHICS_STATES ExecutionDirtyState; 13504 } D3D12_META_COMMAND_DESC; 13505 13506 13507 13508extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec; 13509extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec; 13510 13511#ifndef __ID3D12StateObject_INTERFACE_DEFINED__ 13512#define __ID3D12StateObject_INTERFACE_DEFINED__ 13513 13514/* interface ID3D12StateObject */ 13515/* [unique][local][object][uuid] */ 13516 13517 13518EXTERN_C const IID IID_ID3D12StateObject; 13519 13520#if defined(__cplusplus) && !defined(CINTERFACE) 13521 13522 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d") 13523 ID3D12StateObject : public ID3D12Pageable 13524 { 13525 public: 13526 }; 13527 13528 13529#else /* C style interface */ 13530 13531 typedef struct ID3D12StateObjectVtbl 13532 { 13533 BEGIN_INTERFACE 13534 13535 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13536 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13537 ID3D12StateObject * This, 13538 REFIID riid, 13539 _COM_Outptr_ void **ppvObject); 13540 13541 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13542 ULONG ( STDMETHODCALLTYPE *AddRef )( 13543 ID3D12StateObject * This); 13544 13545 DECLSPEC_XFGVIRT(IUnknown, Release) 13546 ULONG ( STDMETHODCALLTYPE *Release )( 13547 ID3D12StateObject * This); 13548 13549 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 13550 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 13551 ID3D12StateObject * This, 13552 _In_ REFGUID guid, 13553 _Inout_ UINT *pDataSize, 13554 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 13555 13556 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 13557 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 13558 ID3D12StateObject * This, 13559 _In_ REFGUID guid, 13560 _In_ UINT DataSize, 13561 _In_reads_bytes_opt_( DataSize ) const void *pData); 13562 13563 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 13564 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 13565 ID3D12StateObject * This, 13566 _In_ REFGUID guid, 13567 _In_opt_ const IUnknown *pData); 13568 13569 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 13570 HRESULT ( STDMETHODCALLTYPE *SetName )( 13571 ID3D12StateObject * This, 13572 _In_z_ LPCWSTR Name); 13573 13574 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 13575 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 13576 ID3D12StateObject * This, 13577 REFIID riid, 13578 _COM_Outptr_opt_ void **ppvDevice); 13579 13580 END_INTERFACE 13581 } ID3D12StateObjectVtbl; 13582 13583 interface ID3D12StateObject 13584 { 13585 CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl; 13586 }; 13587 13588 13589 13590#ifdef COBJMACROS 13591 13592 13593#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \ 13594 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13595 13596#define ID3D12StateObject_AddRef(This) \ 13597 ( (This)->lpVtbl -> AddRef(This) ) 13598 13599#define ID3D12StateObject_Release(This) \ 13600 ( (This)->lpVtbl -> Release(This) ) 13601 13602 13603#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \ 13604 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 13605 13606#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \ 13607 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 13608 13609#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \ 13610 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 13611 13612#define ID3D12StateObject_SetName(This,Name) \ 13613 ( (This)->lpVtbl -> SetName(This,Name) ) 13614 13615 13616#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \ 13617 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 13618 13619 13620 13621#endif /* COBJMACROS */ 13622 13623 13624#endif /* C style interface */ 13625 13626 13627 13628 13629#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */ 13630 13631 13632#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__ 13633#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__ 13634 13635/* interface ID3D12StateObjectProperties */ 13636/* [unique][local][object][uuid] */ 13637 13638 13639EXTERN_C const IID IID_ID3D12StateObjectProperties; 13640 13641#if defined(__cplusplus) && !defined(CINTERFACE) 13642 13643 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860") 13644 ID3D12StateObjectProperties : public IUnknown 13645 { 13646 public: 13647 virtual void *STDMETHODCALLTYPE GetShaderIdentifier( 13648 _In_ LPCWSTR pExportName) = 0; 13649 13650 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize( 13651 _In_ LPCWSTR pExportName) = 0; 13652 13653 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0; 13654 13655 virtual void STDMETHODCALLTYPE SetPipelineStackSize( 13656 UINT64 PipelineStackSizeInBytes) = 0; 13657 13658 }; 13659 13660 13661#else /* C style interface */ 13662 13663 typedef struct ID3D12StateObjectPropertiesVtbl 13664 { 13665 BEGIN_INTERFACE 13666 13667 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13668 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13669 ID3D12StateObjectProperties * This, 13670 REFIID riid, 13671 _COM_Outptr_ void **ppvObject); 13672 13673 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13674 ULONG ( STDMETHODCALLTYPE *AddRef )( 13675 ID3D12StateObjectProperties * This); 13676 13677 DECLSPEC_XFGVIRT(IUnknown, Release) 13678 ULONG ( STDMETHODCALLTYPE *Release )( 13679 ID3D12StateObjectProperties * This); 13680 13681 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) 13682 void *( STDMETHODCALLTYPE *GetShaderIdentifier )( 13683 ID3D12StateObjectProperties * This, 13684 _In_ LPCWSTR pExportName); 13685 13686 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) 13687 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( 13688 ID3D12StateObjectProperties * This, 13689 _In_ LPCWSTR pExportName); 13690 13691 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) 13692 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( 13693 ID3D12StateObjectProperties * This); 13694 13695 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) 13696 void ( STDMETHODCALLTYPE *SetPipelineStackSize )( 13697 ID3D12StateObjectProperties * This, 13698 UINT64 PipelineStackSizeInBytes); 13699 13700 END_INTERFACE 13701 } ID3D12StateObjectPropertiesVtbl; 13702 13703 interface ID3D12StateObjectProperties 13704 { 13705 CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl; 13706 }; 13707 13708 13709 13710#ifdef COBJMACROS 13711 13712 13713#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \ 13714 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13715 13716#define ID3D12StateObjectProperties_AddRef(This) \ 13717 ( (This)->lpVtbl -> AddRef(This) ) 13718 13719#define ID3D12StateObjectProperties_Release(This) \ 13720 ( (This)->lpVtbl -> Release(This) ) 13721 13722 13723#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \ 13724 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) 13725 13726#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \ 13727 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) 13728 13729#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \ 13730 ( (This)->lpVtbl -> GetPipelineStackSize(This) ) 13731 13732#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ 13733 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) 13734 13735#endif /* COBJMACROS */ 13736 13737 13738#endif /* C style interface */ 13739 13740 13741 13742 13743#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ 13744 13745 13746/* interface __MIDL_itf_d3d12_0000_0034 */ 13747/* [local] */ 13748 13749typedef struct D3D12_PROGRAM_IDENTIFIER 13750 { 13751 UINT64 OpaqueData[ 4 ]; 13752 } D3D12_PROGRAM_IDENTIFIER; 13753 13754 13755 13756extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; 13757extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; 13758 13759#ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ 13760#define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ 13761 13762/* interface ID3D12StateObjectProperties1 */ 13763/* [unique][local][object][uuid] */ 13764 13765 13766EXTERN_C const IID IID_ID3D12StateObjectProperties1; 13767 13768#if defined(__cplusplus) && !defined(CINTERFACE) 13769 13770 MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138") 13771 ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties 13772 { 13773 public: 13774#if defined(_MSC_VER) || !defined(_WIN32) 13775 virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier( 13776 LPCWSTR pProgramName) = 0; 13777#else 13778 virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier( 13779 D3D12_PROGRAM_IDENTIFIER * RetVal, 13780 LPCWSTR pProgramName) = 0; 13781#endif 13782 13783 }; 13784 13785 13786#else /* C style interface */ 13787 13788 typedef struct ID3D12StateObjectProperties1Vtbl 13789 { 13790 BEGIN_INTERFACE 13791 13792 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 13793 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 13794 ID3D12StateObjectProperties1 * This, 13795 REFIID riid, 13796 _COM_Outptr_ void **ppvObject); 13797 13798 DECLSPEC_XFGVIRT(IUnknown, AddRef) 13799 ULONG ( STDMETHODCALLTYPE *AddRef )( 13800 ID3D12StateObjectProperties1 * This); 13801 13802 DECLSPEC_XFGVIRT(IUnknown, Release) 13803 ULONG ( STDMETHODCALLTYPE *Release )( 13804 ID3D12StateObjectProperties1 * This); 13805 13806 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) 13807 void *( STDMETHODCALLTYPE *GetShaderIdentifier )( 13808 ID3D12StateObjectProperties1 * This, 13809 _In_ LPCWSTR pExportName); 13810 13811 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) 13812 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( 13813 ID3D12StateObjectProperties1 * This, 13814 _In_ LPCWSTR pExportName); 13815 13816 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) 13817 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( 13818 ID3D12StateObjectProperties1 * This); 13819 13820 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) 13821 void ( STDMETHODCALLTYPE *SetPipelineStackSize )( 13822 ID3D12StateObjectProperties1 * This, 13823 UINT64 PipelineStackSizeInBytes); 13824 13825 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) 13826#if !defined(_WIN32) 13827 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( 13828 ID3D12StateObjectProperties1 * This, 13829 LPCWSTR pProgramName); 13830 13831#else 13832 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( 13833 ID3D12StateObjectProperties1 * This, 13834 D3D12_PROGRAM_IDENTIFIER * RetVal, 13835 LPCWSTR pProgramName); 13836 13837#endif 13838 13839 END_INTERFACE 13840 } ID3D12StateObjectProperties1Vtbl; 13841 13842 interface ID3D12StateObjectProperties1 13843 { 13844 CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl; 13845 }; 13846 13847 13848 13849#ifdef COBJMACROS 13850 13851 13852#define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \ 13853 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 13854 13855#define ID3D12StateObjectProperties1_AddRef(This) \ 13856 ( (This)->lpVtbl -> AddRef(This) ) 13857 13858#define ID3D12StateObjectProperties1_Release(This) \ 13859 ( (This)->lpVtbl -> Release(This) ) 13860 13861 13862#define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \ 13863 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) 13864 13865#define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \ 13866 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) 13867 13868#define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \ 13869 ( (This)->lpVtbl -> GetPipelineStackSize(This) ) 13870 13871#define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ 13872 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) 13873 13874#if !defined(_WIN32) 13875 13876#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \ 13877 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) 13878#else 13879#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \ 13880 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) 13881#endif 13882 13883#endif /* COBJMACROS */ 13884 13885 13886#endif /* C style interface */ 13887 13888 13889 13890 13891#endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */ 13892 13893 13894/* interface __MIDL_itf_d3d12_0000_0035 */ 13895/* [local] */ 13896 13897typedef struct D3D12_NODE_ID 13898 { 13899 LPCWSTR Name; 13900 UINT ArrayIndex; 13901 } D3D12_NODE_ID; 13902 13903typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS 13904 { 13905 UINT64 MinSizeInBytes; 13906 UINT64 MaxSizeInBytes; 13907 UINT SizeGranularityInBytes; 13908 } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS; 13909 13910 13911 13912extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec; 13913extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec; 13914 13915#ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ 13916#define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ 13917 13918/* interface ID3D12WorkGraphProperties */ 13919/* [unique][local][object][uuid] */ 13920 13921 13922EXTERN_C const IID IID_ID3D12WorkGraphProperties; 13923 13924#if defined(__cplusplus) && !defined(CINTERFACE) 13925 13926 MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757") 13927 ID3D12WorkGraphProperties : public IUnknown 13928 { 13929 public: 13930 virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0; 13931 13932 virtual LPCWSTR STDMETHODCALLTYPE GetProgramName( 13933 UINT WorkGraphIndex) = 0; 13934 13935 virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex( 13936 LPCWSTR pProgramName) = 0; 13937 13938 virtual UINT STDMETHODCALLTYPE GetNumNodes( 13939 UINT WorkGraphIndex) = 0; 13940 13941#if defined(_MSC_VER) || !defined(_WIN32) 13942 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID( 13943 UINT WorkGraphIndex, 13944 UINT NodeIndex) = 0; 13945#else 13946 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID( 13947 D3D12_NODE_ID * RetVal, 13948 UINT WorkGraphIndex, 13949 UINT NodeIndex) = 0; 13950#endif 13951 13952 virtual UINT STDMETHODCALLTYPE GetNodeIndex( 13953 UINT WorkGraphIndex, 13954 D3D12_NODE_ID NodeID) = 0; 13955 13956 virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex( 13957 UINT WorkGraphIndex, 13958 UINT NodeIndex) = 0; 13959 13960 virtual UINT STDMETHODCALLTYPE GetNumEntrypoints( 13961 UINT WorkGraphIndex) = 0; 13962 13963#if defined(_MSC_VER) || !defined(_WIN32) 13964 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID( 13965 UINT WorkGraphIndex, 13966 UINT EntrypointIndex) = 0; 13967#else 13968 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID( 13969 D3D12_NODE_ID * RetVal, 13970 UINT WorkGraphIndex, 13971 UINT EntrypointIndex) = 0; 13972#endif 13973 13974 virtual UINT STDMETHODCALLTYPE GetEntrypointIndex( 13975 UINT WorkGraphIndex, 13976 D3D12_NODE_ID NodeID) = 0; 13977 13978 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes( 13979 UINT WorkGraphIndex, 13980 UINT EntrypointIndex) = 0; 13981 13982 virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements( 13983 UINT WorkGraphIndex, 13984 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0; 13985 13986 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes( 13987 UINT WorkGraphIndex, 13988 UINT EntrypointIndex) = 0; 13989 13990 }; 13991 13992 13993#else /* C style interface */ 13994 13995 typedef struct ID3D12WorkGraphPropertiesVtbl 13996 { 13997 BEGIN_INTERFACE 13998 13999 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 14000 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 14001 ID3D12WorkGraphProperties * This, 14002 REFIID riid, 14003 _COM_Outptr_ void **ppvObject); 14004 14005 DECLSPEC_XFGVIRT(IUnknown, AddRef) 14006 ULONG ( STDMETHODCALLTYPE *AddRef )( 14007 ID3D12WorkGraphProperties * This); 14008 14009 DECLSPEC_XFGVIRT(IUnknown, Release) 14010 ULONG ( STDMETHODCALLTYPE *Release )( 14011 ID3D12WorkGraphProperties * This); 14012 14013 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs) 14014 UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )( 14015 ID3D12WorkGraphProperties * This); 14016 14017 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName) 14018 LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )( 14019 ID3D12WorkGraphProperties * This, 14020 UINT WorkGraphIndex); 14021 14022 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex) 14023 UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )( 14024 ID3D12WorkGraphProperties * This, 14025 LPCWSTR pProgramName); 14026 14027 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes) 14028 UINT ( STDMETHODCALLTYPE *GetNumNodes )( 14029 ID3D12WorkGraphProperties * This, 14030 UINT WorkGraphIndex); 14031 14032 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID) 14033#if !defined(_WIN32) 14034 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )( 14035 ID3D12WorkGraphProperties * This, 14036 UINT WorkGraphIndex, 14037 UINT NodeIndex); 14038 14039#else 14040 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )( 14041 ID3D12WorkGraphProperties * This, 14042 D3D12_NODE_ID * RetVal, 14043 UINT WorkGraphIndex, 14044 UINT NodeIndex); 14045 14046#endif 14047 14048 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex) 14049 UINT ( STDMETHODCALLTYPE *GetNodeIndex )( 14050 ID3D12WorkGraphProperties * This, 14051 UINT WorkGraphIndex, 14052 D3D12_NODE_ID NodeID); 14053 14054 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex) 14055 UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )( 14056 ID3D12WorkGraphProperties * This, 14057 UINT WorkGraphIndex, 14058 UINT NodeIndex); 14059 14060 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints) 14061 UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )( 14062 ID3D12WorkGraphProperties * This, 14063 UINT WorkGraphIndex); 14064 14065 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID) 14066#if !defined(_WIN32) 14067 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )( 14068 ID3D12WorkGraphProperties * This, 14069 UINT WorkGraphIndex, 14070 UINT EntrypointIndex); 14071 14072#else 14073 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )( 14074 ID3D12WorkGraphProperties * This, 14075 D3D12_NODE_ID * RetVal, 14076 UINT WorkGraphIndex, 14077 UINT EntrypointIndex); 14078 14079#endif 14080 14081 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex) 14082 UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )( 14083 ID3D12WorkGraphProperties * This, 14084 UINT WorkGraphIndex, 14085 D3D12_NODE_ID NodeID); 14086 14087 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes) 14088 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )( 14089 ID3D12WorkGraphProperties * This, 14090 UINT WorkGraphIndex, 14091 UINT EntrypointIndex); 14092 14093 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements) 14094 void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )( 14095 ID3D12WorkGraphProperties * This, 14096 UINT WorkGraphIndex, 14097 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements); 14098 14099 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes) 14100 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )( 14101 ID3D12WorkGraphProperties * This, 14102 UINT WorkGraphIndex, 14103 UINT EntrypointIndex); 14104 14105 END_INTERFACE 14106 } ID3D12WorkGraphPropertiesVtbl; 14107 14108 interface ID3D12WorkGraphProperties 14109 { 14110 CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl; 14111 }; 14112 14113 14114 14115#ifdef COBJMACROS 14116 14117 14118#define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \ 14119 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 14120 14121#define ID3D12WorkGraphProperties_AddRef(This) \ 14122 ( (This)->lpVtbl -> AddRef(This) ) 14123 14124#define ID3D12WorkGraphProperties_Release(This) \ 14125 ( (This)->lpVtbl -> Release(This) ) 14126 14127 14128#define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \ 14129 ( (This)->lpVtbl -> GetNumWorkGraphs(This) ) 14130 14131#define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \ 14132 ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) ) 14133 14134#define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \ 14135 ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) ) 14136 14137#define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \ 14138 ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) ) 14139#if !defined(_WIN32) 14140 14141#define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \ 14142 ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) ) 14143#else 14144#define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \ 14145 ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) ) 14146#endif 14147 14148#define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \ 14149 ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) ) 14150 14151#define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \ 14152 ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) ) 14153 14154#define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \ 14155 ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) ) 14156#if !defined(_WIN32) 14157 14158#define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \ 14159 ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) ) 14160#else 14161#define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \ 14162 ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) ) 14163#endif 14164 14165#define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \ 14166 ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) ) 14167 14168#define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \ 14169 ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) ) 14170 14171#define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \ 14172 ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) ) 14173 14174#define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \ 14175 ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) ) 14176 14177#endif /* COBJMACROS */ 14178 14179 14180#endif /* C style interface */ 14181 14182 14183 14184 14185#endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ 14186 14187 14188/* interface __MIDL_itf_d3d12_0000_0036 */ 14189/* [local] */ 14190 14191typedef 14192enum D3D12_STATE_SUBOBJECT_TYPE 14193 { 14194 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, 14195 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, 14196 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, 14197 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, 14198 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, 14199 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, 14200 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, 14201 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, 14202 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, 14203 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, 14204 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, 14205 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, 14206 D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13, 14207 D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14, 14208 D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15, 14209 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16, 14210 D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17, 14211 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18, 14212 D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19, 14213 D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20, 14214 D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21, 14215 D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22, 14216 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23, 14217 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24, 14218 D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26, 14219 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27, 14220 D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, 14221 D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, 14222 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, 14223 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 + 1 ) 14224 } D3D12_STATE_SUBOBJECT_TYPE; 14225 14226typedef struct D3D12_STATE_SUBOBJECT 14227 { 14228 D3D12_STATE_SUBOBJECT_TYPE Type; 14229 const void *pDesc; 14230 } D3D12_STATE_SUBOBJECT; 14231 14232typedef 14233enum D3D12_STATE_OBJECT_FLAGS 14234 { 14235 D3D12_STATE_OBJECT_FLAG_NONE = 0, 14236 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, 14237 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, 14238 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4 14239 } D3D12_STATE_OBJECT_FLAGS; 14240 14241DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS ) 14242typedef struct D3D12_STATE_OBJECT_CONFIG 14243 { 14244 D3D12_STATE_OBJECT_FLAGS Flags; 14245 } D3D12_STATE_OBJECT_CONFIG; 14246 14247typedef struct D3D12_GLOBAL_ROOT_SIGNATURE 14248 { 14249 ID3D12RootSignature *pGlobalRootSignature; 14250 } D3D12_GLOBAL_ROOT_SIGNATURE; 14251 14252typedef struct D3D12_LOCAL_ROOT_SIGNATURE 14253 { 14254 ID3D12RootSignature *pLocalRootSignature; 14255 } D3D12_LOCAL_ROOT_SIGNATURE; 14256 14257typedef struct D3D12_NODE_MASK 14258 { 14259 UINT NodeMask; 14260 } D3D12_NODE_MASK; 14261 14262typedef struct D3D12_SAMPLE_MASK 14263 { 14264 UINT SampleMask; 14265 } D3D12_SAMPLE_MASK; 14266 14267typedef struct D3D12_IB_STRIP_CUT_VALUE 14268 { 14269 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue; 14270 } D3D12_IB_STRIP_CUT_VALUE; 14271 14272typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC 14273 { 14274 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology; 14275 } D3D12_PRIMITIVE_TOPOLOGY_DESC; 14276 14277typedef struct D3D12_DEPTH_STENCIL_FORMAT 14278 { 14279 DXGI_FORMAT DepthStencilFormat; 14280 } D3D12_DEPTH_STENCIL_FORMAT; 14281 14282typedef 14283enum D3D12_EXPORT_FLAGS 14284 { 14285 D3D12_EXPORT_FLAG_NONE = 0 14286 } D3D12_EXPORT_FLAGS; 14287 14288DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS ) 14289typedef struct D3D12_EXPORT_DESC 14290 { 14291 LPCWSTR Name; 14292 _In_opt_ LPCWSTR ExportToRename; 14293 D3D12_EXPORT_FLAGS Flags; 14294 } D3D12_EXPORT_DESC; 14295 14296typedef struct D3D12_DXIL_LIBRARY_DESC 14297 { 14298 D3D12_SHADER_BYTECODE DXILLibrary; 14299 UINT NumExports; 14300 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; 14301 } D3D12_DXIL_LIBRARY_DESC; 14302 14303typedef struct D3D12_EXISTING_COLLECTION_DESC 14304 { 14305 ID3D12StateObject *pExistingCollection; 14306 UINT NumExports; 14307 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; 14308 } D3D12_EXISTING_COLLECTION_DESC; 14309 14310typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION 14311 { 14312 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate; 14313 UINT NumExports; 14314 _In_reads_(NumExports) LPCWSTR *pExports; 14315 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; 14316 14317typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION 14318 { 14319 LPCWSTR SubobjectToAssociate; 14320 UINT NumExports; 14321 _In_reads_(NumExports) LPCWSTR *pExports; 14322 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; 14323 14324typedef 14325enum D3D12_HIT_GROUP_TYPE 14326 { 14327 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0, 14328 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1 14329 } D3D12_HIT_GROUP_TYPE; 14330 14331typedef struct D3D12_HIT_GROUP_DESC 14332 { 14333 LPCWSTR HitGroupExport; 14334 D3D12_HIT_GROUP_TYPE Type; 14335 _In_opt_ LPCWSTR AnyHitShaderImport; 14336 _In_opt_ LPCWSTR ClosestHitShaderImport; 14337 _In_opt_ LPCWSTR IntersectionShaderImport; 14338 } D3D12_HIT_GROUP_DESC; 14339 14340typedef struct D3D12_RAYTRACING_SHADER_CONFIG 14341 { 14342 UINT MaxPayloadSizeInBytes; 14343 UINT MaxAttributeSizeInBytes; 14344 } D3D12_RAYTRACING_SHADER_CONFIG; 14345 14346typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG 14347 { 14348 UINT MaxTraceRecursionDepth; 14349 } D3D12_RAYTRACING_PIPELINE_CONFIG; 14350 14351typedef 14352enum D3D12_RAYTRACING_PIPELINE_FLAGS 14353 { 14354 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0, 14355 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, 14356 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 14357 } D3D12_RAYTRACING_PIPELINE_FLAGS; 14358 14359DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS ) 14360typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 14361 { 14362 UINT MaxTraceRecursionDepth; 14363 D3D12_RAYTRACING_PIPELINE_FLAGS Flags; 14364 } D3D12_RAYTRACING_PIPELINE_CONFIG1; 14365 14366typedef struct D3D12_NODE_OUTPUT_OVERRIDES 14367 { 14368 UINT OutputIndex; 14369 _In_opt_ const D3D12_NODE_ID *pNewName; 14370 _In_opt_ const BOOL *pAllowSparseNodes; 14371 _In_opt_ const UINT *pMaxRecords; 14372 _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex; 14373 } D3D12_NODE_OUTPUT_OVERRIDES; 14374 14375typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES 14376 { 14377 _In_opt_ const UINT *pLocalRootArgumentsTableIndex; 14378 _In_opt_ const BOOL *pProgramEntry; 14379 _In_opt_ const D3D12_NODE_ID *pNewName; 14380 _In_opt_ const D3D12_NODE_ID *pShareInputOf; 14381 _In_reads_opt_(3) const UINT *pDispatchGrid; 14382 _In_reads_opt_(3) const UINT *pMaxDispatchGrid; 14383 UINT NumOutputOverrides; 14384 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; 14385 } D3D12_BROADCASTING_LAUNCH_OVERRIDES; 14386 14387typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES 14388 { 14389 _In_opt_ const UINT *pLocalRootArgumentsTableIndex; 14390 _In_opt_ const BOOL *pProgramEntry; 14391 _In_opt_ const D3D12_NODE_ID *pNewName; 14392 _In_opt_ const D3D12_NODE_ID *pShareInputOf; 14393 UINT NumOutputOverrides; 14394 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; 14395 } D3D12_COALESCING_LAUNCH_OVERRIDES; 14396 14397typedef struct D3D12_THREAD_LAUNCH_OVERRIDES 14398 { 14399 _In_opt_ const UINT *pLocalRootArgumentsTableIndex; 14400 _In_opt_ const BOOL *pProgramEntry; 14401 _In_opt_ const D3D12_NODE_ID *pNewName; 14402 _In_opt_ const D3D12_NODE_ID *pShareInputOf; 14403 UINT NumOutputOverrides; 14404 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; 14405 } D3D12_THREAD_LAUNCH_OVERRIDES; 14406 14407typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES 14408 { 14409 _In_opt_ const UINT *pLocalRootArgumentsTableIndex; 14410 _In_opt_ const BOOL *pProgramEntry; 14411 _In_opt_ const D3D12_NODE_ID *pNewName; 14412 _In_opt_ const D3D12_NODE_ID *pShareInputOf; 14413 UINT NumOutputOverrides; 14414 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; 14415 } D3D12_COMMON_COMPUTE_NODE_OVERRIDES; 14416 14417typedef 14418enum D3D12_NODE_OVERRIDES_TYPE 14419 { 14420 D3D12_NODE_OVERRIDES_TYPE_NONE = 0, 14421 D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1, 14422 D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2, 14423 D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3, 14424 D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4 14425 } D3D12_NODE_OVERRIDES_TYPE; 14426 14427typedef struct D3D12_SHADER_NODE 14428 { 14429 LPCWSTR Shader; 14430 D3D12_NODE_OVERRIDES_TYPE OverridesType; 14431 union 14432 { 14433 const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides; 14434 const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides; 14435 const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides; 14436 const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides; 14437 } ; 14438 } D3D12_SHADER_NODE; 14439 14440typedef 14441enum D3D12_NODE_TYPE 14442 { 14443 D3D12_NODE_TYPE_SHADER = 0 14444 } D3D12_NODE_TYPE; 14445 14446typedef struct D3D12_NODE 14447 { 14448 D3D12_NODE_TYPE NodeType; 14449 union 14450 { 14451 D3D12_SHADER_NODE Shader; 14452 } ; 14453 } D3D12_NODE; 14454 14455typedef 14456enum D3D12_WORK_GRAPH_FLAGS 14457 { 14458 D3D12_WORK_GRAPH_FLAG_NONE = 0, 14459 D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1 14460 } D3D12_WORK_GRAPH_FLAGS; 14461 14462DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS ) 14463typedef struct D3D12_WORK_GRAPH_DESC 14464 { 14465 LPCWSTR ProgramName; 14466 D3D12_WORK_GRAPH_FLAGS Flags; 14467 UINT NumEntrypoints; 14468 _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints; 14469 UINT NumExplicitlyDefinedNodes; 14470 _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes; 14471 } D3D12_WORK_GRAPH_DESC; 14472 14473typedef struct D3D12_GENERIC_PROGRAM_DESC 14474 { 14475 LPCWSTR ProgramName; 14476 UINT NumExports; 14477 _In_reads_(NumExports) LPCWSTR *pExports; 14478 UINT NumSubobjects; 14479 _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects; 14480 } D3D12_GENERIC_PROGRAM_DESC; 14481 14482typedef 14483enum D3D12_STATE_OBJECT_TYPE 14484 { 14485 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, 14486 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, 14487 D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4 14488 } D3D12_STATE_OBJECT_TYPE; 14489 14490typedef struct D3D12_STATE_OBJECT_DESC 14491 { 14492 D3D12_STATE_OBJECT_TYPE Type; 14493 UINT NumSubobjects; 14494 _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects; 14495 } D3D12_STATE_OBJECT_DESC; 14496 14497typedef 14498enum D3D12_RAYTRACING_GEOMETRY_FLAGS 14499 { 14500 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0, 14501 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, 14502 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2 14503 } D3D12_RAYTRACING_GEOMETRY_FLAGS; 14504 14505DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS ) 14506typedef 14507enum D3D12_RAYTRACING_GEOMETRY_TYPE 14508 { 14509 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0, 14510 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) 14511 } D3D12_RAYTRACING_GEOMETRY_TYPE; 14512 14513typedef 14514enum D3D12_RAYTRACING_INSTANCE_FLAGS 14515 { 14516 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0, 14517 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, 14518 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, 14519 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, 14520 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8 14521 } D3D12_RAYTRACING_INSTANCE_FLAGS; 14522 14523DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS ) 14524typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE 14525 { 14526 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 14527 UINT64 StrideInBytes; 14528 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; 14529 14530typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE 14531 { 14532 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 14533 UINT64 SizeInBytes; 14534 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE; 14535 14536typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE 14537 { 14538 D3D12_GPU_VIRTUAL_ADDRESS StartAddress; 14539 UINT64 SizeInBytes; 14540 UINT64 StrideInBytes; 14541 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; 14542 14543typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC 14544 { 14545 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; 14546 DXGI_FORMAT IndexFormat; 14547 DXGI_FORMAT VertexFormat; 14548 UINT IndexCount; 14549 UINT VertexCount; 14550 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; 14551 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; 14552 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; 14553 14554typedef struct D3D12_RAYTRACING_AABB 14555 { 14556 FLOAT MinX; 14557 FLOAT MinY; 14558 FLOAT MinZ; 14559 FLOAT MaxX; 14560 FLOAT MaxY; 14561 FLOAT MaxZ; 14562 } D3D12_RAYTRACING_AABB; 14563 14564typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC 14565 { 14566 UINT64 AABBCount; 14567 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; 14568 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; 14569 14570typedef 14571enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS 14572 { 14573 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0, 14574 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1, 14575 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2, 14576 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4, 14577 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8, 14578 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, 14579 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20 14580 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; 14581 14582DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS ) 14583typedef 14584enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE 14585 { 14586 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0, 14587 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, 14588 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, 14589 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, 14590 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4 14591 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; 14592 14593typedef 14594enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE 14595 { 14596 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0, 14597 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1 14598 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; 14599 14600typedef 14601enum D3D12_ELEMENTS_LAYOUT 14602 { 14603 D3D12_ELEMENTS_LAYOUT_ARRAY = 0, 14604 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 14605 } D3D12_ELEMENTS_LAYOUT; 14606 14607typedef 14608enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE 14609 { 14610 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0, 14611 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, 14612 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, 14613 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3 14614 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; 14615 14616typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC 14617 { 14618 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; 14619 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; 14620 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; 14621 14622typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC 14623 { 14624 UINT64 CompactedSizeInBytes; 14625 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; 14626 14627typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC 14628 { 14629 UINT64 DecodedSizeInBytes; 14630 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; 14631 14632typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER 14633 { 14634 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; 14635 UINT NumDescs; 14636 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; 14637 14638// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above, 14639// depending on Type field, NumDescs above is followed by either: 14640// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs] 14641// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs]. 14642// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU. 14643 14644typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC 14645 { 14646 UINT64 SerializedSizeInBytes; 14647 UINT64 NumBottomLevelAccelerationStructurePointers; 14648 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; 14649 14650typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER 14651 { 14652 GUID DriverOpaqueGUID; 14653 BYTE DriverOpaqueVersioningData[ 16 ]; 14654 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; 14655 14656typedef 14657enum D3D12_SERIALIZED_DATA_TYPE 14658 { 14659 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0 14660 } D3D12_SERIALIZED_DATA_TYPE; 14661 14662typedef 14663enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS 14664 { 14665 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0, 14666 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, 14667 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, 14668 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, 14669 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4 14670 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; 14671 14672typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER 14673 { 14674 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; 14675 UINT64 SerializedSizeInBytesIncludingHeader; 14676 UINT64 DeserializedSizeInBytes; 14677 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; 14678 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; 14679 14680typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC 14681 { 14682 UINT64 CurrentSizeInBytes; 14683 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; 14684 14685typedef struct D3D12_RAYTRACING_INSTANCE_DESC 14686 { 14687 FLOAT Transform[ 3 ][ 4 ]; 14688 UINT InstanceID : 24; 14689 UINT InstanceMask : 8; 14690 UINT InstanceContributionToHitGroupIndex : 24; 14691 UINT Flags : 8; 14692 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; 14693 } D3D12_RAYTRACING_INSTANCE_DESC; 14694 14695typedef struct D3D12_RAYTRACING_GEOMETRY_DESC 14696 { 14697 D3D12_RAYTRACING_GEOMETRY_TYPE Type; 14698 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; 14699 union 14700 { 14701 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; 14702 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; 14703 } ; 14704 } D3D12_RAYTRACING_GEOMETRY_DESC; 14705 14706typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 14707 { 14708 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; 14709 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; 14710 UINT NumDescs; 14711 D3D12_ELEMENTS_LAYOUT DescsLayout; 14712 union 14713 { 14714 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; 14715 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs; 14716 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs; 14717 } ; 14718 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; 14719 14720typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 14721 { 14722 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; 14723 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; 14724 _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; 14725 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; 14726 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; 14727 14728typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO 14729 { 14730 UINT64 ResultDataMaxSizeInBytes; 14731 UINT64 ScratchDataSizeInBytes; 14732 UINT64 UpdateScratchDataSizeInBytes; 14733 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; 14734 14735typedef 14736enum D3D12_RAY_FLAGS 14737 { 14738 D3D12_RAY_FLAG_NONE = 0, 14739 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1, 14740 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2, 14741 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4, 14742 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8, 14743 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, 14744 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, 14745 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, 14746 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, 14747 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, 14748 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200 14749 } D3D12_RAY_FLAGS; 14750 14751DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS ) 14752typedef 14753enum D3D12_HIT_KIND 14754 { 14755 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, 14756 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff 14757 } D3D12_HIT_KIND; 14758 14759 14760 14761extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; 14762extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; 14763 14764#ifndef __ID3D12Device5_INTERFACE_DEFINED__ 14765#define __ID3D12Device5_INTERFACE_DEFINED__ 14766 14767/* interface ID3D12Device5 */ 14768/* [unique][local][object][uuid] */ 14769 14770 14771EXTERN_C const IID IID_ID3D12Device5; 14772 14773#if defined(__cplusplus) && !defined(CINTERFACE) 14774 14775 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d") 14776 ID3D12Device5 : public ID3D12Device4 14777 { 14778 public: 14779 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker( 14780 _In_ ID3D12LifetimeOwner *pOwner, 14781 REFIID riid, 14782 _COM_Outptr_ void **ppvTracker) = 0; 14783 14784 virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0; 14785 14786 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands( 14787 _Inout_ UINT *pNumMetaCommands, 14788 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0; 14789 14790 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters( 14791 _In_ REFGUID CommandId, 14792 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 14793 _Out_opt_ UINT *pTotalStructureSizeInBytes, 14794 _Inout_ UINT *pParameterCount, 14795 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0; 14796 14797 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand( 14798 _In_ REFGUID CommandId, 14799 _In_ UINT NodeMask, 14800 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 14801 _In_ SIZE_T CreationParametersDataSizeInBytes, 14802 REFIID riid, 14803 _COM_Outptr_ void **ppMetaCommand) = 0; 14804 14805 virtual HRESULT STDMETHODCALLTYPE CreateStateObject( 14806 const D3D12_STATE_OBJECT_DESC *pDesc, 14807 REFIID riid, 14808 _COM_Outptr_ void **ppStateObject) = 0; 14809 14810 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo( 14811 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 14812 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0; 14813 14814 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier( 14815 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 14816 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0; 14817 14818 }; 14819 14820 14821#else /* C style interface */ 14822 14823 typedef struct ID3D12Device5Vtbl 14824 { 14825 BEGIN_INTERFACE 14826 14827 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 14828 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 14829 ID3D12Device5 * This, 14830 REFIID riid, 14831 _COM_Outptr_ void **ppvObject); 14832 14833 DECLSPEC_XFGVIRT(IUnknown, AddRef) 14834 ULONG ( STDMETHODCALLTYPE *AddRef )( 14835 ID3D12Device5 * This); 14836 14837 DECLSPEC_XFGVIRT(IUnknown, Release) 14838 ULONG ( STDMETHODCALLTYPE *Release )( 14839 ID3D12Device5 * This); 14840 14841 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 14842 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 14843 ID3D12Device5 * This, 14844 _In_ REFGUID guid, 14845 _Inout_ UINT *pDataSize, 14846 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 14847 14848 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 14849 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 14850 ID3D12Device5 * This, 14851 _In_ REFGUID guid, 14852 _In_ UINT DataSize, 14853 _In_reads_bytes_opt_( DataSize ) const void *pData); 14854 14855 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 14856 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 14857 ID3D12Device5 * This, 14858 _In_ REFGUID guid, 14859 _In_opt_ const IUnknown *pData); 14860 14861 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 14862 HRESULT ( STDMETHODCALLTYPE *SetName )( 14863 ID3D12Device5 * This, 14864 _In_z_ LPCWSTR Name); 14865 14866 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 14867 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 14868 ID3D12Device5 * This); 14869 14870 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 14871 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 14872 ID3D12Device5 * This, 14873 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 14874 REFIID riid, 14875 _COM_Outptr_ void **ppCommandQueue); 14876 14877 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 14878 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 14879 ID3D12Device5 * This, 14880 _In_ D3D12_COMMAND_LIST_TYPE type, 14881 REFIID riid, 14882 _COM_Outptr_ void **ppCommandAllocator); 14883 14884 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 14885 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 14886 ID3D12Device5 * This, 14887 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 14888 REFIID riid, 14889 _COM_Outptr_ void **ppPipelineState); 14890 14891 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 14892 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 14893 ID3D12Device5 * This, 14894 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 14895 REFIID riid, 14896 _COM_Outptr_ void **ppPipelineState); 14897 14898 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 14899 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 14900 ID3D12Device5 * This, 14901 _In_ UINT nodeMask, 14902 _In_ D3D12_COMMAND_LIST_TYPE type, 14903 _In_ ID3D12CommandAllocator *pCommandAllocator, 14904 _In_opt_ ID3D12PipelineState *pInitialState, 14905 REFIID riid, 14906 _COM_Outptr_ void **ppCommandList); 14907 14908 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 14909 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 14910 ID3D12Device5 * This, 14911 D3D12_FEATURE Feature, 14912 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 14913 UINT FeatureSupportDataSize); 14914 14915 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 14916 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 14917 ID3D12Device5 * This, 14918 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 14919 REFIID riid, 14920 _COM_Outptr_ void **ppvHeap); 14921 14922 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 14923 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 14924 ID3D12Device5 * This, 14925 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 14926 14927 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 14928 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 14929 ID3D12Device5 * This, 14930 _In_ UINT nodeMask, 14931 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 14932 _In_ SIZE_T blobLengthInBytes, 14933 REFIID riid, 14934 _COM_Outptr_ void **ppvRootSignature); 14935 14936 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 14937 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 14938 ID3D12Device5 * This, 14939 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 14940 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14941 14942 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 14943 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 14944 ID3D12Device5 * This, 14945 _In_opt_ ID3D12Resource *pResource, 14946 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 14947 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14948 14949 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 14950 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 14951 ID3D12Device5 * This, 14952 _In_opt_ ID3D12Resource *pResource, 14953 _In_opt_ ID3D12Resource *pCounterResource, 14954 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 14955 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14956 14957 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 14958 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 14959 ID3D12Device5 * This, 14960 _In_opt_ ID3D12Resource *pResource, 14961 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 14962 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14963 14964 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 14965 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 14966 ID3D12Device5 * This, 14967 _In_opt_ ID3D12Resource *pResource, 14968 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 14969 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14970 14971 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 14972 void ( STDMETHODCALLTYPE *CreateSampler )( 14973 ID3D12Device5 * This, 14974 _In_ const D3D12_SAMPLER_DESC *pDesc, 14975 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 14976 14977 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 14978 void ( STDMETHODCALLTYPE *CopyDescriptors )( 14979 ID3D12Device5 * This, 14980 _In_ UINT NumDestDescriptorRanges, 14981 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 14982 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 14983 _In_ UINT NumSrcDescriptorRanges, 14984 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 14985 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 14986 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 14987 14988 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 14989 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 14990 ID3D12Device5 * This, 14991 _In_ UINT NumDescriptors, 14992 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 14993 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 14994 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 14995 14996 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 14997#if !defined(_WIN32) 14998 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 14999 ID3D12Device5 * This, 15000 _In_ UINT visibleMask, 15001 _In_ UINT numResourceDescs, 15002 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 15003 15004#else 15005 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 15006 ID3D12Device5 * This, 15007 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 15008 _In_ UINT visibleMask, 15009 _In_ UINT numResourceDescs, 15010 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 15011 15012#endif 15013 15014 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 15015#if !defined(_WIN32) 15016 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 15017 ID3D12Device5 * This, 15018 _In_ UINT nodeMask, 15019 D3D12_HEAP_TYPE heapType); 15020 15021#else 15022 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 15023 ID3D12Device5 * This, 15024 D3D12_HEAP_PROPERTIES * RetVal, 15025 _In_ UINT nodeMask, 15026 D3D12_HEAP_TYPE heapType); 15027 15028#endif 15029 15030 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 15031 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 15032 ID3D12Device5 * This, 15033 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 15034 D3D12_HEAP_FLAGS HeapFlags, 15035 _In_ const D3D12_RESOURCE_DESC *pDesc, 15036 D3D12_RESOURCE_STATES InitialResourceState, 15037 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 15038 REFIID riidResource, 15039 _COM_Outptr_opt_ void **ppvResource); 15040 15041 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 15042 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 15043 ID3D12Device5 * This, 15044 _In_ const D3D12_HEAP_DESC *pDesc, 15045 REFIID riid, 15046 _COM_Outptr_opt_ void **ppvHeap); 15047 15048 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 15049 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 15050 ID3D12Device5 * This, 15051 _In_ ID3D12Heap *pHeap, 15052 UINT64 HeapOffset, 15053 _In_ const D3D12_RESOURCE_DESC *pDesc, 15054 D3D12_RESOURCE_STATES InitialState, 15055 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 15056 REFIID riid, 15057 _COM_Outptr_opt_ void **ppvResource); 15058 15059 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 15060 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 15061 ID3D12Device5 * This, 15062 _In_ const D3D12_RESOURCE_DESC *pDesc, 15063 D3D12_RESOURCE_STATES InitialState, 15064 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 15065 REFIID riid, 15066 _COM_Outptr_opt_ void **ppvResource); 15067 15068 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 15069 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 15070 ID3D12Device5 * This, 15071 _In_ ID3D12DeviceChild *pObject, 15072 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 15073 DWORD Access, 15074 _In_opt_ LPCWSTR Name, 15075 _Out_ HANDLE *pHandle); 15076 15077 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 15078 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 15079 ID3D12Device5 * This, 15080 _In_ HANDLE NTHandle, 15081 REFIID riid, 15082 _COM_Outptr_opt_ void **ppvObj); 15083 15084 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 15085 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 15086 ID3D12Device5 * This, 15087 _In_ LPCWSTR Name, 15088 DWORD Access, 15089 /* [annotation][out] */ 15090 _Out_ HANDLE *pNTHandle); 15091 15092 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 15093 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 15094 ID3D12Device5 * This, 15095 UINT NumObjects, 15096 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 15097 15098 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 15099 HRESULT ( STDMETHODCALLTYPE *Evict )( 15100 ID3D12Device5 * This, 15101 UINT NumObjects, 15102 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 15103 15104 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 15105 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 15106 ID3D12Device5 * This, 15107 UINT64 InitialValue, 15108 D3D12_FENCE_FLAGS Flags, 15109 REFIID riid, 15110 _COM_Outptr_ void **ppFence); 15111 15112 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 15113 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 15114 ID3D12Device5 * This); 15115 15116 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 15117 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 15118 ID3D12Device5 * This, 15119 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 15120 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 15121 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 15122 UINT64 BaseOffset, 15123 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 15124 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 15125 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 15126 _Out_opt_ UINT64 *pTotalBytes); 15127 15128 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 15129 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 15130 ID3D12Device5 * This, 15131 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 15132 REFIID riid, 15133 _COM_Outptr_opt_ void **ppvHeap); 15134 15135 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 15136 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 15137 ID3D12Device5 * This, 15138 BOOL Enable); 15139 15140 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 15141 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 15142 ID3D12Device5 * This, 15143 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 15144 _In_opt_ ID3D12RootSignature *pRootSignature, 15145 REFIID riid, 15146 _COM_Outptr_opt_ void **ppvCommandSignature); 15147 15148 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 15149 void ( STDMETHODCALLTYPE *GetResourceTiling )( 15150 ID3D12Device5 * This, 15151 _In_ ID3D12Resource *pTiledResource, 15152 _Out_opt_ UINT *pNumTilesForEntireResource, 15153 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 15154 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 15155 _Inout_opt_ UINT *pNumSubresourceTilings, 15156 _In_ UINT FirstSubresourceTilingToGet, 15157 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 15158 15159 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 15160#if !defined(_WIN32) 15161 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 15162 ID3D12Device5 * This); 15163 15164#else 15165 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 15166 ID3D12Device5 * This, 15167 LUID * RetVal); 15168 15169#endif 15170 15171 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 15172 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 15173 ID3D12Device5 * This, 15174 _In_reads_(BlobLength) const void *pLibraryBlob, 15175 SIZE_T BlobLength, 15176 REFIID riid, 15177 _COM_Outptr_ void **ppPipelineLibrary); 15178 15179 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 15180 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 15181 ID3D12Device5 * This, 15182 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 15183 _In_reads_(NumFences) const UINT64 *pFenceValues, 15184 UINT NumFences, 15185 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 15186 HANDLE hEvent); 15187 15188 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 15189 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 15190 ID3D12Device5 * This, 15191 UINT NumObjects, 15192 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 15193 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 15194 15195 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 15196 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 15197 ID3D12Device5 * This, 15198 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 15199 REFIID riid, 15200 _COM_Outptr_ void **ppPipelineState); 15201 15202 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 15203 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 15204 ID3D12Device5 * This, 15205 _In_ const void *pAddress, 15206 REFIID riid, 15207 _COM_Outptr_ void **ppvHeap); 15208 15209 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 15210 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 15211 ID3D12Device5 * This, 15212 _In_ HANDLE hFileMapping, 15213 REFIID riid, 15214 _COM_Outptr_ void **ppvHeap); 15215 15216 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 15217 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 15218 ID3D12Device5 * This, 15219 D3D12_RESIDENCY_FLAGS Flags, 15220 UINT NumObjects, 15221 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 15222 _In_ ID3D12Fence *pFenceToSignal, 15223 UINT64 FenceValueToSignal); 15224 15225 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 15226 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 15227 ID3D12Device5 * This, 15228 _In_ UINT nodeMask, 15229 _In_ D3D12_COMMAND_LIST_TYPE type, 15230 _In_ D3D12_COMMAND_LIST_FLAGS flags, 15231 REFIID riid, 15232 _COM_Outptr_ void **ppCommandList); 15233 15234 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 15235 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 15236 ID3D12Device5 * This, 15237 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 15238 _In_ REFIID riid, 15239 _COM_Outptr_ void **ppSession); 15240 15241 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 15242 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 15243 ID3D12Device5 * This, 15244 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 15245 D3D12_HEAP_FLAGS HeapFlags, 15246 _In_ const D3D12_RESOURCE_DESC *pDesc, 15247 D3D12_RESOURCE_STATES InitialResourceState, 15248 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 15249 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 15250 REFIID riidResource, 15251 _COM_Outptr_opt_ void **ppvResource); 15252 15253 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 15254 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 15255 ID3D12Device5 * This, 15256 _In_ const D3D12_HEAP_DESC *pDesc, 15257 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 15258 REFIID riid, 15259 _COM_Outptr_opt_ void **ppvHeap); 15260 15261 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 15262 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 15263 ID3D12Device5 * This, 15264 _In_ const D3D12_RESOURCE_DESC *pDesc, 15265 D3D12_RESOURCE_STATES InitialState, 15266 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 15267 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 15268 REFIID riid, 15269 _COM_Outptr_opt_ void **ppvResource); 15270 15271 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 15272#if !defined(_WIN32) 15273 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 15274 ID3D12Device5 * This, 15275 UINT visibleMask, 15276 UINT numResourceDescs, 15277 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 15278 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 15279 15280#else 15281 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 15282 ID3D12Device5 * This, 15283 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 15284 UINT visibleMask, 15285 UINT numResourceDescs, 15286 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 15287 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 15288 15289#endif 15290 15291 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 15292 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 15293 ID3D12Device5 * This, 15294 _In_ ID3D12LifetimeOwner *pOwner, 15295 REFIID riid, 15296 _COM_Outptr_ void **ppvTracker); 15297 15298 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 15299 void ( STDMETHODCALLTYPE *RemoveDevice )( 15300 ID3D12Device5 * This); 15301 15302 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 15303 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 15304 ID3D12Device5 * This, 15305 _Inout_ UINT *pNumMetaCommands, 15306 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 15307 15308 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 15309 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 15310 ID3D12Device5 * This, 15311 _In_ REFGUID CommandId, 15312 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 15313 _Out_opt_ UINT *pTotalStructureSizeInBytes, 15314 _Inout_ UINT *pParameterCount, 15315 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 15316 15317 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 15318 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 15319 ID3D12Device5 * This, 15320 _In_ REFGUID CommandId, 15321 _In_ UINT NodeMask, 15322 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 15323 _In_ SIZE_T CreationParametersDataSizeInBytes, 15324 REFIID riid, 15325 _COM_Outptr_ void **ppMetaCommand); 15326 15327 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 15328 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 15329 ID3D12Device5 * This, 15330 const D3D12_STATE_OBJECT_DESC *pDesc, 15331 REFIID riid, 15332 _COM_Outptr_ void **ppStateObject); 15333 15334 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 15335 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 15336 ID3D12Device5 * This, 15337 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 15338 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 15339 15340 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 15341 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 15342 ID3D12Device5 * This, 15343 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 15344 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 15345 15346 END_INTERFACE 15347 } ID3D12Device5Vtbl; 15348 15349 interface ID3D12Device5 15350 { 15351 CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl; 15352 }; 15353 15354 15355 15356#ifdef COBJMACROS 15357 15358 15359#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \ 15360 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 15361 15362#define ID3D12Device5_AddRef(This) \ 15363 ( (This)->lpVtbl -> AddRef(This) ) 15364 15365#define ID3D12Device5_Release(This) \ 15366 ( (This)->lpVtbl -> Release(This) ) 15367 15368 15369#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \ 15370 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 15371 15372#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \ 15373 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 15374 15375#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \ 15376 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 15377 15378#define ID3D12Device5_SetName(This,Name) \ 15379 ( (This)->lpVtbl -> SetName(This,Name) ) 15380 15381 15382#define ID3D12Device5_GetNodeCount(This) \ 15383 ( (This)->lpVtbl -> GetNodeCount(This) ) 15384 15385#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 15386 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 15387 15388#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 15389 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 15390 15391#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 15392 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 15393 15394#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 15395 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 15396 15397#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 15398 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 15399 15400#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 15401 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 15402 15403#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 15404 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 15405 15406#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 15407 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 15408 15409#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 15410 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 15411 15412#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 15413 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 15414 15415#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 15416 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 15417 15418#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 15419 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 15420 15421#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 15422 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 15423 15424#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 15425 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 15426 15427#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \ 15428 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 15429 15430#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 15431 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 15432 15433#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 15434 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 15435#if !defined(_WIN32) 15436 15437#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 15438 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 15439#else 15440#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 15441 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 15442#endif 15443#if !defined(_WIN32) 15444 15445#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \ 15446 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 15447#else 15448#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 15449 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 15450#endif 15451 15452#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 15453 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 15454 15455#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \ 15456 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 15457 15458#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 15459 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 15460 15461#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 15462 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 15463 15464#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 15465 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 15466 15467#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 15468 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 15469 15470#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 15471 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 15472 15473#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \ 15474 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 15475 15476#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \ 15477 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 15478 15479#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 15480 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 15481 15482#define ID3D12Device5_GetDeviceRemovedReason(This) \ 15483 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 15484 15485#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 15486 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 15487 15488#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 15489 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 15490 15491#define ID3D12Device5_SetStablePowerState(This,Enable) \ 15492 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 15493 15494#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 15495 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 15496 15497#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 15498 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 15499#if !defined(_WIN32) 15500 15501#define ID3D12Device5_GetAdapterLuid(This) \ 15502 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 15503#else 15504#define ID3D12Device5_GetAdapterLuid(This,RetVal) \ 15505 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 15506#endif 15507 15508 15509#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 15510 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 15511 15512#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 15513 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 15514 15515#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 15516 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 15517 15518 15519#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 15520 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 15521 15522 15523#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 15524 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 15525 15526#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 15527 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 15528 15529#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 15530 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 15531 15532 15533#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 15534 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 15535 15536#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 15537 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 15538 15539#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 15540 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 15541 15542#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 15543 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 15544 15545#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 15546 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 15547#if !defined(_WIN32) 15548 15549#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 15550 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 15551#else 15552#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 15553 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 15554#endif 15555 15556 15557#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 15558 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 15559 15560#define ID3D12Device5_RemoveDevice(This) \ 15561 ( (This)->lpVtbl -> RemoveDevice(This) ) 15562 15563#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 15564 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 15565 15566#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 15567 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 15568 15569#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 15570 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 15571 15572#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \ 15573 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 15574 15575#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 15576 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 15577 15578#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 15579 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 15580 15581#endif /* COBJMACROS */ 15582 15583 15584#endif /* C style interface */ 15585 15586 15587 15588 15589#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ 15590 15591 15592/* interface __MIDL_itf_d3d12_0000_0037 */ 15593/* [local] */ 15594 15595typedef 15596enum D3D12_AUTO_BREADCRUMB_OP 15597 { 15598 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0, 15599 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1, 15600 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2, 15601 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3, 15602 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4, 15603 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5, 15604 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6, 15605 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7, 15606 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8, 15607 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9, 15608 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10, 15609 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11, 15610 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12, 15611 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13, 15612 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14, 15613 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15, 15614 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16, 15615 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17, 15616 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18, 15617 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19, 15618 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20, 15619 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21, 15620 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22, 15621 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23, 15622 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24, 15623 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25, 15624 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26, 15625 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27, 15626 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28, 15627 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29, 15628 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30, 15629 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, 15630 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, 15631 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, 15632 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34, 15633 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35, 15634 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36, 15635 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37, 15636 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38, 15637 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39, 15638 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40, 15639 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41, 15640 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42, 15641 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43, 15642 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44, 15643 D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45, 15644 D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46, 15645 D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47, 15646 D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48 15647 } D3D12_AUTO_BREADCRUMB_OP; 15648 15649typedef struct D3D12_AUTO_BREADCRUMB_NODE 15650 { 15651 const char *pCommandListDebugNameA; 15652 const wchar_t *pCommandListDebugNameW; 15653 const char *pCommandQueueDebugNameA; 15654 const wchar_t *pCommandQueueDebugNameW; 15655 ID3D12GraphicsCommandList *pCommandList; 15656 ID3D12CommandQueue *pCommandQueue; 15657 UINT32 BreadcrumbCount; 15658 const UINT32 *pLastBreadcrumbValue; 15659 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; 15660 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; 15661 } D3D12_AUTO_BREADCRUMB_NODE; 15662 15663typedef struct D3D12_DRED_BREADCRUMB_CONTEXT 15664 { 15665 UINT BreadcrumbIndex; 15666 const wchar_t *pContextString; 15667 } D3D12_DRED_BREADCRUMB_CONTEXT; 15668 15669typedef struct D3D12_AUTO_BREADCRUMB_NODE1 15670 { 15671 const char *pCommandListDebugNameA; 15672 const wchar_t *pCommandListDebugNameW; 15673 const char *pCommandQueueDebugNameA; 15674 const wchar_t *pCommandQueueDebugNameW; 15675 ID3D12GraphicsCommandList *pCommandList; 15676 ID3D12CommandQueue *pCommandQueue; 15677 UINT BreadcrumbCount; 15678 const UINT *pLastBreadcrumbValue; 15679 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; 15680 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; 15681 UINT BreadcrumbContextsCount; 15682 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; 15683 } D3D12_AUTO_BREADCRUMB_NODE1; 15684 15685typedef 15686enum D3D12_DRED_VERSION 15687 { 15688 D3D12_DRED_VERSION_1_0 = 0x1, 15689 D3D12_DRED_VERSION_1_1 = 0x2, 15690 D3D12_DRED_VERSION_1_2 = 0x3, 15691 D3D12_DRED_VERSION_1_3 = 0x4 15692 } D3D12_DRED_VERSION; 15693 15694typedef 15695enum D3D12_DRED_FLAGS 15696 { 15697 D3D12_DRED_FLAG_NONE = 0, 15698 D3D12_DRED_FLAG_FORCE_ENABLE = 1, 15699 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2 15700 } D3D12_DRED_FLAGS; 15701 15702DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS ) 15703typedef 15704enum D3D12_DRED_ENABLEMENT 15705 { 15706 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0, 15707 D3D12_DRED_ENABLEMENT_FORCED_OFF = 1, 15708 D3D12_DRED_ENABLEMENT_FORCED_ON = 2 15709 } D3D12_DRED_ENABLEMENT; 15710 15711typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA 15712 { 15713 _In_ D3D12_DRED_FLAGS Flags; 15714 _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; 15715 } D3D12_DEVICE_REMOVED_EXTENDED_DATA; 15716 15717typedef 15718enum D3D12_DRED_ALLOCATION_TYPE 15719 { 15720 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19, 15721 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20, 15722 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21, 15723 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22, 15724 D3D12_DRED_ALLOCATION_TYPE_FENCE = 23, 15725 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24, 15726 D3D12_DRED_ALLOCATION_TYPE_HEAP = 25, 15727 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27, 15728 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28, 15729 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29, 15730 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30, 15731 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32, 15732 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34, 15733 D3D12_DRED_ALLOCATION_TYPE_PASS = 35, 15734 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36, 15735 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37, 15736 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38, 15737 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39, 15738 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40, 15739 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41, 15740 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42, 15741 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43, 15742 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44, 15743 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45, 15744 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46, 15745 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47, 15746 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48, 15747 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49, 15748 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff 15749 } D3D12_DRED_ALLOCATION_TYPE; 15750 15751typedef struct D3D12_DRED_ALLOCATION_NODE 15752 { 15753 const char *ObjectNameA; 15754 const wchar_t *ObjectNameW; 15755 D3D12_DRED_ALLOCATION_TYPE AllocationType; 15756 const struct D3D12_DRED_ALLOCATION_NODE *pNext; 15757 } D3D12_DRED_ALLOCATION_NODE; 15758 15759typedef struct D3D12_DRED_ALLOCATION_NODE1 15760 { 15761 const char *ObjectNameA; 15762 const wchar_t *ObjectNameW; 15763 D3D12_DRED_ALLOCATION_TYPE AllocationType; 15764 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; 15765 const IUnknown *pObject; 15766 } D3D12_DRED_ALLOCATION_NODE1; 15767 15768typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT 15769 { 15770 _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; 15771 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; 15772 15773typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 15774 { 15775 _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; 15776 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; 15777 15778typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT 15779 { 15780 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 15781 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; 15782 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; 15783 } D3D12_DRED_PAGE_FAULT_OUTPUT; 15784 15785typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 15786 { 15787 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 15788 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; 15789 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; 15790 } D3D12_DRED_PAGE_FAULT_OUTPUT1; 15791 15792typedef 15793enum D3D12_DRED_PAGE_FAULT_FLAGS 15794 { 15795 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0 15796 } D3D12_DRED_PAGE_FAULT_FLAGS; 15797 15798DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS ) 15799typedef 15800enum D3D12_DRED_DEVICE_STATE 15801 { 15802 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, 15803 D3D12_DRED_DEVICE_STATE_HUNG = 3, 15804 D3D12_DRED_DEVICE_STATE_FAULT = 6, 15805 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7 15806 } D3D12_DRED_DEVICE_STATE; 15807 15808typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 15809 { 15810 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; 15811 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; 15812 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; 15813 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; 15814 } D3D12_DRED_PAGE_FAULT_OUTPUT2; 15815 15816typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 15817 { 15818 HRESULT DeviceRemovedReason; 15819 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; 15820 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; 15821 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1; 15822 15823typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 15824 { 15825 HRESULT DeviceRemovedReason; 15826 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; 15827 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; 15828 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2; 15829 15830typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 15831 { 15832 HRESULT DeviceRemovedReason; 15833 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; 15834 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; 15835 D3D12_DRED_DEVICE_STATE DeviceState; 15836 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3; 15837 15838typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA 15839 { 15840 D3D12_DRED_VERSION Version; 15841 union 15842 { 15843 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; 15844 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; 15845 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; 15846 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; 15847 } ; 15848 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; 15849 15850 15851 15852extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec; 15853extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec; 15854 15855#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ 15856#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ 15857 15858/* interface ID3D12DeviceRemovedExtendedDataSettings */ 15859/* [unique][local][object][uuid] */ 15860 15861 15862EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings; 15863 15864#if defined(__cplusplus) && !defined(CINTERFACE) 15865 15866 MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63") 15867 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown 15868 { 15869 public: 15870 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement( 15871 D3D12_DRED_ENABLEMENT Enablement) = 0; 15872 15873 virtual void STDMETHODCALLTYPE SetPageFaultEnablement( 15874 D3D12_DRED_ENABLEMENT Enablement) = 0; 15875 15876 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement( 15877 D3D12_DRED_ENABLEMENT Enablement) = 0; 15878 15879 }; 15880 15881 15882#else /* C style interface */ 15883 15884 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl 15885 { 15886 BEGIN_INTERFACE 15887 15888 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 15889 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 15890 ID3D12DeviceRemovedExtendedDataSettings * This, 15891 REFIID riid, 15892 _COM_Outptr_ void **ppvObject); 15893 15894 DECLSPEC_XFGVIRT(IUnknown, AddRef) 15895 ULONG ( STDMETHODCALLTYPE *AddRef )( 15896 ID3D12DeviceRemovedExtendedDataSettings * This); 15897 15898 DECLSPEC_XFGVIRT(IUnknown, Release) 15899 ULONG ( STDMETHODCALLTYPE *Release )( 15900 ID3D12DeviceRemovedExtendedDataSettings * This); 15901 15902 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) 15903 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( 15904 ID3D12DeviceRemovedExtendedDataSettings * This, 15905 D3D12_DRED_ENABLEMENT Enablement); 15906 15907 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) 15908 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( 15909 ID3D12DeviceRemovedExtendedDataSettings * This, 15910 D3D12_DRED_ENABLEMENT Enablement); 15911 15912 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) 15913 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( 15914 ID3D12DeviceRemovedExtendedDataSettings * This, 15915 D3D12_DRED_ENABLEMENT Enablement); 15916 15917 END_INTERFACE 15918 } ID3D12DeviceRemovedExtendedDataSettingsVtbl; 15919 15920 interface ID3D12DeviceRemovedExtendedDataSettings 15921 { 15922 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl; 15923 }; 15924 15925 15926 15927#ifdef COBJMACROS 15928 15929 15930#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \ 15931 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 15932 15933#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \ 15934 ( (This)->lpVtbl -> AddRef(This) ) 15935 15936#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \ 15937 ( (This)->lpVtbl -> Release(This) ) 15938 15939 15940#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \ 15941 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) 15942 15943#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \ 15944 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) 15945 15946#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \ 15947 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) 15948 15949#endif /* COBJMACROS */ 15950 15951 15952#endif /* C style interface */ 15953 15954 15955 15956 15957#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */ 15958 15959 15960#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ 15961#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ 15962 15963/* interface ID3D12DeviceRemovedExtendedDataSettings1 */ 15964/* [unique][local][object][uuid] */ 15965 15966 15967EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1; 15968 15969#if defined(__cplusplus) && !defined(CINTERFACE) 15970 15971 MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B") 15972 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings 15973 { 15974 public: 15975 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement( 15976 D3D12_DRED_ENABLEMENT Enablement) = 0; 15977 15978 }; 15979 15980 15981#else /* C style interface */ 15982 15983 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl 15984 { 15985 BEGIN_INTERFACE 15986 15987 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 15988 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 15989 ID3D12DeviceRemovedExtendedDataSettings1 * This, 15990 REFIID riid, 15991 _COM_Outptr_ void **ppvObject); 15992 15993 DECLSPEC_XFGVIRT(IUnknown, AddRef) 15994 ULONG ( STDMETHODCALLTYPE *AddRef )( 15995 ID3D12DeviceRemovedExtendedDataSettings1 * This); 15996 15997 DECLSPEC_XFGVIRT(IUnknown, Release) 15998 ULONG ( STDMETHODCALLTYPE *Release )( 15999 ID3D12DeviceRemovedExtendedDataSettings1 * This); 16000 16001 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) 16002 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( 16003 ID3D12DeviceRemovedExtendedDataSettings1 * This, 16004 D3D12_DRED_ENABLEMENT Enablement); 16005 16006 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) 16007 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( 16008 ID3D12DeviceRemovedExtendedDataSettings1 * This, 16009 D3D12_DRED_ENABLEMENT Enablement); 16010 16011 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) 16012 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( 16013 ID3D12DeviceRemovedExtendedDataSettings1 * This, 16014 D3D12_DRED_ENABLEMENT Enablement); 16015 16016 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) 16017 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( 16018 ID3D12DeviceRemovedExtendedDataSettings1 * This, 16019 D3D12_DRED_ENABLEMENT Enablement); 16020 16021 END_INTERFACE 16022 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl; 16023 16024 interface ID3D12DeviceRemovedExtendedDataSettings1 16025 { 16026 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl; 16027 }; 16028 16029 16030 16031#ifdef COBJMACROS 16032 16033 16034#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \ 16035 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 16036 16037#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \ 16038 ( (This)->lpVtbl -> AddRef(This) ) 16039 16040#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \ 16041 ( (This)->lpVtbl -> Release(This) ) 16042 16043 16044#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \ 16045 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) 16046 16047#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \ 16048 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) 16049 16050#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \ 16051 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) 16052 16053 16054#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \ 16055 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) 16056 16057#endif /* COBJMACROS */ 16058 16059 16060#endif /* C style interface */ 16061 16062 16063 16064 16065#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */ 16066 16067 16068#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ 16069#define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ 16070 16071/* interface ID3D12DeviceRemovedExtendedDataSettings2 */ 16072/* [unique][local][object][uuid] */ 16073 16074 16075EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2; 16076 16077#if defined(__cplusplus) && !defined(CINTERFACE) 16078 16079 MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea") 16080 ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1 16081 { 16082 public: 16083 virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs( 16084 BOOL MarkersOnly) = 0; 16085 16086 }; 16087 16088 16089#else /* C style interface */ 16090 16091 typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl 16092 { 16093 BEGIN_INTERFACE 16094 16095 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 16096 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 16097 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16098 REFIID riid, 16099 _COM_Outptr_ void **ppvObject); 16100 16101 DECLSPEC_XFGVIRT(IUnknown, AddRef) 16102 ULONG ( STDMETHODCALLTYPE *AddRef )( 16103 ID3D12DeviceRemovedExtendedDataSettings2 * This); 16104 16105 DECLSPEC_XFGVIRT(IUnknown, Release) 16106 ULONG ( STDMETHODCALLTYPE *Release )( 16107 ID3D12DeviceRemovedExtendedDataSettings2 * This); 16108 16109 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) 16110 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( 16111 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16112 D3D12_DRED_ENABLEMENT Enablement); 16113 16114 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) 16115 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( 16116 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16117 D3D12_DRED_ENABLEMENT Enablement); 16118 16119 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) 16120 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( 16121 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16122 D3D12_DRED_ENABLEMENT Enablement); 16123 16124 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) 16125 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( 16126 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16127 D3D12_DRED_ENABLEMENT Enablement); 16128 16129 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs) 16130 void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )( 16131 ID3D12DeviceRemovedExtendedDataSettings2 * This, 16132 BOOL MarkersOnly); 16133 16134 END_INTERFACE 16135 } ID3D12DeviceRemovedExtendedDataSettings2Vtbl; 16136 16137 interface ID3D12DeviceRemovedExtendedDataSettings2 16138 { 16139 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl; 16140 }; 16141 16142 16143 16144#ifdef COBJMACROS 16145 16146 16147#define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \ 16148 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 16149 16150#define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \ 16151 ( (This)->lpVtbl -> AddRef(This) ) 16152 16153#define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \ 16154 ( (This)->lpVtbl -> Release(This) ) 16155 16156 16157#define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \ 16158 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) 16159 16160#define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \ 16161 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) 16162 16163#define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \ 16164 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) 16165 16166 16167#define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \ 16168 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) 16169 16170 16171#define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \ 16172 ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) ) 16173 16174#endif /* COBJMACROS */ 16175 16176 16177#endif /* C style interface */ 16178 16179 16180 16181 16182#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */ 16183 16184 16185#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ 16186#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ 16187 16188/* interface ID3D12DeviceRemovedExtendedData */ 16189/* [unique][local][object][uuid] */ 16190 16191 16192EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData; 16193 16194#if defined(__cplusplus) && !defined(CINTERFACE) 16195 16196 MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71") 16197 ID3D12DeviceRemovedExtendedData : public IUnknown 16198 { 16199 public: 16200 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput( 16201 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0; 16202 16203 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput( 16204 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0; 16205 16206 }; 16207 16208 16209#else /* C style interface */ 16210 16211 typedef struct ID3D12DeviceRemovedExtendedDataVtbl 16212 { 16213 BEGIN_INTERFACE 16214 16215 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 16216 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 16217 ID3D12DeviceRemovedExtendedData * This, 16218 REFIID riid, 16219 _COM_Outptr_ void **ppvObject); 16220 16221 DECLSPEC_XFGVIRT(IUnknown, AddRef) 16222 ULONG ( STDMETHODCALLTYPE *AddRef )( 16223 ID3D12DeviceRemovedExtendedData * This); 16224 16225 DECLSPEC_XFGVIRT(IUnknown, Release) 16226 ULONG ( STDMETHODCALLTYPE *Release )( 16227 ID3D12DeviceRemovedExtendedData * This); 16228 16229 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) 16230 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( 16231 ID3D12DeviceRemovedExtendedData * This, 16232 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); 16233 16234 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) 16235 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( 16236 ID3D12DeviceRemovedExtendedData * This, 16237 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); 16238 16239 END_INTERFACE 16240 } ID3D12DeviceRemovedExtendedDataVtbl; 16241 16242 interface ID3D12DeviceRemovedExtendedData 16243 { 16244 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl; 16245 }; 16246 16247 16248 16249#ifdef COBJMACROS 16250 16251 16252#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \ 16253 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 16254 16255#define ID3D12DeviceRemovedExtendedData_AddRef(This) \ 16256 ( (This)->lpVtbl -> AddRef(This) ) 16257 16258#define ID3D12DeviceRemovedExtendedData_Release(This) \ 16259 ( (This)->lpVtbl -> Release(This) ) 16260 16261 16262#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \ 16263 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) 16264 16265#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \ 16266 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) 16267 16268#endif /* COBJMACROS */ 16269 16270 16271#endif /* C style interface */ 16272 16273 16274 16275 16276#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */ 16277 16278 16279#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ 16280#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ 16281 16282/* interface ID3D12DeviceRemovedExtendedData1 */ 16283/* [unique][local][object][uuid] */ 16284 16285 16286EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1; 16287 16288#if defined(__cplusplus) && !defined(CINTERFACE) 16289 16290 MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506") 16291 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData 16292 { 16293 public: 16294 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1( 16295 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0; 16296 16297 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1( 16298 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0; 16299 16300 }; 16301 16302 16303#else /* C style interface */ 16304 16305 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl 16306 { 16307 BEGIN_INTERFACE 16308 16309 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 16310 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 16311 ID3D12DeviceRemovedExtendedData1 * This, 16312 REFIID riid, 16313 _COM_Outptr_ void **ppvObject); 16314 16315 DECLSPEC_XFGVIRT(IUnknown, AddRef) 16316 ULONG ( STDMETHODCALLTYPE *AddRef )( 16317 ID3D12DeviceRemovedExtendedData1 * This); 16318 16319 DECLSPEC_XFGVIRT(IUnknown, Release) 16320 ULONG ( STDMETHODCALLTYPE *Release )( 16321 ID3D12DeviceRemovedExtendedData1 * This); 16322 16323 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) 16324 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( 16325 ID3D12DeviceRemovedExtendedData1 * This, 16326 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); 16327 16328 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) 16329 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( 16330 ID3D12DeviceRemovedExtendedData1 * This, 16331 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); 16332 16333 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) 16334 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( 16335 ID3D12DeviceRemovedExtendedData1 * This, 16336 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); 16337 16338 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) 16339 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( 16340 ID3D12DeviceRemovedExtendedData1 * This, 16341 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); 16342 16343 END_INTERFACE 16344 } ID3D12DeviceRemovedExtendedData1Vtbl; 16345 16346 interface ID3D12DeviceRemovedExtendedData1 16347 { 16348 CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl; 16349 }; 16350 16351 16352 16353#ifdef COBJMACROS 16354 16355 16356#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \ 16357 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 16358 16359#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \ 16360 ( (This)->lpVtbl -> AddRef(This) ) 16361 16362#define ID3D12DeviceRemovedExtendedData1_Release(This) \ 16363 ( (This)->lpVtbl -> Release(This) ) 16364 16365 16366#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \ 16367 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) 16368 16369#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \ 16370 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) 16371 16372 16373#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \ 16374 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) 16375 16376#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \ 16377 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) 16378 16379#endif /* COBJMACROS */ 16380 16381 16382#endif /* C style interface */ 16383 16384 16385 16386 16387#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */ 16388 16389 16390#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ 16391#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ 16392 16393/* interface ID3D12DeviceRemovedExtendedData2 */ 16394/* [unique][local][object][uuid] */ 16395 16396 16397EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; 16398 16399#if defined(__cplusplus) && !defined(CINTERFACE) 16400 16401 MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54") 16402 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1 16403 { 16404 public: 16405 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2( 16406 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0; 16407 16408 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0; 16409 16410 }; 16411 16412 16413#else /* C style interface */ 16414 16415 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl 16416 { 16417 BEGIN_INTERFACE 16418 16419 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 16420 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 16421 ID3D12DeviceRemovedExtendedData2 * This, 16422 REFIID riid, 16423 _COM_Outptr_ void **ppvObject); 16424 16425 DECLSPEC_XFGVIRT(IUnknown, AddRef) 16426 ULONG ( STDMETHODCALLTYPE *AddRef )( 16427 ID3D12DeviceRemovedExtendedData2 * This); 16428 16429 DECLSPEC_XFGVIRT(IUnknown, Release) 16430 ULONG ( STDMETHODCALLTYPE *Release )( 16431 ID3D12DeviceRemovedExtendedData2 * This); 16432 16433 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) 16434 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( 16435 ID3D12DeviceRemovedExtendedData2 * This, 16436 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); 16437 16438 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) 16439 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( 16440 ID3D12DeviceRemovedExtendedData2 * This, 16441 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); 16442 16443 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) 16444 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( 16445 ID3D12DeviceRemovedExtendedData2 * This, 16446 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); 16447 16448 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) 16449 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( 16450 ID3D12DeviceRemovedExtendedData2 * This, 16451 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); 16452 16453 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2) 16454 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )( 16455 ID3D12DeviceRemovedExtendedData2 * This, 16456 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput); 16457 16458 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState) 16459 D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )( 16460 ID3D12DeviceRemovedExtendedData2 * This); 16461 16462 END_INTERFACE 16463 } ID3D12DeviceRemovedExtendedData2Vtbl; 16464 16465 interface ID3D12DeviceRemovedExtendedData2 16466 { 16467 CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl; 16468 }; 16469 16470 16471 16472#ifdef COBJMACROS 16473 16474 16475#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \ 16476 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 16477 16478#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \ 16479 ( (This)->lpVtbl -> AddRef(This) ) 16480 16481#define ID3D12DeviceRemovedExtendedData2_Release(This) \ 16482 ( (This)->lpVtbl -> Release(This) ) 16483 16484 16485#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \ 16486 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) 16487 16488#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \ 16489 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) 16490 16491 16492#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \ 16493 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) 16494 16495#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \ 16496 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) 16497 16498 16499#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \ 16500 ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) ) 16501 16502#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \ 16503 ( (This)->lpVtbl -> GetDeviceState(This) ) 16504 16505#endif /* COBJMACROS */ 16506 16507 16508#endif /* C style interface */ 16509 16510 16511 16512 16513#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ 16514 16515 16516/* interface __MIDL_itf_d3d12_0000_0043 */ 16517/* [local] */ 16518 16519typedef 16520enum D3D12_BACKGROUND_PROCESSING_MODE 16521 { 16522 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0, 16523 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) , 16524 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) , 16525 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 ) 16526 } D3D12_BACKGROUND_PROCESSING_MODE; 16527 16528typedef 16529enum D3D12_MEASUREMENTS_ACTION 16530 { 16531 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0, 16532 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) , 16533 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) , 16534 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 ) 16535 } D3D12_MEASUREMENTS_ACTION; 16536 16537 16538 16539extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_c_ifspec; 16540extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_s_ifspec; 16541 16542#ifndef __ID3D12Device6_INTERFACE_DEFINED__ 16543#define __ID3D12Device6_INTERFACE_DEFINED__ 16544 16545/* interface ID3D12Device6 */ 16546/* [unique][local][object][uuid] */ 16547 16548 16549EXTERN_C const IID IID_ID3D12Device6; 16550 16551#if defined(__cplusplus) && !defined(CINTERFACE) 16552 16553 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc") 16554 ID3D12Device6 : public ID3D12Device5 16555 { 16556 public: 16557 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode( 16558 D3D12_BACKGROUND_PROCESSING_MODE Mode, 16559 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 16560 _In_opt_ HANDLE hEventToSignalUponCompletion, 16561 _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0; 16562 16563 }; 16564 16565 16566#else /* C style interface */ 16567 16568 typedef struct ID3D12Device6Vtbl 16569 { 16570 BEGIN_INTERFACE 16571 16572 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 16573 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 16574 ID3D12Device6 * This, 16575 REFIID riid, 16576 _COM_Outptr_ void **ppvObject); 16577 16578 DECLSPEC_XFGVIRT(IUnknown, AddRef) 16579 ULONG ( STDMETHODCALLTYPE *AddRef )( 16580 ID3D12Device6 * This); 16581 16582 DECLSPEC_XFGVIRT(IUnknown, Release) 16583 ULONG ( STDMETHODCALLTYPE *Release )( 16584 ID3D12Device6 * This); 16585 16586 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 16587 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 16588 ID3D12Device6 * This, 16589 _In_ REFGUID guid, 16590 _Inout_ UINT *pDataSize, 16591 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 16592 16593 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 16594 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 16595 ID3D12Device6 * This, 16596 _In_ REFGUID guid, 16597 _In_ UINT DataSize, 16598 _In_reads_bytes_opt_( DataSize ) const void *pData); 16599 16600 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 16601 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 16602 ID3D12Device6 * This, 16603 _In_ REFGUID guid, 16604 _In_opt_ const IUnknown *pData); 16605 16606 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 16607 HRESULT ( STDMETHODCALLTYPE *SetName )( 16608 ID3D12Device6 * This, 16609 _In_z_ LPCWSTR Name); 16610 16611 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 16612 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 16613 ID3D12Device6 * This); 16614 16615 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 16616 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 16617 ID3D12Device6 * This, 16618 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 16619 REFIID riid, 16620 _COM_Outptr_ void **ppCommandQueue); 16621 16622 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 16623 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 16624 ID3D12Device6 * This, 16625 _In_ D3D12_COMMAND_LIST_TYPE type, 16626 REFIID riid, 16627 _COM_Outptr_ void **ppCommandAllocator); 16628 16629 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 16630 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 16631 ID3D12Device6 * This, 16632 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 16633 REFIID riid, 16634 _COM_Outptr_ void **ppPipelineState); 16635 16636 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 16637 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 16638 ID3D12Device6 * This, 16639 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 16640 REFIID riid, 16641 _COM_Outptr_ void **ppPipelineState); 16642 16643 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 16644 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 16645 ID3D12Device6 * This, 16646 _In_ UINT nodeMask, 16647 _In_ D3D12_COMMAND_LIST_TYPE type, 16648 _In_ ID3D12CommandAllocator *pCommandAllocator, 16649 _In_opt_ ID3D12PipelineState *pInitialState, 16650 REFIID riid, 16651 _COM_Outptr_ void **ppCommandList); 16652 16653 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 16654 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 16655 ID3D12Device6 * This, 16656 D3D12_FEATURE Feature, 16657 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 16658 UINT FeatureSupportDataSize); 16659 16660 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 16661 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 16662 ID3D12Device6 * This, 16663 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 16664 REFIID riid, 16665 _COM_Outptr_ void **ppvHeap); 16666 16667 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 16668 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 16669 ID3D12Device6 * This, 16670 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 16671 16672 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 16673 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 16674 ID3D12Device6 * This, 16675 _In_ UINT nodeMask, 16676 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 16677 _In_ SIZE_T blobLengthInBytes, 16678 REFIID riid, 16679 _COM_Outptr_ void **ppvRootSignature); 16680 16681 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 16682 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 16683 ID3D12Device6 * This, 16684 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 16685 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16686 16687 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 16688 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 16689 ID3D12Device6 * This, 16690 _In_opt_ ID3D12Resource *pResource, 16691 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 16692 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16693 16694 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 16695 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 16696 ID3D12Device6 * This, 16697 _In_opt_ ID3D12Resource *pResource, 16698 _In_opt_ ID3D12Resource *pCounterResource, 16699 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 16700 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16701 16702 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 16703 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 16704 ID3D12Device6 * This, 16705 _In_opt_ ID3D12Resource *pResource, 16706 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 16707 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16708 16709 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 16710 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 16711 ID3D12Device6 * This, 16712 _In_opt_ ID3D12Resource *pResource, 16713 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 16714 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16715 16716 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 16717 void ( STDMETHODCALLTYPE *CreateSampler )( 16718 ID3D12Device6 * This, 16719 _In_ const D3D12_SAMPLER_DESC *pDesc, 16720 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 16721 16722 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 16723 void ( STDMETHODCALLTYPE *CopyDescriptors )( 16724 ID3D12Device6 * This, 16725 _In_ UINT NumDestDescriptorRanges, 16726 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 16727 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 16728 _In_ UINT NumSrcDescriptorRanges, 16729 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 16730 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 16731 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 16732 16733 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 16734 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 16735 ID3D12Device6 * This, 16736 _In_ UINT NumDescriptors, 16737 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 16738 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 16739 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 16740 16741 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 16742#if !defined(_WIN32) 16743 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 16744 ID3D12Device6 * This, 16745 _In_ UINT visibleMask, 16746 _In_ UINT numResourceDescs, 16747 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 16748 16749#else 16750 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 16751 ID3D12Device6 * This, 16752 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 16753 _In_ UINT visibleMask, 16754 _In_ UINT numResourceDescs, 16755 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 16756 16757#endif 16758 16759 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 16760#if !defined(_WIN32) 16761 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 16762 ID3D12Device6 * This, 16763 _In_ UINT nodeMask, 16764 D3D12_HEAP_TYPE heapType); 16765 16766#else 16767 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 16768 ID3D12Device6 * This, 16769 D3D12_HEAP_PROPERTIES * RetVal, 16770 _In_ UINT nodeMask, 16771 D3D12_HEAP_TYPE heapType); 16772 16773#endif 16774 16775 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 16776 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 16777 ID3D12Device6 * This, 16778 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 16779 D3D12_HEAP_FLAGS HeapFlags, 16780 _In_ const D3D12_RESOURCE_DESC *pDesc, 16781 D3D12_RESOURCE_STATES InitialResourceState, 16782 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 16783 REFIID riidResource, 16784 _COM_Outptr_opt_ void **ppvResource); 16785 16786 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 16787 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 16788 ID3D12Device6 * This, 16789 _In_ const D3D12_HEAP_DESC *pDesc, 16790 REFIID riid, 16791 _COM_Outptr_opt_ void **ppvHeap); 16792 16793 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 16794 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 16795 ID3D12Device6 * This, 16796 _In_ ID3D12Heap *pHeap, 16797 UINT64 HeapOffset, 16798 _In_ const D3D12_RESOURCE_DESC *pDesc, 16799 D3D12_RESOURCE_STATES InitialState, 16800 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 16801 REFIID riid, 16802 _COM_Outptr_opt_ void **ppvResource); 16803 16804 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 16805 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 16806 ID3D12Device6 * This, 16807 _In_ const D3D12_RESOURCE_DESC *pDesc, 16808 D3D12_RESOURCE_STATES InitialState, 16809 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 16810 REFIID riid, 16811 _COM_Outptr_opt_ void **ppvResource); 16812 16813 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 16814 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 16815 ID3D12Device6 * This, 16816 _In_ ID3D12DeviceChild *pObject, 16817 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 16818 DWORD Access, 16819 _In_opt_ LPCWSTR Name, 16820 _Out_ HANDLE *pHandle); 16821 16822 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 16823 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 16824 ID3D12Device6 * This, 16825 _In_ HANDLE NTHandle, 16826 REFIID riid, 16827 _COM_Outptr_opt_ void **ppvObj); 16828 16829 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 16830 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 16831 ID3D12Device6 * This, 16832 _In_ LPCWSTR Name, 16833 DWORD Access, 16834 /* [annotation][out] */ 16835 _Out_ HANDLE *pNTHandle); 16836 16837 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 16838 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 16839 ID3D12Device6 * This, 16840 UINT NumObjects, 16841 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 16842 16843 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 16844 HRESULT ( STDMETHODCALLTYPE *Evict )( 16845 ID3D12Device6 * This, 16846 UINT NumObjects, 16847 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 16848 16849 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 16850 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 16851 ID3D12Device6 * This, 16852 UINT64 InitialValue, 16853 D3D12_FENCE_FLAGS Flags, 16854 REFIID riid, 16855 _COM_Outptr_ void **ppFence); 16856 16857 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 16858 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 16859 ID3D12Device6 * This); 16860 16861 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 16862 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 16863 ID3D12Device6 * This, 16864 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 16865 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 16866 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 16867 UINT64 BaseOffset, 16868 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 16869 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 16870 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 16871 _Out_opt_ UINT64 *pTotalBytes); 16872 16873 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 16874 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 16875 ID3D12Device6 * This, 16876 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 16877 REFIID riid, 16878 _COM_Outptr_opt_ void **ppvHeap); 16879 16880 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 16881 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 16882 ID3D12Device6 * This, 16883 BOOL Enable); 16884 16885 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 16886 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 16887 ID3D12Device6 * This, 16888 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 16889 _In_opt_ ID3D12RootSignature *pRootSignature, 16890 REFIID riid, 16891 _COM_Outptr_opt_ void **ppvCommandSignature); 16892 16893 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 16894 void ( STDMETHODCALLTYPE *GetResourceTiling )( 16895 ID3D12Device6 * This, 16896 _In_ ID3D12Resource *pTiledResource, 16897 _Out_opt_ UINT *pNumTilesForEntireResource, 16898 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 16899 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 16900 _Inout_opt_ UINT *pNumSubresourceTilings, 16901 _In_ UINT FirstSubresourceTilingToGet, 16902 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 16903 16904 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 16905#if !defined(_WIN32) 16906 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 16907 ID3D12Device6 * This); 16908 16909#else 16910 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 16911 ID3D12Device6 * This, 16912 LUID * RetVal); 16913 16914#endif 16915 16916 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 16917 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 16918 ID3D12Device6 * This, 16919 _In_reads_(BlobLength) const void *pLibraryBlob, 16920 SIZE_T BlobLength, 16921 REFIID riid, 16922 _COM_Outptr_ void **ppPipelineLibrary); 16923 16924 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 16925 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 16926 ID3D12Device6 * This, 16927 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 16928 _In_reads_(NumFences) const UINT64 *pFenceValues, 16929 UINT NumFences, 16930 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 16931 HANDLE hEvent); 16932 16933 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 16934 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 16935 ID3D12Device6 * This, 16936 UINT NumObjects, 16937 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 16938 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 16939 16940 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 16941 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 16942 ID3D12Device6 * This, 16943 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 16944 REFIID riid, 16945 _COM_Outptr_ void **ppPipelineState); 16946 16947 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 16948 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 16949 ID3D12Device6 * This, 16950 _In_ const void *pAddress, 16951 REFIID riid, 16952 _COM_Outptr_ void **ppvHeap); 16953 16954 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 16955 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 16956 ID3D12Device6 * This, 16957 _In_ HANDLE hFileMapping, 16958 REFIID riid, 16959 _COM_Outptr_ void **ppvHeap); 16960 16961 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 16962 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 16963 ID3D12Device6 * This, 16964 D3D12_RESIDENCY_FLAGS Flags, 16965 UINT NumObjects, 16966 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 16967 _In_ ID3D12Fence *pFenceToSignal, 16968 UINT64 FenceValueToSignal); 16969 16970 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 16971 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 16972 ID3D12Device6 * This, 16973 _In_ UINT nodeMask, 16974 _In_ D3D12_COMMAND_LIST_TYPE type, 16975 _In_ D3D12_COMMAND_LIST_FLAGS flags, 16976 REFIID riid, 16977 _COM_Outptr_ void **ppCommandList); 16978 16979 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 16980 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 16981 ID3D12Device6 * This, 16982 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 16983 _In_ REFIID riid, 16984 _COM_Outptr_ void **ppSession); 16985 16986 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 16987 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 16988 ID3D12Device6 * This, 16989 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 16990 D3D12_HEAP_FLAGS HeapFlags, 16991 _In_ const D3D12_RESOURCE_DESC *pDesc, 16992 D3D12_RESOURCE_STATES InitialResourceState, 16993 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 16994 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 16995 REFIID riidResource, 16996 _COM_Outptr_opt_ void **ppvResource); 16997 16998 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 16999 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 17000 ID3D12Device6 * This, 17001 _In_ const D3D12_HEAP_DESC *pDesc, 17002 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 17003 REFIID riid, 17004 _COM_Outptr_opt_ void **ppvHeap); 17005 17006 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 17007 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 17008 ID3D12Device6 * This, 17009 _In_ const D3D12_RESOURCE_DESC *pDesc, 17010 D3D12_RESOURCE_STATES InitialState, 17011 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 17012 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 17013 REFIID riid, 17014 _COM_Outptr_opt_ void **ppvResource); 17015 17016 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 17017#if !defined(_WIN32) 17018 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 17019 ID3D12Device6 * This, 17020 UINT visibleMask, 17021 UINT numResourceDescs, 17022 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 17023 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 17024 17025#else 17026 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 17027 ID3D12Device6 * This, 17028 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 17029 UINT visibleMask, 17030 UINT numResourceDescs, 17031 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 17032 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 17033 17034#endif 17035 17036 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 17037 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 17038 ID3D12Device6 * This, 17039 _In_ ID3D12LifetimeOwner *pOwner, 17040 REFIID riid, 17041 _COM_Outptr_ void **ppvTracker); 17042 17043 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 17044 void ( STDMETHODCALLTYPE *RemoveDevice )( 17045 ID3D12Device6 * This); 17046 17047 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 17048 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 17049 ID3D12Device6 * This, 17050 _Inout_ UINT *pNumMetaCommands, 17051 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 17052 17053 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 17054 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 17055 ID3D12Device6 * This, 17056 _In_ REFGUID CommandId, 17057 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 17058 _Out_opt_ UINT *pTotalStructureSizeInBytes, 17059 _Inout_ UINT *pParameterCount, 17060 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 17061 17062 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 17063 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 17064 ID3D12Device6 * This, 17065 _In_ REFGUID CommandId, 17066 _In_ UINT NodeMask, 17067 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 17068 _In_ SIZE_T CreationParametersDataSizeInBytes, 17069 REFIID riid, 17070 _COM_Outptr_ void **ppMetaCommand); 17071 17072 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 17073 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 17074 ID3D12Device6 * This, 17075 const D3D12_STATE_OBJECT_DESC *pDesc, 17076 REFIID riid, 17077 _COM_Outptr_ void **ppStateObject); 17078 17079 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 17080 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 17081 ID3D12Device6 * This, 17082 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 17083 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 17084 17085 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 17086 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 17087 ID3D12Device6 * This, 17088 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 17089 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 17090 17091 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 17092 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 17093 ID3D12Device6 * This, 17094 D3D12_BACKGROUND_PROCESSING_MODE Mode, 17095 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 17096 _In_opt_ HANDLE hEventToSignalUponCompletion, 17097 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 17098 17099 END_INTERFACE 17100 } ID3D12Device6Vtbl; 17101 17102 interface ID3D12Device6 17103 { 17104 CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl; 17105 }; 17106 17107 17108 17109#ifdef COBJMACROS 17110 17111 17112#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \ 17113 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 17114 17115#define ID3D12Device6_AddRef(This) \ 17116 ( (This)->lpVtbl -> AddRef(This) ) 17117 17118#define ID3D12Device6_Release(This) \ 17119 ( (This)->lpVtbl -> Release(This) ) 17120 17121 17122#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \ 17123 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 17124 17125#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \ 17126 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 17127 17128#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \ 17129 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 17130 17131#define ID3D12Device6_SetName(This,Name) \ 17132 ( (This)->lpVtbl -> SetName(This,Name) ) 17133 17134 17135#define ID3D12Device6_GetNodeCount(This) \ 17136 ( (This)->lpVtbl -> GetNodeCount(This) ) 17137 17138#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 17139 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 17140 17141#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 17142 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 17143 17144#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 17145 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 17146 17147#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 17148 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 17149 17150#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 17151 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 17152 17153#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 17154 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 17155 17156#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 17157 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 17158 17159#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 17160 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 17161 17162#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 17163 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 17164 17165#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 17166 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 17167 17168#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 17169 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 17170 17171#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 17172 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 17173 17174#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 17175 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 17176 17177#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 17178 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 17179 17180#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \ 17181 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 17182 17183#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 17184 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 17185 17186#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 17187 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 17188#if !defined(_WIN32) 17189 17190#define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 17191 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 17192#else 17193#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 17194 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 17195#endif 17196#if !defined(_WIN32) 17197 17198#define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \ 17199 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 17200#else 17201#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 17202 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 17203#endif 17204 17205#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 17206 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 17207 17208#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \ 17209 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 17210 17211#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 17212 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 17213 17214#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 17215 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 17216 17217#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 17218 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 17219 17220#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 17221 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 17222 17223#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 17224 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 17225 17226#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \ 17227 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 17228 17229#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \ 17230 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 17231 17232#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 17233 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 17234 17235#define ID3D12Device6_GetDeviceRemovedReason(This) \ 17236 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 17237 17238#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 17239 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 17240 17241#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 17242 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 17243 17244#define ID3D12Device6_SetStablePowerState(This,Enable) \ 17245 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 17246 17247#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 17248 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 17249 17250#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 17251 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 17252#if !defined(_WIN32) 17253 17254#define ID3D12Device6_GetAdapterLuid(This) \ 17255 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 17256#else 17257#define ID3D12Device6_GetAdapterLuid(This,RetVal) \ 17258 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 17259#endif 17260 17261 17262#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 17263 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 17264 17265#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 17266 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 17267 17268#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 17269 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 17270 17271 17272#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 17273 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 17274 17275 17276#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 17277 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 17278 17279#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 17280 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 17281 17282#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 17283 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 17284 17285 17286#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 17287 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 17288 17289#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 17290 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 17291 17292#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 17293 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 17294 17295#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 17296 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 17297 17298#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 17299 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 17300#if !defined(_WIN32) 17301 17302#define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 17303 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 17304#else 17305#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 17306 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 17307#endif 17308 17309 17310#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 17311 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 17312 17313#define ID3D12Device6_RemoveDevice(This) \ 17314 ( (This)->lpVtbl -> RemoveDevice(This) ) 17315 17316#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 17317 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 17318 17319#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 17320 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 17321 17322#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 17323 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 17324 17325#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \ 17326 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 17327 17328#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 17329 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 17330 17331#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 17332 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 17333 17334 17335#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 17336 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 17337 17338#endif /* COBJMACROS */ 17339 17340 17341#endif /* C style interface */ 17342 17343 17344 17345 17346#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ 17347 17348 17349/* interface __MIDL_itf_d3d12_0000_0044 */ 17350/* [local] */ 17351 17352DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); 17353typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT 17354 { 17355 UINT NodeIndex; 17356 UINT Count; 17357 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; 17358 17359typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES 17360 { 17361 UINT NodeIndex; 17362 UINT Count; 17363 GUID *pTypes; 17364 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; 17365 17366typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 17367 { 17368 UINT NodeMask; 17369 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; 17370 GUID ProtectionType; 17371 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1; 17372 17373 17374 17375extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec; 17376extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec; 17377 17378#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ 17379#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ 17380 17381/* interface ID3D12ProtectedResourceSession1 */ 17382/* [unique][local][object][uuid] */ 17383 17384 17385EXTERN_C const IID IID_ID3D12ProtectedResourceSession1; 17386 17387#if defined(__cplusplus) && !defined(CINTERFACE) 17388 17389 MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409") 17390 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession 17391 { 17392 public: 17393#if defined(_MSC_VER) || !defined(_WIN32) 17394 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; 17395#else 17396 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1( 17397 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0; 17398#endif 17399 17400 }; 17401 17402 17403#else /* C style interface */ 17404 17405 typedef struct ID3D12ProtectedResourceSession1Vtbl 17406 { 17407 BEGIN_INTERFACE 17408 17409 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 17410 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 17411 ID3D12ProtectedResourceSession1 * This, 17412 REFIID riid, 17413 _COM_Outptr_ void **ppvObject); 17414 17415 DECLSPEC_XFGVIRT(IUnknown, AddRef) 17416 ULONG ( STDMETHODCALLTYPE *AddRef )( 17417 ID3D12ProtectedResourceSession1 * This); 17418 17419 DECLSPEC_XFGVIRT(IUnknown, Release) 17420 ULONG ( STDMETHODCALLTYPE *Release )( 17421 ID3D12ProtectedResourceSession1 * This); 17422 17423 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 17424 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 17425 ID3D12ProtectedResourceSession1 * This, 17426 _In_ REFGUID guid, 17427 _Inout_ UINT *pDataSize, 17428 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 17429 17430 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 17431 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 17432 ID3D12ProtectedResourceSession1 * This, 17433 _In_ REFGUID guid, 17434 _In_ UINT DataSize, 17435 _In_reads_bytes_opt_( DataSize ) const void *pData); 17436 17437 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 17438 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 17439 ID3D12ProtectedResourceSession1 * This, 17440 _In_ REFGUID guid, 17441 _In_opt_ const IUnknown *pData); 17442 17443 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 17444 HRESULT ( STDMETHODCALLTYPE *SetName )( 17445 ID3D12ProtectedResourceSession1 * This, 17446 _In_z_ LPCWSTR Name); 17447 17448 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 17449 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 17450 ID3D12ProtectedResourceSession1 * This, 17451 REFIID riid, 17452 _COM_Outptr_opt_ void **ppvDevice); 17453 17454 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) 17455 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( 17456 ID3D12ProtectedResourceSession1 * This, 17457 REFIID riid, 17458 _COM_Outptr_opt_ void **ppFence); 17459 17460 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) 17461 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( 17462 ID3D12ProtectedResourceSession1 * This); 17463 17464 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) 17465#if !defined(_WIN32) 17466 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( 17467 ID3D12ProtectedResourceSession1 * This); 17468 17469#else 17470 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( 17471 ID3D12ProtectedResourceSession1 * This, 17472 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); 17473 17474#endif 17475 17476 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1) 17477#if !defined(_WIN32) 17478 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( 17479 ID3D12ProtectedResourceSession1 * This); 17480 17481#else 17482 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( 17483 ID3D12ProtectedResourceSession1 * This, 17484 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal); 17485 17486#endif 17487 17488 END_INTERFACE 17489 } ID3D12ProtectedResourceSession1Vtbl; 17490 17491 interface ID3D12ProtectedResourceSession1 17492 { 17493 CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl; 17494 }; 17495 17496 17497 17498#ifdef COBJMACROS 17499 17500 17501#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \ 17502 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 17503 17504#define ID3D12ProtectedResourceSession1_AddRef(This) \ 17505 ( (This)->lpVtbl -> AddRef(This) ) 17506 17507#define ID3D12ProtectedResourceSession1_Release(This) \ 17508 ( (This)->lpVtbl -> Release(This) ) 17509 17510 17511#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \ 17512 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 17513 17514#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \ 17515 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 17516 17517#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \ 17518 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 17519 17520#define ID3D12ProtectedResourceSession1_SetName(This,Name) \ 17521 ( (This)->lpVtbl -> SetName(This,Name) ) 17522 17523 17524#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \ 17525 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 17526 17527 17528#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \ 17529 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) 17530 17531#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \ 17532 ( (This)->lpVtbl -> GetSessionStatus(This) ) 17533 17534#if !defined(_WIN32) 17535 17536#define ID3D12ProtectedResourceSession1_GetDesc(This) \ 17537 ( (This)->lpVtbl -> GetDesc(This) ) 17538#else 17539#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \ 17540 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 17541#endif 17542 17543#if !defined(_WIN32) 17544 17545#define ID3D12ProtectedResourceSession1_GetDesc1(This) \ 17546 ( (This)->lpVtbl -> GetDesc1(This) ) 17547#else 17548#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \ 17549 ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) 17550#endif 17551 17552#endif /* COBJMACROS */ 17553 17554 17555#endif /* C style interface */ 17556 17557 17558 17559 17560#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */ 17561 17562 17563#ifndef __ID3D12Device7_INTERFACE_DEFINED__ 17564#define __ID3D12Device7_INTERFACE_DEFINED__ 17565 17566/* interface ID3D12Device7 */ 17567/* [unique][local][object][uuid] */ 17568 17569 17570EXTERN_C const IID IID_ID3D12Device7; 17571 17572#if defined(__cplusplus) && !defined(CINTERFACE) 17573 17574 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b") 17575 ID3D12Device7 : public ID3D12Device6 17576 { 17577 public: 17578 virtual HRESULT STDMETHODCALLTYPE AddToStateObject( 17579 const D3D12_STATE_OBJECT_DESC *pAddition, 17580 ID3D12StateObject *pStateObjectToGrowFrom, 17581 REFIID riid, 17582 _COM_Outptr_ void **ppNewStateObject) = 0; 17583 17584 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1( 17585 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 17586 _In_ REFIID riid, 17587 _COM_Outptr_ void **ppSession) = 0; 17588 17589 }; 17590 17591 17592#else /* C style interface */ 17593 17594 typedef struct ID3D12Device7Vtbl 17595 { 17596 BEGIN_INTERFACE 17597 17598 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 17599 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 17600 ID3D12Device7 * This, 17601 REFIID riid, 17602 _COM_Outptr_ void **ppvObject); 17603 17604 DECLSPEC_XFGVIRT(IUnknown, AddRef) 17605 ULONG ( STDMETHODCALLTYPE *AddRef )( 17606 ID3D12Device7 * This); 17607 17608 DECLSPEC_XFGVIRT(IUnknown, Release) 17609 ULONG ( STDMETHODCALLTYPE *Release )( 17610 ID3D12Device7 * This); 17611 17612 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 17613 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 17614 ID3D12Device7 * This, 17615 _In_ REFGUID guid, 17616 _Inout_ UINT *pDataSize, 17617 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 17618 17619 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 17620 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 17621 ID3D12Device7 * This, 17622 _In_ REFGUID guid, 17623 _In_ UINT DataSize, 17624 _In_reads_bytes_opt_( DataSize ) const void *pData); 17625 17626 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 17627 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 17628 ID3D12Device7 * This, 17629 _In_ REFGUID guid, 17630 _In_opt_ const IUnknown *pData); 17631 17632 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 17633 HRESULT ( STDMETHODCALLTYPE *SetName )( 17634 ID3D12Device7 * This, 17635 _In_z_ LPCWSTR Name); 17636 17637 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 17638 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 17639 ID3D12Device7 * This); 17640 17641 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 17642 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 17643 ID3D12Device7 * This, 17644 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 17645 REFIID riid, 17646 _COM_Outptr_ void **ppCommandQueue); 17647 17648 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 17649 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 17650 ID3D12Device7 * This, 17651 _In_ D3D12_COMMAND_LIST_TYPE type, 17652 REFIID riid, 17653 _COM_Outptr_ void **ppCommandAllocator); 17654 17655 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 17656 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 17657 ID3D12Device7 * This, 17658 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 17659 REFIID riid, 17660 _COM_Outptr_ void **ppPipelineState); 17661 17662 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 17663 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 17664 ID3D12Device7 * This, 17665 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 17666 REFIID riid, 17667 _COM_Outptr_ void **ppPipelineState); 17668 17669 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 17670 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 17671 ID3D12Device7 * This, 17672 _In_ UINT nodeMask, 17673 _In_ D3D12_COMMAND_LIST_TYPE type, 17674 _In_ ID3D12CommandAllocator *pCommandAllocator, 17675 _In_opt_ ID3D12PipelineState *pInitialState, 17676 REFIID riid, 17677 _COM_Outptr_ void **ppCommandList); 17678 17679 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 17680 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 17681 ID3D12Device7 * This, 17682 D3D12_FEATURE Feature, 17683 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 17684 UINT FeatureSupportDataSize); 17685 17686 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 17687 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 17688 ID3D12Device7 * This, 17689 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 17690 REFIID riid, 17691 _COM_Outptr_ void **ppvHeap); 17692 17693 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 17694 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 17695 ID3D12Device7 * This, 17696 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 17697 17698 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 17699 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 17700 ID3D12Device7 * This, 17701 _In_ UINT nodeMask, 17702 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 17703 _In_ SIZE_T blobLengthInBytes, 17704 REFIID riid, 17705 _COM_Outptr_ void **ppvRootSignature); 17706 17707 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 17708 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 17709 ID3D12Device7 * This, 17710 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 17711 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17712 17713 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 17714 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 17715 ID3D12Device7 * This, 17716 _In_opt_ ID3D12Resource *pResource, 17717 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 17718 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17719 17720 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 17721 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 17722 ID3D12Device7 * This, 17723 _In_opt_ ID3D12Resource *pResource, 17724 _In_opt_ ID3D12Resource *pCounterResource, 17725 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 17726 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17727 17728 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 17729 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 17730 ID3D12Device7 * This, 17731 _In_opt_ ID3D12Resource *pResource, 17732 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 17733 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17734 17735 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 17736 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 17737 ID3D12Device7 * This, 17738 _In_opt_ ID3D12Resource *pResource, 17739 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 17740 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17741 17742 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 17743 void ( STDMETHODCALLTYPE *CreateSampler )( 17744 ID3D12Device7 * This, 17745 _In_ const D3D12_SAMPLER_DESC *pDesc, 17746 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 17747 17748 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 17749 void ( STDMETHODCALLTYPE *CopyDescriptors )( 17750 ID3D12Device7 * This, 17751 _In_ UINT NumDestDescriptorRanges, 17752 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 17753 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 17754 _In_ UINT NumSrcDescriptorRanges, 17755 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 17756 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 17757 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 17758 17759 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 17760 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 17761 ID3D12Device7 * This, 17762 _In_ UINT NumDescriptors, 17763 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 17764 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 17765 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 17766 17767 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 17768#if !defined(_WIN32) 17769 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 17770 ID3D12Device7 * This, 17771 _In_ UINT visibleMask, 17772 _In_ UINT numResourceDescs, 17773 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 17774 17775#else 17776 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 17777 ID3D12Device7 * This, 17778 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 17779 _In_ UINT visibleMask, 17780 _In_ UINT numResourceDescs, 17781 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 17782 17783#endif 17784 17785 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 17786#if !defined(_WIN32) 17787 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 17788 ID3D12Device7 * This, 17789 _In_ UINT nodeMask, 17790 D3D12_HEAP_TYPE heapType); 17791 17792#else 17793 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 17794 ID3D12Device7 * This, 17795 D3D12_HEAP_PROPERTIES * RetVal, 17796 _In_ UINT nodeMask, 17797 D3D12_HEAP_TYPE heapType); 17798 17799#endif 17800 17801 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 17802 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 17803 ID3D12Device7 * This, 17804 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 17805 D3D12_HEAP_FLAGS HeapFlags, 17806 _In_ const D3D12_RESOURCE_DESC *pDesc, 17807 D3D12_RESOURCE_STATES InitialResourceState, 17808 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 17809 REFIID riidResource, 17810 _COM_Outptr_opt_ void **ppvResource); 17811 17812 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 17813 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 17814 ID3D12Device7 * This, 17815 _In_ const D3D12_HEAP_DESC *pDesc, 17816 REFIID riid, 17817 _COM_Outptr_opt_ void **ppvHeap); 17818 17819 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 17820 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 17821 ID3D12Device7 * This, 17822 _In_ ID3D12Heap *pHeap, 17823 UINT64 HeapOffset, 17824 _In_ const D3D12_RESOURCE_DESC *pDesc, 17825 D3D12_RESOURCE_STATES InitialState, 17826 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 17827 REFIID riid, 17828 _COM_Outptr_opt_ void **ppvResource); 17829 17830 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 17831 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 17832 ID3D12Device7 * This, 17833 _In_ const D3D12_RESOURCE_DESC *pDesc, 17834 D3D12_RESOURCE_STATES InitialState, 17835 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 17836 REFIID riid, 17837 _COM_Outptr_opt_ void **ppvResource); 17838 17839 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 17840 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 17841 ID3D12Device7 * This, 17842 _In_ ID3D12DeviceChild *pObject, 17843 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 17844 DWORD Access, 17845 _In_opt_ LPCWSTR Name, 17846 _Out_ HANDLE *pHandle); 17847 17848 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 17849 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 17850 ID3D12Device7 * This, 17851 _In_ HANDLE NTHandle, 17852 REFIID riid, 17853 _COM_Outptr_opt_ void **ppvObj); 17854 17855 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 17856 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 17857 ID3D12Device7 * This, 17858 _In_ LPCWSTR Name, 17859 DWORD Access, 17860 /* [annotation][out] */ 17861 _Out_ HANDLE *pNTHandle); 17862 17863 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 17864 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 17865 ID3D12Device7 * This, 17866 UINT NumObjects, 17867 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 17868 17869 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 17870 HRESULT ( STDMETHODCALLTYPE *Evict )( 17871 ID3D12Device7 * This, 17872 UINT NumObjects, 17873 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 17874 17875 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 17876 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 17877 ID3D12Device7 * This, 17878 UINT64 InitialValue, 17879 D3D12_FENCE_FLAGS Flags, 17880 REFIID riid, 17881 _COM_Outptr_ void **ppFence); 17882 17883 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 17884 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 17885 ID3D12Device7 * This); 17886 17887 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 17888 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 17889 ID3D12Device7 * This, 17890 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 17891 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 17892 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 17893 UINT64 BaseOffset, 17894 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 17895 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 17896 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 17897 _Out_opt_ UINT64 *pTotalBytes); 17898 17899 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 17900 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 17901 ID3D12Device7 * This, 17902 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 17903 REFIID riid, 17904 _COM_Outptr_opt_ void **ppvHeap); 17905 17906 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 17907 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 17908 ID3D12Device7 * This, 17909 BOOL Enable); 17910 17911 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 17912 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 17913 ID3D12Device7 * This, 17914 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 17915 _In_opt_ ID3D12RootSignature *pRootSignature, 17916 REFIID riid, 17917 _COM_Outptr_opt_ void **ppvCommandSignature); 17918 17919 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 17920 void ( STDMETHODCALLTYPE *GetResourceTiling )( 17921 ID3D12Device7 * This, 17922 _In_ ID3D12Resource *pTiledResource, 17923 _Out_opt_ UINT *pNumTilesForEntireResource, 17924 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 17925 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 17926 _Inout_opt_ UINT *pNumSubresourceTilings, 17927 _In_ UINT FirstSubresourceTilingToGet, 17928 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 17929 17930 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 17931#if !defined(_WIN32) 17932 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 17933 ID3D12Device7 * This); 17934 17935#else 17936 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 17937 ID3D12Device7 * This, 17938 LUID * RetVal); 17939 17940#endif 17941 17942 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 17943 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 17944 ID3D12Device7 * This, 17945 _In_reads_(BlobLength) const void *pLibraryBlob, 17946 SIZE_T BlobLength, 17947 REFIID riid, 17948 _COM_Outptr_ void **ppPipelineLibrary); 17949 17950 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 17951 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 17952 ID3D12Device7 * This, 17953 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 17954 _In_reads_(NumFences) const UINT64 *pFenceValues, 17955 UINT NumFences, 17956 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 17957 HANDLE hEvent); 17958 17959 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 17960 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 17961 ID3D12Device7 * This, 17962 UINT NumObjects, 17963 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 17964 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 17965 17966 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 17967 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 17968 ID3D12Device7 * This, 17969 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 17970 REFIID riid, 17971 _COM_Outptr_ void **ppPipelineState); 17972 17973 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 17974 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 17975 ID3D12Device7 * This, 17976 _In_ const void *pAddress, 17977 REFIID riid, 17978 _COM_Outptr_ void **ppvHeap); 17979 17980 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 17981 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 17982 ID3D12Device7 * This, 17983 _In_ HANDLE hFileMapping, 17984 REFIID riid, 17985 _COM_Outptr_ void **ppvHeap); 17986 17987 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 17988 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 17989 ID3D12Device7 * This, 17990 D3D12_RESIDENCY_FLAGS Flags, 17991 UINT NumObjects, 17992 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 17993 _In_ ID3D12Fence *pFenceToSignal, 17994 UINT64 FenceValueToSignal); 17995 17996 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 17997 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 17998 ID3D12Device7 * This, 17999 _In_ UINT nodeMask, 18000 _In_ D3D12_COMMAND_LIST_TYPE type, 18001 _In_ D3D12_COMMAND_LIST_FLAGS flags, 18002 REFIID riid, 18003 _COM_Outptr_ void **ppCommandList); 18004 18005 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 18006 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 18007 ID3D12Device7 * This, 18008 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 18009 _In_ REFIID riid, 18010 _COM_Outptr_ void **ppSession); 18011 18012 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 18013 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 18014 ID3D12Device7 * This, 18015 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 18016 D3D12_HEAP_FLAGS HeapFlags, 18017 _In_ const D3D12_RESOURCE_DESC *pDesc, 18018 D3D12_RESOURCE_STATES InitialResourceState, 18019 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18020 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18021 REFIID riidResource, 18022 _COM_Outptr_opt_ void **ppvResource); 18023 18024 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 18025 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 18026 ID3D12Device7 * This, 18027 _In_ const D3D12_HEAP_DESC *pDesc, 18028 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18029 REFIID riid, 18030 _COM_Outptr_opt_ void **ppvHeap); 18031 18032 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 18033 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 18034 ID3D12Device7 * This, 18035 _In_ const D3D12_RESOURCE_DESC *pDesc, 18036 D3D12_RESOURCE_STATES InitialState, 18037 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18038 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18039 REFIID riid, 18040 _COM_Outptr_opt_ void **ppvResource); 18041 18042 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 18043#if !defined(_WIN32) 18044 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 18045 ID3D12Device7 * This, 18046 UINT visibleMask, 18047 UINT numResourceDescs, 18048 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 18049 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 18050 18051#else 18052 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 18053 ID3D12Device7 * This, 18054 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 18055 UINT visibleMask, 18056 UINT numResourceDescs, 18057 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 18058 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 18059 18060#endif 18061 18062 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 18063 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 18064 ID3D12Device7 * This, 18065 _In_ ID3D12LifetimeOwner *pOwner, 18066 REFIID riid, 18067 _COM_Outptr_ void **ppvTracker); 18068 18069 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 18070 void ( STDMETHODCALLTYPE *RemoveDevice )( 18071 ID3D12Device7 * This); 18072 18073 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 18074 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 18075 ID3D12Device7 * This, 18076 _Inout_ UINT *pNumMetaCommands, 18077 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 18078 18079 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 18080 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 18081 ID3D12Device7 * This, 18082 _In_ REFGUID CommandId, 18083 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 18084 _Out_opt_ UINT *pTotalStructureSizeInBytes, 18085 _Inout_ UINT *pParameterCount, 18086 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 18087 18088 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 18089 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 18090 ID3D12Device7 * This, 18091 _In_ REFGUID CommandId, 18092 _In_ UINT NodeMask, 18093 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 18094 _In_ SIZE_T CreationParametersDataSizeInBytes, 18095 REFIID riid, 18096 _COM_Outptr_ void **ppMetaCommand); 18097 18098 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 18099 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 18100 ID3D12Device7 * This, 18101 const D3D12_STATE_OBJECT_DESC *pDesc, 18102 REFIID riid, 18103 _COM_Outptr_ void **ppStateObject); 18104 18105 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 18106 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 18107 ID3D12Device7 * This, 18108 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 18109 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 18110 18111 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 18112 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 18113 ID3D12Device7 * This, 18114 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 18115 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 18116 18117 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 18118 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 18119 ID3D12Device7 * This, 18120 D3D12_BACKGROUND_PROCESSING_MODE Mode, 18121 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 18122 _In_opt_ HANDLE hEventToSignalUponCompletion, 18123 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 18124 18125 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 18126 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 18127 ID3D12Device7 * This, 18128 const D3D12_STATE_OBJECT_DESC *pAddition, 18129 ID3D12StateObject *pStateObjectToGrowFrom, 18130 REFIID riid, 18131 _COM_Outptr_ void **ppNewStateObject); 18132 18133 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 18134 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 18135 ID3D12Device7 * This, 18136 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 18137 _In_ REFIID riid, 18138 _COM_Outptr_ void **ppSession); 18139 18140 END_INTERFACE 18141 } ID3D12Device7Vtbl; 18142 18143 interface ID3D12Device7 18144 { 18145 CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl; 18146 }; 18147 18148 18149 18150#ifdef COBJMACROS 18151 18152 18153#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \ 18154 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 18155 18156#define ID3D12Device7_AddRef(This) \ 18157 ( (This)->lpVtbl -> AddRef(This) ) 18158 18159#define ID3D12Device7_Release(This) \ 18160 ( (This)->lpVtbl -> Release(This) ) 18161 18162 18163#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \ 18164 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 18165 18166#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \ 18167 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 18168 18169#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \ 18170 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 18171 18172#define ID3D12Device7_SetName(This,Name) \ 18173 ( (This)->lpVtbl -> SetName(This,Name) ) 18174 18175 18176#define ID3D12Device7_GetNodeCount(This) \ 18177 ( (This)->lpVtbl -> GetNodeCount(This) ) 18178 18179#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 18180 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 18181 18182#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 18183 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 18184 18185#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 18186 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 18187 18188#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 18189 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 18190 18191#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 18192 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 18193 18194#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 18195 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 18196 18197#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 18198 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 18199 18200#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 18201 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 18202 18203#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 18204 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 18205 18206#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 18207 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 18208 18209#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 18210 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 18211 18212#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 18213 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 18214 18215#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 18216 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 18217 18218#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 18219 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 18220 18221#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \ 18222 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 18223 18224#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 18225 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 18226 18227#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 18228 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 18229#if !defined(_WIN32) 18230 18231#define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 18232 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 18233#else 18234#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 18235 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 18236#endif 18237#if !defined(_WIN32) 18238 18239#define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \ 18240 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 18241#else 18242#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 18243 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 18244#endif 18245 18246#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 18247 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 18248 18249#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \ 18250 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 18251 18252#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 18253 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 18254 18255#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 18256 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 18257 18258#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 18259 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 18260 18261#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 18262 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 18263 18264#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 18265 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 18266 18267#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \ 18268 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 18269 18270#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \ 18271 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 18272 18273#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 18274 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 18275 18276#define ID3D12Device7_GetDeviceRemovedReason(This) \ 18277 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 18278 18279#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 18280 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 18281 18282#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 18283 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 18284 18285#define ID3D12Device7_SetStablePowerState(This,Enable) \ 18286 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 18287 18288#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 18289 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 18290 18291#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 18292 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 18293#if !defined(_WIN32) 18294 18295#define ID3D12Device7_GetAdapterLuid(This) \ 18296 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 18297#else 18298#define ID3D12Device7_GetAdapterLuid(This,RetVal) \ 18299 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 18300#endif 18301 18302 18303#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 18304 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 18305 18306#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 18307 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 18308 18309#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 18310 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 18311 18312 18313#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 18314 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 18315 18316 18317#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 18318 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 18319 18320#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 18321 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 18322 18323#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 18324 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 18325 18326 18327#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 18328 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 18329 18330#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 18331 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 18332 18333#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 18334 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 18335 18336#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 18337 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 18338 18339#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 18340 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 18341#if !defined(_WIN32) 18342 18343#define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 18344 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 18345#else 18346#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 18347 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 18348#endif 18349 18350 18351#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 18352 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 18353 18354#define ID3D12Device7_RemoveDevice(This) \ 18355 ( (This)->lpVtbl -> RemoveDevice(This) ) 18356 18357#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 18358 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 18359 18360#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 18361 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 18362 18363#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 18364 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 18365 18366#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \ 18367 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 18368 18369#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 18370 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 18371 18372#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 18373 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 18374 18375 18376#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 18377 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 18378 18379 18380#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 18381 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 18382 18383#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 18384 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 18385 18386#endif /* COBJMACROS */ 18387 18388 18389#endif /* C style interface */ 18390 18391 18392 18393 18394#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */ 18395 18396 18397#ifndef __ID3D12Device8_INTERFACE_DEFINED__ 18398#define __ID3D12Device8_INTERFACE_DEFINED__ 18399 18400/* interface ID3D12Device8 */ 18401/* [unique][local][object][uuid] */ 18402 18403 18404EXTERN_C const IID IID_ID3D12Device8; 18405 18406#if defined(__cplusplus) && !defined(CINTERFACE) 18407 18408 MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3") 18409 ID3D12Device8 : public ID3D12Device7 18410 { 18411 public: 18412#if defined(_MSC_VER) || !defined(_WIN32) 18413 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2( 18414 UINT visibleMask, 18415 UINT numResourceDescs, 18416 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 18417 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 18418#else 18419 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2( 18420 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 18421 UINT visibleMask, 18422 UINT numResourceDescs, 18423 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 18424 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 18425#endif 18426 18427 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2( 18428 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 18429 D3D12_HEAP_FLAGS HeapFlags, 18430 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 18431 D3D12_RESOURCE_STATES InitialResourceState, 18432 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18433 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18434 REFIID riidResource, 18435 _COM_Outptr_opt_ void **ppvResource) = 0; 18436 18437 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1( 18438 _In_ ID3D12Heap *pHeap, 18439 UINT64 HeapOffset, 18440 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 18441 D3D12_RESOURCE_STATES InitialState, 18442 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18443 REFIID riid, 18444 _COM_Outptr_opt_ void **ppvResource) = 0; 18445 18446 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView( 18447 _In_opt_ ID3D12Resource *pTargetedResource, 18448 _In_opt_ ID3D12Resource *pFeedbackResource, 18449 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 18450 18451 virtual void STDMETHODCALLTYPE GetCopyableFootprints1( 18452 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 18453 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 18454 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 18455 UINT64 BaseOffset, 18456 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 18457 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 18458 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 18459 _Out_opt_ UINT64 *pTotalBytes) = 0; 18460 18461 }; 18462 18463 18464#else /* C style interface */ 18465 18466 typedef struct ID3D12Device8Vtbl 18467 { 18468 BEGIN_INTERFACE 18469 18470 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 18471 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 18472 ID3D12Device8 * This, 18473 REFIID riid, 18474 _COM_Outptr_ void **ppvObject); 18475 18476 DECLSPEC_XFGVIRT(IUnknown, AddRef) 18477 ULONG ( STDMETHODCALLTYPE *AddRef )( 18478 ID3D12Device8 * This); 18479 18480 DECLSPEC_XFGVIRT(IUnknown, Release) 18481 ULONG ( STDMETHODCALLTYPE *Release )( 18482 ID3D12Device8 * This); 18483 18484 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 18485 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 18486 ID3D12Device8 * This, 18487 _In_ REFGUID guid, 18488 _Inout_ UINT *pDataSize, 18489 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 18490 18491 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 18492 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 18493 ID3D12Device8 * This, 18494 _In_ REFGUID guid, 18495 _In_ UINT DataSize, 18496 _In_reads_bytes_opt_( DataSize ) const void *pData); 18497 18498 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 18499 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 18500 ID3D12Device8 * This, 18501 _In_ REFGUID guid, 18502 _In_opt_ const IUnknown *pData); 18503 18504 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 18505 HRESULT ( STDMETHODCALLTYPE *SetName )( 18506 ID3D12Device8 * This, 18507 _In_z_ LPCWSTR Name); 18508 18509 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 18510 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 18511 ID3D12Device8 * This); 18512 18513 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 18514 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 18515 ID3D12Device8 * This, 18516 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 18517 REFIID riid, 18518 _COM_Outptr_ void **ppCommandQueue); 18519 18520 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 18521 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 18522 ID3D12Device8 * This, 18523 _In_ D3D12_COMMAND_LIST_TYPE type, 18524 REFIID riid, 18525 _COM_Outptr_ void **ppCommandAllocator); 18526 18527 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 18528 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 18529 ID3D12Device8 * This, 18530 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 18531 REFIID riid, 18532 _COM_Outptr_ void **ppPipelineState); 18533 18534 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 18535 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 18536 ID3D12Device8 * This, 18537 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 18538 REFIID riid, 18539 _COM_Outptr_ void **ppPipelineState); 18540 18541 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 18542 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 18543 ID3D12Device8 * This, 18544 _In_ UINT nodeMask, 18545 _In_ D3D12_COMMAND_LIST_TYPE type, 18546 _In_ ID3D12CommandAllocator *pCommandAllocator, 18547 _In_opt_ ID3D12PipelineState *pInitialState, 18548 REFIID riid, 18549 _COM_Outptr_ void **ppCommandList); 18550 18551 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 18552 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 18553 ID3D12Device8 * This, 18554 D3D12_FEATURE Feature, 18555 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 18556 UINT FeatureSupportDataSize); 18557 18558 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 18559 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 18560 ID3D12Device8 * This, 18561 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 18562 REFIID riid, 18563 _COM_Outptr_ void **ppvHeap); 18564 18565 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 18566 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 18567 ID3D12Device8 * This, 18568 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 18569 18570 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 18571 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 18572 ID3D12Device8 * This, 18573 _In_ UINT nodeMask, 18574 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 18575 _In_ SIZE_T blobLengthInBytes, 18576 REFIID riid, 18577 _COM_Outptr_ void **ppvRootSignature); 18578 18579 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 18580 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 18581 ID3D12Device8 * This, 18582 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 18583 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18584 18585 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 18586 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 18587 ID3D12Device8 * This, 18588 _In_opt_ ID3D12Resource *pResource, 18589 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 18590 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18591 18592 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 18593 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 18594 ID3D12Device8 * This, 18595 _In_opt_ ID3D12Resource *pResource, 18596 _In_opt_ ID3D12Resource *pCounterResource, 18597 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 18598 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18599 18600 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 18601 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 18602 ID3D12Device8 * This, 18603 _In_opt_ ID3D12Resource *pResource, 18604 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 18605 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18606 18607 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 18608 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 18609 ID3D12Device8 * This, 18610 _In_opt_ ID3D12Resource *pResource, 18611 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 18612 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18613 18614 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 18615 void ( STDMETHODCALLTYPE *CreateSampler )( 18616 ID3D12Device8 * This, 18617 _In_ const D3D12_SAMPLER_DESC *pDesc, 18618 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 18619 18620 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 18621 void ( STDMETHODCALLTYPE *CopyDescriptors )( 18622 ID3D12Device8 * This, 18623 _In_ UINT NumDestDescriptorRanges, 18624 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 18625 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 18626 _In_ UINT NumSrcDescriptorRanges, 18627 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 18628 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 18629 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 18630 18631 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 18632 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 18633 ID3D12Device8 * This, 18634 _In_ UINT NumDescriptors, 18635 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 18636 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 18637 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 18638 18639 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 18640#if !defined(_WIN32) 18641 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 18642 ID3D12Device8 * This, 18643 _In_ UINT visibleMask, 18644 _In_ UINT numResourceDescs, 18645 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 18646 18647#else 18648 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 18649 ID3D12Device8 * This, 18650 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 18651 _In_ UINT visibleMask, 18652 _In_ UINT numResourceDescs, 18653 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 18654 18655#endif 18656 18657 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 18658#if !defined(_WIN32) 18659 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 18660 ID3D12Device8 * This, 18661 _In_ UINT nodeMask, 18662 D3D12_HEAP_TYPE heapType); 18663 18664#else 18665 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 18666 ID3D12Device8 * This, 18667 D3D12_HEAP_PROPERTIES * RetVal, 18668 _In_ UINT nodeMask, 18669 D3D12_HEAP_TYPE heapType); 18670 18671#endif 18672 18673 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 18674 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 18675 ID3D12Device8 * This, 18676 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 18677 D3D12_HEAP_FLAGS HeapFlags, 18678 _In_ const D3D12_RESOURCE_DESC *pDesc, 18679 D3D12_RESOURCE_STATES InitialResourceState, 18680 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18681 REFIID riidResource, 18682 _COM_Outptr_opt_ void **ppvResource); 18683 18684 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 18685 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 18686 ID3D12Device8 * This, 18687 _In_ const D3D12_HEAP_DESC *pDesc, 18688 REFIID riid, 18689 _COM_Outptr_opt_ void **ppvHeap); 18690 18691 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 18692 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 18693 ID3D12Device8 * This, 18694 _In_ ID3D12Heap *pHeap, 18695 UINT64 HeapOffset, 18696 _In_ const D3D12_RESOURCE_DESC *pDesc, 18697 D3D12_RESOURCE_STATES InitialState, 18698 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18699 REFIID riid, 18700 _COM_Outptr_opt_ void **ppvResource); 18701 18702 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 18703 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 18704 ID3D12Device8 * This, 18705 _In_ const D3D12_RESOURCE_DESC *pDesc, 18706 D3D12_RESOURCE_STATES InitialState, 18707 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18708 REFIID riid, 18709 _COM_Outptr_opt_ void **ppvResource); 18710 18711 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 18712 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 18713 ID3D12Device8 * This, 18714 _In_ ID3D12DeviceChild *pObject, 18715 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 18716 DWORD Access, 18717 _In_opt_ LPCWSTR Name, 18718 _Out_ HANDLE *pHandle); 18719 18720 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 18721 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 18722 ID3D12Device8 * This, 18723 _In_ HANDLE NTHandle, 18724 REFIID riid, 18725 _COM_Outptr_opt_ void **ppvObj); 18726 18727 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 18728 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 18729 ID3D12Device8 * This, 18730 _In_ LPCWSTR Name, 18731 DWORD Access, 18732 /* [annotation][out] */ 18733 _Out_ HANDLE *pNTHandle); 18734 18735 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 18736 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 18737 ID3D12Device8 * This, 18738 UINT NumObjects, 18739 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 18740 18741 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 18742 HRESULT ( STDMETHODCALLTYPE *Evict )( 18743 ID3D12Device8 * This, 18744 UINT NumObjects, 18745 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 18746 18747 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 18748 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 18749 ID3D12Device8 * This, 18750 UINT64 InitialValue, 18751 D3D12_FENCE_FLAGS Flags, 18752 REFIID riid, 18753 _COM_Outptr_ void **ppFence); 18754 18755 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 18756 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 18757 ID3D12Device8 * This); 18758 18759 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 18760 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 18761 ID3D12Device8 * This, 18762 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 18763 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 18764 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 18765 UINT64 BaseOffset, 18766 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 18767 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 18768 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 18769 _Out_opt_ UINT64 *pTotalBytes); 18770 18771 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 18772 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 18773 ID3D12Device8 * This, 18774 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 18775 REFIID riid, 18776 _COM_Outptr_opt_ void **ppvHeap); 18777 18778 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 18779 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 18780 ID3D12Device8 * This, 18781 BOOL Enable); 18782 18783 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 18784 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 18785 ID3D12Device8 * This, 18786 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 18787 _In_opt_ ID3D12RootSignature *pRootSignature, 18788 REFIID riid, 18789 _COM_Outptr_opt_ void **ppvCommandSignature); 18790 18791 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 18792 void ( STDMETHODCALLTYPE *GetResourceTiling )( 18793 ID3D12Device8 * This, 18794 _In_ ID3D12Resource *pTiledResource, 18795 _Out_opt_ UINT *pNumTilesForEntireResource, 18796 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 18797 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 18798 _Inout_opt_ UINT *pNumSubresourceTilings, 18799 _In_ UINT FirstSubresourceTilingToGet, 18800 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 18801 18802 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 18803#if !defined(_WIN32) 18804 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 18805 ID3D12Device8 * This); 18806 18807#else 18808 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 18809 ID3D12Device8 * This, 18810 LUID * RetVal); 18811 18812#endif 18813 18814 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 18815 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 18816 ID3D12Device8 * This, 18817 _In_reads_(BlobLength) const void *pLibraryBlob, 18818 SIZE_T BlobLength, 18819 REFIID riid, 18820 _COM_Outptr_ void **ppPipelineLibrary); 18821 18822 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 18823 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 18824 ID3D12Device8 * This, 18825 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 18826 _In_reads_(NumFences) const UINT64 *pFenceValues, 18827 UINT NumFences, 18828 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 18829 HANDLE hEvent); 18830 18831 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 18832 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 18833 ID3D12Device8 * This, 18834 UINT NumObjects, 18835 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 18836 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 18837 18838 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 18839 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 18840 ID3D12Device8 * This, 18841 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 18842 REFIID riid, 18843 _COM_Outptr_ void **ppPipelineState); 18844 18845 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 18846 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 18847 ID3D12Device8 * This, 18848 _In_ const void *pAddress, 18849 REFIID riid, 18850 _COM_Outptr_ void **ppvHeap); 18851 18852 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 18853 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 18854 ID3D12Device8 * This, 18855 _In_ HANDLE hFileMapping, 18856 REFIID riid, 18857 _COM_Outptr_ void **ppvHeap); 18858 18859 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 18860 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 18861 ID3D12Device8 * This, 18862 D3D12_RESIDENCY_FLAGS Flags, 18863 UINT NumObjects, 18864 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 18865 _In_ ID3D12Fence *pFenceToSignal, 18866 UINT64 FenceValueToSignal); 18867 18868 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 18869 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 18870 ID3D12Device8 * This, 18871 _In_ UINT nodeMask, 18872 _In_ D3D12_COMMAND_LIST_TYPE type, 18873 _In_ D3D12_COMMAND_LIST_FLAGS flags, 18874 REFIID riid, 18875 _COM_Outptr_ void **ppCommandList); 18876 18877 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 18878 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 18879 ID3D12Device8 * This, 18880 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 18881 _In_ REFIID riid, 18882 _COM_Outptr_ void **ppSession); 18883 18884 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 18885 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 18886 ID3D12Device8 * This, 18887 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 18888 D3D12_HEAP_FLAGS HeapFlags, 18889 _In_ const D3D12_RESOURCE_DESC *pDesc, 18890 D3D12_RESOURCE_STATES InitialResourceState, 18891 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18892 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18893 REFIID riidResource, 18894 _COM_Outptr_opt_ void **ppvResource); 18895 18896 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 18897 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 18898 ID3D12Device8 * This, 18899 _In_ const D3D12_HEAP_DESC *pDesc, 18900 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18901 REFIID riid, 18902 _COM_Outptr_opt_ void **ppvHeap); 18903 18904 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 18905 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 18906 ID3D12Device8 * This, 18907 _In_ const D3D12_RESOURCE_DESC *pDesc, 18908 D3D12_RESOURCE_STATES InitialState, 18909 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 18910 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 18911 REFIID riid, 18912 _COM_Outptr_opt_ void **ppvResource); 18913 18914 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 18915#if !defined(_WIN32) 18916 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 18917 ID3D12Device8 * This, 18918 UINT visibleMask, 18919 UINT numResourceDescs, 18920 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 18921 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 18922 18923#else 18924 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 18925 ID3D12Device8 * This, 18926 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 18927 UINT visibleMask, 18928 UINT numResourceDescs, 18929 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 18930 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 18931 18932#endif 18933 18934 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 18935 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 18936 ID3D12Device8 * This, 18937 _In_ ID3D12LifetimeOwner *pOwner, 18938 REFIID riid, 18939 _COM_Outptr_ void **ppvTracker); 18940 18941 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 18942 void ( STDMETHODCALLTYPE *RemoveDevice )( 18943 ID3D12Device8 * This); 18944 18945 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 18946 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 18947 ID3D12Device8 * This, 18948 _Inout_ UINT *pNumMetaCommands, 18949 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 18950 18951 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 18952 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 18953 ID3D12Device8 * This, 18954 _In_ REFGUID CommandId, 18955 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 18956 _Out_opt_ UINT *pTotalStructureSizeInBytes, 18957 _Inout_ UINT *pParameterCount, 18958 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 18959 18960 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 18961 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 18962 ID3D12Device8 * This, 18963 _In_ REFGUID CommandId, 18964 _In_ UINT NodeMask, 18965 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 18966 _In_ SIZE_T CreationParametersDataSizeInBytes, 18967 REFIID riid, 18968 _COM_Outptr_ void **ppMetaCommand); 18969 18970 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 18971 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 18972 ID3D12Device8 * This, 18973 const D3D12_STATE_OBJECT_DESC *pDesc, 18974 REFIID riid, 18975 _COM_Outptr_ void **ppStateObject); 18976 18977 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 18978 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 18979 ID3D12Device8 * This, 18980 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 18981 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 18982 18983 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 18984 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 18985 ID3D12Device8 * This, 18986 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 18987 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 18988 18989 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 18990 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 18991 ID3D12Device8 * This, 18992 D3D12_BACKGROUND_PROCESSING_MODE Mode, 18993 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 18994 _In_opt_ HANDLE hEventToSignalUponCompletion, 18995 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 18996 18997 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 18998 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 18999 ID3D12Device8 * This, 19000 const D3D12_STATE_OBJECT_DESC *pAddition, 19001 ID3D12StateObject *pStateObjectToGrowFrom, 19002 REFIID riid, 19003 _COM_Outptr_ void **ppNewStateObject); 19004 19005 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 19006 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 19007 ID3D12Device8 * This, 19008 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 19009 _In_ REFIID riid, 19010 _COM_Outptr_ void **ppSession); 19011 19012 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 19013#if !defined(_WIN32) 19014 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 19015 ID3D12Device8 * This, 19016 UINT visibleMask, 19017 UINT numResourceDescs, 19018 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 19019 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 19020 19021#else 19022 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 19023 ID3D12Device8 * This, 19024 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 19025 UINT visibleMask, 19026 UINT numResourceDescs, 19027 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 19028 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 19029 19030#endif 19031 19032 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 19033 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 19034 ID3D12Device8 * This, 19035 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 19036 D3D12_HEAP_FLAGS HeapFlags, 19037 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 19038 D3D12_RESOURCE_STATES InitialResourceState, 19039 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 19040 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 19041 REFIID riidResource, 19042 _COM_Outptr_opt_ void **ppvResource); 19043 19044 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 19045 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 19046 ID3D12Device8 * This, 19047 _In_ ID3D12Heap *pHeap, 19048 UINT64 HeapOffset, 19049 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 19050 D3D12_RESOURCE_STATES InitialState, 19051 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 19052 REFIID riid, 19053 _COM_Outptr_opt_ void **ppvResource); 19054 19055 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 19056 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 19057 ID3D12Device8 * This, 19058 _In_opt_ ID3D12Resource *pTargetedResource, 19059 _In_opt_ ID3D12Resource *pFeedbackResource, 19060 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 19061 19062 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 19063 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 19064 ID3D12Device8 * This, 19065 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 19066 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 19067 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 19068 UINT64 BaseOffset, 19069 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 19070 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 19071 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 19072 _Out_opt_ UINT64 *pTotalBytes); 19073 19074 END_INTERFACE 19075 } ID3D12Device8Vtbl; 19076 19077 interface ID3D12Device8 19078 { 19079 CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl; 19080 }; 19081 19082 19083 19084#ifdef COBJMACROS 19085 19086 19087#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \ 19088 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 19089 19090#define ID3D12Device8_AddRef(This) \ 19091 ( (This)->lpVtbl -> AddRef(This) ) 19092 19093#define ID3D12Device8_Release(This) \ 19094 ( (This)->lpVtbl -> Release(This) ) 19095 19096 19097#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \ 19098 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 19099 19100#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \ 19101 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 19102 19103#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \ 19104 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 19105 19106#define ID3D12Device8_SetName(This,Name) \ 19107 ( (This)->lpVtbl -> SetName(This,Name) ) 19108 19109 19110#define ID3D12Device8_GetNodeCount(This) \ 19111 ( (This)->lpVtbl -> GetNodeCount(This) ) 19112 19113#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 19114 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 19115 19116#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 19117 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 19118 19119#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 19120 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 19121 19122#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 19123 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 19124 19125#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 19126 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 19127 19128#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 19129 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 19130 19131#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 19132 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 19133 19134#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 19135 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 19136 19137#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 19138 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 19139 19140#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 19141 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 19142 19143#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 19144 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 19145 19146#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 19147 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 19148 19149#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 19150 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 19151 19152#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 19153 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 19154 19155#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \ 19156 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 19157 19158#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 19159 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 19160 19161#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 19162 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 19163#if !defined(_WIN32) 19164 19165#define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 19166 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 19167#else 19168#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 19169 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 19170#endif 19171#if !defined(_WIN32) 19172 19173#define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \ 19174 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 19175#else 19176#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 19177 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 19178#endif 19179 19180#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 19181 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 19182 19183#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \ 19184 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 19185 19186#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 19187 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 19188 19189#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 19190 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 19191 19192#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 19193 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 19194 19195#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 19196 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 19197 19198#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 19199 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 19200 19201#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \ 19202 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 19203 19204#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \ 19205 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 19206 19207#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 19208 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 19209 19210#define ID3D12Device8_GetDeviceRemovedReason(This) \ 19211 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 19212 19213#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 19214 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 19215 19216#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 19217 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 19218 19219#define ID3D12Device8_SetStablePowerState(This,Enable) \ 19220 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 19221 19222#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 19223 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 19224 19225#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 19226 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 19227#if !defined(_WIN32) 19228 19229#define ID3D12Device8_GetAdapterLuid(This) \ 19230 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 19231#else 19232#define ID3D12Device8_GetAdapterLuid(This,RetVal) \ 19233 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 19234#endif 19235 19236 19237#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 19238 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 19239 19240#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 19241 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 19242 19243#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 19244 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 19245 19246 19247#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 19248 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 19249 19250 19251#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 19252 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 19253 19254#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 19255 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 19256 19257#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 19258 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 19259 19260 19261#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 19262 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 19263 19264#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 19265 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 19266 19267#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 19268 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 19269 19270#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 19271 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 19272 19273#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 19274 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 19275#if !defined(_WIN32) 19276 19277#define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 19278 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 19279#else 19280#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 19281 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 19282#endif 19283 19284 19285#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 19286 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 19287 19288#define ID3D12Device8_RemoveDevice(This) \ 19289 ( (This)->lpVtbl -> RemoveDevice(This) ) 19290 19291#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 19292 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 19293 19294#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 19295 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 19296 19297#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 19298 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 19299 19300#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \ 19301 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 19302 19303#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 19304 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 19305 19306#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 19307 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 19308 19309 19310#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 19311 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 19312 19313 19314#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 19315 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 19316 19317#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 19318 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 19319 19320#if !defined(_WIN32) 19321 19322#define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 19323 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 19324#else 19325#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 19326 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 19327#endif 19328 19329#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 19330 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 19331 19332#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 19333 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 19334 19335#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 19336 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 19337 19338#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 19339 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 19340 19341#endif /* COBJMACROS */ 19342 19343 19344#endif /* C style interface */ 19345 19346 19347 19348 19349#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */ 19350 19351 19352#ifndef __ID3D12Resource1_INTERFACE_DEFINED__ 19353#define __ID3D12Resource1_INTERFACE_DEFINED__ 19354 19355/* interface ID3D12Resource1 */ 19356/* [unique][local][object][uuid] */ 19357 19358 19359EXTERN_C const IID IID_ID3D12Resource1; 19360 19361#if defined(__cplusplus) && !defined(CINTERFACE) 19362 19363 MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19") 19364 ID3D12Resource1 : public ID3D12Resource 19365 { 19366 public: 19367 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( 19368 REFIID riid, 19369 _COM_Outptr_opt_ void **ppProtectedSession) = 0; 19370 19371 }; 19372 19373 19374#else /* C style interface */ 19375 19376 typedef struct ID3D12Resource1Vtbl 19377 { 19378 BEGIN_INTERFACE 19379 19380 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 19381 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 19382 ID3D12Resource1 * This, 19383 REFIID riid, 19384 _COM_Outptr_ void **ppvObject); 19385 19386 DECLSPEC_XFGVIRT(IUnknown, AddRef) 19387 ULONG ( STDMETHODCALLTYPE *AddRef )( 19388 ID3D12Resource1 * This); 19389 19390 DECLSPEC_XFGVIRT(IUnknown, Release) 19391 ULONG ( STDMETHODCALLTYPE *Release )( 19392 ID3D12Resource1 * This); 19393 19394 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 19395 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 19396 ID3D12Resource1 * This, 19397 _In_ REFGUID guid, 19398 _Inout_ UINT *pDataSize, 19399 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 19400 19401 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 19402 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 19403 ID3D12Resource1 * This, 19404 _In_ REFGUID guid, 19405 _In_ UINT DataSize, 19406 _In_reads_bytes_opt_( DataSize ) const void *pData); 19407 19408 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 19409 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 19410 ID3D12Resource1 * This, 19411 _In_ REFGUID guid, 19412 _In_opt_ const IUnknown *pData); 19413 19414 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 19415 HRESULT ( STDMETHODCALLTYPE *SetName )( 19416 ID3D12Resource1 * This, 19417 _In_z_ LPCWSTR Name); 19418 19419 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 19420 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 19421 ID3D12Resource1 * This, 19422 REFIID riid, 19423 _COM_Outptr_opt_ void **ppvDevice); 19424 19425 DECLSPEC_XFGVIRT(ID3D12Resource, Map) 19426 HRESULT ( STDMETHODCALLTYPE *Map )( 19427 ID3D12Resource1 * This, 19428 UINT Subresource, 19429 _In_opt_ const D3D12_RANGE *pReadRange, 19430 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); 19431 19432 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) 19433 void ( STDMETHODCALLTYPE *Unmap )( 19434 ID3D12Resource1 * This, 19435 UINT Subresource, 19436 _In_opt_ const D3D12_RANGE *pWrittenRange); 19437 19438 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) 19439#if !defined(_WIN32) 19440 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( 19441 ID3D12Resource1 * This); 19442 19443#else 19444 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( 19445 ID3D12Resource1 * This, 19446 D3D12_RESOURCE_DESC * RetVal); 19447 19448#endif 19449 19450 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) 19451 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( 19452 ID3D12Resource1 * This); 19453 19454 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) 19455 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( 19456 ID3D12Resource1 * This, 19457 UINT DstSubresource, 19458 _In_opt_ const D3D12_BOX *pDstBox, 19459 _In_ const void *pSrcData, 19460 UINT SrcRowPitch, 19461 UINT SrcDepthPitch); 19462 19463 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) 19464 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( 19465 ID3D12Resource1 * This, 19466 _Out_ void *pDstData, 19467 UINT DstRowPitch, 19468 UINT DstDepthPitch, 19469 UINT SrcSubresource, 19470 _In_opt_ const D3D12_BOX *pSrcBox); 19471 19472 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) 19473 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( 19474 ID3D12Resource1 * This, 19475 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, 19476 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); 19477 19478 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) 19479 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( 19480 ID3D12Resource1 * This, 19481 REFIID riid, 19482 _COM_Outptr_opt_ void **ppProtectedSession); 19483 19484 END_INTERFACE 19485 } ID3D12Resource1Vtbl; 19486 19487 interface ID3D12Resource1 19488 { 19489 CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl; 19490 }; 19491 19492 19493 19494#ifdef COBJMACROS 19495 19496 19497#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \ 19498 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 19499 19500#define ID3D12Resource1_AddRef(This) \ 19501 ( (This)->lpVtbl -> AddRef(This) ) 19502 19503#define ID3D12Resource1_Release(This) \ 19504 ( (This)->lpVtbl -> Release(This) ) 19505 19506 19507#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \ 19508 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 19509 19510#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \ 19511 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 19512 19513#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \ 19514 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 19515 19516#define ID3D12Resource1_SetName(This,Name) \ 19517 ( (This)->lpVtbl -> SetName(This,Name) ) 19518 19519 19520#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \ 19521 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 19522 19523 19524 19525#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \ 19526 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) 19527 19528#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \ 19529 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) 19530#if !defined(_WIN32) 19531 19532#define ID3D12Resource1_GetDesc(This) \ 19533 ( (This)->lpVtbl -> GetDesc(This) ) 19534#else 19535#define ID3D12Resource1_GetDesc(This,RetVal) \ 19536 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 19537#endif 19538 19539#define ID3D12Resource1_GetGPUVirtualAddress(This) \ 19540 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) 19541 19542#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ 19543 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) 19544 19545#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ 19546 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) 19547 19548#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ 19549 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) 19550 19551 19552#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ 19553 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) 19554 19555#endif /* COBJMACROS */ 19556 19557 19558#endif /* C style interface */ 19559 19560 19561 19562 19563#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */ 19564 19565 19566#ifndef __ID3D12Resource2_INTERFACE_DEFINED__ 19567#define __ID3D12Resource2_INTERFACE_DEFINED__ 19568 19569/* interface ID3D12Resource2 */ 19570/* [unique][local][object][uuid] */ 19571 19572 19573EXTERN_C const IID IID_ID3D12Resource2; 19574 19575#if defined(__cplusplus) && !defined(CINTERFACE) 19576 19577 MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495") 19578 ID3D12Resource2 : public ID3D12Resource1 19579 { 19580 public: 19581#if defined(_MSC_VER) || !defined(_WIN32) 19582 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; 19583#else 19584 virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1( 19585 D3D12_RESOURCE_DESC1 * RetVal) = 0; 19586#endif 19587 19588 }; 19589 19590 19591#else /* C style interface */ 19592 19593 typedef struct ID3D12Resource2Vtbl 19594 { 19595 BEGIN_INTERFACE 19596 19597 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 19598 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 19599 ID3D12Resource2 * This, 19600 REFIID riid, 19601 _COM_Outptr_ void **ppvObject); 19602 19603 DECLSPEC_XFGVIRT(IUnknown, AddRef) 19604 ULONG ( STDMETHODCALLTYPE *AddRef )( 19605 ID3D12Resource2 * This); 19606 19607 DECLSPEC_XFGVIRT(IUnknown, Release) 19608 ULONG ( STDMETHODCALLTYPE *Release )( 19609 ID3D12Resource2 * This); 19610 19611 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 19612 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 19613 ID3D12Resource2 * This, 19614 _In_ REFGUID guid, 19615 _Inout_ UINT *pDataSize, 19616 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 19617 19618 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 19619 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 19620 ID3D12Resource2 * This, 19621 _In_ REFGUID guid, 19622 _In_ UINT DataSize, 19623 _In_reads_bytes_opt_( DataSize ) const void *pData); 19624 19625 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 19626 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 19627 ID3D12Resource2 * This, 19628 _In_ REFGUID guid, 19629 _In_opt_ const IUnknown *pData); 19630 19631 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 19632 HRESULT ( STDMETHODCALLTYPE *SetName )( 19633 ID3D12Resource2 * This, 19634 _In_z_ LPCWSTR Name); 19635 19636 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 19637 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 19638 ID3D12Resource2 * This, 19639 REFIID riid, 19640 _COM_Outptr_opt_ void **ppvDevice); 19641 19642 DECLSPEC_XFGVIRT(ID3D12Resource, Map) 19643 HRESULT ( STDMETHODCALLTYPE *Map )( 19644 ID3D12Resource2 * This, 19645 UINT Subresource, 19646 _In_opt_ const D3D12_RANGE *pReadRange, 19647 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); 19648 19649 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) 19650 void ( STDMETHODCALLTYPE *Unmap )( 19651 ID3D12Resource2 * This, 19652 UINT Subresource, 19653 _In_opt_ const D3D12_RANGE *pWrittenRange); 19654 19655 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) 19656#if !defined(_WIN32) 19657 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( 19658 ID3D12Resource2 * This); 19659 19660#else 19661 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( 19662 ID3D12Resource2 * This, 19663 D3D12_RESOURCE_DESC * RetVal); 19664 19665#endif 19666 19667 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) 19668 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( 19669 ID3D12Resource2 * This); 19670 19671 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) 19672 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( 19673 ID3D12Resource2 * This, 19674 UINT DstSubresource, 19675 _In_opt_ const D3D12_BOX *pDstBox, 19676 _In_ const void *pSrcData, 19677 UINT SrcRowPitch, 19678 UINT SrcDepthPitch); 19679 19680 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) 19681 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( 19682 ID3D12Resource2 * This, 19683 _Out_ void *pDstData, 19684 UINT DstRowPitch, 19685 UINT DstDepthPitch, 19686 UINT SrcSubresource, 19687 _In_opt_ const D3D12_BOX *pSrcBox); 19688 19689 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) 19690 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( 19691 ID3D12Resource2 * This, 19692 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, 19693 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); 19694 19695 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) 19696 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( 19697 ID3D12Resource2 * This, 19698 REFIID riid, 19699 _COM_Outptr_opt_ void **ppProtectedSession); 19700 19701 DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1) 19702#if !defined(_WIN32) 19703 D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( 19704 ID3D12Resource2 * This); 19705 19706#else 19707 D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( 19708 ID3D12Resource2 * This, 19709 D3D12_RESOURCE_DESC1 * RetVal); 19710 19711#endif 19712 19713 END_INTERFACE 19714 } ID3D12Resource2Vtbl; 19715 19716 interface ID3D12Resource2 19717 { 19718 CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl; 19719 }; 19720 19721 19722 19723#ifdef COBJMACROS 19724 19725 19726#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \ 19727 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 19728 19729#define ID3D12Resource2_AddRef(This) \ 19730 ( (This)->lpVtbl -> AddRef(This) ) 19731 19732#define ID3D12Resource2_Release(This) \ 19733 ( (This)->lpVtbl -> Release(This) ) 19734 19735 19736#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \ 19737 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 19738 19739#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \ 19740 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 19741 19742#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \ 19743 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 19744 19745#define ID3D12Resource2_SetName(This,Name) \ 19746 ( (This)->lpVtbl -> SetName(This,Name) ) 19747 19748 19749#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \ 19750 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 19751 19752 19753 19754#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \ 19755 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) 19756 19757#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \ 19758 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) 19759#if !defined(_WIN32) 19760 19761#define ID3D12Resource2_GetDesc(This) \ 19762 ( (This)->lpVtbl -> GetDesc(This) ) 19763#else 19764#define ID3D12Resource2_GetDesc(This,RetVal) \ 19765 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 19766#endif 19767 19768#define ID3D12Resource2_GetGPUVirtualAddress(This) \ 19769 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) 19770 19771#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ 19772 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) 19773 19774#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ 19775 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) 19776 19777#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ 19778 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) 19779 19780 19781#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \ 19782 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) 19783 19784#if !defined(_WIN32) 19785 19786#define ID3D12Resource2_GetDesc1(This) \ 19787 ( (This)->lpVtbl -> GetDesc1(This) ) 19788#else 19789#define ID3D12Resource2_GetDesc1(This,RetVal) \ 19790 ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) 19791#endif 19792 19793#endif /* COBJMACROS */ 19794 19795 19796#endif /* C style interface */ 19797 19798 19799 19800 19801#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */ 19802 19803 19804#ifndef __ID3D12Heap1_INTERFACE_DEFINED__ 19805#define __ID3D12Heap1_INTERFACE_DEFINED__ 19806 19807/* interface ID3D12Heap1 */ 19808/* [unique][local][object][uuid] */ 19809 19810 19811EXTERN_C const IID IID_ID3D12Heap1; 19812 19813#if defined(__cplusplus) && !defined(CINTERFACE) 19814 19815 MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D") 19816 ID3D12Heap1 : public ID3D12Heap 19817 { 19818 public: 19819 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( 19820 REFIID riid, 19821 _COM_Outptr_opt_ void **ppProtectedSession) = 0; 19822 19823 }; 19824 19825 19826#else /* C style interface */ 19827 19828 typedef struct ID3D12Heap1Vtbl 19829 { 19830 BEGIN_INTERFACE 19831 19832 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 19833 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 19834 ID3D12Heap1 * This, 19835 REFIID riid, 19836 _COM_Outptr_ void **ppvObject); 19837 19838 DECLSPEC_XFGVIRT(IUnknown, AddRef) 19839 ULONG ( STDMETHODCALLTYPE *AddRef )( 19840 ID3D12Heap1 * This); 19841 19842 DECLSPEC_XFGVIRT(IUnknown, Release) 19843 ULONG ( STDMETHODCALLTYPE *Release )( 19844 ID3D12Heap1 * This); 19845 19846 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 19847 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 19848 ID3D12Heap1 * This, 19849 _In_ REFGUID guid, 19850 _Inout_ UINT *pDataSize, 19851 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 19852 19853 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 19854 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 19855 ID3D12Heap1 * This, 19856 _In_ REFGUID guid, 19857 _In_ UINT DataSize, 19858 _In_reads_bytes_opt_( DataSize ) const void *pData); 19859 19860 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 19861 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 19862 ID3D12Heap1 * This, 19863 _In_ REFGUID guid, 19864 _In_opt_ const IUnknown *pData); 19865 19866 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 19867 HRESULT ( STDMETHODCALLTYPE *SetName )( 19868 ID3D12Heap1 * This, 19869 _In_z_ LPCWSTR Name); 19870 19871 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 19872 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 19873 ID3D12Heap1 * This, 19874 REFIID riid, 19875 _COM_Outptr_opt_ void **ppvDevice); 19876 19877 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) 19878#if !defined(_WIN32) 19879 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( 19880 ID3D12Heap1 * This); 19881 19882#else 19883 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( 19884 ID3D12Heap1 * This, 19885 D3D12_HEAP_DESC * RetVal); 19886 19887#endif 19888 19889 DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession) 19890 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( 19891 ID3D12Heap1 * This, 19892 REFIID riid, 19893 _COM_Outptr_opt_ void **ppProtectedSession); 19894 19895 END_INTERFACE 19896 } ID3D12Heap1Vtbl; 19897 19898 interface ID3D12Heap1 19899 { 19900 CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl; 19901 }; 19902 19903 19904 19905#ifdef COBJMACROS 19906 19907 19908#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \ 19909 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 19910 19911#define ID3D12Heap1_AddRef(This) \ 19912 ( (This)->lpVtbl -> AddRef(This) ) 19913 19914#define ID3D12Heap1_Release(This) \ 19915 ( (This)->lpVtbl -> Release(This) ) 19916 19917 19918#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \ 19919 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 19920 19921#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \ 19922 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 19923 19924#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \ 19925 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 19926 19927#define ID3D12Heap1_SetName(This,Name) \ 19928 ( (This)->lpVtbl -> SetName(This,Name) ) 19929 19930 19931#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \ 19932 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 19933 19934 19935#if !defined(_WIN32) 19936 19937#define ID3D12Heap1_GetDesc(This) \ 19938 ( (This)->lpVtbl -> GetDesc(This) ) 19939#else 19940#define ID3D12Heap1_GetDesc(This,RetVal) \ 19941 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 19942#endif 19943 19944 19945#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ 19946 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) 19947 19948#endif /* COBJMACROS */ 19949 19950 19951#endif /* C style interface */ 19952 19953 19954 19955 19956#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */ 19957 19958 19959#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ 19960#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ 19961 19962/* interface ID3D12GraphicsCommandList3 */ 19963/* [unique][local][object][uuid] */ 19964 19965 19966EXTERN_C const IID IID_ID3D12GraphicsCommandList3; 19967 19968#if defined(__cplusplus) && !defined(CINTERFACE) 19969 19970 MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D") 19971 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2 19972 { 19973 public: 19974 virtual void STDMETHODCALLTYPE SetProtectedResourceSession( 19975 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; 19976 19977 }; 19978 19979 19980#else /* C style interface */ 19981 19982 typedef struct ID3D12GraphicsCommandList3Vtbl 19983 { 19984 BEGIN_INTERFACE 19985 19986 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 19987 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 19988 ID3D12GraphicsCommandList3 * This, 19989 REFIID riid, 19990 _COM_Outptr_ void **ppvObject); 19991 19992 DECLSPEC_XFGVIRT(IUnknown, AddRef) 19993 ULONG ( STDMETHODCALLTYPE *AddRef )( 19994 ID3D12GraphicsCommandList3 * This); 19995 19996 DECLSPEC_XFGVIRT(IUnknown, Release) 19997 ULONG ( STDMETHODCALLTYPE *Release )( 19998 ID3D12GraphicsCommandList3 * This); 19999 20000 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 20001 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 20002 ID3D12GraphicsCommandList3 * This, 20003 _In_ REFGUID guid, 20004 _Inout_ UINT *pDataSize, 20005 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 20006 20007 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 20008 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 20009 ID3D12GraphicsCommandList3 * This, 20010 _In_ REFGUID guid, 20011 _In_ UINT DataSize, 20012 _In_reads_bytes_opt_( DataSize ) const void *pData); 20013 20014 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 20015 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 20016 ID3D12GraphicsCommandList3 * This, 20017 _In_ REFGUID guid, 20018 _In_opt_ const IUnknown *pData); 20019 20020 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 20021 HRESULT ( STDMETHODCALLTYPE *SetName )( 20022 ID3D12GraphicsCommandList3 * This, 20023 _In_z_ LPCWSTR Name); 20024 20025 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 20026 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 20027 ID3D12GraphicsCommandList3 * This, 20028 REFIID riid, 20029 _COM_Outptr_opt_ void **ppvDevice); 20030 20031 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 20032 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 20033 ID3D12GraphicsCommandList3 * This); 20034 20035 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 20036 HRESULT ( STDMETHODCALLTYPE *Close )( 20037 ID3D12GraphicsCommandList3 * This); 20038 20039 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 20040 HRESULT ( STDMETHODCALLTYPE *Reset )( 20041 ID3D12GraphicsCommandList3 * This, 20042 _In_ ID3D12CommandAllocator *pAllocator, 20043 _In_opt_ ID3D12PipelineState *pInitialState); 20044 20045 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 20046 void ( STDMETHODCALLTYPE *ClearState )( 20047 ID3D12GraphicsCommandList3 * This, 20048 _In_opt_ ID3D12PipelineState *pPipelineState); 20049 20050 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 20051 void ( STDMETHODCALLTYPE *DrawInstanced )( 20052 ID3D12GraphicsCommandList3 * This, 20053 _In_ UINT VertexCountPerInstance, 20054 _In_ UINT InstanceCount, 20055 _In_ UINT StartVertexLocation, 20056 _In_ UINT StartInstanceLocation); 20057 20058 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 20059 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 20060 ID3D12GraphicsCommandList3 * This, 20061 _In_ UINT IndexCountPerInstance, 20062 _In_ UINT InstanceCount, 20063 _In_ UINT StartIndexLocation, 20064 _In_ INT BaseVertexLocation, 20065 _In_ UINT StartInstanceLocation); 20066 20067 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 20068 void ( STDMETHODCALLTYPE *Dispatch )( 20069 ID3D12GraphicsCommandList3 * This, 20070 _In_ UINT ThreadGroupCountX, 20071 _In_ UINT ThreadGroupCountY, 20072 _In_ UINT ThreadGroupCountZ); 20073 20074 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 20075 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 20076 ID3D12GraphicsCommandList3 * This, 20077 _In_ ID3D12Resource *pDstBuffer, 20078 UINT64 DstOffset, 20079 _In_ ID3D12Resource *pSrcBuffer, 20080 UINT64 SrcOffset, 20081 UINT64 NumBytes); 20082 20083 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 20084 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 20085 ID3D12GraphicsCommandList3 * This, 20086 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 20087 UINT DstX, 20088 UINT DstY, 20089 UINT DstZ, 20090 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 20091 _In_opt_ const D3D12_BOX *pSrcBox); 20092 20093 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 20094 void ( STDMETHODCALLTYPE *CopyResource )( 20095 ID3D12GraphicsCommandList3 * This, 20096 _In_ ID3D12Resource *pDstResource, 20097 _In_ ID3D12Resource *pSrcResource); 20098 20099 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 20100 void ( STDMETHODCALLTYPE *CopyTiles )( 20101 ID3D12GraphicsCommandList3 * This, 20102 _In_ ID3D12Resource *pTiledResource, 20103 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 20104 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 20105 _In_ ID3D12Resource *pBuffer, 20106 UINT64 BufferStartOffsetInBytes, 20107 D3D12_TILE_COPY_FLAGS Flags); 20108 20109 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 20110 void ( STDMETHODCALLTYPE *ResolveSubresource )( 20111 ID3D12GraphicsCommandList3 * This, 20112 _In_ ID3D12Resource *pDstResource, 20113 _In_ UINT DstSubresource, 20114 _In_ ID3D12Resource *pSrcResource, 20115 _In_ UINT SrcSubresource, 20116 _In_ DXGI_FORMAT Format); 20117 20118 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 20119 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 20120 ID3D12GraphicsCommandList3 * This, 20121 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 20122 20123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 20124 void ( STDMETHODCALLTYPE *RSSetViewports )( 20125 ID3D12GraphicsCommandList3 * This, 20126 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 20127 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 20128 20129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 20130 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 20131 ID3D12GraphicsCommandList3 * This, 20132 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 20133 _In_reads_( NumRects) const D3D12_RECT *pRects); 20134 20135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 20136 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 20137 ID3D12GraphicsCommandList3 * This, 20138 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 20139 20140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 20141 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 20142 ID3D12GraphicsCommandList3 * This, 20143 _In_ UINT StencilRef); 20144 20145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 20146 void ( STDMETHODCALLTYPE *SetPipelineState )( 20147 ID3D12GraphicsCommandList3 * This, 20148 _In_ ID3D12PipelineState *pPipelineState); 20149 20150 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 20151 void ( STDMETHODCALLTYPE *ResourceBarrier )( 20152 ID3D12GraphicsCommandList3 * This, 20153 _In_ UINT NumBarriers, 20154 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 20155 20156 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 20157 void ( STDMETHODCALLTYPE *ExecuteBundle )( 20158 ID3D12GraphicsCommandList3 * This, 20159 _In_ ID3D12GraphicsCommandList *pCommandList); 20160 20161 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 20162 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 20163 ID3D12GraphicsCommandList3 * This, 20164 _In_ UINT NumDescriptorHeaps, 20165 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 20166 20167 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 20168 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 20169 ID3D12GraphicsCommandList3 * This, 20170 _In_opt_ ID3D12RootSignature *pRootSignature); 20171 20172 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 20173 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 20174 ID3D12GraphicsCommandList3 * This, 20175 _In_opt_ ID3D12RootSignature *pRootSignature); 20176 20177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 20178 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 20179 ID3D12GraphicsCommandList3 * This, 20180 _In_ UINT RootParameterIndex, 20181 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 20182 20183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 20184 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 20185 ID3D12GraphicsCommandList3 * This, 20186 _In_ UINT RootParameterIndex, 20187 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 20188 20189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 20190 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 20191 ID3D12GraphicsCommandList3 * This, 20192 _In_ UINT RootParameterIndex, 20193 _In_ UINT SrcData, 20194 _In_ UINT DestOffsetIn32BitValues); 20195 20196 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 20197 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 20198 ID3D12GraphicsCommandList3 * This, 20199 _In_ UINT RootParameterIndex, 20200 _In_ UINT SrcData, 20201 _In_ UINT DestOffsetIn32BitValues); 20202 20203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 20204 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 20205 ID3D12GraphicsCommandList3 * This, 20206 _In_ UINT RootParameterIndex, 20207 _In_ UINT Num32BitValuesToSet, 20208 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 20209 _In_ UINT DestOffsetIn32BitValues); 20210 20211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 20212 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 20213 ID3D12GraphicsCommandList3 * This, 20214 _In_ UINT RootParameterIndex, 20215 _In_ UINT Num32BitValuesToSet, 20216 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 20217 _In_ UINT DestOffsetIn32BitValues); 20218 20219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 20220 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 20221 ID3D12GraphicsCommandList3 * This, 20222 _In_ UINT RootParameterIndex, 20223 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20224 20225 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 20226 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 20227 ID3D12GraphicsCommandList3 * This, 20228 _In_ UINT RootParameterIndex, 20229 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20230 20231 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 20232 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 20233 ID3D12GraphicsCommandList3 * This, 20234 _In_ UINT RootParameterIndex, 20235 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20236 20237 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 20238 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 20239 ID3D12GraphicsCommandList3 * This, 20240 _In_ UINT RootParameterIndex, 20241 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20242 20243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 20244 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 20245 ID3D12GraphicsCommandList3 * This, 20246 _In_ UINT RootParameterIndex, 20247 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20248 20249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 20250 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 20251 ID3D12GraphicsCommandList3 * This, 20252 _In_ UINT RootParameterIndex, 20253 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 20254 20255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 20256 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 20257 ID3D12GraphicsCommandList3 * This, 20258 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 20259 20260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 20261 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 20262 ID3D12GraphicsCommandList3 * This, 20263 _In_ UINT StartSlot, 20264 _In_ UINT NumViews, 20265 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 20266 20267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 20268 void ( STDMETHODCALLTYPE *SOSetTargets )( 20269 ID3D12GraphicsCommandList3 * This, 20270 _In_ UINT StartSlot, 20271 _In_ UINT NumViews, 20272 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 20273 20274 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 20275 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 20276 ID3D12GraphicsCommandList3 * This, 20277 _In_ UINT NumRenderTargetDescriptors, 20278 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 20279 _In_ BOOL RTsSingleHandleToDescriptorRange, 20280 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 20281 20282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 20283 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 20284 ID3D12GraphicsCommandList3 * This, 20285 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 20286 _In_ D3D12_CLEAR_FLAGS ClearFlags, 20287 _In_ FLOAT Depth, 20288 _In_ UINT8 Stencil, 20289 _In_ UINT NumRects, 20290 _In_reads_(NumRects) const D3D12_RECT *pRects); 20291 20292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 20293 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 20294 ID3D12GraphicsCommandList3 * This, 20295 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 20296 _In_ const FLOAT ColorRGBA[ 4 ], 20297 _In_ UINT NumRects, 20298 _In_reads_(NumRects) const D3D12_RECT *pRects); 20299 20300 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 20301 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 20302 ID3D12GraphicsCommandList3 * This, 20303 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 20304 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 20305 _In_ ID3D12Resource *pResource, 20306 _In_ const UINT Values[ 4 ], 20307 _In_ UINT NumRects, 20308 _In_reads_(NumRects) const D3D12_RECT *pRects); 20309 20310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 20311 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 20312 ID3D12GraphicsCommandList3 * This, 20313 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 20314 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 20315 _In_ ID3D12Resource *pResource, 20316 _In_ const FLOAT Values[ 4 ], 20317 _In_ UINT NumRects, 20318 _In_reads_(NumRects) const D3D12_RECT *pRects); 20319 20320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 20321 void ( STDMETHODCALLTYPE *DiscardResource )( 20322 ID3D12GraphicsCommandList3 * This, 20323 _In_ ID3D12Resource *pResource, 20324 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 20325 20326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 20327 void ( STDMETHODCALLTYPE *BeginQuery )( 20328 ID3D12GraphicsCommandList3 * This, 20329 _In_ ID3D12QueryHeap *pQueryHeap, 20330 _In_ D3D12_QUERY_TYPE Type, 20331 _In_ UINT Index); 20332 20333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 20334 void ( STDMETHODCALLTYPE *EndQuery )( 20335 ID3D12GraphicsCommandList3 * This, 20336 _In_ ID3D12QueryHeap *pQueryHeap, 20337 _In_ D3D12_QUERY_TYPE Type, 20338 _In_ UINT Index); 20339 20340 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 20341 void ( STDMETHODCALLTYPE *ResolveQueryData )( 20342 ID3D12GraphicsCommandList3 * This, 20343 _In_ ID3D12QueryHeap *pQueryHeap, 20344 _In_ D3D12_QUERY_TYPE Type, 20345 _In_ UINT StartIndex, 20346 _In_ UINT NumQueries, 20347 _In_ ID3D12Resource *pDestinationBuffer, 20348 _In_ UINT64 AlignedDestinationBufferOffset); 20349 20350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 20351 void ( STDMETHODCALLTYPE *SetPredication )( 20352 ID3D12GraphicsCommandList3 * This, 20353 _In_opt_ ID3D12Resource *pBuffer, 20354 _In_ UINT64 AlignedBufferOffset, 20355 _In_ D3D12_PREDICATION_OP Operation); 20356 20357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 20358 void ( STDMETHODCALLTYPE *SetMarker )( 20359 ID3D12GraphicsCommandList3 * This, 20360 UINT Metadata, 20361 _In_reads_bytes_opt_(Size) const void *pData, 20362 UINT Size); 20363 20364 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 20365 void ( STDMETHODCALLTYPE *BeginEvent )( 20366 ID3D12GraphicsCommandList3 * This, 20367 UINT Metadata, 20368 _In_reads_bytes_opt_(Size) const void *pData, 20369 UINT Size); 20370 20371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 20372 void ( STDMETHODCALLTYPE *EndEvent )( 20373 ID3D12GraphicsCommandList3 * This); 20374 20375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 20376 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 20377 ID3D12GraphicsCommandList3 * This, 20378 _In_ ID3D12CommandSignature *pCommandSignature, 20379 _In_ UINT MaxCommandCount, 20380 _In_ ID3D12Resource *pArgumentBuffer, 20381 _In_ UINT64 ArgumentBufferOffset, 20382 _In_opt_ ID3D12Resource *pCountBuffer, 20383 _In_ UINT64 CountBufferOffset); 20384 20385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 20386 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 20387 ID3D12GraphicsCommandList3 * This, 20388 _In_ ID3D12Resource *pDstBuffer, 20389 UINT64 DstOffset, 20390 _In_ ID3D12Resource *pSrcBuffer, 20391 UINT64 SrcOffset, 20392 UINT Dependencies, 20393 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 20394 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 20395 20396 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 20397 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 20398 ID3D12GraphicsCommandList3 * This, 20399 _In_ ID3D12Resource *pDstBuffer, 20400 UINT64 DstOffset, 20401 _In_ ID3D12Resource *pSrcBuffer, 20402 UINT64 SrcOffset, 20403 UINT Dependencies, 20404 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 20405 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 20406 20407 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 20408 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 20409 ID3D12GraphicsCommandList3 * This, 20410 _In_ FLOAT Min, 20411 _In_ FLOAT Max); 20412 20413 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 20414 void ( STDMETHODCALLTYPE *SetSamplePositions )( 20415 ID3D12GraphicsCommandList3 * This, 20416 _In_ UINT NumSamplesPerPixel, 20417 _In_ UINT NumPixels, 20418 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 20419 20420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 20421 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 20422 ID3D12GraphicsCommandList3 * This, 20423 _In_ ID3D12Resource *pDstResource, 20424 _In_ UINT DstSubresource, 20425 _In_ UINT DstX, 20426 _In_ UINT DstY, 20427 _In_ ID3D12Resource *pSrcResource, 20428 _In_ UINT SrcSubresource, 20429 _In_opt_ D3D12_RECT *pSrcRect, 20430 _In_ DXGI_FORMAT Format, 20431 _In_ D3D12_RESOLVE_MODE ResolveMode); 20432 20433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 20434 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 20435 ID3D12GraphicsCommandList3 * This, 20436 _In_ UINT Mask); 20437 20438 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 20439 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 20440 ID3D12GraphicsCommandList3 * This, 20441 UINT Count, 20442 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 20443 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 20444 20445 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 20446 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 20447 ID3D12GraphicsCommandList3 * This, 20448 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 20449 20450 END_INTERFACE 20451 } ID3D12GraphicsCommandList3Vtbl; 20452 20453 interface ID3D12GraphicsCommandList3 20454 { 20455 CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl; 20456 }; 20457 20458 20459 20460#ifdef COBJMACROS 20461 20462 20463#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \ 20464 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 20465 20466#define ID3D12GraphicsCommandList3_AddRef(This) \ 20467 ( (This)->lpVtbl -> AddRef(This) ) 20468 20469#define ID3D12GraphicsCommandList3_Release(This) \ 20470 ( (This)->lpVtbl -> Release(This) ) 20471 20472 20473#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ 20474 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 20475 20476#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \ 20477 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 20478 20479#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \ 20480 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 20481 20482#define ID3D12GraphicsCommandList3_SetName(This,Name) \ 20483 ( (This)->lpVtbl -> SetName(This,Name) ) 20484 20485 20486#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \ 20487 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 20488 20489 20490#define ID3D12GraphicsCommandList3_GetType(This) \ 20491 ( (This)->lpVtbl -> GetType(This) ) 20492 20493 20494#define ID3D12GraphicsCommandList3_Close(This) \ 20495 ( (This)->lpVtbl -> Close(This) ) 20496 20497#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \ 20498 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 20499 20500#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \ 20501 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 20502 20503#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 20504 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 20505 20506#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 20507 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 20508 20509#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 20510 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 20511 20512#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 20513 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 20514 20515#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 20516 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 20517 20518#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \ 20519 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 20520 20521#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 20522 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 20523 20524#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 20525 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 20526 20527#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \ 20528 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 20529 20530#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \ 20531 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 20532 20533#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \ 20534 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 20535 20536#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \ 20537 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 20538 20539#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \ 20540 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 20541 20542#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \ 20543 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 20544 20545#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ 20546 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 20547 20548#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \ 20549 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 20550 20551#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 20552 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 20553 20554#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \ 20555 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 20556 20557#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \ 20558 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 20559 20560#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 20561 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 20562 20563#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 20564 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 20565 20566#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 20567 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 20568 20569#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 20570 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 20571 20572#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 20573 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 20574 20575#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 20576 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 20577 20578#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 20579 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 20580 20581#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 20582 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 20583 20584#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 20585 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 20586 20587#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 20588 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 20589 20590#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 20591 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 20592 20593#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 20594 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 20595 20596#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \ 20597 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 20598 20599#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 20600 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 20601 20602#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \ 20603 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 20604 20605#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 20606 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 20607 20608#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 20609 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 20610 20611#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 20612 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 20613 20614#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 20615 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 20616 20617#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 20618 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 20619 20620#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \ 20621 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 20622 20623#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ 20624 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 20625 20626#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ 20627 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 20628 20629#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 20630 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 20631 20632#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 20633 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 20634 20635#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \ 20636 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 20637 20638#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \ 20639 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 20640 20641#define ID3D12GraphicsCommandList3_EndEvent(This) \ 20642 ( (This)->lpVtbl -> EndEvent(This) ) 20643 20644#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 20645 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 20646 20647 20648#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 20649 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 20650 20651#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 20652 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 20653 20654#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \ 20655 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 20656 20657#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 20658 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 20659 20660#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 20661 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 20662 20663#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \ 20664 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 20665 20666 20667#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ 20668 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 20669 20670 20671#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ 20672 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 20673 20674#endif /* COBJMACROS */ 20675 20676 20677#endif /* C style interface */ 20678 20679 20680 20681 20682#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ 20683 20684 20685/* interface __MIDL_itf_d3d12_0000_0051 */ 20686/* [local] */ 20687 20688typedef 20689enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE 20690 { 20691 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0, 20692 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) , 20693 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) , 20694 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) , 20695 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) , 20696 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , 20697 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) 20698 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; 20699 20700typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS 20701 { 20702 D3D12_CLEAR_VALUE ClearValue; 20703 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; 20704 20705typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS 20706 { 20707 UINT AdditionalWidth; 20708 UINT AdditionalHeight; 20709 } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS; 20710 20711typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS 20712 { 20713 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; 20714 union 20715 { 20716 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; 20717 D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; 20718 } ; 20719 } D3D12_RENDER_PASS_BEGINNING_ACCESS; 20720 20721typedef 20722enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE 20723 { 20724 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0, 20725 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) , 20726 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) , 20727 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) , 20728 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) , 20729 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , 20730 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) 20731 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; 20732 20733typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS 20734 { 20735 UINT SrcSubresource; 20736 UINT DstSubresource; 20737 UINT DstX; 20738 UINT DstY; 20739 D3D12_RECT SrcRect; 20740 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; 20741 20742typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS 20743 { 20744 ID3D12Resource *pSrcResource; 20745 ID3D12Resource *pDstResource; 20746 UINT SubresourceCount; 20747 _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; 20748 DXGI_FORMAT Format; 20749 D3D12_RESOLVE_MODE ResolveMode; 20750 BOOL PreserveResolveSource; 20751 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; 20752 20753typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS 20754 { 20755 UINT AdditionalWidth; 20756 UINT AdditionalHeight; 20757 } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS; 20758 20759typedef struct D3D12_RENDER_PASS_ENDING_ACCESS 20760 { 20761 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; 20762 union 20763 { 20764 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; 20765 D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; 20766 } ; 20767 } D3D12_RENDER_PASS_ENDING_ACCESS; 20768 20769typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC 20770 { 20771 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; 20772 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; 20773 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; 20774 } D3D12_RENDER_PASS_RENDER_TARGET_DESC; 20775 20776typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC 20777 { 20778 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; 20779 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; 20780 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; 20781 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; 20782 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; 20783 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; 20784 20785typedef 20786enum D3D12_RENDER_PASS_FLAGS 20787 { 20788 D3D12_RENDER_PASS_FLAG_NONE = 0, 20789 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, 20790 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, 20791 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4, 20792 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8, 20793 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10 20794 } D3D12_RENDER_PASS_FLAGS; 20795 20796DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) 20797 20798 20799extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec; 20800extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec; 20801 20802#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ 20803#define __ID3D12MetaCommand_INTERFACE_DEFINED__ 20804 20805/* interface ID3D12MetaCommand */ 20806/* [unique][local][object][uuid] */ 20807 20808 20809EXTERN_C const IID IID_ID3D12MetaCommand; 20810 20811#if defined(__cplusplus) && !defined(CINTERFACE) 20812 20813 MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570") 20814 ID3D12MetaCommand : public ID3D12Pageable 20815 { 20816 public: 20817 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize( 20818 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 20819 _In_ UINT ParameterIndex) = 0; 20820 20821 }; 20822 20823 20824#else /* C style interface */ 20825 20826 typedef struct ID3D12MetaCommandVtbl 20827 { 20828 BEGIN_INTERFACE 20829 20830 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 20831 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 20832 ID3D12MetaCommand * This, 20833 REFIID riid, 20834 _COM_Outptr_ void **ppvObject); 20835 20836 DECLSPEC_XFGVIRT(IUnknown, AddRef) 20837 ULONG ( STDMETHODCALLTYPE *AddRef )( 20838 ID3D12MetaCommand * This); 20839 20840 DECLSPEC_XFGVIRT(IUnknown, Release) 20841 ULONG ( STDMETHODCALLTYPE *Release )( 20842 ID3D12MetaCommand * This); 20843 20844 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 20845 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 20846 ID3D12MetaCommand * This, 20847 _In_ REFGUID guid, 20848 _Inout_ UINT *pDataSize, 20849 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 20850 20851 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 20852 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 20853 ID3D12MetaCommand * This, 20854 _In_ REFGUID guid, 20855 _In_ UINT DataSize, 20856 _In_reads_bytes_opt_( DataSize ) const void *pData); 20857 20858 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 20859 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 20860 ID3D12MetaCommand * This, 20861 _In_ REFGUID guid, 20862 _In_opt_ const IUnknown *pData); 20863 20864 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 20865 HRESULT ( STDMETHODCALLTYPE *SetName )( 20866 ID3D12MetaCommand * This, 20867 _In_z_ LPCWSTR Name); 20868 20869 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 20870 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 20871 ID3D12MetaCommand * This, 20872 REFIID riid, 20873 _COM_Outptr_opt_ void **ppvDevice); 20874 20875 DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize) 20876 UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )( 20877 ID3D12MetaCommand * This, 20878 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 20879 _In_ UINT ParameterIndex); 20880 20881 END_INTERFACE 20882 } ID3D12MetaCommandVtbl; 20883 20884 interface ID3D12MetaCommand 20885 { 20886 CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl; 20887 }; 20888 20889 20890 20891#ifdef COBJMACROS 20892 20893 20894#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \ 20895 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 20896 20897#define ID3D12MetaCommand_AddRef(This) \ 20898 ( (This)->lpVtbl -> AddRef(This) ) 20899 20900#define ID3D12MetaCommand_Release(This) \ 20901 ( (This)->lpVtbl -> Release(This) ) 20902 20903 20904#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \ 20905 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 20906 20907#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \ 20908 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 20909 20910#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \ 20911 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 20912 20913#define ID3D12MetaCommand_SetName(This,Name) \ 20914 ( (This)->lpVtbl -> SetName(This,Name) ) 20915 20916 20917#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \ 20918 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 20919 20920 20921 20922#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \ 20923 ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) ) 20924 20925#endif /* COBJMACROS */ 20926 20927 20928#endif /* C style interface */ 20929 20930 20931 20932 20933#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ 20934 20935 20936/* interface __MIDL_itf_d3d12_0000_0052 */ 20937/* [local] */ 20938 20939typedef struct D3D12_DISPATCH_RAYS_DESC 20940 { 20941 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; 20942 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; 20943 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; 20944 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; 20945 UINT Width; 20946 UINT Height; 20947 UINT Depth; 20948 } D3D12_DISPATCH_RAYS_DESC; 20949 20950typedef 20951enum D3D12_SET_WORK_GRAPH_FLAGS 20952 { 20953 D3D12_SET_WORK_GRAPH_FLAG_NONE = 0, 20954 D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1 20955 } D3D12_SET_WORK_GRAPH_FLAGS; 20956 20957DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS ) 20958typedef struct D3D12_SET_WORK_GRAPH_DESC 20959 { 20960 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; 20961 D3D12_SET_WORK_GRAPH_FLAGS Flags; 20962 D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory; 20963 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable; 20964 } D3D12_SET_WORK_GRAPH_DESC; 20965 20966typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC 20967 { 20968 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; 20969 } D3D12_SET_RAYTRACING_PIPELINE_DESC; 20970 20971typedef struct D3D12_SET_GENERIC_PIPELINE_DESC 20972 { 20973 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; 20974 } D3D12_SET_GENERIC_PIPELINE_DESC; 20975 20976typedef 20977enum D3D12_PROGRAM_TYPE 20978 { 20979 D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1, 20980 D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4, 20981 D3D12_PROGRAM_TYPE_WORK_GRAPH = 5 20982 } D3D12_PROGRAM_TYPE; 20983 20984typedef struct D3D12_SET_PROGRAM_DESC 20985 { 20986 D3D12_PROGRAM_TYPE Type; 20987 union 20988 { 20989 D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline; 20990 D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline; 20991 D3D12_SET_WORK_GRAPH_DESC WorkGraph; 20992 } ; 20993 } D3D12_SET_PROGRAM_DESC; 20994 20995typedef 20996enum D3D12_DISPATCH_MODE 20997 { 20998 D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0, 20999 D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1, 21000 D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2, 21001 D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3 21002 } D3D12_DISPATCH_MODE; 21003 21004typedef struct D3D12_NODE_CPU_INPUT 21005 { 21006 UINT EntrypointIndex; 21007 UINT NumRecords; 21008 const void *pRecords; 21009 UINT64 RecordStrideInBytes; 21010 } D3D12_NODE_CPU_INPUT; 21011 21012typedef struct D3D12_NODE_GPU_INPUT 21013 { 21014 UINT EntrypointIndex; 21015 UINT NumRecords; 21016 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records; 21017 } D3D12_NODE_GPU_INPUT; 21018 21019typedef struct D3D12_MULTI_NODE_CPU_INPUT 21020 { 21021 UINT NumNodeInputs; 21022 const D3D12_NODE_CPU_INPUT *pNodeInputs; 21023 UINT64 NodeInputStrideInBytes; 21024 } D3D12_MULTI_NODE_CPU_INPUT; 21025 21026typedef struct D3D12_MULTI_NODE_GPU_INPUT 21027 { 21028 UINT NumNodeInputs; 21029 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs; 21030 } D3D12_MULTI_NODE_GPU_INPUT; 21031 21032typedef struct D3D12_DISPATCH_GRAPH_DESC 21033 { 21034 D3D12_DISPATCH_MODE Mode; 21035 union 21036 { 21037 D3D12_NODE_CPU_INPUT NodeCPUInput; 21038 D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput; 21039 D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput; 21040 D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput; 21041 } ; 21042 } D3D12_DISPATCH_GRAPH_DESC; 21043 21044 21045 21046extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec; 21047extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec; 21048 21049#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ 21050#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ 21051 21052/* interface ID3D12GraphicsCommandList4 */ 21053/* [unique][local][object][uuid] */ 21054 21055 21056EXTERN_C const IID IID_ID3D12GraphicsCommandList4; 21057 21058#if defined(__cplusplus) && !defined(CINTERFACE) 21059 21060 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874") 21061 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3 21062 { 21063 public: 21064 virtual void STDMETHODCALLTYPE BeginRenderPass( 21065 _In_ UINT NumRenderTargets, 21066 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 21067 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 21068 D3D12_RENDER_PASS_FLAGS Flags) = 0; 21069 21070 virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0; 21071 21072 virtual void STDMETHODCALLTYPE InitializeMetaCommand( 21073 _In_ ID3D12MetaCommand *pMetaCommand, 21074 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 21075 _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0; 21076 21077 virtual void STDMETHODCALLTYPE ExecuteMetaCommand( 21078 _In_ ID3D12MetaCommand *pMetaCommand, 21079 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 21080 _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0; 21081 21082 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure( 21083 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 21084 _In_ UINT NumPostbuildInfoDescs, 21085 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0; 21086 21087 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo( 21088 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 21089 _In_ UINT NumSourceAccelerationStructures, 21090 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0; 21091 21092 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure( 21093 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 21094 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 21095 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0; 21096 21097 virtual void STDMETHODCALLTYPE SetPipelineState1( 21098 _In_ ID3D12StateObject *pStateObject) = 0; 21099 21100 virtual void STDMETHODCALLTYPE DispatchRays( 21101 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0; 21102 21103 }; 21104 21105 21106#else /* C style interface */ 21107 21108 typedef struct ID3D12GraphicsCommandList4Vtbl 21109 { 21110 BEGIN_INTERFACE 21111 21112 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 21113 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 21114 ID3D12GraphicsCommandList4 * This, 21115 REFIID riid, 21116 _COM_Outptr_ void **ppvObject); 21117 21118 DECLSPEC_XFGVIRT(IUnknown, AddRef) 21119 ULONG ( STDMETHODCALLTYPE *AddRef )( 21120 ID3D12GraphicsCommandList4 * This); 21121 21122 DECLSPEC_XFGVIRT(IUnknown, Release) 21123 ULONG ( STDMETHODCALLTYPE *Release )( 21124 ID3D12GraphicsCommandList4 * This); 21125 21126 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 21127 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 21128 ID3D12GraphicsCommandList4 * This, 21129 _In_ REFGUID guid, 21130 _Inout_ UINT *pDataSize, 21131 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 21132 21133 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 21134 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 21135 ID3D12GraphicsCommandList4 * This, 21136 _In_ REFGUID guid, 21137 _In_ UINT DataSize, 21138 _In_reads_bytes_opt_( DataSize ) const void *pData); 21139 21140 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 21141 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 21142 ID3D12GraphicsCommandList4 * This, 21143 _In_ REFGUID guid, 21144 _In_opt_ const IUnknown *pData); 21145 21146 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 21147 HRESULT ( STDMETHODCALLTYPE *SetName )( 21148 ID3D12GraphicsCommandList4 * This, 21149 _In_z_ LPCWSTR Name); 21150 21151 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 21152 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 21153 ID3D12GraphicsCommandList4 * This, 21154 REFIID riid, 21155 _COM_Outptr_opt_ void **ppvDevice); 21156 21157 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 21158 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 21159 ID3D12GraphicsCommandList4 * This); 21160 21161 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 21162 HRESULT ( STDMETHODCALLTYPE *Close )( 21163 ID3D12GraphicsCommandList4 * This); 21164 21165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 21166 HRESULT ( STDMETHODCALLTYPE *Reset )( 21167 ID3D12GraphicsCommandList4 * This, 21168 _In_ ID3D12CommandAllocator *pAllocator, 21169 _In_opt_ ID3D12PipelineState *pInitialState); 21170 21171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 21172 void ( STDMETHODCALLTYPE *ClearState )( 21173 ID3D12GraphicsCommandList4 * This, 21174 _In_opt_ ID3D12PipelineState *pPipelineState); 21175 21176 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 21177 void ( STDMETHODCALLTYPE *DrawInstanced )( 21178 ID3D12GraphicsCommandList4 * This, 21179 _In_ UINT VertexCountPerInstance, 21180 _In_ UINT InstanceCount, 21181 _In_ UINT StartVertexLocation, 21182 _In_ UINT StartInstanceLocation); 21183 21184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 21185 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 21186 ID3D12GraphicsCommandList4 * This, 21187 _In_ UINT IndexCountPerInstance, 21188 _In_ UINT InstanceCount, 21189 _In_ UINT StartIndexLocation, 21190 _In_ INT BaseVertexLocation, 21191 _In_ UINT StartInstanceLocation); 21192 21193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 21194 void ( STDMETHODCALLTYPE *Dispatch )( 21195 ID3D12GraphicsCommandList4 * This, 21196 _In_ UINT ThreadGroupCountX, 21197 _In_ UINT ThreadGroupCountY, 21198 _In_ UINT ThreadGroupCountZ); 21199 21200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 21201 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 21202 ID3D12GraphicsCommandList4 * This, 21203 _In_ ID3D12Resource *pDstBuffer, 21204 UINT64 DstOffset, 21205 _In_ ID3D12Resource *pSrcBuffer, 21206 UINT64 SrcOffset, 21207 UINT64 NumBytes); 21208 21209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 21210 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 21211 ID3D12GraphicsCommandList4 * This, 21212 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 21213 UINT DstX, 21214 UINT DstY, 21215 UINT DstZ, 21216 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 21217 _In_opt_ const D3D12_BOX *pSrcBox); 21218 21219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 21220 void ( STDMETHODCALLTYPE *CopyResource )( 21221 ID3D12GraphicsCommandList4 * This, 21222 _In_ ID3D12Resource *pDstResource, 21223 _In_ ID3D12Resource *pSrcResource); 21224 21225 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 21226 void ( STDMETHODCALLTYPE *CopyTiles )( 21227 ID3D12GraphicsCommandList4 * This, 21228 _In_ ID3D12Resource *pTiledResource, 21229 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 21230 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 21231 _In_ ID3D12Resource *pBuffer, 21232 UINT64 BufferStartOffsetInBytes, 21233 D3D12_TILE_COPY_FLAGS Flags); 21234 21235 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 21236 void ( STDMETHODCALLTYPE *ResolveSubresource )( 21237 ID3D12GraphicsCommandList4 * This, 21238 _In_ ID3D12Resource *pDstResource, 21239 _In_ UINT DstSubresource, 21240 _In_ ID3D12Resource *pSrcResource, 21241 _In_ UINT SrcSubresource, 21242 _In_ DXGI_FORMAT Format); 21243 21244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 21245 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 21246 ID3D12GraphicsCommandList4 * This, 21247 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 21248 21249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 21250 void ( STDMETHODCALLTYPE *RSSetViewports )( 21251 ID3D12GraphicsCommandList4 * This, 21252 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 21253 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 21254 21255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 21256 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 21257 ID3D12GraphicsCommandList4 * This, 21258 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 21259 _In_reads_( NumRects) const D3D12_RECT *pRects); 21260 21261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 21262 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 21263 ID3D12GraphicsCommandList4 * This, 21264 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 21265 21266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 21267 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 21268 ID3D12GraphicsCommandList4 * This, 21269 _In_ UINT StencilRef); 21270 21271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 21272 void ( STDMETHODCALLTYPE *SetPipelineState )( 21273 ID3D12GraphicsCommandList4 * This, 21274 _In_ ID3D12PipelineState *pPipelineState); 21275 21276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 21277 void ( STDMETHODCALLTYPE *ResourceBarrier )( 21278 ID3D12GraphicsCommandList4 * This, 21279 _In_ UINT NumBarriers, 21280 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 21281 21282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 21283 void ( STDMETHODCALLTYPE *ExecuteBundle )( 21284 ID3D12GraphicsCommandList4 * This, 21285 _In_ ID3D12GraphicsCommandList *pCommandList); 21286 21287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 21288 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 21289 ID3D12GraphicsCommandList4 * This, 21290 _In_ UINT NumDescriptorHeaps, 21291 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 21292 21293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 21294 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 21295 ID3D12GraphicsCommandList4 * This, 21296 _In_opt_ ID3D12RootSignature *pRootSignature); 21297 21298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 21299 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 21300 ID3D12GraphicsCommandList4 * This, 21301 _In_opt_ ID3D12RootSignature *pRootSignature); 21302 21303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 21304 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 21305 ID3D12GraphicsCommandList4 * This, 21306 _In_ UINT RootParameterIndex, 21307 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 21308 21309 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 21310 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 21311 ID3D12GraphicsCommandList4 * This, 21312 _In_ UINT RootParameterIndex, 21313 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 21314 21315 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 21316 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 21317 ID3D12GraphicsCommandList4 * This, 21318 _In_ UINT RootParameterIndex, 21319 _In_ UINT SrcData, 21320 _In_ UINT DestOffsetIn32BitValues); 21321 21322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 21323 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 21324 ID3D12GraphicsCommandList4 * This, 21325 _In_ UINT RootParameterIndex, 21326 _In_ UINT SrcData, 21327 _In_ UINT DestOffsetIn32BitValues); 21328 21329 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 21330 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 21331 ID3D12GraphicsCommandList4 * This, 21332 _In_ UINT RootParameterIndex, 21333 _In_ UINT Num32BitValuesToSet, 21334 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 21335 _In_ UINT DestOffsetIn32BitValues); 21336 21337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 21338 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 21339 ID3D12GraphicsCommandList4 * This, 21340 _In_ UINT RootParameterIndex, 21341 _In_ UINT Num32BitValuesToSet, 21342 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 21343 _In_ UINT DestOffsetIn32BitValues); 21344 21345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 21346 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 21347 ID3D12GraphicsCommandList4 * This, 21348 _In_ UINT RootParameterIndex, 21349 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21350 21351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 21352 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 21353 ID3D12GraphicsCommandList4 * This, 21354 _In_ UINT RootParameterIndex, 21355 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21356 21357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 21358 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 21359 ID3D12GraphicsCommandList4 * This, 21360 _In_ UINT RootParameterIndex, 21361 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21362 21363 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 21364 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 21365 ID3D12GraphicsCommandList4 * This, 21366 _In_ UINT RootParameterIndex, 21367 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21368 21369 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 21370 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 21371 ID3D12GraphicsCommandList4 * This, 21372 _In_ UINT RootParameterIndex, 21373 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21374 21375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 21376 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 21377 ID3D12GraphicsCommandList4 * This, 21378 _In_ UINT RootParameterIndex, 21379 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 21380 21381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 21382 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 21383 ID3D12GraphicsCommandList4 * This, 21384 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 21385 21386 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 21387 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 21388 ID3D12GraphicsCommandList4 * This, 21389 _In_ UINT StartSlot, 21390 _In_ UINT NumViews, 21391 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 21392 21393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 21394 void ( STDMETHODCALLTYPE *SOSetTargets )( 21395 ID3D12GraphicsCommandList4 * This, 21396 _In_ UINT StartSlot, 21397 _In_ UINT NumViews, 21398 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 21399 21400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 21401 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 21402 ID3D12GraphicsCommandList4 * This, 21403 _In_ UINT NumRenderTargetDescriptors, 21404 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 21405 _In_ BOOL RTsSingleHandleToDescriptorRange, 21406 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 21407 21408 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 21409 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 21410 ID3D12GraphicsCommandList4 * This, 21411 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 21412 _In_ D3D12_CLEAR_FLAGS ClearFlags, 21413 _In_ FLOAT Depth, 21414 _In_ UINT8 Stencil, 21415 _In_ UINT NumRects, 21416 _In_reads_(NumRects) const D3D12_RECT *pRects); 21417 21418 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 21419 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 21420 ID3D12GraphicsCommandList4 * This, 21421 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 21422 _In_ const FLOAT ColorRGBA[ 4 ], 21423 _In_ UINT NumRects, 21424 _In_reads_(NumRects) const D3D12_RECT *pRects); 21425 21426 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 21427 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 21428 ID3D12GraphicsCommandList4 * This, 21429 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 21430 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 21431 _In_ ID3D12Resource *pResource, 21432 _In_ const UINT Values[ 4 ], 21433 _In_ UINT NumRects, 21434 _In_reads_(NumRects) const D3D12_RECT *pRects); 21435 21436 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 21437 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 21438 ID3D12GraphicsCommandList4 * This, 21439 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 21440 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 21441 _In_ ID3D12Resource *pResource, 21442 _In_ const FLOAT Values[ 4 ], 21443 _In_ UINT NumRects, 21444 _In_reads_(NumRects) const D3D12_RECT *pRects); 21445 21446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 21447 void ( STDMETHODCALLTYPE *DiscardResource )( 21448 ID3D12GraphicsCommandList4 * This, 21449 _In_ ID3D12Resource *pResource, 21450 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 21451 21452 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 21453 void ( STDMETHODCALLTYPE *BeginQuery )( 21454 ID3D12GraphicsCommandList4 * This, 21455 _In_ ID3D12QueryHeap *pQueryHeap, 21456 _In_ D3D12_QUERY_TYPE Type, 21457 _In_ UINT Index); 21458 21459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 21460 void ( STDMETHODCALLTYPE *EndQuery )( 21461 ID3D12GraphicsCommandList4 * This, 21462 _In_ ID3D12QueryHeap *pQueryHeap, 21463 _In_ D3D12_QUERY_TYPE Type, 21464 _In_ UINT Index); 21465 21466 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 21467 void ( STDMETHODCALLTYPE *ResolveQueryData )( 21468 ID3D12GraphicsCommandList4 * This, 21469 _In_ ID3D12QueryHeap *pQueryHeap, 21470 _In_ D3D12_QUERY_TYPE Type, 21471 _In_ UINT StartIndex, 21472 _In_ UINT NumQueries, 21473 _In_ ID3D12Resource *pDestinationBuffer, 21474 _In_ UINT64 AlignedDestinationBufferOffset); 21475 21476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 21477 void ( STDMETHODCALLTYPE *SetPredication )( 21478 ID3D12GraphicsCommandList4 * This, 21479 _In_opt_ ID3D12Resource *pBuffer, 21480 _In_ UINT64 AlignedBufferOffset, 21481 _In_ D3D12_PREDICATION_OP Operation); 21482 21483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 21484 void ( STDMETHODCALLTYPE *SetMarker )( 21485 ID3D12GraphicsCommandList4 * This, 21486 UINT Metadata, 21487 _In_reads_bytes_opt_(Size) const void *pData, 21488 UINT Size); 21489 21490 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 21491 void ( STDMETHODCALLTYPE *BeginEvent )( 21492 ID3D12GraphicsCommandList4 * This, 21493 UINT Metadata, 21494 _In_reads_bytes_opt_(Size) const void *pData, 21495 UINT Size); 21496 21497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 21498 void ( STDMETHODCALLTYPE *EndEvent )( 21499 ID3D12GraphicsCommandList4 * This); 21500 21501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 21502 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 21503 ID3D12GraphicsCommandList4 * This, 21504 _In_ ID3D12CommandSignature *pCommandSignature, 21505 _In_ UINT MaxCommandCount, 21506 _In_ ID3D12Resource *pArgumentBuffer, 21507 _In_ UINT64 ArgumentBufferOffset, 21508 _In_opt_ ID3D12Resource *pCountBuffer, 21509 _In_ UINT64 CountBufferOffset); 21510 21511 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 21512 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 21513 ID3D12GraphicsCommandList4 * This, 21514 _In_ ID3D12Resource *pDstBuffer, 21515 UINT64 DstOffset, 21516 _In_ ID3D12Resource *pSrcBuffer, 21517 UINT64 SrcOffset, 21518 UINT Dependencies, 21519 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 21520 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 21521 21522 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 21523 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 21524 ID3D12GraphicsCommandList4 * This, 21525 _In_ ID3D12Resource *pDstBuffer, 21526 UINT64 DstOffset, 21527 _In_ ID3D12Resource *pSrcBuffer, 21528 UINT64 SrcOffset, 21529 UINT Dependencies, 21530 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 21531 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 21532 21533 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 21534 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 21535 ID3D12GraphicsCommandList4 * This, 21536 _In_ FLOAT Min, 21537 _In_ FLOAT Max); 21538 21539 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 21540 void ( STDMETHODCALLTYPE *SetSamplePositions )( 21541 ID3D12GraphicsCommandList4 * This, 21542 _In_ UINT NumSamplesPerPixel, 21543 _In_ UINT NumPixels, 21544 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 21545 21546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 21547 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 21548 ID3D12GraphicsCommandList4 * This, 21549 _In_ ID3D12Resource *pDstResource, 21550 _In_ UINT DstSubresource, 21551 _In_ UINT DstX, 21552 _In_ UINT DstY, 21553 _In_ ID3D12Resource *pSrcResource, 21554 _In_ UINT SrcSubresource, 21555 _In_opt_ D3D12_RECT *pSrcRect, 21556 _In_ DXGI_FORMAT Format, 21557 _In_ D3D12_RESOLVE_MODE ResolveMode); 21558 21559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 21560 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 21561 ID3D12GraphicsCommandList4 * This, 21562 _In_ UINT Mask); 21563 21564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 21565 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 21566 ID3D12GraphicsCommandList4 * This, 21567 UINT Count, 21568 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 21569 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 21570 21571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 21572 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 21573 ID3D12GraphicsCommandList4 * This, 21574 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 21575 21576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 21577 void ( STDMETHODCALLTYPE *BeginRenderPass )( 21578 ID3D12GraphicsCommandList4 * This, 21579 _In_ UINT NumRenderTargets, 21580 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 21581 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 21582 D3D12_RENDER_PASS_FLAGS Flags); 21583 21584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 21585 void ( STDMETHODCALLTYPE *EndRenderPass )( 21586 ID3D12GraphicsCommandList4 * This); 21587 21588 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 21589 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 21590 ID3D12GraphicsCommandList4 * This, 21591 _In_ ID3D12MetaCommand *pMetaCommand, 21592 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 21593 _In_ SIZE_T InitializationParametersDataSizeInBytes); 21594 21595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 21596 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 21597 ID3D12GraphicsCommandList4 * This, 21598 _In_ ID3D12MetaCommand *pMetaCommand, 21599 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 21600 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 21601 21602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 21603 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 21604 ID3D12GraphicsCommandList4 * This, 21605 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 21606 _In_ UINT NumPostbuildInfoDescs, 21607 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 21608 21609 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 21610 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 21611 ID3D12GraphicsCommandList4 * This, 21612 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 21613 _In_ UINT NumSourceAccelerationStructures, 21614 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 21615 21616 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 21617 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 21618 ID3D12GraphicsCommandList4 * This, 21619 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 21620 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 21621 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 21622 21623 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 21624 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 21625 ID3D12GraphicsCommandList4 * This, 21626 _In_ ID3D12StateObject *pStateObject); 21627 21628 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 21629 void ( STDMETHODCALLTYPE *DispatchRays )( 21630 ID3D12GraphicsCommandList4 * This, 21631 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 21632 21633 END_INTERFACE 21634 } ID3D12GraphicsCommandList4Vtbl; 21635 21636 interface ID3D12GraphicsCommandList4 21637 { 21638 CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl; 21639 }; 21640 21641 21642 21643#ifdef COBJMACROS 21644 21645 21646#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \ 21647 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 21648 21649#define ID3D12GraphicsCommandList4_AddRef(This) \ 21650 ( (This)->lpVtbl -> AddRef(This) ) 21651 21652#define ID3D12GraphicsCommandList4_Release(This) \ 21653 ( (This)->lpVtbl -> Release(This) ) 21654 21655 21656#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \ 21657 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 21658 21659#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \ 21660 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 21661 21662#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \ 21663 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 21664 21665#define ID3D12GraphicsCommandList4_SetName(This,Name) \ 21666 ( (This)->lpVtbl -> SetName(This,Name) ) 21667 21668 21669#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \ 21670 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 21671 21672 21673#define ID3D12GraphicsCommandList4_GetType(This) \ 21674 ( (This)->lpVtbl -> GetType(This) ) 21675 21676 21677#define ID3D12GraphicsCommandList4_Close(This) \ 21678 ( (This)->lpVtbl -> Close(This) ) 21679 21680#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \ 21681 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 21682 21683#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \ 21684 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 21685 21686#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 21687 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 21688 21689#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 21690 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 21691 21692#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 21693 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 21694 21695#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 21696 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 21697 21698#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 21699 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 21700 21701#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \ 21702 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 21703 21704#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 21705 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 21706 21707#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 21708 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 21709 21710#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \ 21711 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 21712 21713#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \ 21714 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 21715 21716#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \ 21717 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 21718 21719#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \ 21720 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 21721 21722#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \ 21723 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 21724 21725#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \ 21726 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 21727 21728#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \ 21729 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 21730 21731#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \ 21732 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 21733 21734#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 21735 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 21736 21737#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \ 21738 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 21739 21740#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \ 21741 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 21742 21743#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 21744 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 21745 21746#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 21747 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 21748 21749#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 21750 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 21751 21752#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 21753 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 21754 21755#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 21756 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 21757 21758#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 21759 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 21760 21761#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 21762 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 21763 21764#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 21765 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 21766 21767#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 21768 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 21769 21770#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 21771 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 21772 21773#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 21774 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 21775 21776#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 21777 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 21778 21779#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \ 21780 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 21781 21782#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 21783 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 21784 21785#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \ 21786 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 21787 21788#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 21789 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 21790 21791#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 21792 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 21793 21794#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 21795 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 21796 21797#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 21798 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 21799 21800#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 21801 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 21802 21803#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \ 21804 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 21805 21806#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \ 21807 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 21808 21809#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \ 21810 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 21811 21812#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 21813 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 21814 21815#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 21816 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 21817 21818#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \ 21819 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 21820 21821#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \ 21822 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 21823 21824#define ID3D12GraphicsCommandList4_EndEvent(This) \ 21825 ( (This)->lpVtbl -> EndEvent(This) ) 21826 21827#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 21828 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 21829 21830 21831#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 21832 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 21833 21834#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 21835 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 21836 21837#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \ 21838 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 21839 21840#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 21841 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 21842 21843#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 21844 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 21845 21846#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \ 21847 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 21848 21849 21850#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \ 21851 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 21852 21853 21854#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \ 21855 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 21856 21857 21858#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 21859 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 21860 21861#define ID3D12GraphicsCommandList4_EndRenderPass(This) \ 21862 ( (This)->lpVtbl -> EndRenderPass(This) ) 21863 21864#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 21865 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 21866 21867#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 21868 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 21869 21870#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 21871 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 21872 21873#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 21874 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 21875 21876#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 21877 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 21878 21879#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \ 21880 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 21881 21882#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \ 21883 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 21884 21885#endif /* COBJMACROS */ 21886 21887 21888#endif /* C style interface */ 21889 21890 21891 21892 21893#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ 21894 21895 21896/* interface __MIDL_itf_d3d12_0000_0053 */ 21897/* [local] */ 21898 21899typedef 21900enum D3D12_SHADER_CACHE_MODE 21901 { 21902 D3D12_SHADER_CACHE_MODE_MEMORY = 0, 21903 D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 ) 21904 } D3D12_SHADER_CACHE_MODE; 21905 21906typedef 21907enum D3D12_SHADER_CACHE_FLAGS 21908 { 21909 D3D12_SHADER_CACHE_FLAG_NONE = 0, 21910 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, 21911 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2 21912 } D3D12_SHADER_CACHE_FLAGS; 21913 21914DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS ) 21915typedef struct D3D12_SHADER_CACHE_SESSION_DESC 21916 { 21917 GUID Identifier; 21918 D3D12_SHADER_CACHE_MODE Mode; 21919 D3D12_SHADER_CACHE_FLAGS Flags; 21920 UINT MaximumInMemoryCacheSizeBytes; 21921 UINT MaximumInMemoryCacheEntries; 21922 UINT MaximumValueFileSizeBytes; 21923 UINT64 Version; 21924 } D3D12_SHADER_CACHE_SESSION_DESC; 21925 21926typedef 21927enum D3D12_BARRIER_LAYOUT 21928 { 21929 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, 21930 D3D12_BARRIER_LAYOUT_COMMON = 0, 21931 D3D12_BARRIER_LAYOUT_PRESENT = 0, 21932 D3D12_BARRIER_LAYOUT_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_PRESENT + 1 ) , 21933 D3D12_BARRIER_LAYOUT_RENDER_TARGET = ( D3D12_BARRIER_LAYOUT_GENERIC_READ + 1 ) , 21934 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_RENDER_TARGET + 1 ) , 21935 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = ( D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS + 1 ) , 21936 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE + 1 ) , 21937 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ + 1 ) , 21938 D3D12_BARRIER_LAYOUT_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_SHADER_RESOURCE + 1 ) , 21939 D3D12_BARRIER_LAYOUT_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COPY_SOURCE + 1 ) , 21940 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = ( D3D12_BARRIER_LAYOUT_COPY_DEST + 1 ) , 21941 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = ( D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE + 1 ) , 21942 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = ( D3D12_BARRIER_LAYOUT_RESOLVE_DEST + 1 ) , 21943 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = ( D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE + 1 ) , 21944 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ + 1 ) , 21945 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE + 1 ) , 21946 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ + 1 ) , 21947 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE + 1 ) , 21948 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ + 1 ) , 21949 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE + 1 ) , 21950 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON + 1 ) , 21951 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ + 1 ) , 21952 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS + 1 ) , 21953 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE + 1 ) , 21954 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE + 1 ) , 21955 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST + 1 ) , 21956 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON + 1 ) , 21957 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ + 1 ) , 21958 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS + 1 ) , 21959 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE + 1 ) , 21960 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE + 1 ) , 21961 D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST + 1 ) 21962 } D3D12_BARRIER_LAYOUT; 21963 21964typedef 21965enum D3D12_BARRIER_SYNC 21966 { 21967 D3D12_BARRIER_SYNC_NONE = 0, 21968 D3D12_BARRIER_SYNC_ALL = 0x1, 21969 D3D12_BARRIER_SYNC_DRAW = 0x2, 21970 D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4, 21971 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, 21972 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, 21973 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, 21974 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, 21975 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, 21976 D3D12_BARRIER_SYNC_RAYTRACING = 0x100, 21977 D3D12_BARRIER_SYNC_COPY = 0x200, 21978 D3D12_BARRIER_SYNC_RESOLVE = 0x400, 21979 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, 21980 D3D12_BARRIER_SYNC_PREDICATION = 0x800, 21981 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, 21982 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, 21983 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, 21984 D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000, 21985 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, 21986 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, 21987 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, 21988 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, 21989 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, 21990 D3D12_BARRIER_SYNC_SPLIT = 0x80000000 21991 } D3D12_BARRIER_SYNC; 21992 21993DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC ) 21994typedef 21995enum D3D12_BARRIER_ACCESS 21996 { 21997 D3D12_BARRIER_ACCESS_COMMON = 0, 21998 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, 21999 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, 22000 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, 22001 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, 22002 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, 22003 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, 22004 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, 22005 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, 22006 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, 22007 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, 22008 D3D12_BARRIER_ACCESS_PREDICATION = 0x200, 22009 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, 22010 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, 22011 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, 22012 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, 22013 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, 22014 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, 22015 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, 22016 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, 22017 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, 22018 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, 22019 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, 22020 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, 22021 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, 22022 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000 22023 } D3D12_BARRIER_ACCESS; 22024 22025DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS ) 22026typedef 22027enum D3D12_BARRIER_TYPE 22028 { 22029 D3D12_BARRIER_TYPE_GLOBAL = 0, 22030 D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) , 22031 D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 ) 22032 } D3D12_BARRIER_TYPE; 22033 22034typedef 22035enum D3D12_TEXTURE_BARRIER_FLAGS 22036 { 22037 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0, 22038 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1 22039 } D3D12_TEXTURE_BARRIER_FLAGS; 22040 22041DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS ) 22042typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE 22043 { 22044 UINT IndexOrFirstMipLevel; 22045 UINT NumMipLevels; 22046 UINT FirstArraySlice; 22047 UINT NumArraySlices; 22048 UINT FirstPlane; 22049 UINT NumPlanes; 22050 } D3D12_BARRIER_SUBRESOURCE_RANGE; 22051 22052typedef struct D3D12_GLOBAL_BARRIER 22053 { 22054 D3D12_BARRIER_SYNC SyncBefore; 22055 D3D12_BARRIER_SYNC SyncAfter; 22056 D3D12_BARRIER_ACCESS AccessBefore; 22057 D3D12_BARRIER_ACCESS AccessAfter; 22058 } D3D12_GLOBAL_BARRIER; 22059 22060typedef struct D3D12_TEXTURE_BARRIER 22061 { 22062 D3D12_BARRIER_SYNC SyncBefore; 22063 D3D12_BARRIER_SYNC SyncAfter; 22064 D3D12_BARRIER_ACCESS AccessBefore; 22065 D3D12_BARRIER_ACCESS AccessAfter; 22066 D3D12_BARRIER_LAYOUT LayoutBefore; 22067 D3D12_BARRIER_LAYOUT LayoutAfter; 22068 _In_ ID3D12Resource *pResource; 22069 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; 22070 D3D12_TEXTURE_BARRIER_FLAGS Flags; 22071 } D3D12_TEXTURE_BARRIER; 22072 22073typedef struct D3D12_BUFFER_BARRIER 22074 { 22075 D3D12_BARRIER_SYNC SyncBefore; 22076 D3D12_BARRIER_SYNC SyncAfter; 22077 D3D12_BARRIER_ACCESS AccessBefore; 22078 D3D12_BARRIER_ACCESS AccessAfter; 22079 _In_ ID3D12Resource *pResource; 22080 UINT64 Offset; 22081 UINT64 Size; 22082 } D3D12_BUFFER_BARRIER; 22083 22084typedef struct D3D12_BARRIER_GROUP 22085 { 22086 D3D12_BARRIER_TYPE Type; 22087 UINT32 NumBarriers; 22088 union 22089 { 22090 _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers; 22091 _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers; 22092 _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers; 22093 } ; 22094 } D3D12_BARRIER_GROUP; 22095 22096 22097 22098extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec; 22099extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec; 22100 22101#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ 22102#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ 22103 22104/* interface ID3D12ShaderCacheSession */ 22105/* [unique][local][object][uuid] */ 22106 22107 22108EXTERN_C const IID IID_ID3D12ShaderCacheSession; 22109 22110#if defined(__cplusplus) && !defined(CINTERFACE) 22111 22112 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8") 22113 ID3D12ShaderCacheSession : public ID3D12DeviceChild 22114 { 22115 public: 22116 virtual HRESULT STDMETHODCALLTYPE FindValue( 22117 /* [annotation][in] */ 22118 _In_reads_bytes_(KeySize) const void *pKey, 22119 UINT KeySize, 22120 /* [annotation][out] */ 22121 _Out_writes_bytes_(*pValueSize) void *pValue, 22122 _Inout_ UINT *pValueSize) = 0; 22123 22124 virtual HRESULT STDMETHODCALLTYPE StoreValue( 22125 /* [annotation][in] */ 22126 _In_reads_bytes_(KeySize) const void *pKey, 22127 UINT KeySize, 22128 /* [annotation][in] */ 22129 _In_reads_bytes_(ValueSize) const void *pValue, 22130 UINT ValueSize) = 0; 22131 22132 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0; 22133 22134#if defined(_MSC_VER) || !defined(_WIN32) 22135 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 22136#else 22137 virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( 22138 D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0; 22139#endif 22140 22141 }; 22142 22143 22144#else /* C style interface */ 22145 22146 typedef struct ID3D12ShaderCacheSessionVtbl 22147 { 22148 BEGIN_INTERFACE 22149 22150 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 22151 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 22152 ID3D12ShaderCacheSession * This, 22153 REFIID riid, 22154 _COM_Outptr_ void **ppvObject); 22155 22156 DECLSPEC_XFGVIRT(IUnknown, AddRef) 22157 ULONG ( STDMETHODCALLTYPE *AddRef )( 22158 ID3D12ShaderCacheSession * This); 22159 22160 DECLSPEC_XFGVIRT(IUnknown, Release) 22161 ULONG ( STDMETHODCALLTYPE *Release )( 22162 ID3D12ShaderCacheSession * This); 22163 22164 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 22165 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 22166 ID3D12ShaderCacheSession * This, 22167 _In_ REFGUID guid, 22168 _Inout_ UINT *pDataSize, 22169 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 22170 22171 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 22172 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 22173 ID3D12ShaderCacheSession * This, 22174 _In_ REFGUID guid, 22175 _In_ UINT DataSize, 22176 _In_reads_bytes_opt_( DataSize ) const void *pData); 22177 22178 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 22179 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 22180 ID3D12ShaderCacheSession * This, 22181 _In_ REFGUID guid, 22182 _In_opt_ const IUnknown *pData); 22183 22184 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 22185 HRESULT ( STDMETHODCALLTYPE *SetName )( 22186 ID3D12ShaderCacheSession * This, 22187 _In_z_ LPCWSTR Name); 22188 22189 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 22190 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 22191 ID3D12ShaderCacheSession * This, 22192 REFIID riid, 22193 _COM_Outptr_opt_ void **ppvDevice); 22194 22195 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue) 22196 HRESULT ( STDMETHODCALLTYPE *FindValue )( 22197 ID3D12ShaderCacheSession * This, 22198 /* [annotation][in] */ 22199 _In_reads_bytes_(KeySize) const void *pKey, 22200 UINT KeySize, 22201 /* [annotation][out] */ 22202 _Out_writes_bytes_(*pValueSize) void *pValue, 22203 _Inout_ UINT *pValueSize); 22204 22205 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue) 22206 HRESULT ( STDMETHODCALLTYPE *StoreValue )( 22207 ID3D12ShaderCacheSession * This, 22208 /* [annotation][in] */ 22209 _In_reads_bytes_(KeySize) const void *pKey, 22210 UINT KeySize, 22211 /* [annotation][in] */ 22212 _In_reads_bytes_(ValueSize) const void *pValue, 22213 UINT ValueSize); 22214 22215 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy) 22216 void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )( 22217 ID3D12ShaderCacheSession * This); 22218 22219 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc) 22220#if !defined(_WIN32) 22221 D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( 22222 ID3D12ShaderCacheSession * This); 22223 22224#else 22225 D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( 22226 ID3D12ShaderCacheSession * This, 22227 D3D12_SHADER_CACHE_SESSION_DESC * RetVal); 22228 22229#endif 22230 22231 END_INTERFACE 22232 } ID3D12ShaderCacheSessionVtbl; 22233 22234 interface ID3D12ShaderCacheSession 22235 { 22236 CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl; 22237 }; 22238 22239 22240 22241#ifdef COBJMACROS 22242 22243 22244#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \ 22245 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 22246 22247#define ID3D12ShaderCacheSession_AddRef(This) \ 22248 ( (This)->lpVtbl -> AddRef(This) ) 22249 22250#define ID3D12ShaderCacheSession_Release(This) \ 22251 ( (This)->lpVtbl -> Release(This) ) 22252 22253 22254#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \ 22255 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 22256 22257#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \ 22258 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 22259 22260#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \ 22261 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 22262 22263#define ID3D12ShaderCacheSession_SetName(This,Name) \ 22264 ( (This)->lpVtbl -> SetName(This,Name) ) 22265 22266 22267#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \ 22268 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 22269 22270 22271#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \ 22272 ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) ) 22273 22274#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \ 22275 ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) ) 22276 22277#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \ 22278 ( (This)->lpVtbl -> SetDeleteOnDestroy(This) ) 22279#if !defined(_WIN32) 22280 22281#define ID3D12ShaderCacheSession_GetDesc(This) \ 22282 ( (This)->lpVtbl -> GetDesc(This) ) 22283#else 22284#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \ 22285 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 22286#endif 22287 22288#endif /* COBJMACROS */ 22289 22290 22291#endif /* C style interface */ 22292 22293 22294 22295 22296#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ 22297 22298 22299/* interface __MIDL_itf_d3d12_0000_0054 */ 22300/* [local] */ 22301 22302typedef 22303enum D3D12_SHADER_CACHE_KIND_FLAGS 22304 { 22305 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, 22306 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, 22307 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, 22308 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8 22309 } D3D12_SHADER_CACHE_KIND_FLAGS; 22310 22311DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS ) 22312typedef 22313enum D3D12_SHADER_CACHE_CONTROL_FLAGS 22314 { 22315 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, 22316 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, 22317 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4 22318 } D3D12_SHADER_CACHE_CONTROL_FLAGS; 22319 22320DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) 22321 22322 22323extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; 22324extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; 22325 22326#ifndef __ID3D12Device9_INTERFACE_DEFINED__ 22327#define __ID3D12Device9_INTERFACE_DEFINED__ 22328 22329/* interface ID3D12Device9 */ 22330/* [unique][local][object][uuid] */ 22331 22332 22333EXTERN_C const IID IID_ID3D12Device9; 22334 22335#if defined(__cplusplus) && !defined(CINTERFACE) 22336 22337 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c") 22338 ID3D12Device9 : public ID3D12Device8 22339 { 22340 public: 22341 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession( 22342 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 22343 REFIID riid, 22344 _COM_Outptr_opt_ void **ppvSession) = 0; 22345 22346 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl( 22347 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 22348 D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0; 22349 22350 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1( 22351 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 22352 REFIID CreatorID, 22353 REFIID riid, 22354 _COM_Outptr_ void **ppCommandQueue) = 0; 22355 22356 }; 22357 22358 22359#else /* C style interface */ 22360 22361 typedef struct ID3D12Device9Vtbl 22362 { 22363 BEGIN_INTERFACE 22364 22365 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 22366 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 22367 ID3D12Device9 * This, 22368 REFIID riid, 22369 _COM_Outptr_ void **ppvObject); 22370 22371 DECLSPEC_XFGVIRT(IUnknown, AddRef) 22372 ULONG ( STDMETHODCALLTYPE *AddRef )( 22373 ID3D12Device9 * This); 22374 22375 DECLSPEC_XFGVIRT(IUnknown, Release) 22376 ULONG ( STDMETHODCALLTYPE *Release )( 22377 ID3D12Device9 * This); 22378 22379 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 22380 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 22381 ID3D12Device9 * This, 22382 _In_ REFGUID guid, 22383 _Inout_ UINT *pDataSize, 22384 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 22385 22386 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 22387 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 22388 ID3D12Device9 * This, 22389 _In_ REFGUID guid, 22390 _In_ UINT DataSize, 22391 _In_reads_bytes_opt_( DataSize ) const void *pData); 22392 22393 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 22394 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 22395 ID3D12Device9 * This, 22396 _In_ REFGUID guid, 22397 _In_opt_ const IUnknown *pData); 22398 22399 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 22400 HRESULT ( STDMETHODCALLTYPE *SetName )( 22401 ID3D12Device9 * This, 22402 _In_z_ LPCWSTR Name); 22403 22404 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 22405 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 22406 ID3D12Device9 * This); 22407 22408 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 22409 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 22410 ID3D12Device9 * This, 22411 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 22412 REFIID riid, 22413 _COM_Outptr_ void **ppCommandQueue); 22414 22415 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 22416 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 22417 ID3D12Device9 * This, 22418 _In_ D3D12_COMMAND_LIST_TYPE type, 22419 REFIID riid, 22420 _COM_Outptr_ void **ppCommandAllocator); 22421 22422 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 22423 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 22424 ID3D12Device9 * This, 22425 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 22426 REFIID riid, 22427 _COM_Outptr_ void **ppPipelineState); 22428 22429 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 22430 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 22431 ID3D12Device9 * This, 22432 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 22433 REFIID riid, 22434 _COM_Outptr_ void **ppPipelineState); 22435 22436 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 22437 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 22438 ID3D12Device9 * This, 22439 _In_ UINT nodeMask, 22440 _In_ D3D12_COMMAND_LIST_TYPE type, 22441 _In_ ID3D12CommandAllocator *pCommandAllocator, 22442 _In_opt_ ID3D12PipelineState *pInitialState, 22443 REFIID riid, 22444 _COM_Outptr_ void **ppCommandList); 22445 22446 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 22447 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 22448 ID3D12Device9 * This, 22449 D3D12_FEATURE Feature, 22450 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 22451 UINT FeatureSupportDataSize); 22452 22453 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 22454 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 22455 ID3D12Device9 * This, 22456 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 22457 REFIID riid, 22458 _COM_Outptr_ void **ppvHeap); 22459 22460 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 22461 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 22462 ID3D12Device9 * This, 22463 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 22464 22465 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 22466 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 22467 ID3D12Device9 * This, 22468 _In_ UINT nodeMask, 22469 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 22470 _In_ SIZE_T blobLengthInBytes, 22471 REFIID riid, 22472 _COM_Outptr_ void **ppvRootSignature); 22473 22474 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 22475 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 22476 ID3D12Device9 * This, 22477 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 22478 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22479 22480 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 22481 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 22482 ID3D12Device9 * This, 22483 _In_opt_ ID3D12Resource *pResource, 22484 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 22485 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22486 22487 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 22488 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 22489 ID3D12Device9 * This, 22490 _In_opt_ ID3D12Resource *pResource, 22491 _In_opt_ ID3D12Resource *pCounterResource, 22492 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 22493 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22494 22495 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 22496 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 22497 ID3D12Device9 * This, 22498 _In_opt_ ID3D12Resource *pResource, 22499 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 22500 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22501 22502 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 22503 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 22504 ID3D12Device9 * This, 22505 _In_opt_ ID3D12Resource *pResource, 22506 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 22507 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22508 22509 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 22510 void ( STDMETHODCALLTYPE *CreateSampler )( 22511 ID3D12Device9 * This, 22512 _In_ const D3D12_SAMPLER_DESC *pDesc, 22513 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22514 22515 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 22516 void ( STDMETHODCALLTYPE *CopyDescriptors )( 22517 ID3D12Device9 * This, 22518 _In_ UINT NumDestDescriptorRanges, 22519 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 22520 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 22521 _In_ UINT NumSrcDescriptorRanges, 22522 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 22523 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 22524 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 22525 22526 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 22527 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 22528 ID3D12Device9 * This, 22529 _In_ UINT NumDescriptors, 22530 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 22531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 22532 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 22533 22534 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 22535#if !defined(_WIN32) 22536 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 22537 ID3D12Device9 * This, 22538 _In_ UINT visibleMask, 22539 _In_ UINT numResourceDescs, 22540 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 22541 22542#else 22543 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 22544 ID3D12Device9 * This, 22545 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 22546 _In_ UINT visibleMask, 22547 _In_ UINT numResourceDescs, 22548 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 22549 22550#endif 22551 22552 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 22553#if !defined(_WIN32) 22554 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 22555 ID3D12Device9 * This, 22556 _In_ UINT nodeMask, 22557 D3D12_HEAP_TYPE heapType); 22558 22559#else 22560 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 22561 ID3D12Device9 * This, 22562 D3D12_HEAP_PROPERTIES * RetVal, 22563 _In_ UINT nodeMask, 22564 D3D12_HEAP_TYPE heapType); 22565 22566#endif 22567 22568 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 22569 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 22570 ID3D12Device9 * This, 22571 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 22572 D3D12_HEAP_FLAGS HeapFlags, 22573 _In_ const D3D12_RESOURCE_DESC *pDesc, 22574 D3D12_RESOURCE_STATES InitialResourceState, 22575 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22576 REFIID riidResource, 22577 _COM_Outptr_opt_ void **ppvResource); 22578 22579 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 22580 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 22581 ID3D12Device9 * This, 22582 _In_ const D3D12_HEAP_DESC *pDesc, 22583 REFIID riid, 22584 _COM_Outptr_opt_ void **ppvHeap); 22585 22586 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 22587 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 22588 ID3D12Device9 * This, 22589 _In_ ID3D12Heap *pHeap, 22590 UINT64 HeapOffset, 22591 _In_ const D3D12_RESOURCE_DESC *pDesc, 22592 D3D12_RESOURCE_STATES InitialState, 22593 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22594 REFIID riid, 22595 _COM_Outptr_opt_ void **ppvResource); 22596 22597 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 22598 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 22599 ID3D12Device9 * This, 22600 _In_ const D3D12_RESOURCE_DESC *pDesc, 22601 D3D12_RESOURCE_STATES InitialState, 22602 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22603 REFIID riid, 22604 _COM_Outptr_opt_ void **ppvResource); 22605 22606 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 22607 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 22608 ID3D12Device9 * This, 22609 _In_ ID3D12DeviceChild *pObject, 22610 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 22611 DWORD Access, 22612 _In_opt_ LPCWSTR Name, 22613 _Out_ HANDLE *pHandle); 22614 22615 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 22616 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 22617 ID3D12Device9 * This, 22618 _In_ HANDLE NTHandle, 22619 REFIID riid, 22620 _COM_Outptr_opt_ void **ppvObj); 22621 22622 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 22623 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 22624 ID3D12Device9 * This, 22625 _In_ LPCWSTR Name, 22626 DWORD Access, 22627 /* [annotation][out] */ 22628 _Out_ HANDLE *pNTHandle); 22629 22630 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 22631 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 22632 ID3D12Device9 * This, 22633 UINT NumObjects, 22634 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 22635 22636 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 22637 HRESULT ( STDMETHODCALLTYPE *Evict )( 22638 ID3D12Device9 * This, 22639 UINT NumObjects, 22640 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 22641 22642 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 22643 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 22644 ID3D12Device9 * This, 22645 UINT64 InitialValue, 22646 D3D12_FENCE_FLAGS Flags, 22647 REFIID riid, 22648 _COM_Outptr_ void **ppFence); 22649 22650 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 22651 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 22652 ID3D12Device9 * This); 22653 22654 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 22655 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 22656 ID3D12Device9 * This, 22657 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 22658 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 22659 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 22660 UINT64 BaseOffset, 22661 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 22662 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 22663 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 22664 _Out_opt_ UINT64 *pTotalBytes); 22665 22666 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 22667 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 22668 ID3D12Device9 * This, 22669 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 22670 REFIID riid, 22671 _COM_Outptr_opt_ void **ppvHeap); 22672 22673 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 22674 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 22675 ID3D12Device9 * This, 22676 BOOL Enable); 22677 22678 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 22679 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 22680 ID3D12Device9 * This, 22681 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 22682 _In_opt_ ID3D12RootSignature *pRootSignature, 22683 REFIID riid, 22684 _COM_Outptr_opt_ void **ppvCommandSignature); 22685 22686 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 22687 void ( STDMETHODCALLTYPE *GetResourceTiling )( 22688 ID3D12Device9 * This, 22689 _In_ ID3D12Resource *pTiledResource, 22690 _Out_opt_ UINT *pNumTilesForEntireResource, 22691 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 22692 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 22693 _Inout_opt_ UINT *pNumSubresourceTilings, 22694 _In_ UINT FirstSubresourceTilingToGet, 22695 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 22696 22697 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 22698#if !defined(_WIN32) 22699 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 22700 ID3D12Device9 * This); 22701 22702#else 22703 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 22704 ID3D12Device9 * This, 22705 LUID * RetVal); 22706 22707#endif 22708 22709 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 22710 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 22711 ID3D12Device9 * This, 22712 _In_reads_(BlobLength) const void *pLibraryBlob, 22713 SIZE_T BlobLength, 22714 REFIID riid, 22715 _COM_Outptr_ void **ppPipelineLibrary); 22716 22717 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 22718 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 22719 ID3D12Device9 * This, 22720 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 22721 _In_reads_(NumFences) const UINT64 *pFenceValues, 22722 UINT NumFences, 22723 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 22724 HANDLE hEvent); 22725 22726 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 22727 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 22728 ID3D12Device9 * This, 22729 UINT NumObjects, 22730 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 22731 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 22732 22733 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 22734 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 22735 ID3D12Device9 * This, 22736 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 22737 REFIID riid, 22738 _COM_Outptr_ void **ppPipelineState); 22739 22740 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 22741 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 22742 ID3D12Device9 * This, 22743 _In_ const void *pAddress, 22744 REFIID riid, 22745 _COM_Outptr_ void **ppvHeap); 22746 22747 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 22748 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 22749 ID3D12Device9 * This, 22750 _In_ HANDLE hFileMapping, 22751 REFIID riid, 22752 _COM_Outptr_ void **ppvHeap); 22753 22754 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 22755 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 22756 ID3D12Device9 * This, 22757 D3D12_RESIDENCY_FLAGS Flags, 22758 UINT NumObjects, 22759 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 22760 _In_ ID3D12Fence *pFenceToSignal, 22761 UINT64 FenceValueToSignal); 22762 22763 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 22764 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 22765 ID3D12Device9 * This, 22766 _In_ UINT nodeMask, 22767 _In_ D3D12_COMMAND_LIST_TYPE type, 22768 _In_ D3D12_COMMAND_LIST_FLAGS flags, 22769 REFIID riid, 22770 _COM_Outptr_ void **ppCommandList); 22771 22772 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 22773 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 22774 ID3D12Device9 * This, 22775 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 22776 _In_ REFIID riid, 22777 _COM_Outptr_ void **ppSession); 22778 22779 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 22780 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 22781 ID3D12Device9 * This, 22782 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 22783 D3D12_HEAP_FLAGS HeapFlags, 22784 _In_ const D3D12_RESOURCE_DESC *pDesc, 22785 D3D12_RESOURCE_STATES InitialResourceState, 22786 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22787 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 22788 REFIID riidResource, 22789 _COM_Outptr_opt_ void **ppvResource); 22790 22791 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 22792 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 22793 ID3D12Device9 * This, 22794 _In_ const D3D12_HEAP_DESC *pDesc, 22795 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 22796 REFIID riid, 22797 _COM_Outptr_opt_ void **ppvHeap); 22798 22799 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 22800 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 22801 ID3D12Device9 * This, 22802 _In_ const D3D12_RESOURCE_DESC *pDesc, 22803 D3D12_RESOURCE_STATES InitialState, 22804 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 22806 REFIID riid, 22807 _COM_Outptr_opt_ void **ppvResource); 22808 22809 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 22810#if !defined(_WIN32) 22811 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 22812 ID3D12Device9 * This, 22813 UINT visibleMask, 22814 UINT numResourceDescs, 22815 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 22816 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 22817 22818#else 22819 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 22820 ID3D12Device9 * This, 22821 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 22822 UINT visibleMask, 22823 UINT numResourceDescs, 22824 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 22825 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 22826 22827#endif 22828 22829 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 22830 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 22831 ID3D12Device9 * This, 22832 _In_ ID3D12LifetimeOwner *pOwner, 22833 REFIID riid, 22834 _COM_Outptr_ void **ppvTracker); 22835 22836 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 22837 void ( STDMETHODCALLTYPE *RemoveDevice )( 22838 ID3D12Device9 * This); 22839 22840 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 22841 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 22842 ID3D12Device9 * This, 22843 _Inout_ UINT *pNumMetaCommands, 22844 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 22845 22846 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 22847 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 22848 ID3D12Device9 * This, 22849 _In_ REFGUID CommandId, 22850 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 22851 _Out_opt_ UINT *pTotalStructureSizeInBytes, 22852 _Inout_ UINT *pParameterCount, 22853 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 22854 22855 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 22856 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 22857 ID3D12Device9 * This, 22858 _In_ REFGUID CommandId, 22859 _In_ UINT NodeMask, 22860 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 22861 _In_ SIZE_T CreationParametersDataSizeInBytes, 22862 REFIID riid, 22863 _COM_Outptr_ void **ppMetaCommand); 22864 22865 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 22866 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 22867 ID3D12Device9 * This, 22868 const D3D12_STATE_OBJECT_DESC *pDesc, 22869 REFIID riid, 22870 _COM_Outptr_ void **ppStateObject); 22871 22872 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 22873 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 22874 ID3D12Device9 * This, 22875 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 22876 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 22877 22878 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 22879 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 22880 ID3D12Device9 * This, 22881 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 22882 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 22883 22884 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 22885 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 22886 ID3D12Device9 * This, 22887 D3D12_BACKGROUND_PROCESSING_MODE Mode, 22888 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 22889 _In_opt_ HANDLE hEventToSignalUponCompletion, 22890 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 22891 22892 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 22893 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 22894 ID3D12Device9 * This, 22895 const D3D12_STATE_OBJECT_DESC *pAddition, 22896 ID3D12StateObject *pStateObjectToGrowFrom, 22897 REFIID riid, 22898 _COM_Outptr_ void **ppNewStateObject); 22899 22900 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 22901 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 22902 ID3D12Device9 * This, 22903 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 22904 _In_ REFIID riid, 22905 _COM_Outptr_ void **ppSession); 22906 22907 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 22908#if !defined(_WIN32) 22909 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 22910 ID3D12Device9 * This, 22911 UINT visibleMask, 22912 UINT numResourceDescs, 22913 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 22914 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 22915 22916#else 22917 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 22918 ID3D12Device9 * This, 22919 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 22920 UINT visibleMask, 22921 UINT numResourceDescs, 22922 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 22923 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 22924 22925#endif 22926 22927 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 22928 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 22929 ID3D12Device9 * This, 22930 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 22931 D3D12_HEAP_FLAGS HeapFlags, 22932 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 22933 D3D12_RESOURCE_STATES InitialResourceState, 22934 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22935 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 22936 REFIID riidResource, 22937 _COM_Outptr_opt_ void **ppvResource); 22938 22939 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 22940 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 22941 ID3D12Device9 * This, 22942 _In_ ID3D12Heap *pHeap, 22943 UINT64 HeapOffset, 22944 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 22945 D3D12_RESOURCE_STATES InitialState, 22946 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 22947 REFIID riid, 22948 _COM_Outptr_opt_ void **ppvResource); 22949 22950 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 22951 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 22952 ID3D12Device9 * This, 22953 _In_opt_ ID3D12Resource *pTargetedResource, 22954 _In_opt_ ID3D12Resource *pFeedbackResource, 22955 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 22956 22957 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 22958 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 22959 ID3D12Device9 * This, 22960 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 22961 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 22962 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 22963 UINT64 BaseOffset, 22964 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 22965 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 22966 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 22967 _Out_opt_ UINT64 *pTotalBytes); 22968 22969 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 22970 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 22971 ID3D12Device9 * This, 22972 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 22973 REFIID riid, 22974 _COM_Outptr_opt_ void **ppvSession); 22975 22976 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 22977 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 22978 ID3D12Device9 * This, 22979 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 22980 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 22981 22982 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 22983 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 22984 ID3D12Device9 * This, 22985 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 22986 REFIID CreatorID, 22987 REFIID riid, 22988 _COM_Outptr_ void **ppCommandQueue); 22989 22990 END_INTERFACE 22991 } ID3D12Device9Vtbl; 22992 22993 interface ID3D12Device9 22994 { 22995 CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl; 22996 }; 22997 22998 22999 23000#ifdef COBJMACROS 23001 23002 23003#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \ 23004 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 23005 23006#define ID3D12Device9_AddRef(This) \ 23007 ( (This)->lpVtbl -> AddRef(This) ) 23008 23009#define ID3D12Device9_Release(This) \ 23010 ( (This)->lpVtbl -> Release(This) ) 23011 23012 23013#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \ 23014 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 23015 23016#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \ 23017 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 23018 23019#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \ 23020 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 23021 23022#define ID3D12Device9_SetName(This,Name) \ 23023 ( (This)->lpVtbl -> SetName(This,Name) ) 23024 23025 23026#define ID3D12Device9_GetNodeCount(This) \ 23027 ( (This)->lpVtbl -> GetNodeCount(This) ) 23028 23029#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 23030 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 23031 23032#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 23033 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 23034 23035#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 23036 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 23037 23038#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 23039 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 23040 23041#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 23042 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 23043 23044#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 23045 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 23046 23047#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 23048 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 23049 23050#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 23051 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 23052 23053#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 23054 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 23055 23056#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 23057 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 23058 23059#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 23060 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 23061 23062#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 23063 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 23064 23065#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 23066 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 23067 23068#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 23069 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 23070 23071#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \ 23072 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 23073 23074#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 23075 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 23076 23077#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 23078 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 23079#if !defined(_WIN32) 23080 23081#define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 23082 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 23083#else 23084#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 23085 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 23086#endif 23087#if !defined(_WIN32) 23088 23089#define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \ 23090 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 23091#else 23092#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 23093 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 23094#endif 23095 23096#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 23097 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 23098 23099#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \ 23100 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 23101 23102#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 23103 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 23104 23105#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 23106 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 23107 23108#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 23109 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 23110 23111#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 23112 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 23113 23114#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 23115 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 23116 23117#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \ 23118 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 23119 23120#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \ 23121 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 23122 23123#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 23124 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 23125 23126#define ID3D12Device9_GetDeviceRemovedReason(This) \ 23127 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 23128 23129#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 23130 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 23131 23132#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 23133 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 23134 23135#define ID3D12Device9_SetStablePowerState(This,Enable) \ 23136 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 23137 23138#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 23139 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 23140 23141#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 23142 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 23143#if !defined(_WIN32) 23144 23145#define ID3D12Device9_GetAdapterLuid(This) \ 23146 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 23147#else 23148#define ID3D12Device9_GetAdapterLuid(This,RetVal) \ 23149 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 23150#endif 23151 23152 23153#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 23154 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 23155 23156#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 23157 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 23158 23159#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 23160 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 23161 23162 23163#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 23164 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 23165 23166 23167#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 23168 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 23169 23170#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 23171 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 23172 23173#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 23174 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 23175 23176 23177#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 23178 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 23179 23180#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 23181 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 23182 23183#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 23184 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 23185 23186#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 23187 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 23188 23189#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 23190 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 23191#if !defined(_WIN32) 23192 23193#define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 23194 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 23195#else 23196#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 23197 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 23198#endif 23199 23200 23201#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 23202 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 23203 23204#define ID3D12Device9_RemoveDevice(This) \ 23205 ( (This)->lpVtbl -> RemoveDevice(This) ) 23206 23207#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 23208 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 23209 23210#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 23211 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 23212 23213#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 23214 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 23215 23216#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \ 23217 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 23218 23219#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 23220 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 23221 23222#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 23223 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 23224 23225 23226#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 23227 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 23228 23229 23230#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 23231 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 23232 23233#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 23234 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 23235 23236#if !defined(_WIN32) 23237 23238#define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 23239 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 23240#else 23241#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 23242 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 23243#endif 23244 23245#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 23246 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 23247 23248#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 23249 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 23250 23251#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 23252 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 23253 23254#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 23255 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 23256 23257 23258#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 23259 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 23260 23261#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \ 23262 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 23263 23264#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 23265 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 23266 23267#endif /* COBJMACROS */ 23268 23269 23270#endif /* C style interface */ 23271 23272 23273 23274 23275#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */ 23276 23277 23278#ifndef __ID3D12Device10_INTERFACE_DEFINED__ 23279#define __ID3D12Device10_INTERFACE_DEFINED__ 23280 23281/* interface ID3D12Device10 */ 23282/* [unique][local][object][uuid] */ 23283 23284 23285EXTERN_C const IID IID_ID3D12Device10; 23286 23287#if defined(__cplusplus) && !defined(CINTERFACE) 23288 23289 MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031") 23290 ID3D12Device10 : public ID3D12Device9 23291 { 23292 public: 23293 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3( 23294 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 23295 D3D12_HEAP_FLAGS HeapFlags, 23296 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23297 D3D12_BARRIER_LAYOUT InitialLayout, 23298 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23299 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23300 UINT32 NumCastableFormats, 23301 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23302 REFIID riidResource, 23303 _COM_Outptr_opt_ void **ppvResource) = 0; 23304 23305 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2( 23306 _In_ ID3D12Heap *pHeap, 23307 UINT64 HeapOffset, 23308 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23309 D3D12_BARRIER_LAYOUT InitialLayout, 23310 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23311 UINT32 NumCastableFormats, 23312 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23313 REFIID riid, 23314 _COM_Outptr_opt_ void **ppvResource) = 0; 23315 23316 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2( 23317 _In_ const D3D12_RESOURCE_DESC *pDesc, 23318 D3D12_BARRIER_LAYOUT InitialLayout, 23319 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23320 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23321 UINT32 NumCastableFormats, 23322 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23323 REFIID riid, 23324 _COM_Outptr_opt_ void **ppvResource) = 0; 23325 23326 }; 23327 23328 23329#else /* C style interface */ 23330 23331 typedef struct ID3D12Device10Vtbl 23332 { 23333 BEGIN_INTERFACE 23334 23335 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 23336 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 23337 ID3D12Device10 * This, 23338 REFIID riid, 23339 _COM_Outptr_ void **ppvObject); 23340 23341 DECLSPEC_XFGVIRT(IUnknown, AddRef) 23342 ULONG ( STDMETHODCALLTYPE *AddRef )( 23343 ID3D12Device10 * This); 23344 23345 DECLSPEC_XFGVIRT(IUnknown, Release) 23346 ULONG ( STDMETHODCALLTYPE *Release )( 23347 ID3D12Device10 * This); 23348 23349 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 23350 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 23351 ID3D12Device10 * This, 23352 _In_ REFGUID guid, 23353 _Inout_ UINT *pDataSize, 23354 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 23355 23356 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 23357 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 23358 ID3D12Device10 * This, 23359 _In_ REFGUID guid, 23360 _In_ UINT DataSize, 23361 _In_reads_bytes_opt_( DataSize ) const void *pData); 23362 23363 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 23364 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 23365 ID3D12Device10 * This, 23366 _In_ REFGUID guid, 23367 _In_opt_ const IUnknown *pData); 23368 23369 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 23370 HRESULT ( STDMETHODCALLTYPE *SetName )( 23371 ID3D12Device10 * This, 23372 _In_z_ LPCWSTR Name); 23373 23374 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 23375 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 23376 ID3D12Device10 * This); 23377 23378 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 23379 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 23380 ID3D12Device10 * This, 23381 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 23382 REFIID riid, 23383 _COM_Outptr_ void **ppCommandQueue); 23384 23385 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 23386 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 23387 ID3D12Device10 * This, 23388 _In_ D3D12_COMMAND_LIST_TYPE type, 23389 REFIID riid, 23390 _COM_Outptr_ void **ppCommandAllocator); 23391 23392 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 23393 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 23394 ID3D12Device10 * This, 23395 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 23396 REFIID riid, 23397 _COM_Outptr_ void **ppPipelineState); 23398 23399 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 23400 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 23401 ID3D12Device10 * This, 23402 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 23403 REFIID riid, 23404 _COM_Outptr_ void **ppPipelineState); 23405 23406 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 23407 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 23408 ID3D12Device10 * This, 23409 _In_ UINT nodeMask, 23410 _In_ D3D12_COMMAND_LIST_TYPE type, 23411 _In_ ID3D12CommandAllocator *pCommandAllocator, 23412 _In_opt_ ID3D12PipelineState *pInitialState, 23413 REFIID riid, 23414 _COM_Outptr_ void **ppCommandList); 23415 23416 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 23417 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 23418 ID3D12Device10 * This, 23419 D3D12_FEATURE Feature, 23420 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 23421 UINT FeatureSupportDataSize); 23422 23423 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 23424 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 23425 ID3D12Device10 * This, 23426 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 23427 REFIID riid, 23428 _COM_Outptr_ void **ppvHeap); 23429 23430 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 23431 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 23432 ID3D12Device10 * This, 23433 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 23434 23435 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 23436 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 23437 ID3D12Device10 * This, 23438 _In_ UINT nodeMask, 23439 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 23440 _In_ SIZE_T blobLengthInBytes, 23441 REFIID riid, 23442 _COM_Outptr_ void **ppvRootSignature); 23443 23444 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 23445 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 23446 ID3D12Device10 * This, 23447 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 23448 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23449 23450 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 23451 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 23452 ID3D12Device10 * This, 23453 _In_opt_ ID3D12Resource *pResource, 23454 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 23455 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23456 23457 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 23458 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 23459 ID3D12Device10 * This, 23460 _In_opt_ ID3D12Resource *pResource, 23461 _In_opt_ ID3D12Resource *pCounterResource, 23462 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 23463 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23464 23465 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 23466 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 23467 ID3D12Device10 * This, 23468 _In_opt_ ID3D12Resource *pResource, 23469 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 23470 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23471 23472 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 23473 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 23474 ID3D12Device10 * This, 23475 _In_opt_ ID3D12Resource *pResource, 23476 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 23477 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23478 23479 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 23480 void ( STDMETHODCALLTYPE *CreateSampler )( 23481 ID3D12Device10 * This, 23482 _In_ const D3D12_SAMPLER_DESC *pDesc, 23483 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23484 23485 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 23486 void ( STDMETHODCALLTYPE *CopyDescriptors )( 23487 ID3D12Device10 * This, 23488 _In_ UINT NumDestDescriptorRanges, 23489 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 23490 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 23491 _In_ UINT NumSrcDescriptorRanges, 23492 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 23493 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 23494 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 23495 23496 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 23497 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 23498 ID3D12Device10 * This, 23499 _In_ UINT NumDescriptors, 23500 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 23501 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 23502 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 23503 23504 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 23505#if !defined(_WIN32) 23506 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 23507 ID3D12Device10 * This, 23508 _In_ UINT visibleMask, 23509 _In_ UINT numResourceDescs, 23510 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 23511 23512#else 23513 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 23514 ID3D12Device10 * This, 23515 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 23516 _In_ UINT visibleMask, 23517 _In_ UINT numResourceDescs, 23518 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 23519 23520#endif 23521 23522 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 23523#if !defined(_WIN32) 23524 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 23525 ID3D12Device10 * This, 23526 _In_ UINT nodeMask, 23527 D3D12_HEAP_TYPE heapType); 23528 23529#else 23530 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 23531 ID3D12Device10 * This, 23532 D3D12_HEAP_PROPERTIES * RetVal, 23533 _In_ UINT nodeMask, 23534 D3D12_HEAP_TYPE heapType); 23535 23536#endif 23537 23538 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 23539 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 23540 ID3D12Device10 * This, 23541 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 23542 D3D12_HEAP_FLAGS HeapFlags, 23543 _In_ const D3D12_RESOURCE_DESC *pDesc, 23544 D3D12_RESOURCE_STATES InitialResourceState, 23545 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23546 REFIID riidResource, 23547 _COM_Outptr_opt_ void **ppvResource); 23548 23549 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 23550 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 23551 ID3D12Device10 * This, 23552 _In_ const D3D12_HEAP_DESC *pDesc, 23553 REFIID riid, 23554 _COM_Outptr_opt_ void **ppvHeap); 23555 23556 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 23557 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 23558 ID3D12Device10 * This, 23559 _In_ ID3D12Heap *pHeap, 23560 UINT64 HeapOffset, 23561 _In_ const D3D12_RESOURCE_DESC *pDesc, 23562 D3D12_RESOURCE_STATES InitialState, 23563 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23564 REFIID riid, 23565 _COM_Outptr_opt_ void **ppvResource); 23566 23567 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 23568 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 23569 ID3D12Device10 * This, 23570 _In_ const D3D12_RESOURCE_DESC *pDesc, 23571 D3D12_RESOURCE_STATES InitialState, 23572 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23573 REFIID riid, 23574 _COM_Outptr_opt_ void **ppvResource); 23575 23576 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 23577 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 23578 ID3D12Device10 * This, 23579 _In_ ID3D12DeviceChild *pObject, 23580 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 23581 DWORD Access, 23582 _In_opt_ LPCWSTR Name, 23583 _Out_ HANDLE *pHandle); 23584 23585 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 23586 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 23587 ID3D12Device10 * This, 23588 _In_ HANDLE NTHandle, 23589 REFIID riid, 23590 _COM_Outptr_opt_ void **ppvObj); 23591 23592 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 23593 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 23594 ID3D12Device10 * This, 23595 _In_ LPCWSTR Name, 23596 DWORD Access, 23597 /* [annotation][out] */ 23598 _Out_ HANDLE *pNTHandle); 23599 23600 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 23601 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 23602 ID3D12Device10 * This, 23603 UINT NumObjects, 23604 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 23605 23606 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 23607 HRESULT ( STDMETHODCALLTYPE *Evict )( 23608 ID3D12Device10 * This, 23609 UINT NumObjects, 23610 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 23611 23612 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 23613 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 23614 ID3D12Device10 * This, 23615 UINT64 InitialValue, 23616 D3D12_FENCE_FLAGS Flags, 23617 REFIID riid, 23618 _COM_Outptr_ void **ppFence); 23619 23620 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 23621 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 23622 ID3D12Device10 * This); 23623 23624 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 23625 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 23626 ID3D12Device10 * This, 23627 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 23628 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 23629 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 23630 UINT64 BaseOffset, 23631 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 23632 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 23633 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 23634 _Out_opt_ UINT64 *pTotalBytes); 23635 23636 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 23637 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 23638 ID3D12Device10 * This, 23639 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 23640 REFIID riid, 23641 _COM_Outptr_opt_ void **ppvHeap); 23642 23643 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 23644 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 23645 ID3D12Device10 * This, 23646 BOOL Enable); 23647 23648 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 23649 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 23650 ID3D12Device10 * This, 23651 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 23652 _In_opt_ ID3D12RootSignature *pRootSignature, 23653 REFIID riid, 23654 _COM_Outptr_opt_ void **ppvCommandSignature); 23655 23656 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 23657 void ( STDMETHODCALLTYPE *GetResourceTiling )( 23658 ID3D12Device10 * This, 23659 _In_ ID3D12Resource *pTiledResource, 23660 _Out_opt_ UINT *pNumTilesForEntireResource, 23661 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 23662 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 23663 _Inout_opt_ UINT *pNumSubresourceTilings, 23664 _In_ UINT FirstSubresourceTilingToGet, 23665 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 23666 23667 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 23668#if !defined(_WIN32) 23669 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 23670 ID3D12Device10 * This); 23671 23672#else 23673 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 23674 ID3D12Device10 * This, 23675 LUID * RetVal); 23676 23677#endif 23678 23679 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 23680 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 23681 ID3D12Device10 * This, 23682 _In_reads_(BlobLength) const void *pLibraryBlob, 23683 SIZE_T BlobLength, 23684 REFIID riid, 23685 _COM_Outptr_ void **ppPipelineLibrary); 23686 23687 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 23688 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 23689 ID3D12Device10 * This, 23690 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 23691 _In_reads_(NumFences) const UINT64 *pFenceValues, 23692 UINT NumFences, 23693 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 23694 HANDLE hEvent); 23695 23696 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 23697 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 23698 ID3D12Device10 * This, 23699 UINT NumObjects, 23700 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 23701 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 23702 23703 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 23704 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 23705 ID3D12Device10 * This, 23706 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 23707 REFIID riid, 23708 _COM_Outptr_ void **ppPipelineState); 23709 23710 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 23711 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 23712 ID3D12Device10 * This, 23713 _In_ const void *pAddress, 23714 REFIID riid, 23715 _COM_Outptr_ void **ppvHeap); 23716 23717 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 23718 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 23719 ID3D12Device10 * This, 23720 _In_ HANDLE hFileMapping, 23721 REFIID riid, 23722 _COM_Outptr_ void **ppvHeap); 23723 23724 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 23725 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 23726 ID3D12Device10 * This, 23727 D3D12_RESIDENCY_FLAGS Flags, 23728 UINT NumObjects, 23729 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 23730 _In_ ID3D12Fence *pFenceToSignal, 23731 UINT64 FenceValueToSignal); 23732 23733 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 23734 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 23735 ID3D12Device10 * This, 23736 _In_ UINT nodeMask, 23737 _In_ D3D12_COMMAND_LIST_TYPE type, 23738 _In_ D3D12_COMMAND_LIST_FLAGS flags, 23739 REFIID riid, 23740 _COM_Outptr_ void **ppCommandList); 23741 23742 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 23743 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 23744 ID3D12Device10 * This, 23745 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 23746 _In_ REFIID riid, 23747 _COM_Outptr_ void **ppSession); 23748 23749 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 23750 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 23751 ID3D12Device10 * This, 23752 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 23753 D3D12_HEAP_FLAGS HeapFlags, 23754 _In_ const D3D12_RESOURCE_DESC *pDesc, 23755 D3D12_RESOURCE_STATES InitialResourceState, 23756 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23757 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23758 REFIID riidResource, 23759 _COM_Outptr_opt_ void **ppvResource); 23760 23761 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 23762 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 23763 ID3D12Device10 * This, 23764 _In_ const D3D12_HEAP_DESC *pDesc, 23765 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23766 REFIID riid, 23767 _COM_Outptr_opt_ void **ppvHeap); 23768 23769 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 23770 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 23771 ID3D12Device10 * This, 23772 _In_ const D3D12_RESOURCE_DESC *pDesc, 23773 D3D12_RESOURCE_STATES InitialState, 23774 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23775 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23776 REFIID riid, 23777 _COM_Outptr_opt_ void **ppvResource); 23778 23779 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 23780#if !defined(_WIN32) 23781 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 23782 ID3D12Device10 * This, 23783 UINT visibleMask, 23784 UINT numResourceDescs, 23785 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 23786 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 23787 23788#else 23789 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 23790 ID3D12Device10 * This, 23791 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 23792 UINT visibleMask, 23793 UINT numResourceDescs, 23794 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 23795 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 23796 23797#endif 23798 23799 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 23800 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 23801 ID3D12Device10 * This, 23802 _In_ ID3D12LifetimeOwner *pOwner, 23803 REFIID riid, 23804 _COM_Outptr_ void **ppvTracker); 23805 23806 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 23807 void ( STDMETHODCALLTYPE *RemoveDevice )( 23808 ID3D12Device10 * This); 23809 23810 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 23811 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 23812 ID3D12Device10 * This, 23813 _Inout_ UINT *pNumMetaCommands, 23814 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 23815 23816 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 23817 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 23818 ID3D12Device10 * This, 23819 _In_ REFGUID CommandId, 23820 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 23821 _Out_opt_ UINT *pTotalStructureSizeInBytes, 23822 _Inout_ UINT *pParameterCount, 23823 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 23824 23825 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 23826 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 23827 ID3D12Device10 * This, 23828 _In_ REFGUID CommandId, 23829 _In_ UINT NodeMask, 23830 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 23831 _In_ SIZE_T CreationParametersDataSizeInBytes, 23832 REFIID riid, 23833 _COM_Outptr_ void **ppMetaCommand); 23834 23835 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 23836 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 23837 ID3D12Device10 * This, 23838 const D3D12_STATE_OBJECT_DESC *pDesc, 23839 REFIID riid, 23840 _COM_Outptr_ void **ppStateObject); 23841 23842 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 23843 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 23844 ID3D12Device10 * This, 23845 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 23846 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 23847 23848 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 23849 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 23850 ID3D12Device10 * This, 23851 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 23852 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 23853 23854 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 23855 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 23856 ID3D12Device10 * This, 23857 D3D12_BACKGROUND_PROCESSING_MODE Mode, 23858 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 23859 _In_opt_ HANDLE hEventToSignalUponCompletion, 23860 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 23861 23862 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 23863 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 23864 ID3D12Device10 * This, 23865 const D3D12_STATE_OBJECT_DESC *pAddition, 23866 ID3D12StateObject *pStateObjectToGrowFrom, 23867 REFIID riid, 23868 _COM_Outptr_ void **ppNewStateObject); 23869 23870 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 23871 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 23872 ID3D12Device10 * This, 23873 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 23874 _In_ REFIID riid, 23875 _COM_Outptr_ void **ppSession); 23876 23877 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 23878#if !defined(_WIN32) 23879 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 23880 ID3D12Device10 * This, 23881 UINT visibleMask, 23882 UINT numResourceDescs, 23883 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 23884 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 23885 23886#else 23887 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 23888 ID3D12Device10 * This, 23889 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 23890 UINT visibleMask, 23891 UINT numResourceDescs, 23892 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 23893 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 23894 23895#endif 23896 23897 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 23898 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 23899 ID3D12Device10 * This, 23900 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 23901 D3D12_HEAP_FLAGS HeapFlags, 23902 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23903 D3D12_RESOURCE_STATES InitialResourceState, 23904 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23905 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23906 REFIID riidResource, 23907 _COM_Outptr_opt_ void **ppvResource); 23908 23909 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 23910 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 23911 ID3D12Device10 * This, 23912 _In_ ID3D12Heap *pHeap, 23913 UINT64 HeapOffset, 23914 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23915 D3D12_RESOURCE_STATES InitialState, 23916 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23917 REFIID riid, 23918 _COM_Outptr_opt_ void **ppvResource); 23919 23920 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 23921 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 23922 ID3D12Device10 * This, 23923 _In_opt_ ID3D12Resource *pTargetedResource, 23924 _In_opt_ ID3D12Resource *pFeedbackResource, 23925 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 23926 23927 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 23928 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 23929 ID3D12Device10 * This, 23930 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 23931 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 23932 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 23933 UINT64 BaseOffset, 23934 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 23935 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 23936 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 23937 _Out_opt_ UINT64 *pTotalBytes); 23938 23939 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 23940 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 23941 ID3D12Device10 * This, 23942 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 23943 REFIID riid, 23944 _COM_Outptr_opt_ void **ppvSession); 23945 23946 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 23947 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 23948 ID3D12Device10 * This, 23949 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 23950 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 23951 23952 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 23953 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 23954 ID3D12Device10 * This, 23955 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 23956 REFIID CreatorID, 23957 REFIID riid, 23958 _COM_Outptr_ void **ppCommandQueue); 23959 23960 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) 23961 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( 23962 ID3D12Device10 * This, 23963 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 23964 D3D12_HEAP_FLAGS HeapFlags, 23965 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23966 D3D12_BARRIER_LAYOUT InitialLayout, 23967 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23968 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23969 UINT32 NumCastableFormats, 23970 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23971 REFIID riidResource, 23972 _COM_Outptr_opt_ void **ppvResource); 23973 23974 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) 23975 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( 23976 ID3D12Device10 * This, 23977 _In_ ID3D12Heap *pHeap, 23978 UINT64 HeapOffset, 23979 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 23980 D3D12_BARRIER_LAYOUT InitialLayout, 23981 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23982 UINT32 NumCastableFormats, 23983 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23984 REFIID riid, 23985 _COM_Outptr_opt_ void **ppvResource); 23986 23987 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) 23988 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( 23989 ID3D12Device10 * This, 23990 _In_ const D3D12_RESOURCE_DESC *pDesc, 23991 D3D12_BARRIER_LAYOUT InitialLayout, 23992 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 23993 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 23994 UINT32 NumCastableFormats, 23995 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 23996 REFIID riid, 23997 _COM_Outptr_opt_ void **ppvResource); 23998 23999 END_INTERFACE 24000 } ID3D12Device10Vtbl; 24001 24002 interface ID3D12Device10 24003 { 24004 CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl; 24005 }; 24006 24007 24008 24009#ifdef COBJMACROS 24010 24011 24012#define ID3D12Device10_QueryInterface(This,riid,ppvObject) \ 24013 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 24014 24015#define ID3D12Device10_AddRef(This) \ 24016 ( (This)->lpVtbl -> AddRef(This) ) 24017 24018#define ID3D12Device10_Release(This) \ 24019 ( (This)->lpVtbl -> Release(This) ) 24020 24021 24022#define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \ 24023 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 24024 24025#define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \ 24026 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 24027 24028#define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \ 24029 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 24030 24031#define ID3D12Device10_SetName(This,Name) \ 24032 ( (This)->lpVtbl -> SetName(This,Name) ) 24033 24034 24035#define ID3D12Device10_GetNodeCount(This) \ 24036 ( (This)->lpVtbl -> GetNodeCount(This) ) 24037 24038#define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 24039 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 24040 24041#define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 24042 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 24043 24044#define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 24045 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 24046 24047#define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 24048 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 24049 24050#define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 24051 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 24052 24053#define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 24054 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 24055 24056#define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 24057 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 24058 24059#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 24060 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 24061 24062#define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 24063 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 24064 24065#define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 24066 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 24067 24068#define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 24069 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 24070 24071#define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 24072 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 24073 24074#define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 24075 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 24076 24077#define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 24078 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 24079 24080#define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \ 24081 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 24082 24083#define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 24084 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 24085 24086#define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 24087 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 24088#if !defined(_WIN32) 24089 24090#define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 24091 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 24092#else 24093#define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 24094 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 24095#endif 24096#if !defined(_WIN32) 24097 24098#define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \ 24099 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 24100#else 24101#define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 24102 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 24103#endif 24104 24105#define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 24106 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 24107 24108#define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \ 24109 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 24110 24111#define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 24112 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 24113 24114#define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 24115 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 24116 24117#define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 24118 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 24119 24120#define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 24121 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 24122 24123#define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 24124 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 24125 24126#define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \ 24127 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 24128 24129#define ID3D12Device10_Evict(This,NumObjects,ppObjects) \ 24130 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 24131 24132#define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 24133 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 24134 24135#define ID3D12Device10_GetDeviceRemovedReason(This) \ 24136 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 24137 24138#define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 24139 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 24140 24141#define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 24142 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 24143 24144#define ID3D12Device10_SetStablePowerState(This,Enable) \ 24145 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 24146 24147#define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 24148 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 24149 24150#define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 24151 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 24152#if !defined(_WIN32) 24153 24154#define ID3D12Device10_GetAdapterLuid(This) \ 24155 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 24156#else 24157#define ID3D12Device10_GetAdapterLuid(This,RetVal) \ 24158 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 24159#endif 24160 24161 24162#define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 24163 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 24164 24165#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 24166 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 24167 24168#define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 24169 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 24170 24171 24172#define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 24173 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 24174 24175 24176#define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 24177 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 24178 24179#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 24180 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 24181 24182#define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 24183 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 24184 24185 24186#define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 24187 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 24188 24189#define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 24190 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 24191 24192#define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 24193 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 24194 24195#define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 24196 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 24197 24198#define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 24199 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 24200#if !defined(_WIN32) 24201 24202#define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 24203 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 24204#else 24205#define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 24206 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 24207#endif 24208 24209 24210#define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 24211 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 24212 24213#define ID3D12Device10_RemoveDevice(This) \ 24214 ( (This)->lpVtbl -> RemoveDevice(This) ) 24215 24216#define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 24217 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 24218 24219#define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 24220 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 24221 24222#define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 24223 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 24224 24225#define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \ 24226 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 24227 24228#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 24229 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 24230 24231#define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 24232 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 24233 24234 24235#define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 24236 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 24237 24238 24239#define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 24240 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 24241 24242#define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 24243 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 24244 24245#if !defined(_WIN32) 24246 24247#define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 24248 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 24249#else 24250#define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 24251 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 24252#endif 24253 24254#define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 24255 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 24256 24257#define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 24258 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 24259 24260#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 24261 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 24262 24263#define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 24264 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 24265 24266 24267#define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 24268 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 24269 24270#define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \ 24271 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 24272 24273#define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 24274 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 24275 24276 24277#define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ 24278 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) 24279 24280#define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 24281 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 24282 24283#define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 24284 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 24285 24286#endif /* COBJMACROS */ 24287 24288 24289#endif /* C style interface */ 24290 24291 24292 24293 24294#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */ 24295 24296 24297#ifndef __ID3D12Device11_INTERFACE_DEFINED__ 24298#define __ID3D12Device11_INTERFACE_DEFINED__ 24299 24300/* interface ID3D12Device11 */ 24301/* [unique][local][object][uuid] */ 24302 24303 24304EXTERN_C const IID IID_ID3D12Device11; 24305 24306#if defined(__cplusplus) && !defined(CINTERFACE) 24307 24308 MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39") 24309 ID3D12Device11 : public ID3D12Device10 24310 { 24311 public: 24312 virtual void STDMETHODCALLTYPE CreateSampler2( 24313 _In_ const D3D12_SAMPLER_DESC2 *pDesc, 24314 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; 24315 24316 }; 24317 24318 24319#else /* C style interface */ 24320 24321 typedef struct ID3D12Device11Vtbl 24322 { 24323 BEGIN_INTERFACE 24324 24325 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 24326 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 24327 ID3D12Device11 * This, 24328 REFIID riid, 24329 _COM_Outptr_ void **ppvObject); 24330 24331 DECLSPEC_XFGVIRT(IUnknown, AddRef) 24332 ULONG ( STDMETHODCALLTYPE *AddRef )( 24333 ID3D12Device11 * This); 24334 24335 DECLSPEC_XFGVIRT(IUnknown, Release) 24336 ULONG ( STDMETHODCALLTYPE *Release )( 24337 ID3D12Device11 * This); 24338 24339 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 24340 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 24341 ID3D12Device11 * This, 24342 _In_ REFGUID guid, 24343 _Inout_ UINT *pDataSize, 24344 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 24345 24346 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 24347 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 24348 ID3D12Device11 * This, 24349 _In_ REFGUID guid, 24350 _In_ UINT DataSize, 24351 _In_reads_bytes_opt_( DataSize ) const void *pData); 24352 24353 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 24354 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 24355 ID3D12Device11 * This, 24356 _In_ REFGUID guid, 24357 _In_opt_ const IUnknown *pData); 24358 24359 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 24360 HRESULT ( STDMETHODCALLTYPE *SetName )( 24361 ID3D12Device11 * This, 24362 _In_z_ LPCWSTR Name); 24363 24364 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 24365 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 24366 ID3D12Device11 * This); 24367 24368 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 24369 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 24370 ID3D12Device11 * This, 24371 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 24372 REFIID riid, 24373 _COM_Outptr_ void **ppCommandQueue); 24374 24375 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 24376 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 24377 ID3D12Device11 * This, 24378 _In_ D3D12_COMMAND_LIST_TYPE type, 24379 REFIID riid, 24380 _COM_Outptr_ void **ppCommandAllocator); 24381 24382 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 24383 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 24384 ID3D12Device11 * This, 24385 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 24386 REFIID riid, 24387 _COM_Outptr_ void **ppPipelineState); 24388 24389 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 24390 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 24391 ID3D12Device11 * This, 24392 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 24393 REFIID riid, 24394 _COM_Outptr_ void **ppPipelineState); 24395 24396 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 24397 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 24398 ID3D12Device11 * This, 24399 _In_ UINT nodeMask, 24400 _In_ D3D12_COMMAND_LIST_TYPE type, 24401 _In_ ID3D12CommandAllocator *pCommandAllocator, 24402 _In_opt_ ID3D12PipelineState *pInitialState, 24403 REFIID riid, 24404 _COM_Outptr_ void **ppCommandList); 24405 24406 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 24407 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 24408 ID3D12Device11 * This, 24409 D3D12_FEATURE Feature, 24410 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 24411 UINT FeatureSupportDataSize); 24412 24413 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 24414 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 24415 ID3D12Device11 * This, 24416 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 24417 REFIID riid, 24418 _COM_Outptr_ void **ppvHeap); 24419 24420 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 24421 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 24422 ID3D12Device11 * This, 24423 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 24424 24425 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 24426 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 24427 ID3D12Device11 * This, 24428 _In_ UINT nodeMask, 24429 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 24430 _In_ SIZE_T blobLengthInBytes, 24431 REFIID riid, 24432 _COM_Outptr_ void **ppvRootSignature); 24433 24434 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 24435 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 24436 ID3D12Device11 * This, 24437 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 24438 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24439 24440 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 24441 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 24442 ID3D12Device11 * This, 24443 _In_opt_ ID3D12Resource *pResource, 24444 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 24445 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24446 24447 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 24448 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 24449 ID3D12Device11 * This, 24450 _In_opt_ ID3D12Resource *pResource, 24451 _In_opt_ ID3D12Resource *pCounterResource, 24452 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 24453 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24454 24455 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 24456 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 24457 ID3D12Device11 * This, 24458 _In_opt_ ID3D12Resource *pResource, 24459 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 24460 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24461 24462 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 24463 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 24464 ID3D12Device11 * This, 24465 _In_opt_ ID3D12Resource *pResource, 24466 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 24467 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24468 24469 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 24470 void ( STDMETHODCALLTYPE *CreateSampler )( 24471 ID3D12Device11 * This, 24472 _In_ const D3D12_SAMPLER_DESC *pDesc, 24473 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24474 24475 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 24476 void ( STDMETHODCALLTYPE *CopyDescriptors )( 24477 ID3D12Device11 * This, 24478 _In_ UINT NumDestDescriptorRanges, 24479 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 24480 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 24481 _In_ UINT NumSrcDescriptorRanges, 24482 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 24483 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 24484 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 24485 24486 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 24487 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 24488 ID3D12Device11 * This, 24489 _In_ UINT NumDescriptors, 24490 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 24491 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 24492 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 24493 24494 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 24495#if !defined(_WIN32) 24496 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 24497 ID3D12Device11 * This, 24498 _In_ UINT visibleMask, 24499 _In_ UINT numResourceDescs, 24500 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 24501 24502#else 24503 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 24504 ID3D12Device11 * This, 24505 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 24506 _In_ UINT visibleMask, 24507 _In_ UINT numResourceDescs, 24508 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 24509 24510#endif 24511 24512 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 24513#if !defined(_WIN32) 24514 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 24515 ID3D12Device11 * This, 24516 _In_ UINT nodeMask, 24517 D3D12_HEAP_TYPE heapType); 24518 24519#else 24520 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 24521 ID3D12Device11 * This, 24522 D3D12_HEAP_PROPERTIES * RetVal, 24523 _In_ UINT nodeMask, 24524 D3D12_HEAP_TYPE heapType); 24525 24526#endif 24527 24528 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 24529 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 24530 ID3D12Device11 * This, 24531 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 24532 D3D12_HEAP_FLAGS HeapFlags, 24533 _In_ const D3D12_RESOURCE_DESC *pDesc, 24534 D3D12_RESOURCE_STATES InitialResourceState, 24535 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24536 REFIID riidResource, 24537 _COM_Outptr_opt_ void **ppvResource); 24538 24539 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 24540 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 24541 ID3D12Device11 * This, 24542 _In_ const D3D12_HEAP_DESC *pDesc, 24543 REFIID riid, 24544 _COM_Outptr_opt_ void **ppvHeap); 24545 24546 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 24547 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 24548 ID3D12Device11 * This, 24549 _In_ ID3D12Heap *pHeap, 24550 UINT64 HeapOffset, 24551 _In_ const D3D12_RESOURCE_DESC *pDesc, 24552 D3D12_RESOURCE_STATES InitialState, 24553 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24554 REFIID riid, 24555 _COM_Outptr_opt_ void **ppvResource); 24556 24557 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 24558 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 24559 ID3D12Device11 * This, 24560 _In_ const D3D12_RESOURCE_DESC *pDesc, 24561 D3D12_RESOURCE_STATES InitialState, 24562 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24563 REFIID riid, 24564 _COM_Outptr_opt_ void **ppvResource); 24565 24566 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 24567 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 24568 ID3D12Device11 * This, 24569 _In_ ID3D12DeviceChild *pObject, 24570 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 24571 DWORD Access, 24572 _In_opt_ LPCWSTR Name, 24573 _Out_ HANDLE *pHandle); 24574 24575 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 24576 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 24577 ID3D12Device11 * This, 24578 _In_ HANDLE NTHandle, 24579 REFIID riid, 24580 _COM_Outptr_opt_ void **ppvObj); 24581 24582 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 24583 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 24584 ID3D12Device11 * This, 24585 _In_ LPCWSTR Name, 24586 DWORD Access, 24587 /* [annotation][out] */ 24588 _Out_ HANDLE *pNTHandle); 24589 24590 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 24591 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 24592 ID3D12Device11 * This, 24593 UINT NumObjects, 24594 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 24595 24596 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 24597 HRESULT ( STDMETHODCALLTYPE *Evict )( 24598 ID3D12Device11 * This, 24599 UINT NumObjects, 24600 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 24601 24602 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 24603 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 24604 ID3D12Device11 * This, 24605 UINT64 InitialValue, 24606 D3D12_FENCE_FLAGS Flags, 24607 REFIID riid, 24608 _COM_Outptr_ void **ppFence); 24609 24610 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 24611 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 24612 ID3D12Device11 * This); 24613 24614 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 24615 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 24616 ID3D12Device11 * This, 24617 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 24618 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 24619 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 24620 UINT64 BaseOffset, 24621 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 24622 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 24623 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 24624 _Out_opt_ UINT64 *pTotalBytes); 24625 24626 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 24627 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 24628 ID3D12Device11 * This, 24629 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 24630 REFIID riid, 24631 _COM_Outptr_opt_ void **ppvHeap); 24632 24633 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 24634 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 24635 ID3D12Device11 * This, 24636 BOOL Enable); 24637 24638 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 24639 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 24640 ID3D12Device11 * This, 24641 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 24642 _In_opt_ ID3D12RootSignature *pRootSignature, 24643 REFIID riid, 24644 _COM_Outptr_opt_ void **ppvCommandSignature); 24645 24646 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 24647 void ( STDMETHODCALLTYPE *GetResourceTiling )( 24648 ID3D12Device11 * This, 24649 _In_ ID3D12Resource *pTiledResource, 24650 _Out_opt_ UINT *pNumTilesForEntireResource, 24651 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 24652 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 24653 _Inout_opt_ UINT *pNumSubresourceTilings, 24654 _In_ UINT FirstSubresourceTilingToGet, 24655 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 24656 24657 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 24658#if !defined(_WIN32) 24659 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 24660 ID3D12Device11 * This); 24661 24662#else 24663 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 24664 ID3D12Device11 * This, 24665 LUID * RetVal); 24666 24667#endif 24668 24669 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 24670 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 24671 ID3D12Device11 * This, 24672 _In_reads_(BlobLength) const void *pLibraryBlob, 24673 SIZE_T BlobLength, 24674 REFIID riid, 24675 _COM_Outptr_ void **ppPipelineLibrary); 24676 24677 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 24678 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 24679 ID3D12Device11 * This, 24680 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 24681 _In_reads_(NumFences) const UINT64 *pFenceValues, 24682 UINT NumFences, 24683 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 24684 HANDLE hEvent); 24685 24686 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 24687 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 24688 ID3D12Device11 * This, 24689 UINT NumObjects, 24690 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 24691 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 24692 24693 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 24694 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 24695 ID3D12Device11 * This, 24696 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 24697 REFIID riid, 24698 _COM_Outptr_ void **ppPipelineState); 24699 24700 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 24701 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 24702 ID3D12Device11 * This, 24703 _In_ const void *pAddress, 24704 REFIID riid, 24705 _COM_Outptr_ void **ppvHeap); 24706 24707 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 24708 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 24709 ID3D12Device11 * This, 24710 _In_ HANDLE hFileMapping, 24711 REFIID riid, 24712 _COM_Outptr_ void **ppvHeap); 24713 24714 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 24715 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 24716 ID3D12Device11 * This, 24717 D3D12_RESIDENCY_FLAGS Flags, 24718 UINT NumObjects, 24719 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 24720 _In_ ID3D12Fence *pFenceToSignal, 24721 UINT64 FenceValueToSignal); 24722 24723 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 24724 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 24725 ID3D12Device11 * This, 24726 _In_ UINT nodeMask, 24727 _In_ D3D12_COMMAND_LIST_TYPE type, 24728 _In_ D3D12_COMMAND_LIST_FLAGS flags, 24729 REFIID riid, 24730 _COM_Outptr_ void **ppCommandList); 24731 24732 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 24733 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 24734 ID3D12Device11 * This, 24735 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 24736 _In_ REFIID riid, 24737 _COM_Outptr_ void **ppSession); 24738 24739 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 24740 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 24741 ID3D12Device11 * This, 24742 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 24743 D3D12_HEAP_FLAGS HeapFlags, 24744 _In_ const D3D12_RESOURCE_DESC *pDesc, 24745 D3D12_RESOURCE_STATES InitialResourceState, 24746 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24747 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24748 REFIID riidResource, 24749 _COM_Outptr_opt_ void **ppvResource); 24750 24751 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 24752 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 24753 ID3D12Device11 * This, 24754 _In_ const D3D12_HEAP_DESC *pDesc, 24755 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24756 REFIID riid, 24757 _COM_Outptr_opt_ void **ppvHeap); 24758 24759 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 24760 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 24761 ID3D12Device11 * This, 24762 _In_ const D3D12_RESOURCE_DESC *pDesc, 24763 D3D12_RESOURCE_STATES InitialState, 24764 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24765 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24766 REFIID riid, 24767 _COM_Outptr_opt_ void **ppvResource); 24768 24769 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 24770#if !defined(_WIN32) 24771 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 24772 ID3D12Device11 * This, 24773 UINT visibleMask, 24774 UINT numResourceDescs, 24775 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 24776 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 24777 24778#else 24779 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 24780 ID3D12Device11 * This, 24781 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 24782 UINT visibleMask, 24783 UINT numResourceDescs, 24784 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 24785 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 24786 24787#endif 24788 24789 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 24790 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 24791 ID3D12Device11 * This, 24792 _In_ ID3D12LifetimeOwner *pOwner, 24793 REFIID riid, 24794 _COM_Outptr_ void **ppvTracker); 24795 24796 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 24797 void ( STDMETHODCALLTYPE *RemoveDevice )( 24798 ID3D12Device11 * This); 24799 24800 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 24801 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 24802 ID3D12Device11 * This, 24803 _Inout_ UINT *pNumMetaCommands, 24804 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 24805 24806 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 24807 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 24808 ID3D12Device11 * This, 24809 _In_ REFGUID CommandId, 24810 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 24811 _Out_opt_ UINT *pTotalStructureSizeInBytes, 24812 _Inout_ UINT *pParameterCount, 24813 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 24814 24815 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 24816 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 24817 ID3D12Device11 * This, 24818 _In_ REFGUID CommandId, 24819 _In_ UINT NodeMask, 24820 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 24821 _In_ SIZE_T CreationParametersDataSizeInBytes, 24822 REFIID riid, 24823 _COM_Outptr_ void **ppMetaCommand); 24824 24825 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 24826 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 24827 ID3D12Device11 * This, 24828 const D3D12_STATE_OBJECT_DESC *pDesc, 24829 REFIID riid, 24830 _COM_Outptr_ void **ppStateObject); 24831 24832 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 24833 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 24834 ID3D12Device11 * This, 24835 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 24836 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 24837 24838 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 24839 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 24840 ID3D12Device11 * This, 24841 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 24842 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 24843 24844 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 24845 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 24846 ID3D12Device11 * This, 24847 D3D12_BACKGROUND_PROCESSING_MODE Mode, 24848 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 24849 _In_opt_ HANDLE hEventToSignalUponCompletion, 24850 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 24851 24852 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 24853 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 24854 ID3D12Device11 * This, 24855 const D3D12_STATE_OBJECT_DESC *pAddition, 24856 ID3D12StateObject *pStateObjectToGrowFrom, 24857 REFIID riid, 24858 _COM_Outptr_ void **ppNewStateObject); 24859 24860 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 24861 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 24862 ID3D12Device11 * This, 24863 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 24864 _In_ REFIID riid, 24865 _COM_Outptr_ void **ppSession); 24866 24867 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 24868#if !defined(_WIN32) 24869 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 24870 ID3D12Device11 * This, 24871 UINT visibleMask, 24872 UINT numResourceDescs, 24873 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 24874 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 24875 24876#else 24877 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 24878 ID3D12Device11 * This, 24879 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 24880 UINT visibleMask, 24881 UINT numResourceDescs, 24882 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 24883 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 24884 24885#endif 24886 24887 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 24888 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 24889 ID3D12Device11 * This, 24890 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 24891 D3D12_HEAP_FLAGS HeapFlags, 24892 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 24893 D3D12_RESOURCE_STATES InitialResourceState, 24894 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24895 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24896 REFIID riidResource, 24897 _COM_Outptr_opt_ void **ppvResource); 24898 24899 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 24900 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 24901 ID3D12Device11 * This, 24902 _In_ ID3D12Heap *pHeap, 24903 UINT64 HeapOffset, 24904 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 24905 D3D12_RESOURCE_STATES InitialState, 24906 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24907 REFIID riid, 24908 _COM_Outptr_opt_ void **ppvResource); 24909 24910 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 24911 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 24912 ID3D12Device11 * This, 24913 _In_opt_ ID3D12Resource *pTargetedResource, 24914 _In_opt_ ID3D12Resource *pFeedbackResource, 24915 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24916 24917 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 24918 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 24919 ID3D12Device11 * This, 24920 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 24921 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 24922 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 24923 UINT64 BaseOffset, 24924 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 24925 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 24926 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 24927 _Out_opt_ UINT64 *pTotalBytes); 24928 24929 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 24930 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 24931 ID3D12Device11 * This, 24932 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 24933 REFIID riid, 24934 _COM_Outptr_opt_ void **ppvSession); 24935 24936 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 24937 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 24938 ID3D12Device11 * This, 24939 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 24940 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 24941 24942 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 24943 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 24944 ID3D12Device11 * This, 24945 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 24946 REFIID CreatorID, 24947 REFIID riid, 24948 _COM_Outptr_ void **ppCommandQueue); 24949 24950 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) 24951 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( 24952 ID3D12Device11 * This, 24953 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 24954 D3D12_HEAP_FLAGS HeapFlags, 24955 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 24956 D3D12_BARRIER_LAYOUT InitialLayout, 24957 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24958 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24959 UINT32 NumCastableFormats, 24960 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 24961 REFIID riidResource, 24962 _COM_Outptr_opt_ void **ppvResource); 24963 24964 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) 24965 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( 24966 ID3D12Device11 * This, 24967 _In_ ID3D12Heap *pHeap, 24968 UINT64 HeapOffset, 24969 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 24970 D3D12_BARRIER_LAYOUT InitialLayout, 24971 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24972 UINT32 NumCastableFormats, 24973 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 24974 REFIID riid, 24975 _COM_Outptr_opt_ void **ppvResource); 24976 24977 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) 24978 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( 24979 ID3D12Device11 * This, 24980 _In_ const D3D12_RESOURCE_DESC *pDesc, 24981 D3D12_BARRIER_LAYOUT InitialLayout, 24982 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 24983 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 24984 UINT32 NumCastableFormats, 24985 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 24986 REFIID riid, 24987 _COM_Outptr_opt_ void **ppvResource); 24988 24989 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) 24990 void ( STDMETHODCALLTYPE *CreateSampler2 )( 24991 ID3D12Device11 * This, 24992 _In_ const D3D12_SAMPLER_DESC2 *pDesc, 24993 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 24994 24995 END_INTERFACE 24996 } ID3D12Device11Vtbl; 24997 24998 interface ID3D12Device11 24999 { 25000 CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl; 25001 }; 25002 25003 25004 25005#ifdef COBJMACROS 25006 25007 25008#define ID3D12Device11_QueryInterface(This,riid,ppvObject) \ 25009 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 25010 25011#define ID3D12Device11_AddRef(This) \ 25012 ( (This)->lpVtbl -> AddRef(This) ) 25013 25014#define ID3D12Device11_Release(This) \ 25015 ( (This)->lpVtbl -> Release(This) ) 25016 25017 25018#define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \ 25019 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 25020 25021#define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \ 25022 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 25023 25024#define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \ 25025 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 25026 25027#define ID3D12Device11_SetName(This,Name) \ 25028 ( (This)->lpVtbl -> SetName(This,Name) ) 25029 25030 25031#define ID3D12Device11_GetNodeCount(This) \ 25032 ( (This)->lpVtbl -> GetNodeCount(This) ) 25033 25034#define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 25035 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 25036 25037#define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 25038 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 25039 25040#define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 25041 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 25042 25043#define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 25044 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 25045 25046#define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 25047 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 25048 25049#define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 25050 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 25051 25052#define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 25053 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 25054 25055#define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 25056 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 25057 25058#define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 25059 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 25060 25061#define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 25062 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 25063 25064#define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 25065 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 25066 25067#define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 25068 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 25069 25070#define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 25071 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 25072 25073#define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 25074 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 25075 25076#define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \ 25077 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 25078 25079#define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 25080 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 25081 25082#define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 25083 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 25084#if !defined(_WIN32) 25085 25086#define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 25087 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 25088#else 25089#define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 25090 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 25091#endif 25092#if !defined(_WIN32) 25093 25094#define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \ 25095 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 25096#else 25097#define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 25098 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 25099#endif 25100 25101#define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 25102 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 25103 25104#define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \ 25105 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 25106 25107#define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 25108 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 25109 25110#define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 25111 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 25112 25113#define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 25114 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 25115 25116#define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 25117 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 25118 25119#define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 25120 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 25121 25122#define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \ 25123 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 25124 25125#define ID3D12Device11_Evict(This,NumObjects,ppObjects) \ 25126 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 25127 25128#define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 25129 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 25130 25131#define ID3D12Device11_GetDeviceRemovedReason(This) \ 25132 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 25133 25134#define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 25135 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 25136 25137#define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 25138 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 25139 25140#define ID3D12Device11_SetStablePowerState(This,Enable) \ 25141 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 25142 25143#define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 25144 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 25145 25146#define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 25147 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 25148#if !defined(_WIN32) 25149 25150#define ID3D12Device11_GetAdapterLuid(This) \ 25151 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 25152#else 25153#define ID3D12Device11_GetAdapterLuid(This,RetVal) \ 25154 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 25155#endif 25156 25157 25158#define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 25159 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 25160 25161#define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 25162 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 25163 25164#define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 25165 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 25166 25167 25168#define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 25169 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 25170 25171 25172#define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 25173 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 25174 25175#define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 25176 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 25177 25178#define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 25179 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 25180 25181 25182#define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 25183 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 25184 25185#define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 25186 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 25187 25188#define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 25189 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 25190 25191#define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 25192 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 25193 25194#define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 25195 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 25196#if !defined(_WIN32) 25197 25198#define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 25199 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 25200#else 25201#define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 25202 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 25203#endif 25204 25205 25206#define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 25207 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 25208 25209#define ID3D12Device11_RemoveDevice(This) \ 25210 ( (This)->lpVtbl -> RemoveDevice(This) ) 25211 25212#define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 25213 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 25214 25215#define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 25216 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 25217 25218#define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 25219 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 25220 25221#define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \ 25222 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 25223 25224#define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 25225 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 25226 25227#define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 25228 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 25229 25230 25231#define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 25232 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 25233 25234 25235#define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 25236 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 25237 25238#define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 25239 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 25240 25241#if !defined(_WIN32) 25242 25243#define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 25244 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 25245#else 25246#define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 25247 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 25248#endif 25249 25250#define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 25251 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 25252 25253#define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 25254 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 25255 25256#define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 25257 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 25258 25259#define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 25260 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 25261 25262 25263#define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 25264 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 25265 25266#define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \ 25267 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 25268 25269#define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 25270 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 25271 25272 25273#define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ 25274 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) 25275 25276#define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 25277 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 25278 25279#define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 25280 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 25281 25282 25283#define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \ 25284 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) 25285 25286#endif /* COBJMACROS */ 25287 25288 25289#endif /* C style interface */ 25290 25291 25292 25293 25294#endif /* __ID3D12Device11_INTERFACE_DEFINED__ */ 25295 25296 25297#ifndef __ID3D12Device12_INTERFACE_DEFINED__ 25298#define __ID3D12Device12_INTERFACE_DEFINED__ 25299 25300/* interface ID3D12Device12 */ 25301/* [unique][local][object][uuid] */ 25302 25303 25304EXTERN_C const IID IID_ID3D12Device12; 25305 25306#if defined(__cplusplus) && !defined(CINTERFACE) 25307 25308 MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5") 25309 ID3D12Device12 : public ID3D12Device11 25310 { 25311 public: 25312#if defined(_MSC_VER) || !defined(_WIN32) 25313 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3( 25314 UINT visibleMask, 25315 UINT numResourceDescs, 25316 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 25317 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 25318 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 25319 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 25320#else 25321 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3( 25322 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 25323 UINT visibleMask, 25324 UINT numResourceDescs, 25325 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 25326 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 25327 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 25328 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; 25329#endif 25330 25331 }; 25332 25333 25334#else /* C style interface */ 25335 25336 typedef struct ID3D12Device12Vtbl 25337 { 25338 BEGIN_INTERFACE 25339 25340 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 25341 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 25342 ID3D12Device12 * This, 25343 REFIID riid, 25344 _COM_Outptr_ void **ppvObject); 25345 25346 DECLSPEC_XFGVIRT(IUnknown, AddRef) 25347 ULONG ( STDMETHODCALLTYPE *AddRef )( 25348 ID3D12Device12 * This); 25349 25350 DECLSPEC_XFGVIRT(IUnknown, Release) 25351 ULONG ( STDMETHODCALLTYPE *Release )( 25352 ID3D12Device12 * This); 25353 25354 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 25355 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 25356 ID3D12Device12 * This, 25357 _In_ REFGUID guid, 25358 _Inout_ UINT *pDataSize, 25359 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 25360 25361 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 25362 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 25363 ID3D12Device12 * This, 25364 _In_ REFGUID guid, 25365 _In_ UINT DataSize, 25366 _In_reads_bytes_opt_( DataSize ) const void *pData); 25367 25368 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 25369 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 25370 ID3D12Device12 * This, 25371 _In_ REFGUID guid, 25372 _In_opt_ const IUnknown *pData); 25373 25374 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 25375 HRESULT ( STDMETHODCALLTYPE *SetName )( 25376 ID3D12Device12 * This, 25377 _In_z_ LPCWSTR Name); 25378 25379 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 25380 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 25381 ID3D12Device12 * This); 25382 25383 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 25384 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 25385 ID3D12Device12 * This, 25386 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 25387 REFIID riid, 25388 _COM_Outptr_ void **ppCommandQueue); 25389 25390 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 25391 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 25392 ID3D12Device12 * This, 25393 _In_ D3D12_COMMAND_LIST_TYPE type, 25394 REFIID riid, 25395 _COM_Outptr_ void **ppCommandAllocator); 25396 25397 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 25398 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 25399 ID3D12Device12 * This, 25400 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 25401 REFIID riid, 25402 _COM_Outptr_ void **ppPipelineState); 25403 25404 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 25405 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 25406 ID3D12Device12 * This, 25407 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 25408 REFIID riid, 25409 _COM_Outptr_ void **ppPipelineState); 25410 25411 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 25412 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 25413 ID3D12Device12 * This, 25414 _In_ UINT nodeMask, 25415 _In_ D3D12_COMMAND_LIST_TYPE type, 25416 _In_ ID3D12CommandAllocator *pCommandAllocator, 25417 _In_opt_ ID3D12PipelineState *pInitialState, 25418 REFIID riid, 25419 _COM_Outptr_ void **ppCommandList); 25420 25421 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 25422 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 25423 ID3D12Device12 * This, 25424 D3D12_FEATURE Feature, 25425 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 25426 UINT FeatureSupportDataSize); 25427 25428 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 25429 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 25430 ID3D12Device12 * This, 25431 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 25432 REFIID riid, 25433 _COM_Outptr_ void **ppvHeap); 25434 25435 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 25436 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 25437 ID3D12Device12 * This, 25438 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 25439 25440 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 25441 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 25442 ID3D12Device12 * This, 25443 _In_ UINT nodeMask, 25444 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 25445 _In_ SIZE_T blobLengthInBytes, 25446 REFIID riid, 25447 _COM_Outptr_ void **ppvRootSignature); 25448 25449 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 25450 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 25451 ID3D12Device12 * This, 25452 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 25453 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25454 25455 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 25456 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 25457 ID3D12Device12 * This, 25458 _In_opt_ ID3D12Resource *pResource, 25459 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 25460 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25461 25462 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 25463 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 25464 ID3D12Device12 * This, 25465 _In_opt_ ID3D12Resource *pResource, 25466 _In_opt_ ID3D12Resource *pCounterResource, 25467 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 25468 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25469 25470 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 25471 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 25472 ID3D12Device12 * This, 25473 _In_opt_ ID3D12Resource *pResource, 25474 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 25475 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25476 25477 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 25478 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 25479 ID3D12Device12 * This, 25480 _In_opt_ ID3D12Resource *pResource, 25481 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 25482 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25483 25484 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 25485 void ( STDMETHODCALLTYPE *CreateSampler )( 25486 ID3D12Device12 * This, 25487 _In_ const D3D12_SAMPLER_DESC *pDesc, 25488 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25489 25490 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 25491 void ( STDMETHODCALLTYPE *CopyDescriptors )( 25492 ID3D12Device12 * This, 25493 _In_ UINT NumDestDescriptorRanges, 25494 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 25495 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 25496 _In_ UINT NumSrcDescriptorRanges, 25497 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 25498 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 25499 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 25500 25501 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 25502 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 25503 ID3D12Device12 * This, 25504 _In_ UINT NumDescriptors, 25505 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 25506 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 25507 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 25508 25509 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 25510#if !defined(_WIN32) 25511 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 25512 ID3D12Device12 * This, 25513 _In_ UINT visibleMask, 25514 _In_ UINT numResourceDescs, 25515 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 25516 25517#else 25518 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 25519 ID3D12Device12 * This, 25520 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 25521 _In_ UINT visibleMask, 25522 _In_ UINT numResourceDescs, 25523 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 25524 25525#endif 25526 25527 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 25528#if !defined(_WIN32) 25529 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 25530 ID3D12Device12 * This, 25531 _In_ UINT nodeMask, 25532 D3D12_HEAP_TYPE heapType); 25533 25534#else 25535 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 25536 ID3D12Device12 * This, 25537 D3D12_HEAP_PROPERTIES * RetVal, 25538 _In_ UINT nodeMask, 25539 D3D12_HEAP_TYPE heapType); 25540 25541#endif 25542 25543 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 25544 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 25545 ID3D12Device12 * This, 25546 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 25547 D3D12_HEAP_FLAGS HeapFlags, 25548 _In_ const D3D12_RESOURCE_DESC *pDesc, 25549 D3D12_RESOURCE_STATES InitialResourceState, 25550 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25551 REFIID riidResource, 25552 _COM_Outptr_opt_ void **ppvResource); 25553 25554 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 25555 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 25556 ID3D12Device12 * This, 25557 _In_ const D3D12_HEAP_DESC *pDesc, 25558 REFIID riid, 25559 _COM_Outptr_opt_ void **ppvHeap); 25560 25561 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 25562 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 25563 ID3D12Device12 * This, 25564 _In_ ID3D12Heap *pHeap, 25565 UINT64 HeapOffset, 25566 _In_ const D3D12_RESOURCE_DESC *pDesc, 25567 D3D12_RESOURCE_STATES InitialState, 25568 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25569 REFIID riid, 25570 _COM_Outptr_opt_ void **ppvResource); 25571 25572 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 25573 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 25574 ID3D12Device12 * This, 25575 _In_ const D3D12_RESOURCE_DESC *pDesc, 25576 D3D12_RESOURCE_STATES InitialState, 25577 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25578 REFIID riid, 25579 _COM_Outptr_opt_ void **ppvResource); 25580 25581 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 25582 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 25583 ID3D12Device12 * This, 25584 _In_ ID3D12DeviceChild *pObject, 25585 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 25586 DWORD Access, 25587 _In_opt_ LPCWSTR Name, 25588 _Out_ HANDLE *pHandle); 25589 25590 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 25591 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 25592 ID3D12Device12 * This, 25593 _In_ HANDLE NTHandle, 25594 REFIID riid, 25595 _COM_Outptr_opt_ void **ppvObj); 25596 25597 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 25598 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 25599 ID3D12Device12 * This, 25600 _In_ LPCWSTR Name, 25601 DWORD Access, 25602 /* [annotation][out] */ 25603 _Out_ HANDLE *pNTHandle); 25604 25605 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 25606 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 25607 ID3D12Device12 * This, 25608 UINT NumObjects, 25609 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 25610 25611 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 25612 HRESULT ( STDMETHODCALLTYPE *Evict )( 25613 ID3D12Device12 * This, 25614 UINT NumObjects, 25615 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 25616 25617 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 25618 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 25619 ID3D12Device12 * This, 25620 UINT64 InitialValue, 25621 D3D12_FENCE_FLAGS Flags, 25622 REFIID riid, 25623 _COM_Outptr_ void **ppFence); 25624 25625 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 25626 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 25627 ID3D12Device12 * This); 25628 25629 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 25630 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 25631 ID3D12Device12 * This, 25632 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 25633 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 25634 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 25635 UINT64 BaseOffset, 25636 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 25637 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 25638 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 25639 _Out_opt_ UINT64 *pTotalBytes); 25640 25641 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 25642 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 25643 ID3D12Device12 * This, 25644 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 25645 REFIID riid, 25646 _COM_Outptr_opt_ void **ppvHeap); 25647 25648 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 25649 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 25650 ID3D12Device12 * This, 25651 BOOL Enable); 25652 25653 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 25654 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 25655 ID3D12Device12 * This, 25656 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 25657 _In_opt_ ID3D12RootSignature *pRootSignature, 25658 REFIID riid, 25659 _COM_Outptr_opt_ void **ppvCommandSignature); 25660 25661 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 25662 void ( STDMETHODCALLTYPE *GetResourceTiling )( 25663 ID3D12Device12 * This, 25664 _In_ ID3D12Resource *pTiledResource, 25665 _Out_opt_ UINT *pNumTilesForEntireResource, 25666 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 25667 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 25668 _Inout_opt_ UINT *pNumSubresourceTilings, 25669 _In_ UINT FirstSubresourceTilingToGet, 25670 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 25671 25672 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 25673#if !defined(_WIN32) 25674 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 25675 ID3D12Device12 * This); 25676 25677#else 25678 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 25679 ID3D12Device12 * This, 25680 LUID * RetVal); 25681 25682#endif 25683 25684 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 25685 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 25686 ID3D12Device12 * This, 25687 _In_reads_(BlobLength) const void *pLibraryBlob, 25688 SIZE_T BlobLength, 25689 REFIID riid, 25690 _COM_Outptr_ void **ppPipelineLibrary); 25691 25692 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 25693 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 25694 ID3D12Device12 * This, 25695 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 25696 _In_reads_(NumFences) const UINT64 *pFenceValues, 25697 UINT NumFences, 25698 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 25699 HANDLE hEvent); 25700 25701 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 25702 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 25703 ID3D12Device12 * This, 25704 UINT NumObjects, 25705 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 25706 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 25707 25708 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 25709 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 25710 ID3D12Device12 * This, 25711 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 25712 REFIID riid, 25713 _COM_Outptr_ void **ppPipelineState); 25714 25715 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 25716 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 25717 ID3D12Device12 * This, 25718 _In_ const void *pAddress, 25719 REFIID riid, 25720 _COM_Outptr_ void **ppvHeap); 25721 25722 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 25723 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 25724 ID3D12Device12 * This, 25725 _In_ HANDLE hFileMapping, 25726 REFIID riid, 25727 _COM_Outptr_ void **ppvHeap); 25728 25729 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 25730 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 25731 ID3D12Device12 * This, 25732 D3D12_RESIDENCY_FLAGS Flags, 25733 UINT NumObjects, 25734 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 25735 _In_ ID3D12Fence *pFenceToSignal, 25736 UINT64 FenceValueToSignal); 25737 25738 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 25739 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 25740 ID3D12Device12 * This, 25741 _In_ UINT nodeMask, 25742 _In_ D3D12_COMMAND_LIST_TYPE type, 25743 _In_ D3D12_COMMAND_LIST_FLAGS flags, 25744 REFIID riid, 25745 _COM_Outptr_ void **ppCommandList); 25746 25747 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 25748 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 25749 ID3D12Device12 * This, 25750 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 25751 _In_ REFIID riid, 25752 _COM_Outptr_ void **ppSession); 25753 25754 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 25755 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 25756 ID3D12Device12 * This, 25757 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 25758 D3D12_HEAP_FLAGS HeapFlags, 25759 _In_ const D3D12_RESOURCE_DESC *pDesc, 25760 D3D12_RESOURCE_STATES InitialResourceState, 25761 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25762 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25763 REFIID riidResource, 25764 _COM_Outptr_opt_ void **ppvResource); 25765 25766 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 25767 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 25768 ID3D12Device12 * This, 25769 _In_ const D3D12_HEAP_DESC *pDesc, 25770 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25771 REFIID riid, 25772 _COM_Outptr_opt_ void **ppvHeap); 25773 25774 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 25775 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 25776 ID3D12Device12 * This, 25777 _In_ const D3D12_RESOURCE_DESC *pDesc, 25778 D3D12_RESOURCE_STATES InitialState, 25779 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25780 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25781 REFIID riid, 25782 _COM_Outptr_opt_ void **ppvResource); 25783 25784 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 25785#if !defined(_WIN32) 25786 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 25787 ID3D12Device12 * This, 25788 UINT visibleMask, 25789 UINT numResourceDescs, 25790 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 25791 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 25792 25793#else 25794 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 25795 ID3D12Device12 * This, 25796 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 25797 UINT visibleMask, 25798 UINT numResourceDescs, 25799 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 25800 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 25801 25802#endif 25803 25804 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 25805 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 25806 ID3D12Device12 * This, 25807 _In_ ID3D12LifetimeOwner *pOwner, 25808 REFIID riid, 25809 _COM_Outptr_ void **ppvTracker); 25810 25811 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 25812 void ( STDMETHODCALLTYPE *RemoveDevice )( 25813 ID3D12Device12 * This); 25814 25815 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 25816 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 25817 ID3D12Device12 * This, 25818 _Inout_ UINT *pNumMetaCommands, 25819 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 25820 25821 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 25822 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 25823 ID3D12Device12 * This, 25824 _In_ REFGUID CommandId, 25825 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 25826 _Out_opt_ UINT *pTotalStructureSizeInBytes, 25827 _Inout_ UINT *pParameterCount, 25828 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 25829 25830 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 25831 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 25832 ID3D12Device12 * This, 25833 _In_ REFGUID CommandId, 25834 _In_ UINT NodeMask, 25835 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 25836 _In_ SIZE_T CreationParametersDataSizeInBytes, 25837 REFIID riid, 25838 _COM_Outptr_ void **ppMetaCommand); 25839 25840 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 25841 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 25842 ID3D12Device12 * This, 25843 const D3D12_STATE_OBJECT_DESC *pDesc, 25844 REFIID riid, 25845 _COM_Outptr_ void **ppStateObject); 25846 25847 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 25848 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 25849 ID3D12Device12 * This, 25850 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 25851 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 25852 25853 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 25854 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 25855 ID3D12Device12 * This, 25856 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 25857 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 25858 25859 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 25860 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 25861 ID3D12Device12 * This, 25862 D3D12_BACKGROUND_PROCESSING_MODE Mode, 25863 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 25864 _In_opt_ HANDLE hEventToSignalUponCompletion, 25865 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 25866 25867 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 25868 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 25869 ID3D12Device12 * This, 25870 const D3D12_STATE_OBJECT_DESC *pAddition, 25871 ID3D12StateObject *pStateObjectToGrowFrom, 25872 REFIID riid, 25873 _COM_Outptr_ void **ppNewStateObject); 25874 25875 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 25876 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 25877 ID3D12Device12 * This, 25878 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 25879 _In_ REFIID riid, 25880 _COM_Outptr_ void **ppSession); 25881 25882 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 25883#if !defined(_WIN32) 25884 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 25885 ID3D12Device12 * This, 25886 UINT visibleMask, 25887 UINT numResourceDescs, 25888 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 25889 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 25890 25891#else 25892 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 25893 ID3D12Device12 * This, 25894 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 25895 UINT visibleMask, 25896 UINT numResourceDescs, 25897 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 25898 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 25899 25900#endif 25901 25902 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 25903 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 25904 ID3D12Device12 * This, 25905 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 25906 D3D12_HEAP_FLAGS HeapFlags, 25907 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 25908 D3D12_RESOURCE_STATES InitialResourceState, 25909 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25910 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25911 REFIID riidResource, 25912 _COM_Outptr_opt_ void **ppvResource); 25913 25914 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 25915 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 25916 ID3D12Device12 * This, 25917 _In_ ID3D12Heap *pHeap, 25918 UINT64 HeapOffset, 25919 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 25920 D3D12_RESOURCE_STATES InitialState, 25921 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25922 REFIID riid, 25923 _COM_Outptr_opt_ void **ppvResource); 25924 25925 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 25926 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 25927 ID3D12Device12 * This, 25928 _In_opt_ ID3D12Resource *pTargetedResource, 25929 _In_opt_ ID3D12Resource *pFeedbackResource, 25930 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 25931 25932 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 25933 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 25934 ID3D12Device12 * This, 25935 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 25936 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 25937 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 25938 UINT64 BaseOffset, 25939 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 25940 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 25941 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 25942 _Out_opt_ UINT64 *pTotalBytes); 25943 25944 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 25945 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 25946 ID3D12Device12 * This, 25947 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 25948 REFIID riid, 25949 _COM_Outptr_opt_ void **ppvSession); 25950 25951 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 25952 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 25953 ID3D12Device12 * This, 25954 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 25955 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 25956 25957 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 25958 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 25959 ID3D12Device12 * This, 25960 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 25961 REFIID CreatorID, 25962 REFIID riid, 25963 _COM_Outptr_ void **ppCommandQueue); 25964 25965 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) 25966 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( 25967 ID3D12Device12 * This, 25968 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 25969 D3D12_HEAP_FLAGS HeapFlags, 25970 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 25971 D3D12_BARRIER_LAYOUT InitialLayout, 25972 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25973 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25974 UINT32 NumCastableFormats, 25975 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 25976 REFIID riidResource, 25977 _COM_Outptr_opt_ void **ppvResource); 25978 25979 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) 25980 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( 25981 ID3D12Device12 * This, 25982 _In_ ID3D12Heap *pHeap, 25983 UINT64 HeapOffset, 25984 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 25985 D3D12_BARRIER_LAYOUT InitialLayout, 25986 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25987 UINT32 NumCastableFormats, 25988 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 25989 REFIID riid, 25990 _COM_Outptr_opt_ void **ppvResource); 25991 25992 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) 25993 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( 25994 ID3D12Device12 * This, 25995 _In_ const D3D12_RESOURCE_DESC *pDesc, 25996 D3D12_BARRIER_LAYOUT InitialLayout, 25997 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 25998 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 25999 UINT32 NumCastableFormats, 26000 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 26001 REFIID riid, 26002 _COM_Outptr_opt_ void **ppvResource); 26003 26004 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) 26005 void ( STDMETHODCALLTYPE *CreateSampler2 )( 26006 ID3D12Device12 * This, 26007 _In_ const D3D12_SAMPLER_DESC2 *pDesc, 26008 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26009 26010 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) 26011#if !defined(_WIN32) 26012 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 26013 ID3D12Device12 * This, 26014 UINT visibleMask, 26015 UINT numResourceDescs, 26016 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 26017 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 26018 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 26019 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26020 26021#else 26022 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 26023 ID3D12Device12 * This, 26024 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 26025 UINT visibleMask, 26026 UINT numResourceDescs, 26027 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 26028 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 26029 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 26030 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26031 26032#endif 26033 26034 END_INTERFACE 26035 } ID3D12Device12Vtbl; 26036 26037 interface ID3D12Device12 26038 { 26039 CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl; 26040 }; 26041 26042 26043 26044#ifdef COBJMACROS 26045 26046 26047#define ID3D12Device12_QueryInterface(This,riid,ppvObject) \ 26048 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 26049 26050#define ID3D12Device12_AddRef(This) \ 26051 ( (This)->lpVtbl -> AddRef(This) ) 26052 26053#define ID3D12Device12_Release(This) \ 26054 ( (This)->lpVtbl -> Release(This) ) 26055 26056 26057#define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \ 26058 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 26059 26060#define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \ 26061 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 26062 26063#define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \ 26064 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 26065 26066#define ID3D12Device12_SetName(This,Name) \ 26067 ( (This)->lpVtbl -> SetName(This,Name) ) 26068 26069 26070#define ID3D12Device12_GetNodeCount(This) \ 26071 ( (This)->lpVtbl -> GetNodeCount(This) ) 26072 26073#define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 26074 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 26075 26076#define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 26077 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 26078 26079#define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 26080 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 26081 26082#define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 26083 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 26084 26085#define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 26086 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 26087 26088#define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 26089 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 26090 26091#define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 26092 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 26093 26094#define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 26095 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 26096 26097#define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 26098 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 26099 26100#define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 26101 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 26102 26103#define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 26104 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 26105 26106#define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 26107 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 26108 26109#define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 26110 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 26111 26112#define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 26113 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 26114 26115#define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \ 26116 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 26117 26118#define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 26119 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 26120 26121#define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 26122 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 26123#if !defined(_WIN32) 26124 26125#define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 26126 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 26127#else 26128#define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 26129 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 26130#endif 26131#if !defined(_WIN32) 26132 26133#define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \ 26134 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 26135#else 26136#define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 26137 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 26138#endif 26139 26140#define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 26141 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 26142 26143#define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \ 26144 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 26145 26146#define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 26147 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 26148 26149#define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 26150 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 26151 26152#define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 26153 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 26154 26155#define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 26156 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 26157 26158#define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 26159 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 26160 26161#define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \ 26162 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 26163 26164#define ID3D12Device12_Evict(This,NumObjects,ppObjects) \ 26165 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 26166 26167#define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 26168 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 26169 26170#define ID3D12Device12_GetDeviceRemovedReason(This) \ 26171 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 26172 26173#define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 26174 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 26175 26176#define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 26177 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 26178 26179#define ID3D12Device12_SetStablePowerState(This,Enable) \ 26180 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 26181 26182#define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 26183 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 26184 26185#define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 26186 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 26187#if !defined(_WIN32) 26188 26189#define ID3D12Device12_GetAdapterLuid(This) \ 26190 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 26191#else 26192#define ID3D12Device12_GetAdapterLuid(This,RetVal) \ 26193 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 26194#endif 26195 26196 26197#define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 26198 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 26199 26200#define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 26201 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 26202 26203#define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 26204 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 26205 26206 26207#define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 26208 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 26209 26210 26211#define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 26212 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 26213 26214#define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 26215 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 26216 26217#define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 26218 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 26219 26220 26221#define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 26222 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 26223 26224#define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 26225 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 26226 26227#define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 26228 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 26229 26230#define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 26231 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 26232 26233#define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 26234 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 26235#if !defined(_WIN32) 26236 26237#define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 26238 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 26239#else 26240#define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 26241 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 26242#endif 26243 26244 26245#define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 26246 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 26247 26248#define ID3D12Device12_RemoveDevice(This) \ 26249 ( (This)->lpVtbl -> RemoveDevice(This) ) 26250 26251#define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 26252 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 26253 26254#define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 26255 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 26256 26257#define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 26258 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 26259 26260#define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \ 26261 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 26262 26263#define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 26264 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 26265 26266#define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 26267 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 26268 26269 26270#define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 26271 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 26272 26273 26274#define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 26275 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 26276 26277#define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 26278 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 26279 26280#if !defined(_WIN32) 26281 26282#define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 26283 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 26284#else 26285#define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 26286 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 26287#endif 26288 26289#define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 26290 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 26291 26292#define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 26293 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 26294 26295#define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 26296 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 26297 26298#define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 26299 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 26300 26301 26302#define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 26303 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 26304 26305#define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \ 26306 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 26307 26308#define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 26309 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 26310 26311 26312#define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ 26313 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) 26314 26315#define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 26316 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 26317 26318#define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 26319 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 26320 26321 26322#define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \ 26323 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) 26324 26325#if !defined(_WIN32) 26326 26327#define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 26328 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 26329#else 26330#define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 26331 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 26332#endif 26333 26334#endif /* COBJMACROS */ 26335 26336 26337#endif /* C style interface */ 26338 26339 26340 26341 26342#endif /* __ID3D12Device12_INTERFACE_DEFINED__ */ 26343 26344 26345#ifndef __ID3D12Device13_INTERFACE_DEFINED__ 26346#define __ID3D12Device13_INTERFACE_DEFINED__ 26347 26348/* interface ID3D12Device13 */ 26349/* [unique][local][object][uuid] */ 26350 26351 26352EXTERN_C const IID IID_ID3D12Device13; 26353 26354#if defined(__cplusplus) && !defined(CINTERFACE) 26355 26356 MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e") 26357 ID3D12Device13 : public ID3D12Device12 26358 { 26359 public: 26360 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1( 26361 _In_ const void *pAddress, 26362 SIZE_T size, 26363 REFIID riid, 26364 _COM_Outptr_ void **ppvHeap) = 0; 26365 26366 }; 26367 26368 26369#else /* C style interface */ 26370 26371 typedef struct ID3D12Device13Vtbl 26372 { 26373 BEGIN_INTERFACE 26374 26375 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 26376 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 26377 ID3D12Device13 * This, 26378 REFIID riid, 26379 _COM_Outptr_ void **ppvObject); 26380 26381 DECLSPEC_XFGVIRT(IUnknown, AddRef) 26382 ULONG ( STDMETHODCALLTYPE *AddRef )( 26383 ID3D12Device13 * This); 26384 26385 DECLSPEC_XFGVIRT(IUnknown, Release) 26386 ULONG ( STDMETHODCALLTYPE *Release )( 26387 ID3D12Device13 * This); 26388 26389 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 26390 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 26391 ID3D12Device13 * This, 26392 _In_ REFGUID guid, 26393 _Inout_ UINT *pDataSize, 26394 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 26395 26396 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 26397 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 26398 ID3D12Device13 * This, 26399 _In_ REFGUID guid, 26400 _In_ UINT DataSize, 26401 _In_reads_bytes_opt_( DataSize ) const void *pData); 26402 26403 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 26404 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 26405 ID3D12Device13 * This, 26406 _In_ REFGUID guid, 26407 _In_opt_ const IUnknown *pData); 26408 26409 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 26410 HRESULT ( STDMETHODCALLTYPE *SetName )( 26411 ID3D12Device13 * This, 26412 _In_z_ LPCWSTR Name); 26413 26414 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 26415 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 26416 ID3D12Device13 * This); 26417 26418 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 26419 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 26420 ID3D12Device13 * This, 26421 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 26422 REFIID riid, 26423 _COM_Outptr_ void **ppCommandQueue); 26424 26425 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 26426 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 26427 ID3D12Device13 * This, 26428 _In_ D3D12_COMMAND_LIST_TYPE type, 26429 REFIID riid, 26430 _COM_Outptr_ void **ppCommandAllocator); 26431 26432 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 26433 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 26434 ID3D12Device13 * This, 26435 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 26436 REFIID riid, 26437 _COM_Outptr_ void **ppPipelineState); 26438 26439 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 26440 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 26441 ID3D12Device13 * This, 26442 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 26443 REFIID riid, 26444 _COM_Outptr_ void **ppPipelineState); 26445 26446 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 26447 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 26448 ID3D12Device13 * This, 26449 _In_ UINT nodeMask, 26450 _In_ D3D12_COMMAND_LIST_TYPE type, 26451 _In_ ID3D12CommandAllocator *pCommandAllocator, 26452 _In_opt_ ID3D12PipelineState *pInitialState, 26453 REFIID riid, 26454 _COM_Outptr_ void **ppCommandList); 26455 26456 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 26457 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 26458 ID3D12Device13 * This, 26459 D3D12_FEATURE Feature, 26460 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 26461 UINT FeatureSupportDataSize); 26462 26463 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 26464 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 26465 ID3D12Device13 * This, 26466 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 26467 REFIID riid, 26468 _COM_Outptr_ void **ppvHeap); 26469 26470 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 26471 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 26472 ID3D12Device13 * This, 26473 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 26474 26475 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 26476 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 26477 ID3D12Device13 * This, 26478 _In_ UINT nodeMask, 26479 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 26480 _In_ SIZE_T blobLengthInBytes, 26481 REFIID riid, 26482 _COM_Outptr_ void **ppvRootSignature); 26483 26484 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 26485 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 26486 ID3D12Device13 * This, 26487 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 26488 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26489 26490 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 26491 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 26492 ID3D12Device13 * This, 26493 _In_opt_ ID3D12Resource *pResource, 26494 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 26495 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26496 26497 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 26498 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 26499 ID3D12Device13 * This, 26500 _In_opt_ ID3D12Resource *pResource, 26501 _In_opt_ ID3D12Resource *pCounterResource, 26502 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 26503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26504 26505 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 26506 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 26507 ID3D12Device13 * This, 26508 _In_opt_ ID3D12Resource *pResource, 26509 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 26510 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26511 26512 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 26513 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 26514 ID3D12Device13 * This, 26515 _In_opt_ ID3D12Resource *pResource, 26516 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 26517 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26518 26519 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 26520 void ( STDMETHODCALLTYPE *CreateSampler )( 26521 ID3D12Device13 * This, 26522 _In_ const D3D12_SAMPLER_DESC *pDesc, 26523 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26524 26525 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 26526 void ( STDMETHODCALLTYPE *CopyDescriptors )( 26527 ID3D12Device13 * This, 26528 _In_ UINT NumDestDescriptorRanges, 26529 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 26530 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 26531 _In_ UINT NumSrcDescriptorRanges, 26532 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 26533 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 26534 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 26535 26536 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 26537 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 26538 ID3D12Device13 * This, 26539 _In_ UINT NumDescriptors, 26540 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 26541 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 26542 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 26543 26544 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 26545#if !defined(_WIN32) 26546 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 26547 ID3D12Device13 * This, 26548 _In_ UINT visibleMask, 26549 _In_ UINT numResourceDescs, 26550 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 26551 26552#else 26553 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 26554 ID3D12Device13 * This, 26555 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 26556 _In_ UINT visibleMask, 26557 _In_ UINT numResourceDescs, 26558 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 26559 26560#endif 26561 26562 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 26563#if !defined(_WIN32) 26564 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 26565 ID3D12Device13 * This, 26566 _In_ UINT nodeMask, 26567 D3D12_HEAP_TYPE heapType); 26568 26569#else 26570 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 26571 ID3D12Device13 * This, 26572 D3D12_HEAP_PROPERTIES * RetVal, 26573 _In_ UINT nodeMask, 26574 D3D12_HEAP_TYPE heapType); 26575 26576#endif 26577 26578 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 26579 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 26580 ID3D12Device13 * This, 26581 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 26582 D3D12_HEAP_FLAGS HeapFlags, 26583 _In_ const D3D12_RESOURCE_DESC *pDesc, 26584 D3D12_RESOURCE_STATES InitialResourceState, 26585 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26586 REFIID riidResource, 26587 _COM_Outptr_opt_ void **ppvResource); 26588 26589 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 26590 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 26591 ID3D12Device13 * This, 26592 _In_ const D3D12_HEAP_DESC *pDesc, 26593 REFIID riid, 26594 _COM_Outptr_opt_ void **ppvHeap); 26595 26596 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 26597 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 26598 ID3D12Device13 * This, 26599 _In_ ID3D12Heap *pHeap, 26600 UINT64 HeapOffset, 26601 _In_ const D3D12_RESOURCE_DESC *pDesc, 26602 D3D12_RESOURCE_STATES InitialState, 26603 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26604 REFIID riid, 26605 _COM_Outptr_opt_ void **ppvResource); 26606 26607 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 26608 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 26609 ID3D12Device13 * This, 26610 _In_ const D3D12_RESOURCE_DESC *pDesc, 26611 D3D12_RESOURCE_STATES InitialState, 26612 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26613 REFIID riid, 26614 _COM_Outptr_opt_ void **ppvResource); 26615 26616 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 26617 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 26618 ID3D12Device13 * This, 26619 _In_ ID3D12DeviceChild *pObject, 26620 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 26621 DWORD Access, 26622 _In_opt_ LPCWSTR Name, 26623 _Out_ HANDLE *pHandle); 26624 26625 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 26626 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 26627 ID3D12Device13 * This, 26628 _In_ HANDLE NTHandle, 26629 REFIID riid, 26630 _COM_Outptr_opt_ void **ppvObj); 26631 26632 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 26633 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 26634 ID3D12Device13 * This, 26635 _In_ LPCWSTR Name, 26636 DWORD Access, 26637 /* [annotation][out] */ 26638 _Out_ HANDLE *pNTHandle); 26639 26640 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 26641 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 26642 ID3D12Device13 * This, 26643 UINT NumObjects, 26644 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 26645 26646 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 26647 HRESULT ( STDMETHODCALLTYPE *Evict )( 26648 ID3D12Device13 * This, 26649 UINT NumObjects, 26650 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 26651 26652 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 26653 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 26654 ID3D12Device13 * This, 26655 UINT64 InitialValue, 26656 D3D12_FENCE_FLAGS Flags, 26657 REFIID riid, 26658 _COM_Outptr_ void **ppFence); 26659 26660 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 26661 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 26662 ID3D12Device13 * This); 26663 26664 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 26665 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 26666 ID3D12Device13 * This, 26667 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 26668 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 26669 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 26670 UINT64 BaseOffset, 26671 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 26672 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 26673 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 26674 _Out_opt_ UINT64 *pTotalBytes); 26675 26676 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 26677 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 26678 ID3D12Device13 * This, 26679 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 26680 REFIID riid, 26681 _COM_Outptr_opt_ void **ppvHeap); 26682 26683 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 26684 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 26685 ID3D12Device13 * This, 26686 BOOL Enable); 26687 26688 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 26689 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 26690 ID3D12Device13 * This, 26691 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 26692 _In_opt_ ID3D12RootSignature *pRootSignature, 26693 REFIID riid, 26694 _COM_Outptr_opt_ void **ppvCommandSignature); 26695 26696 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 26697 void ( STDMETHODCALLTYPE *GetResourceTiling )( 26698 ID3D12Device13 * This, 26699 _In_ ID3D12Resource *pTiledResource, 26700 _Out_opt_ UINT *pNumTilesForEntireResource, 26701 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 26702 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 26703 _Inout_opt_ UINT *pNumSubresourceTilings, 26704 _In_ UINT FirstSubresourceTilingToGet, 26705 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 26706 26707 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 26708#if !defined(_WIN32) 26709 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 26710 ID3D12Device13 * This); 26711 26712#else 26713 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 26714 ID3D12Device13 * This, 26715 LUID * RetVal); 26716 26717#endif 26718 26719 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 26720 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 26721 ID3D12Device13 * This, 26722 _In_reads_(BlobLength) const void *pLibraryBlob, 26723 SIZE_T BlobLength, 26724 REFIID riid, 26725 _COM_Outptr_ void **ppPipelineLibrary); 26726 26727 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 26728 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 26729 ID3D12Device13 * This, 26730 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 26731 _In_reads_(NumFences) const UINT64 *pFenceValues, 26732 UINT NumFences, 26733 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 26734 HANDLE hEvent); 26735 26736 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 26737 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 26738 ID3D12Device13 * This, 26739 UINT NumObjects, 26740 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 26741 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 26742 26743 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 26744 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 26745 ID3D12Device13 * This, 26746 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 26747 REFIID riid, 26748 _COM_Outptr_ void **ppPipelineState); 26749 26750 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 26751 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 26752 ID3D12Device13 * This, 26753 _In_ const void *pAddress, 26754 REFIID riid, 26755 _COM_Outptr_ void **ppvHeap); 26756 26757 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 26758 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 26759 ID3D12Device13 * This, 26760 _In_ HANDLE hFileMapping, 26761 REFIID riid, 26762 _COM_Outptr_ void **ppvHeap); 26763 26764 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 26765 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 26766 ID3D12Device13 * This, 26767 D3D12_RESIDENCY_FLAGS Flags, 26768 UINT NumObjects, 26769 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 26770 _In_ ID3D12Fence *pFenceToSignal, 26771 UINT64 FenceValueToSignal); 26772 26773 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 26774 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 26775 ID3D12Device13 * This, 26776 _In_ UINT nodeMask, 26777 _In_ D3D12_COMMAND_LIST_TYPE type, 26778 _In_ D3D12_COMMAND_LIST_FLAGS flags, 26779 REFIID riid, 26780 _COM_Outptr_ void **ppCommandList); 26781 26782 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 26783 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 26784 ID3D12Device13 * This, 26785 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 26786 _In_ REFIID riid, 26787 _COM_Outptr_ void **ppSession); 26788 26789 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 26790 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 26791 ID3D12Device13 * This, 26792 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 26793 D3D12_HEAP_FLAGS HeapFlags, 26794 _In_ const D3D12_RESOURCE_DESC *pDesc, 26795 D3D12_RESOURCE_STATES InitialResourceState, 26796 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26797 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 26798 REFIID riidResource, 26799 _COM_Outptr_opt_ void **ppvResource); 26800 26801 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 26802 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 26803 ID3D12Device13 * This, 26804 _In_ const D3D12_HEAP_DESC *pDesc, 26805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 26806 REFIID riid, 26807 _COM_Outptr_opt_ void **ppvHeap); 26808 26809 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 26810 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 26811 ID3D12Device13 * This, 26812 _In_ const D3D12_RESOURCE_DESC *pDesc, 26813 D3D12_RESOURCE_STATES InitialState, 26814 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26815 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 26816 REFIID riid, 26817 _COM_Outptr_opt_ void **ppvResource); 26818 26819 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 26820#if !defined(_WIN32) 26821 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 26822 ID3D12Device13 * This, 26823 UINT visibleMask, 26824 UINT numResourceDescs, 26825 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 26826 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26827 26828#else 26829 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 26830 ID3D12Device13 * This, 26831 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 26832 UINT visibleMask, 26833 UINT numResourceDescs, 26834 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 26835 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26836 26837#endif 26838 26839 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 26840 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 26841 ID3D12Device13 * This, 26842 _In_ ID3D12LifetimeOwner *pOwner, 26843 REFIID riid, 26844 _COM_Outptr_ void **ppvTracker); 26845 26846 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 26847 void ( STDMETHODCALLTYPE *RemoveDevice )( 26848 ID3D12Device13 * This); 26849 26850 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 26851 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 26852 ID3D12Device13 * This, 26853 _Inout_ UINT *pNumMetaCommands, 26854 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 26855 26856 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 26857 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 26858 ID3D12Device13 * This, 26859 _In_ REFGUID CommandId, 26860 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 26861 _Out_opt_ UINT *pTotalStructureSizeInBytes, 26862 _Inout_ UINT *pParameterCount, 26863 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 26864 26865 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 26866 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 26867 ID3D12Device13 * This, 26868 _In_ REFGUID CommandId, 26869 _In_ UINT NodeMask, 26870 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 26871 _In_ SIZE_T CreationParametersDataSizeInBytes, 26872 REFIID riid, 26873 _COM_Outptr_ void **ppMetaCommand); 26874 26875 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 26876 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 26877 ID3D12Device13 * This, 26878 const D3D12_STATE_OBJECT_DESC *pDesc, 26879 REFIID riid, 26880 _COM_Outptr_ void **ppStateObject); 26881 26882 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 26883 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 26884 ID3D12Device13 * This, 26885 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 26886 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 26887 26888 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 26889 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 26890 ID3D12Device13 * This, 26891 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 26892 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 26893 26894 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 26895 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 26896 ID3D12Device13 * This, 26897 D3D12_BACKGROUND_PROCESSING_MODE Mode, 26898 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 26899 _In_opt_ HANDLE hEventToSignalUponCompletion, 26900 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 26901 26902 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 26903 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 26904 ID3D12Device13 * This, 26905 const D3D12_STATE_OBJECT_DESC *pAddition, 26906 ID3D12StateObject *pStateObjectToGrowFrom, 26907 REFIID riid, 26908 _COM_Outptr_ void **ppNewStateObject); 26909 26910 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 26911 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 26912 ID3D12Device13 * This, 26913 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 26914 _In_ REFIID riid, 26915 _COM_Outptr_ void **ppSession); 26916 26917 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 26918#if !defined(_WIN32) 26919 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 26920 ID3D12Device13 * This, 26921 UINT visibleMask, 26922 UINT numResourceDescs, 26923 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 26924 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26925 26926#else 26927 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 26928 ID3D12Device13 * This, 26929 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 26930 UINT visibleMask, 26931 UINT numResourceDescs, 26932 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 26933 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 26934 26935#endif 26936 26937 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 26938 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 26939 ID3D12Device13 * This, 26940 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 26941 D3D12_HEAP_FLAGS HeapFlags, 26942 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 26943 D3D12_RESOURCE_STATES InitialResourceState, 26944 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26945 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 26946 REFIID riidResource, 26947 _COM_Outptr_opt_ void **ppvResource); 26948 26949 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 26950 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 26951 ID3D12Device13 * This, 26952 _In_ ID3D12Heap *pHeap, 26953 UINT64 HeapOffset, 26954 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 26955 D3D12_RESOURCE_STATES InitialState, 26956 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 26957 REFIID riid, 26958 _COM_Outptr_opt_ void **ppvResource); 26959 26960 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 26961 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 26962 ID3D12Device13 * This, 26963 _In_opt_ ID3D12Resource *pTargetedResource, 26964 _In_opt_ ID3D12Resource *pFeedbackResource, 26965 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 26966 26967 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 26968 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 26969 ID3D12Device13 * This, 26970 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 26971 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 26972 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 26973 UINT64 BaseOffset, 26974 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 26975 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 26976 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 26977 _Out_opt_ UINT64 *pTotalBytes); 26978 26979 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 26980 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 26981 ID3D12Device13 * This, 26982 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 26983 REFIID riid, 26984 _COM_Outptr_opt_ void **ppvSession); 26985 26986 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 26987 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 26988 ID3D12Device13 * This, 26989 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 26990 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 26991 26992 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 26993 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 26994 ID3D12Device13 * This, 26995 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 26996 REFIID CreatorID, 26997 REFIID riid, 26998 _COM_Outptr_ void **ppCommandQueue); 26999 27000 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) 27001 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( 27002 ID3D12Device13 * This, 27003 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 27004 D3D12_HEAP_FLAGS HeapFlags, 27005 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 27006 D3D12_BARRIER_LAYOUT InitialLayout, 27007 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27008 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27009 UINT32 NumCastableFormats, 27010 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 27011 REFIID riidResource, 27012 _COM_Outptr_opt_ void **ppvResource); 27013 27014 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) 27015 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( 27016 ID3D12Device13 * This, 27017 _In_ ID3D12Heap *pHeap, 27018 UINT64 HeapOffset, 27019 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 27020 D3D12_BARRIER_LAYOUT InitialLayout, 27021 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27022 UINT32 NumCastableFormats, 27023 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 27024 REFIID riid, 27025 _COM_Outptr_opt_ void **ppvResource); 27026 27027 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) 27028 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( 27029 ID3D12Device13 * This, 27030 _In_ const D3D12_RESOURCE_DESC *pDesc, 27031 D3D12_BARRIER_LAYOUT InitialLayout, 27032 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27033 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27034 UINT32 NumCastableFormats, 27035 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 27036 REFIID riid, 27037 _COM_Outptr_opt_ void **ppvResource); 27038 27039 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) 27040 void ( STDMETHODCALLTYPE *CreateSampler2 )( 27041 ID3D12Device13 * This, 27042 _In_ const D3D12_SAMPLER_DESC2 *pDesc, 27043 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27044 27045 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) 27046#if !defined(_WIN32) 27047 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 27048 ID3D12Device13 * This, 27049 UINT visibleMask, 27050 UINT numResourceDescs, 27051 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 27052 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 27053 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 27054 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27055 27056#else 27057 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 27058 ID3D12Device13 * This, 27059 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 27060 UINT visibleMask, 27061 UINT numResourceDescs, 27062 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 27063 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 27064 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 27065 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27066 27067#endif 27068 27069 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) 27070 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( 27071 ID3D12Device13 * This, 27072 _In_ const void *pAddress, 27073 SIZE_T size, 27074 REFIID riid, 27075 _COM_Outptr_ void **ppvHeap); 27076 27077 END_INTERFACE 27078 } ID3D12Device13Vtbl; 27079 27080 interface ID3D12Device13 27081 { 27082 CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl; 27083 }; 27084 27085 27086 27087#ifdef COBJMACROS 27088 27089 27090#define ID3D12Device13_QueryInterface(This,riid,ppvObject) \ 27091 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 27092 27093#define ID3D12Device13_AddRef(This) \ 27094 ( (This)->lpVtbl -> AddRef(This) ) 27095 27096#define ID3D12Device13_Release(This) \ 27097 ( (This)->lpVtbl -> Release(This) ) 27098 27099 27100#define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \ 27101 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 27102 27103#define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \ 27104 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 27105 27106#define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \ 27107 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 27108 27109#define ID3D12Device13_SetName(This,Name) \ 27110 ( (This)->lpVtbl -> SetName(This,Name) ) 27111 27112 27113#define ID3D12Device13_GetNodeCount(This) \ 27114 ( (This)->lpVtbl -> GetNodeCount(This) ) 27115 27116#define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 27117 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 27118 27119#define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 27120 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 27121 27122#define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 27123 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 27124 27125#define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 27126 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 27127 27128#define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 27129 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 27130 27131#define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 27132 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 27133 27134#define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 27135 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 27136 27137#define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 27138 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 27139 27140#define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 27141 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 27142 27143#define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 27144 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 27145 27146#define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 27147 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 27148 27149#define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 27150 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 27151 27152#define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 27153 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 27154 27155#define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 27156 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 27157 27158#define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \ 27159 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 27160 27161#define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 27162 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 27163 27164#define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 27165 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 27166#if !defined(_WIN32) 27167 27168#define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 27169 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 27170#else 27171#define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 27172 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 27173#endif 27174#if !defined(_WIN32) 27175 27176#define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \ 27177 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 27178#else 27179#define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 27180 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 27181#endif 27182 27183#define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 27184 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 27185 27186#define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \ 27187 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 27188 27189#define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 27190 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 27191 27192#define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 27193 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 27194 27195#define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 27196 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 27197 27198#define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 27199 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 27200 27201#define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 27202 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 27203 27204#define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \ 27205 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 27206 27207#define ID3D12Device13_Evict(This,NumObjects,ppObjects) \ 27208 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 27209 27210#define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 27211 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 27212 27213#define ID3D12Device13_GetDeviceRemovedReason(This) \ 27214 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 27215 27216#define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 27217 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 27218 27219#define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 27220 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 27221 27222#define ID3D12Device13_SetStablePowerState(This,Enable) \ 27223 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 27224 27225#define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 27226 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 27227 27228#define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 27229 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 27230#if !defined(_WIN32) 27231 27232#define ID3D12Device13_GetAdapterLuid(This) \ 27233 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 27234#else 27235#define ID3D12Device13_GetAdapterLuid(This,RetVal) \ 27236 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 27237#endif 27238 27239 27240#define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 27241 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 27242 27243#define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 27244 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 27245 27246#define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 27247 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 27248 27249 27250#define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 27251 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 27252 27253 27254#define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 27255 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 27256 27257#define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 27258 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 27259 27260#define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 27261 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 27262 27263 27264#define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 27265 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 27266 27267#define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 27268 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 27269 27270#define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 27271 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 27272 27273#define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 27274 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 27275 27276#define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 27277 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 27278#if !defined(_WIN32) 27279 27280#define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 27281 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 27282#else 27283#define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 27284 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 27285#endif 27286 27287 27288#define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 27289 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 27290 27291#define ID3D12Device13_RemoveDevice(This) \ 27292 ( (This)->lpVtbl -> RemoveDevice(This) ) 27293 27294#define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 27295 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 27296 27297#define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 27298 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 27299 27300#define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 27301 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 27302 27303#define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \ 27304 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 27305 27306#define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 27307 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 27308 27309#define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 27310 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 27311 27312 27313#define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 27314 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 27315 27316 27317#define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 27318 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 27319 27320#define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 27321 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 27322 27323#if !defined(_WIN32) 27324 27325#define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 27326 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 27327#else 27328#define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 27329 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 27330#endif 27331 27332#define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 27333 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 27334 27335#define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 27336 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 27337 27338#define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 27339 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 27340 27341#define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 27342 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 27343 27344 27345#define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 27346 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 27347 27348#define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \ 27349 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 27350 27351#define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 27352 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 27353 27354 27355#define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ 27356 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) 27357 27358#define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 27359 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 27360 27361#define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 27362 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 27363 27364 27365#define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \ 27366 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) 27367 27368#if !defined(_WIN32) 27369 27370#define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 27371 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 27372#else 27373#define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 27374 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 27375#endif 27376 27377 27378#define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ 27379 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) 27380 27381#endif /* COBJMACROS */ 27382 27383 27384#endif /* C style interface */ 27385 27386 27387 27388 27389#endif /* __ID3D12Device13_INTERFACE_DEFINED__ */ 27390 27391 27392#ifndef __ID3D12Device14_INTERFACE_DEFINED__ 27393#define __ID3D12Device14_INTERFACE_DEFINED__ 27394 27395/* interface ID3D12Device14 */ 27396/* [unique][local][object][uuid] */ 27397 27398 27399EXTERN_C const IID IID_ID3D12Device14; 27400 27401#if defined(__cplusplus) && !defined(CINTERFACE) 27402 27403 MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323") 27404 ID3D12Device14 : public ID3D12Device13 27405 { 27406 public: 27407 virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary( 27408 _In_ UINT nodeMask, 27409 _In_reads_(blobLengthInBytes) const void *pLibraryBlob, 27410 _In_ SIZE_T blobLengthInBytes, 27411 _In_opt_ LPCWSTR subobjectName, 27412 REFIID riid, 27413 _COM_Outptr_ void **ppvRootSignature) = 0; 27414 27415 }; 27416 27417 27418#else /* C style interface */ 27419 27420 typedef struct ID3D12Device14Vtbl 27421 { 27422 BEGIN_INTERFACE 27423 27424 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 27425 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 27426 ID3D12Device14 * This, 27427 REFIID riid, 27428 _COM_Outptr_ void **ppvObject); 27429 27430 DECLSPEC_XFGVIRT(IUnknown, AddRef) 27431 ULONG ( STDMETHODCALLTYPE *AddRef )( 27432 ID3D12Device14 * This); 27433 27434 DECLSPEC_XFGVIRT(IUnknown, Release) 27435 ULONG ( STDMETHODCALLTYPE *Release )( 27436 ID3D12Device14 * This); 27437 27438 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 27439 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 27440 ID3D12Device14 * This, 27441 _In_ REFGUID guid, 27442 _Inout_ UINT *pDataSize, 27443 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 27444 27445 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 27446 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 27447 ID3D12Device14 * This, 27448 _In_ REFGUID guid, 27449 _In_ UINT DataSize, 27450 _In_reads_bytes_opt_( DataSize ) const void *pData); 27451 27452 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 27453 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 27454 ID3D12Device14 * This, 27455 _In_ REFGUID guid, 27456 _In_opt_ const IUnknown *pData); 27457 27458 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 27459 HRESULT ( STDMETHODCALLTYPE *SetName )( 27460 ID3D12Device14 * This, 27461 _In_z_ LPCWSTR Name); 27462 27463 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) 27464 UINT ( STDMETHODCALLTYPE *GetNodeCount )( 27465 ID3D12Device14 * This); 27466 27467 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) 27468 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( 27469 ID3D12Device14 * This, 27470 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 27471 REFIID riid, 27472 _COM_Outptr_ void **ppCommandQueue); 27473 27474 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) 27475 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( 27476 ID3D12Device14 * This, 27477 _In_ D3D12_COMMAND_LIST_TYPE type, 27478 REFIID riid, 27479 _COM_Outptr_ void **ppCommandAllocator); 27480 27481 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) 27482 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( 27483 ID3D12Device14 * This, 27484 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, 27485 REFIID riid, 27486 _COM_Outptr_ void **ppPipelineState); 27487 27488 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) 27489 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( 27490 ID3D12Device14 * This, 27491 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, 27492 REFIID riid, 27493 _COM_Outptr_ void **ppPipelineState); 27494 27495 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) 27496 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( 27497 ID3D12Device14 * This, 27498 _In_ UINT nodeMask, 27499 _In_ D3D12_COMMAND_LIST_TYPE type, 27500 _In_ ID3D12CommandAllocator *pCommandAllocator, 27501 _In_opt_ ID3D12PipelineState *pInitialState, 27502 REFIID riid, 27503 _COM_Outptr_ void **ppCommandList); 27504 27505 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) 27506 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 27507 ID3D12Device14 * This, 27508 D3D12_FEATURE Feature, 27509 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 27510 UINT FeatureSupportDataSize); 27511 27512 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) 27513 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( 27514 ID3D12Device14 * This, 27515 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, 27516 REFIID riid, 27517 _COM_Outptr_ void **ppvHeap); 27518 27519 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) 27520 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( 27521 ID3D12Device14 * This, 27522 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); 27523 27524 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) 27525 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( 27526 ID3D12Device14 * This, 27527 _In_ UINT nodeMask, 27528 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, 27529 _In_ SIZE_T blobLengthInBytes, 27530 REFIID riid, 27531 _COM_Outptr_ void **ppvRootSignature); 27532 27533 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) 27534 void ( STDMETHODCALLTYPE *CreateConstantBufferView )( 27535 ID3D12Device14 * This, 27536 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, 27537 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27538 27539 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) 27540 void ( STDMETHODCALLTYPE *CreateShaderResourceView )( 27541 ID3D12Device14 * This, 27542 _In_opt_ ID3D12Resource *pResource, 27543 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, 27544 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27545 27546 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) 27547 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( 27548 ID3D12Device14 * This, 27549 _In_opt_ ID3D12Resource *pResource, 27550 _In_opt_ ID3D12Resource *pCounterResource, 27551 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, 27552 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27553 27554 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) 27555 void ( STDMETHODCALLTYPE *CreateRenderTargetView )( 27556 ID3D12Device14 * This, 27557 _In_opt_ ID3D12Resource *pResource, 27558 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, 27559 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27560 27561 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) 27562 void ( STDMETHODCALLTYPE *CreateDepthStencilView )( 27563 ID3D12Device14 * This, 27564 _In_opt_ ID3D12Resource *pResource, 27565 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, 27566 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27567 27568 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) 27569 void ( STDMETHODCALLTYPE *CreateSampler )( 27570 ID3D12Device14 * This, 27571 _In_ const D3D12_SAMPLER_DESC *pDesc, 27572 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 27573 27574 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) 27575 void ( STDMETHODCALLTYPE *CopyDescriptors )( 27576 ID3D12Device14 * This, 27577 _In_ UINT NumDestDescriptorRanges, 27578 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, 27579 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, 27580 _In_ UINT NumSrcDescriptorRanges, 27581 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, 27582 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, 27583 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 27584 27585 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) 27586 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( 27587 ID3D12Device14 * This, 27588 _In_ UINT NumDescriptors, 27589 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, 27590 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, 27591 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); 27592 27593 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) 27594#if !defined(_WIN32) 27595 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 27596 ID3D12Device14 * This, 27597 _In_ UINT visibleMask, 27598 _In_ UINT numResourceDescs, 27599 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 27600 27601#else 27602 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( 27603 ID3D12Device14 * This, 27604 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 27605 _In_ UINT visibleMask, 27606 _In_ UINT numResourceDescs, 27607 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); 27608 27609#endif 27610 27611 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) 27612#if !defined(_WIN32) 27613 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( 27614 ID3D12Device14 * This, 27615 _In_ UINT nodeMask, 27616 D3D12_HEAP_TYPE heapType); 27617 27618#else 27619 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( 27620 ID3D12Device14 * This, 27621 D3D12_HEAP_PROPERTIES * RetVal, 27622 _In_ UINT nodeMask, 27623 D3D12_HEAP_TYPE heapType); 27624 27625#endif 27626 27627 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) 27628 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( 27629 ID3D12Device14 * This, 27630 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 27631 D3D12_HEAP_FLAGS HeapFlags, 27632 _In_ const D3D12_RESOURCE_DESC *pDesc, 27633 D3D12_RESOURCE_STATES InitialResourceState, 27634 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27635 REFIID riidResource, 27636 _COM_Outptr_opt_ void **ppvResource); 27637 27638 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) 27639 HRESULT ( STDMETHODCALLTYPE *CreateHeap )( 27640 ID3D12Device14 * This, 27641 _In_ const D3D12_HEAP_DESC *pDesc, 27642 REFIID riid, 27643 _COM_Outptr_opt_ void **ppvHeap); 27644 27645 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) 27646 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( 27647 ID3D12Device14 * This, 27648 _In_ ID3D12Heap *pHeap, 27649 UINT64 HeapOffset, 27650 _In_ const D3D12_RESOURCE_DESC *pDesc, 27651 D3D12_RESOURCE_STATES InitialState, 27652 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27653 REFIID riid, 27654 _COM_Outptr_opt_ void **ppvResource); 27655 27656 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) 27657 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( 27658 ID3D12Device14 * This, 27659 _In_ const D3D12_RESOURCE_DESC *pDesc, 27660 D3D12_RESOURCE_STATES InitialState, 27661 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27662 REFIID riid, 27663 _COM_Outptr_opt_ void **ppvResource); 27664 27665 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) 27666 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( 27667 ID3D12Device14 * This, 27668 _In_ ID3D12DeviceChild *pObject, 27669 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, 27670 DWORD Access, 27671 _In_opt_ LPCWSTR Name, 27672 _Out_ HANDLE *pHandle); 27673 27674 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) 27675 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( 27676 ID3D12Device14 * This, 27677 _In_ HANDLE NTHandle, 27678 REFIID riid, 27679 _COM_Outptr_opt_ void **ppvObj); 27680 27681 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) 27682 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( 27683 ID3D12Device14 * This, 27684 _In_ LPCWSTR Name, 27685 DWORD Access, 27686 /* [annotation][out] */ 27687 _Out_ HANDLE *pNTHandle); 27688 27689 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) 27690 HRESULT ( STDMETHODCALLTYPE *MakeResident )( 27691 ID3D12Device14 * This, 27692 UINT NumObjects, 27693 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 27694 27695 DECLSPEC_XFGVIRT(ID3D12Device, Evict) 27696 HRESULT ( STDMETHODCALLTYPE *Evict )( 27697 ID3D12Device14 * This, 27698 UINT NumObjects, 27699 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); 27700 27701 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) 27702 HRESULT ( STDMETHODCALLTYPE *CreateFence )( 27703 ID3D12Device14 * This, 27704 UINT64 InitialValue, 27705 D3D12_FENCE_FLAGS Flags, 27706 REFIID riid, 27707 _COM_Outptr_ void **ppFence); 27708 27709 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) 27710 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( 27711 ID3D12Device14 * This); 27712 27713 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) 27714 void ( STDMETHODCALLTYPE *GetCopyableFootprints )( 27715 ID3D12Device14 * This, 27716 _In_ const D3D12_RESOURCE_DESC *pResourceDesc, 27717 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 27718 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 27719 UINT64 BaseOffset, 27720 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 27721 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 27722 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 27723 _Out_opt_ UINT64 *pTotalBytes); 27724 27725 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) 27726 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( 27727 ID3D12Device14 * This, 27728 _In_ const D3D12_QUERY_HEAP_DESC *pDesc, 27729 REFIID riid, 27730 _COM_Outptr_opt_ void **ppvHeap); 27731 27732 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) 27733 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( 27734 ID3D12Device14 * This, 27735 BOOL Enable); 27736 27737 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) 27738 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( 27739 ID3D12Device14 * This, 27740 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, 27741 _In_opt_ ID3D12RootSignature *pRootSignature, 27742 REFIID riid, 27743 _COM_Outptr_opt_ void **ppvCommandSignature); 27744 27745 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) 27746 void ( STDMETHODCALLTYPE *GetResourceTiling )( 27747 ID3D12Device14 * This, 27748 _In_ ID3D12Resource *pTiledResource, 27749 _Out_opt_ UINT *pNumTilesForEntireResource, 27750 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, 27751 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, 27752 _Inout_opt_ UINT *pNumSubresourceTilings, 27753 _In_ UINT FirstSubresourceTilingToGet, 27754 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 27755 27756 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) 27757#if !defined(_WIN32) 27758 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( 27759 ID3D12Device14 * This); 27760 27761#else 27762 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( 27763 ID3D12Device14 * This, 27764 LUID * RetVal); 27765 27766#endif 27767 27768 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) 27769 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( 27770 ID3D12Device14 * This, 27771 _In_reads_(BlobLength) const void *pLibraryBlob, 27772 SIZE_T BlobLength, 27773 REFIID riid, 27774 _COM_Outptr_ void **ppPipelineLibrary); 27775 27776 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) 27777 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( 27778 ID3D12Device14 * This, 27779 _In_reads_(NumFences) ID3D12Fence *const *ppFences, 27780 _In_reads_(NumFences) const UINT64 *pFenceValues, 27781 UINT NumFences, 27782 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, 27783 HANDLE hEvent); 27784 27785 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) 27786 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( 27787 ID3D12Device14 * This, 27788 UINT NumObjects, 27789 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 27790 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); 27791 27792 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) 27793 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( 27794 ID3D12Device14 * This, 27795 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, 27796 REFIID riid, 27797 _COM_Outptr_ void **ppPipelineState); 27798 27799 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) 27800 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( 27801 ID3D12Device14 * This, 27802 _In_ const void *pAddress, 27803 REFIID riid, 27804 _COM_Outptr_ void **ppvHeap); 27805 27806 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) 27807 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( 27808 ID3D12Device14 * This, 27809 _In_ HANDLE hFileMapping, 27810 REFIID riid, 27811 _COM_Outptr_ void **ppvHeap); 27812 27813 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) 27814 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( 27815 ID3D12Device14 * This, 27816 D3D12_RESIDENCY_FLAGS Flags, 27817 UINT NumObjects, 27818 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, 27819 _In_ ID3D12Fence *pFenceToSignal, 27820 UINT64 FenceValueToSignal); 27821 27822 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) 27823 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( 27824 ID3D12Device14 * This, 27825 _In_ UINT nodeMask, 27826 _In_ D3D12_COMMAND_LIST_TYPE type, 27827 _In_ D3D12_COMMAND_LIST_FLAGS flags, 27828 REFIID riid, 27829 _COM_Outptr_ void **ppCommandList); 27830 27831 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) 27832 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( 27833 ID3D12Device14 * This, 27834 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, 27835 _In_ REFIID riid, 27836 _COM_Outptr_ void **ppSession); 27837 27838 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) 27839 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( 27840 ID3D12Device14 * This, 27841 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 27842 D3D12_HEAP_FLAGS HeapFlags, 27843 _In_ const D3D12_RESOURCE_DESC *pDesc, 27844 D3D12_RESOURCE_STATES InitialResourceState, 27845 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27846 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27847 REFIID riidResource, 27848 _COM_Outptr_opt_ void **ppvResource); 27849 27850 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) 27851 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( 27852 ID3D12Device14 * This, 27853 _In_ const D3D12_HEAP_DESC *pDesc, 27854 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27855 REFIID riid, 27856 _COM_Outptr_opt_ void **ppvHeap); 27857 27858 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) 27859 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( 27860 ID3D12Device14 * This, 27861 _In_ const D3D12_RESOURCE_DESC *pDesc, 27862 D3D12_RESOURCE_STATES InitialState, 27863 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27864 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27865 REFIID riid, 27866 _COM_Outptr_opt_ void **ppvResource); 27867 27868 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) 27869#if !defined(_WIN32) 27870 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 27871 ID3D12Device14 * This, 27872 UINT visibleMask, 27873 UINT numResourceDescs, 27874 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 27875 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27876 27877#else 27878 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( 27879 ID3D12Device14 * This, 27880 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 27881 UINT visibleMask, 27882 UINT numResourceDescs, 27883 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, 27884 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27885 27886#endif 27887 27888 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) 27889 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( 27890 ID3D12Device14 * This, 27891 _In_ ID3D12LifetimeOwner *pOwner, 27892 REFIID riid, 27893 _COM_Outptr_ void **ppvTracker); 27894 27895 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) 27896 void ( STDMETHODCALLTYPE *RemoveDevice )( 27897 ID3D12Device14 * This); 27898 27899 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) 27900 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( 27901 ID3D12Device14 * This, 27902 _Inout_ UINT *pNumMetaCommands, 27903 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); 27904 27905 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) 27906 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( 27907 ID3D12Device14 * This, 27908 _In_ REFGUID CommandId, 27909 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, 27910 _Out_opt_ UINT *pTotalStructureSizeInBytes, 27911 _Inout_ UINT *pParameterCount, 27912 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); 27913 27914 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) 27915 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( 27916 ID3D12Device14 * This, 27917 _In_ REFGUID CommandId, 27918 _In_ UINT NodeMask, 27919 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, 27920 _In_ SIZE_T CreationParametersDataSizeInBytes, 27921 REFIID riid, 27922 _COM_Outptr_ void **ppMetaCommand); 27923 27924 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) 27925 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( 27926 ID3D12Device14 * This, 27927 const D3D12_STATE_OBJECT_DESC *pDesc, 27928 REFIID riid, 27929 _COM_Outptr_ void **ppStateObject); 27930 27931 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) 27932 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( 27933 ID3D12Device14 * This, 27934 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, 27935 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); 27936 27937 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) 27938 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( 27939 ID3D12Device14 * This, 27940 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, 27941 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); 27942 27943 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) 27944 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( 27945 ID3D12Device14 * This, 27946 D3D12_BACKGROUND_PROCESSING_MODE Mode, 27947 D3D12_MEASUREMENTS_ACTION MeasurementsAction, 27948 _In_opt_ HANDLE hEventToSignalUponCompletion, 27949 _Out_opt_ BOOL *pbFurtherMeasurementsDesired); 27950 27951 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) 27952 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( 27953 ID3D12Device14 * This, 27954 const D3D12_STATE_OBJECT_DESC *pAddition, 27955 ID3D12StateObject *pStateObjectToGrowFrom, 27956 REFIID riid, 27957 _COM_Outptr_ void **ppNewStateObject); 27958 27959 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) 27960 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( 27961 ID3D12Device14 * This, 27962 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, 27963 _In_ REFIID riid, 27964 _COM_Outptr_ void **ppSession); 27965 27966 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) 27967#if !defined(_WIN32) 27968 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 27969 ID3D12Device14 * This, 27970 UINT visibleMask, 27971 UINT numResourceDescs, 27972 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 27973 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27974 27975#else 27976 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( 27977 ID3D12Device14 * This, 27978 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 27979 UINT visibleMask, 27980 UINT numResourceDescs, 27981 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 27982 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 27983 27984#endif 27985 27986 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) 27987 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( 27988 ID3D12Device14 * This, 27989 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 27990 D3D12_HEAP_FLAGS HeapFlags, 27991 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 27992 D3D12_RESOURCE_STATES InitialResourceState, 27993 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 27994 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 27995 REFIID riidResource, 27996 _COM_Outptr_opt_ void **ppvResource); 27997 27998 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) 27999 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( 28000 ID3D12Device14 * This, 28001 _In_ ID3D12Heap *pHeap, 28002 UINT64 HeapOffset, 28003 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 28004 D3D12_RESOURCE_STATES InitialState, 28005 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 28006 REFIID riid, 28007 _COM_Outptr_opt_ void **ppvResource); 28008 28009 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) 28010 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( 28011 ID3D12Device14 * This, 28012 _In_opt_ ID3D12Resource *pTargetedResource, 28013 _In_opt_ ID3D12Resource *pFeedbackResource, 28014 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 28015 28016 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) 28017 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( 28018 ID3D12Device14 * This, 28019 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, 28020 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, 28021 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, 28022 UINT64 BaseOffset, 28023 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, 28024 _Out_writes_opt_(NumSubresources) UINT *pNumRows, 28025 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, 28026 _Out_opt_ UINT64 *pTotalBytes); 28027 28028 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) 28029 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( 28030 ID3D12Device14 * This, 28031 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, 28032 REFIID riid, 28033 _COM_Outptr_opt_ void **ppvSession); 28034 28035 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) 28036 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( 28037 ID3D12Device14 * This, 28038 D3D12_SHADER_CACHE_KIND_FLAGS Kinds, 28039 D3D12_SHADER_CACHE_CONTROL_FLAGS Control); 28040 28041 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) 28042 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( 28043 ID3D12Device14 * This, 28044 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, 28045 REFIID CreatorID, 28046 REFIID riid, 28047 _COM_Outptr_ void **ppCommandQueue); 28048 28049 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) 28050 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( 28051 ID3D12Device14 * This, 28052 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, 28053 D3D12_HEAP_FLAGS HeapFlags, 28054 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 28055 D3D12_BARRIER_LAYOUT InitialLayout, 28056 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 28057 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 28058 UINT32 NumCastableFormats, 28059 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 28060 REFIID riidResource, 28061 _COM_Outptr_opt_ void **ppvResource); 28062 28063 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) 28064 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( 28065 ID3D12Device14 * This, 28066 _In_ ID3D12Heap *pHeap, 28067 UINT64 HeapOffset, 28068 _In_ const D3D12_RESOURCE_DESC1 *pDesc, 28069 D3D12_BARRIER_LAYOUT InitialLayout, 28070 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 28071 UINT32 NumCastableFormats, 28072 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 28073 REFIID riid, 28074 _COM_Outptr_opt_ void **ppvResource); 28075 28076 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) 28077 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( 28078 ID3D12Device14 * This, 28079 _In_ const D3D12_RESOURCE_DESC *pDesc, 28080 D3D12_BARRIER_LAYOUT InitialLayout, 28081 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, 28082 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, 28083 UINT32 NumCastableFormats, 28084 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, 28085 REFIID riid, 28086 _COM_Outptr_opt_ void **ppvResource); 28087 28088 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) 28089 void ( STDMETHODCALLTYPE *CreateSampler2 )( 28090 ID3D12Device14 * This, 28091 _In_ const D3D12_SAMPLER_DESC2 *pDesc, 28092 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); 28093 28094 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) 28095#if !defined(_WIN32) 28096 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 28097 ID3D12Device14 * This, 28098 UINT visibleMask, 28099 UINT numResourceDescs, 28100 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 28101 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 28102 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 28103 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 28104 28105#else 28106 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( 28107 ID3D12Device14 * This, 28108 D3D12_RESOURCE_ALLOCATION_INFO * RetVal, 28109 UINT visibleMask, 28110 UINT numResourceDescs, 28111 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, 28112 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, 28113 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, 28114 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); 28115 28116#endif 28117 28118 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) 28119 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( 28120 ID3D12Device14 * This, 28121 _In_ const void *pAddress, 28122 SIZE_T size, 28123 REFIID riid, 28124 _COM_Outptr_ void **ppvHeap); 28125 28126 DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary) 28127 HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )( 28128 ID3D12Device14 * This, 28129 _In_ UINT nodeMask, 28130 _In_reads_(blobLengthInBytes) const void *pLibraryBlob, 28131 _In_ SIZE_T blobLengthInBytes, 28132 _In_opt_ LPCWSTR subobjectName, 28133 REFIID riid, 28134 _COM_Outptr_ void **ppvRootSignature); 28135 28136 END_INTERFACE 28137 } ID3D12Device14Vtbl; 28138 28139 interface ID3D12Device14 28140 { 28141 CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl; 28142 }; 28143 28144 28145 28146#ifdef COBJMACROS 28147 28148 28149#define ID3D12Device14_QueryInterface(This,riid,ppvObject) \ 28150 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 28151 28152#define ID3D12Device14_AddRef(This) \ 28153 ( (This)->lpVtbl -> AddRef(This) ) 28154 28155#define ID3D12Device14_Release(This) \ 28156 ( (This)->lpVtbl -> Release(This) ) 28157 28158 28159#define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \ 28160 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 28161 28162#define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \ 28163 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 28164 28165#define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \ 28166 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 28167 28168#define ID3D12Device14_SetName(This,Name) \ 28169 ( (This)->lpVtbl -> SetName(This,Name) ) 28170 28171 28172#define ID3D12Device14_GetNodeCount(This) \ 28173 ( (This)->lpVtbl -> GetNodeCount(This) ) 28174 28175#define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ 28176 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) 28177 28178#define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ 28179 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) 28180 28181#define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ 28182 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) 28183 28184#define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ 28185 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) 28186 28187#define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ 28188 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) 28189 28190#define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 28191 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 28192 28193#define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ 28194 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) 28195 28196#define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ 28197 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) 28198 28199#define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ 28200 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) 28201 28202#define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \ 28203 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) 28204 28205#define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ 28206 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) 28207 28208#define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ 28209 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) 28210 28211#define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ 28212 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) 28213 28214#define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ 28215 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) 28216 28217#define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \ 28218 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) 28219 28220#define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ 28221 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) 28222 28223#define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ 28224 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) 28225#if !defined(_WIN32) 28226 28227#define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ 28228 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) 28229#else 28230#define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ 28231 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) 28232#endif 28233#if !defined(_WIN32) 28234 28235#define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \ 28236 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) 28237#else 28238#define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ 28239 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) 28240#endif 28241 28242#define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ 28243 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) 28244 28245#define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \ 28246 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) 28247 28248#define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 28249 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 28250 28251#define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 28252 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 28253 28254#define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ 28255 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) 28256 28257#define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ 28258 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) 28259 28260#define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ 28261 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) 28262 28263#define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \ 28264 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) 28265 28266#define ID3D12Device14_Evict(This,NumObjects,ppObjects) \ 28267 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) 28268 28269#define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \ 28270 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) 28271 28272#define ID3D12Device14_GetDeviceRemovedReason(This) \ 28273 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) 28274 28275#define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 28276 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 28277 28278#define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ 28279 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) 28280 28281#define ID3D12Device14_SetStablePowerState(This,Enable) \ 28282 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) 28283 28284#define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ 28285 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) 28286 28287#define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ 28288 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) 28289#if !defined(_WIN32) 28290 28291#define ID3D12Device14_GetAdapterLuid(This) \ 28292 ( (This)->lpVtbl -> GetAdapterLuid(This) ) 28293#else 28294#define ID3D12Device14_GetAdapterLuid(This,RetVal) \ 28295 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) 28296#endif 28297 28298 28299#define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ 28300 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) 28301 28302#define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ 28303 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) 28304 28305#define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ 28306 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) 28307 28308 28309#define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ 28310 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) 28311 28312 28313#define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ 28314 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) 28315 28316#define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ 28317 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) 28318 28319#define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ 28320 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) 28321 28322 28323#define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ 28324 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) 28325 28326#define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ 28327 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) 28328 28329#define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 28330 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 28331 28332#define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ 28333 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) 28334 28335#define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ 28336 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) 28337#if !defined(_WIN32) 28338 28339#define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 28340 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 28341#else 28342#define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 28343 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 28344#endif 28345 28346 28347#define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ 28348 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) 28349 28350#define ID3D12Device14_RemoveDevice(This) \ 28351 ( (This)->lpVtbl -> RemoveDevice(This) ) 28352 28353#define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ 28354 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) 28355 28356#define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ 28357 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) 28358 28359#define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ 28360 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) 28361 28362#define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \ 28363 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) 28364 28365#define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ 28366 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) 28367 28368#define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ 28369 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) 28370 28371 28372#define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ 28373 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) 28374 28375 28376#define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ 28377 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) 28378 28379#define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ 28380 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) 28381 28382#if !defined(_WIN32) 28383 28384#define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 28385 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 28386#else 28387#define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ 28388 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) 28389#endif 28390 28391#define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ 28392 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) 28393 28394#define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ 28395 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) 28396 28397#define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ 28398 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) 28399 28400#define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ 28401 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) 28402 28403 28404#define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ 28405 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) 28406 28407#define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \ 28408 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) 28409 28410#define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ 28411 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) 28412 28413 28414#define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ 28415 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) 28416 28417#define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 28418 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 28419 28420#define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ 28421 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) 28422 28423 28424#define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \ 28425 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) 28426 28427#if !defined(_WIN32) 28428 28429#define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 28430 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 28431#else 28432#define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ 28433 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) 28434#endif 28435 28436 28437#define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ 28438 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) 28439 28440 28441#define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \ 28442 ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) ) 28443 28444#endif /* COBJMACROS */ 28445 28446 28447#endif /* C style interface */ 28448 28449 28450 28451 28452#endif /* __ID3D12Device14_INTERFACE_DEFINED__ */ 28453 28454 28455#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ 28456#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ 28457 28458/* interface ID3D12VirtualizationGuestDevice */ 28459/* [unique][local][object][uuid] */ 28460 28461 28462EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice; 28463 28464#if defined(__cplusplus) && !defined(CINTERFACE) 28465 28466 MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476") 28467 ID3D12VirtualizationGuestDevice : public IUnknown 28468 { 28469 public: 28470 virtual HRESULT STDMETHODCALLTYPE ShareWithHost( 28471 _In_ ID3D12DeviceChild *pObject, 28472 _Out_ HANDLE *pHandle) = 0; 28473 28474 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd( 28475 _In_ ID3D12Fence *pFence, 28476 UINT64 FenceValue, 28477 _Out_ int *pFenceFd) = 0; 28478 28479 }; 28480 28481 28482#else /* C style interface */ 28483 28484 typedef struct ID3D12VirtualizationGuestDeviceVtbl 28485 { 28486 BEGIN_INTERFACE 28487 28488 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 28489 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 28490 ID3D12VirtualizationGuestDevice * This, 28491 REFIID riid, 28492 _COM_Outptr_ void **ppvObject); 28493 28494 DECLSPEC_XFGVIRT(IUnknown, AddRef) 28495 ULONG ( STDMETHODCALLTYPE *AddRef )( 28496 ID3D12VirtualizationGuestDevice * This); 28497 28498 DECLSPEC_XFGVIRT(IUnknown, Release) 28499 ULONG ( STDMETHODCALLTYPE *Release )( 28500 ID3D12VirtualizationGuestDevice * This); 28501 28502 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost) 28503 HRESULT ( STDMETHODCALLTYPE *ShareWithHost )( 28504 ID3D12VirtualizationGuestDevice * This, 28505 _In_ ID3D12DeviceChild *pObject, 28506 _Out_ HANDLE *pHandle); 28507 28508 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd) 28509 HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )( 28510 ID3D12VirtualizationGuestDevice * This, 28511 _In_ ID3D12Fence *pFence, 28512 UINT64 FenceValue, 28513 _Out_ int *pFenceFd); 28514 28515 END_INTERFACE 28516 } ID3D12VirtualizationGuestDeviceVtbl; 28517 28518 interface ID3D12VirtualizationGuestDevice 28519 { 28520 CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl; 28521 }; 28522 28523 28524 28525#ifdef COBJMACROS 28526 28527 28528#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \ 28529 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 28530 28531#define ID3D12VirtualizationGuestDevice_AddRef(This) \ 28532 ( (This)->lpVtbl -> AddRef(This) ) 28533 28534#define ID3D12VirtualizationGuestDevice_Release(This) \ 28535 ( (This)->lpVtbl -> Release(This) ) 28536 28537 28538#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \ 28539 ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) ) 28540 28541#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \ 28542 ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) ) 28543 28544#endif /* COBJMACROS */ 28545 28546 28547#endif /* C style interface */ 28548 28549 28550 28551 28552#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */ 28553 28554 28555#ifndef __ID3D12Tools_INTERFACE_DEFINED__ 28556#define __ID3D12Tools_INTERFACE_DEFINED__ 28557 28558/* interface ID3D12Tools */ 28559/* [unique][local][object][uuid] */ 28560 28561 28562EXTERN_C const IID IID_ID3D12Tools; 28563 28564#if defined(__cplusplus) && !defined(CINTERFACE) 28565 28566 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5") 28567 ID3D12Tools : public IUnknown 28568 { 28569 public: 28570 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation( 28571 BOOL bEnable) = 0; 28572 28573 virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0; 28574 28575 }; 28576 28577 28578#else /* C style interface */ 28579 28580 typedef struct ID3D12ToolsVtbl 28581 { 28582 BEGIN_INTERFACE 28583 28584 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 28585 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 28586 ID3D12Tools * This, 28587 REFIID riid, 28588 _COM_Outptr_ void **ppvObject); 28589 28590 DECLSPEC_XFGVIRT(IUnknown, AddRef) 28591 ULONG ( STDMETHODCALLTYPE *AddRef )( 28592 ID3D12Tools * This); 28593 28594 DECLSPEC_XFGVIRT(IUnknown, Release) 28595 ULONG ( STDMETHODCALLTYPE *Release )( 28596 ID3D12Tools * This); 28597 28598 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) 28599 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( 28600 ID3D12Tools * This, 28601 BOOL bEnable); 28602 28603 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) 28604 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( 28605 ID3D12Tools * This); 28606 28607 END_INTERFACE 28608 } ID3D12ToolsVtbl; 28609 28610 interface ID3D12Tools 28611 { 28612 CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl; 28613 }; 28614 28615 28616 28617#ifdef COBJMACROS 28618 28619 28620#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \ 28621 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 28622 28623#define ID3D12Tools_AddRef(This) \ 28624 ( (This)->lpVtbl -> AddRef(This) ) 28625 28626#define ID3D12Tools_Release(This) \ 28627 ( (This)->lpVtbl -> Release(This) ) 28628 28629 28630#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \ 28631 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) 28632 28633#define ID3D12Tools_ShaderInstrumentationEnabled(This) \ 28634 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) 28635 28636#endif /* COBJMACROS */ 28637 28638 28639#endif /* C style interface */ 28640 28641 28642 28643 28644#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ 28645 28646 28647/* interface __MIDL_itf_d3d12_0000_0062 */ 28648/* [local] */ 28649 28650typedef struct D3D12_SUBRESOURCE_DATA 28651 { 28652 const void *pData; 28653 LONG_PTR RowPitch; 28654 LONG_PTR SlicePitch; 28655 } D3D12_SUBRESOURCE_DATA; 28656 28657typedef struct D3D12_MEMCPY_DEST 28658 { 28659 void *pData; 28660 SIZE_T RowPitch; 28661 SIZE_T SlicePitch; 28662 } D3D12_MEMCPY_DEST; 28663 28664#if !defined( D3D12_IGNORE_SDK_LAYERS ) 28665#include "d3d12sdklayers.h" 28666#endif 28667 28668/////////////////////////////////////////////////////////////////////////// 28669// D3D12CreateDevice 28670// ------------------ 28671// 28672// pAdapter 28673// If NULL, D3D12CreateDevice will choose the primary adapter. 28674// If non-NULL, D3D12CreateDevice will use the provided adapter. 28675// MinimumFeatureLevel 28676// The minimum feature level required for successful device creation. 28677// riid 28678// The interface IID of the device to be returned. Expected: ID3D12Device. 28679// ppDevice 28680// Pointer to returned interface. May be NULL. 28681// 28682// Return Values 28683// Any of those documented for 28684// CreateDXGIFactory1 28685// IDXGIFactory::EnumAdapters 28686// D3D12CreateDevice 28687// 28688/////////////////////////////////////////////////////////////////////////// 28689typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, 28690 D3D_FEATURE_LEVEL, 28691 _In_ REFIID, _COM_Outptr_opt_ void** ); 28692 28693HRESULT WINAPI D3D12CreateDevice( 28694 _In_opt_ IUnknown* pAdapter, 28695 D3D_FEATURE_LEVEL MinimumFeatureLevel, 28696 _In_ REFIID riid, // Expected: ID3D12Device 28697 _COM_Outptr_opt_ void** ppDevice ); 28698 28699 28700typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** ); 28701 28702HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); 28703 28704// -------------------------------------------------------------------------------------------------------------------------------- 28705// D3D12EnableExperimentalFeatures 28706// 28707// Pass in a list of feature GUIDs to be enabled together. 28708// 28709// If a particular feature requires some configuration information on enablement, it will have 28710// a configuration struct that can be passed alongside the GUID. 28711// 28712// Some features might use an interface IID as the GUID. For these, once the feature is enabled via 28713// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface 28714// for manipulating the feature. This allows for control that might not cleanly be expressed by just 28715// the configuration struct that D3D12EnableExperimentalFeatures provides. 28716// 28717// If this method is called and a change to existing feature enablement is made, 28718// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one 28719// singleton device for a process. Removing the devices when configuration changes prevents 28720// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view. 28721// 28722// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on. 28723// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed 28724// in are known to be incompatible with each other, or other errors. 28725// Returns S_OK otherwise. 28726// 28727// -------------------------------------------------------------------------------------------------------------------------------- 28728HRESULT WINAPI D3D12EnableExperimentalFeatures( 28729 UINT NumFeatures, 28730 _In_count_(NumFeatures) const IID* pIIDs, 28731 _In_opt_count_(NumFeatures) void* pConfigurationStructs, 28732 _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes); 28733 28734// -------------------------------------------------------------------------------------------------------------------------------- 28735// Experimental Feature: D3D12ExperimentalShaderModels 28736// 28737// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support, 28738// meaning shader models that haven't been finalized for use in retail. 28739// 28740// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array. 28741// 28742// -------------------------------------------------------------------------------------------------------------------------------- 28743static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */ 28744 0x76f5573e, 28745 0xf13a, 28746 0x40f5, 28747 { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } 28748}; 28749// -------------------------------------------------------------------------------------------------------------------------------- 28750// Experimental Feature: D3D12TiledResourceTier4 28751// 28752// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support, 28753// meaning texture tile data-inheritance is allowed. 28754// 28755// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array. 28756// 28757// -------------------------------------------------------------------------------------------------------------------------------- 28758static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */ 28759 0xc9c4725f, 28760 0xa81a, 28761 0x4f56, 28762 { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } 28763}; 28764// -------------------------------------------------------------------------------------------------------------------------------- 28765// D3D12GetInterface 28766// 28767// Retrieve Global D3D12 Interface. 28768// 28769 28770DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f); 28771DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8); 28772DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2); 28773DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); 28774DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55); 28775 28776typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); 28777 28778HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); 28779 28780 28781 28782extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_c_ifspec; 28783extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_s_ifspec; 28784 28785#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ 28786#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ 28787 28788/* interface ID3D12SDKConfiguration */ 28789/* [unique][local][object][uuid] */ 28790 28791 28792EXTERN_C const IID IID_ID3D12SDKConfiguration; 28793 28794#if defined(__cplusplus) && !defined(CINTERFACE) 28795 28796 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7") 28797 ID3D12SDKConfiguration : public IUnknown 28798 { 28799 public: 28800 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion( 28801 UINT SDKVersion, 28802 _In_z_ LPCSTR SDKPath) = 0; 28803 28804 }; 28805 28806 28807#else /* C style interface */ 28808 28809 typedef struct ID3D12SDKConfigurationVtbl 28810 { 28811 BEGIN_INTERFACE 28812 28813 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 28814 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 28815 ID3D12SDKConfiguration * This, 28816 REFIID riid, 28817 _COM_Outptr_ void **ppvObject); 28818 28819 DECLSPEC_XFGVIRT(IUnknown, AddRef) 28820 ULONG ( STDMETHODCALLTYPE *AddRef )( 28821 ID3D12SDKConfiguration * This); 28822 28823 DECLSPEC_XFGVIRT(IUnknown, Release) 28824 ULONG ( STDMETHODCALLTYPE *Release )( 28825 ID3D12SDKConfiguration * This); 28826 28827 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) 28828 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( 28829 ID3D12SDKConfiguration * This, 28830 UINT SDKVersion, 28831 _In_z_ LPCSTR SDKPath); 28832 28833 END_INTERFACE 28834 } ID3D12SDKConfigurationVtbl; 28835 28836 interface ID3D12SDKConfiguration 28837 { 28838 CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl; 28839 }; 28840 28841 28842 28843#ifdef COBJMACROS 28844 28845 28846#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \ 28847 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 28848 28849#define ID3D12SDKConfiguration_AddRef(This) \ 28850 ( (This)->lpVtbl -> AddRef(This) ) 28851 28852#define ID3D12SDKConfiguration_Release(This) \ 28853 ( (This)->lpVtbl -> Release(This) ) 28854 28855 28856#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \ 28857 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) 28858 28859#endif /* COBJMACROS */ 28860 28861 28862#endif /* C style interface */ 28863 28864 28865 28866 28867#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */ 28868 28869 28870#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ 28871#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ 28872 28873/* interface ID3D12SDKConfiguration1 */ 28874/* [unique][local][object][uuid] */ 28875 28876 28877EXTERN_C const IID IID_ID3D12SDKConfiguration1; 28878 28879#if defined(__cplusplus) && !defined(CINTERFACE) 28880 28881 MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f") 28882 ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration 28883 { 28884 public: 28885 virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory( 28886 UINT SDKVersion, 28887 _In_ LPCSTR SDKPath, 28888 REFIID riid, 28889 _COM_Outptr_ void **ppvFactory) = 0; 28890 28891 virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0; 28892 28893 }; 28894 28895 28896#else /* C style interface */ 28897 28898 typedef struct ID3D12SDKConfiguration1Vtbl 28899 { 28900 BEGIN_INTERFACE 28901 28902 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 28903 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 28904 ID3D12SDKConfiguration1 * This, 28905 REFIID riid, 28906 _COM_Outptr_ void **ppvObject); 28907 28908 DECLSPEC_XFGVIRT(IUnknown, AddRef) 28909 ULONG ( STDMETHODCALLTYPE *AddRef )( 28910 ID3D12SDKConfiguration1 * This); 28911 28912 DECLSPEC_XFGVIRT(IUnknown, Release) 28913 ULONG ( STDMETHODCALLTYPE *Release )( 28914 ID3D12SDKConfiguration1 * This); 28915 28916 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) 28917 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( 28918 ID3D12SDKConfiguration1 * This, 28919 UINT SDKVersion, 28920 _In_z_ LPCSTR SDKPath); 28921 28922 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory) 28923 HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )( 28924 ID3D12SDKConfiguration1 * This, 28925 UINT SDKVersion, 28926 _In_ LPCSTR SDKPath, 28927 REFIID riid, 28928 _COM_Outptr_ void **ppvFactory); 28929 28930 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs) 28931 void ( STDMETHODCALLTYPE *FreeUnusedSDKs )( 28932 ID3D12SDKConfiguration1 * This); 28933 28934 END_INTERFACE 28935 } ID3D12SDKConfiguration1Vtbl; 28936 28937 interface ID3D12SDKConfiguration1 28938 { 28939 CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl; 28940 }; 28941 28942 28943 28944#ifdef COBJMACROS 28945 28946 28947#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \ 28948 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 28949 28950#define ID3D12SDKConfiguration1_AddRef(This) \ 28951 ( (This)->lpVtbl -> AddRef(This) ) 28952 28953#define ID3D12SDKConfiguration1_Release(This) \ 28954 ( (This)->lpVtbl -> Release(This) ) 28955 28956 28957#define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \ 28958 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) 28959 28960 28961#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \ 28962 ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) ) 28963 28964#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \ 28965 ( (This)->lpVtbl -> FreeUnusedSDKs(This) ) 28966 28967#endif /* COBJMACROS */ 28968 28969 28970#endif /* C style interface */ 28971 28972 28973 28974 28975#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ 28976 28977 28978/* interface __MIDL_itf_d3d12_0000_0064 */ 28979/* [local] */ 28980 28981typedef 28982enum D3D12_DEVICE_FACTORY_FLAGS 28983 { 28984 D3D12_DEVICE_FACTORY_FLAG_NONE = 0, 28985 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1, 28986 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2, 28987 D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4 28988 } D3D12_DEVICE_FACTORY_FLAGS; 28989 28990DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) 28991 28992 28993extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_c_ifspec; 28994extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_s_ifspec; 28995 28996#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ 28997#define __ID3D12DeviceFactory_INTERFACE_DEFINED__ 28998 28999/* interface ID3D12DeviceFactory */ 29000/* [unique][local][object][uuid] */ 29001 29002 29003EXTERN_C const IID IID_ID3D12DeviceFactory; 29004 29005#if defined(__cplusplus) && !defined(CINTERFACE) 29006 29007 MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb") 29008 ID3D12DeviceFactory : public IUnknown 29009 { 29010 public: 29011 virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0; 29012 29013 virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0; 29014 29015 virtual HRESULT STDMETHODCALLTYPE SetFlags( 29016 D3D12_DEVICE_FACTORY_FLAGS flags) = 0; 29017 29018 virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0; 29019 29020 virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface( 29021 REFCLSID clsid, 29022 REFIID iid, 29023 _COM_Outptr_ void **ppv) = 0; 29024 29025 virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures( 29026 UINT NumFeatures, 29027 _In_reads_(NumFeatures) const IID *pIIDs, 29028 _In_reads_opt_(NumFeatures) void *pConfigurationStructs, 29029 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0; 29030 29031 virtual HRESULT STDMETHODCALLTYPE CreateDevice( 29032 _In_opt_ IUnknown *adapter, 29033 D3D_FEATURE_LEVEL FeatureLevel, 29034 REFIID riid, 29035 _COM_Outptr_opt_ void **ppvDevice) = 0; 29036 29037 }; 29038 29039 29040#else /* C style interface */ 29041 29042 typedef struct ID3D12DeviceFactoryVtbl 29043 { 29044 BEGIN_INTERFACE 29045 29046 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 29047 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 29048 ID3D12DeviceFactory * This, 29049 REFIID riid, 29050 _COM_Outptr_ void **ppvObject); 29051 29052 DECLSPEC_XFGVIRT(IUnknown, AddRef) 29053 ULONG ( STDMETHODCALLTYPE *AddRef )( 29054 ID3D12DeviceFactory * This); 29055 29056 DECLSPEC_XFGVIRT(IUnknown, Release) 29057 ULONG ( STDMETHODCALLTYPE *Release )( 29058 ID3D12DeviceFactory * This); 29059 29060 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState) 29061 HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )( 29062 ID3D12DeviceFactory * This); 29063 29064 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState) 29065 HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )( 29066 ID3D12DeviceFactory * This); 29067 29068 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags) 29069 HRESULT ( STDMETHODCALLTYPE *SetFlags )( 29070 ID3D12DeviceFactory * This, 29071 D3D12_DEVICE_FACTORY_FLAGS flags); 29072 29073 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags) 29074 D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )( 29075 ID3D12DeviceFactory * This); 29076 29077 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface) 29078 HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )( 29079 ID3D12DeviceFactory * This, 29080 REFCLSID clsid, 29081 REFIID iid, 29082 _COM_Outptr_ void **ppv); 29083 29084 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures) 29085 HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )( 29086 ID3D12DeviceFactory * This, 29087 UINT NumFeatures, 29088 _In_reads_(NumFeatures) const IID *pIIDs, 29089 _In_reads_opt_(NumFeatures) void *pConfigurationStructs, 29090 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes); 29091 29092 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice) 29093 HRESULT ( STDMETHODCALLTYPE *CreateDevice )( 29094 ID3D12DeviceFactory * This, 29095 _In_opt_ IUnknown *adapter, 29096 D3D_FEATURE_LEVEL FeatureLevel, 29097 REFIID riid, 29098 _COM_Outptr_opt_ void **ppvDevice); 29099 29100 END_INTERFACE 29101 } ID3D12DeviceFactoryVtbl; 29102 29103 interface ID3D12DeviceFactory 29104 { 29105 CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl; 29106 }; 29107 29108 29109 29110#ifdef COBJMACROS 29111 29112 29113#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \ 29114 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 29115 29116#define ID3D12DeviceFactory_AddRef(This) \ 29117 ( (This)->lpVtbl -> AddRef(This) ) 29118 29119#define ID3D12DeviceFactory_Release(This) \ 29120 ( (This)->lpVtbl -> Release(This) ) 29121 29122 29123#define ID3D12DeviceFactory_InitializeFromGlobalState(This) \ 29124 ( (This)->lpVtbl -> InitializeFromGlobalState(This) ) 29125 29126#define ID3D12DeviceFactory_ApplyToGlobalState(This) \ 29127 ( (This)->lpVtbl -> ApplyToGlobalState(This) ) 29128 29129#define ID3D12DeviceFactory_SetFlags(This,flags) \ 29130 ( (This)->lpVtbl -> SetFlags(This,flags) ) 29131 29132#define ID3D12DeviceFactory_GetFlags(This) \ 29133 ( (This)->lpVtbl -> GetFlags(This) ) 29134 29135#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \ 29136 ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) ) 29137 29138#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \ 29139 ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) ) 29140 29141#define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \ 29142 ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) ) 29143 29144#endif /* COBJMACROS */ 29145 29146 29147#endif /* C style interface */ 29148 29149 29150 29151 29152#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ 29153 29154 29155/* interface __MIDL_itf_d3d12_0000_0065 */ 29156/* [local] */ 29157 29158typedef 29159enum D3D12_DEVICE_FLAGS 29160 { 29161 D3D12_DEVICE_FLAG_NONE = 0, 29162 D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1, 29163 D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2, 29164 D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4, 29165 D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8, 29166 D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10, 29167 D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20, 29168 D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40, 29169 D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80, 29170 D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100, 29171 D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200, 29172 D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400 29173 } D3D12_DEVICE_FLAGS; 29174 29175DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS ) 29176typedef struct D3D12_DEVICE_CONFIGURATION_DESC 29177 { 29178 D3D12_DEVICE_FLAGS Flags; 29179 UINT GPUBasedValidationFlags; 29180 UINT SDKVersion; 29181 UINT NumEnabledExperimentalFeatures; 29182 } D3D12_DEVICE_CONFIGURATION_DESC; 29183 29184 29185 29186extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_c_ifspec; 29187extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_s_ifspec; 29188 29189#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ 29190#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ 29191 29192/* interface ID3D12DeviceConfiguration */ 29193/* [unique][local][object][uuid] */ 29194 29195 29196EXTERN_C const IID IID_ID3D12DeviceConfiguration; 29197 29198#if defined(__cplusplus) && !defined(CINTERFACE) 29199 29200 MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad") 29201 ID3D12DeviceConfiguration : public IUnknown 29202 { 29203 public: 29204#if defined(_MSC_VER) || !defined(_WIN32) 29205 virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 29206#else 29207 virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc( 29208 D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0; 29209#endif 29210 29211 virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures( 29212 _Out_writes_(NumGuids) GUID *pGuids, 29213 UINT NumGuids) = 0; 29214 29215 virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature( 29216 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, 29217 _COM_Outptr_ ID3DBlob **ppResult, 29218 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0; 29219 29220 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer( 29221 _In_reads_bytes_(Size) const void *pBlob, 29222 SIZE_T Size, 29223 REFIID riid, 29224 _COM_Outptr_ void **ppvDeserializer) = 0; 29225 29226 }; 29227 29228 29229#else /* C style interface */ 29230 29231 typedef struct ID3D12DeviceConfigurationVtbl 29232 { 29233 BEGIN_INTERFACE 29234 29235 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 29236 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 29237 ID3D12DeviceConfiguration * This, 29238 REFIID riid, 29239 _COM_Outptr_ void **ppvObject); 29240 29241 DECLSPEC_XFGVIRT(IUnknown, AddRef) 29242 ULONG ( STDMETHODCALLTYPE *AddRef )( 29243 ID3D12DeviceConfiguration * This); 29244 29245 DECLSPEC_XFGVIRT(IUnknown, Release) 29246 ULONG ( STDMETHODCALLTYPE *Release )( 29247 ID3D12DeviceConfiguration * This); 29248 29249 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) 29250#if !defined(_WIN32) 29251 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( 29252 ID3D12DeviceConfiguration * This); 29253 29254#else 29255 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( 29256 ID3D12DeviceConfiguration * This, 29257 D3D12_DEVICE_CONFIGURATION_DESC * RetVal); 29258 29259#endif 29260 29261 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) 29262 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( 29263 ID3D12DeviceConfiguration * This, 29264 _Out_writes_(NumGuids) GUID *pGuids, 29265 UINT NumGuids); 29266 29267 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) 29268 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( 29269 ID3D12DeviceConfiguration * This, 29270 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, 29271 _COM_Outptr_ ID3DBlob **ppResult, 29272 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); 29273 29274 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) 29275 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( 29276 ID3D12DeviceConfiguration * This, 29277 _In_reads_bytes_(Size) const void *pBlob, 29278 SIZE_T Size, 29279 REFIID riid, 29280 _COM_Outptr_ void **ppvDeserializer); 29281 29282 END_INTERFACE 29283 } ID3D12DeviceConfigurationVtbl; 29284 29285 interface ID3D12DeviceConfiguration 29286 { 29287 CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl; 29288 }; 29289 29290 29291 29292#ifdef COBJMACROS 29293 29294 29295#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \ 29296 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 29297 29298#define ID3D12DeviceConfiguration_AddRef(This) \ 29299 ( (This)->lpVtbl -> AddRef(This) ) 29300 29301#define ID3D12DeviceConfiguration_Release(This) \ 29302 ( (This)->lpVtbl -> Release(This) ) 29303 29304#if !defined(_WIN32) 29305 29306#define ID3D12DeviceConfiguration_GetDesc(This) \ 29307 ( (This)->lpVtbl -> GetDesc(This) ) 29308#else 29309#define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \ 29310 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 29311#endif 29312 29313#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ 29314 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) 29315 29316#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ 29317 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) 29318 29319#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ 29320 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) 29321 29322#endif /* COBJMACROS */ 29323 29324 29325#endif /* C style interface */ 29326 29327 29328 29329 29330#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */ 29331 29332 29333#ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ 29334#define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ 29335 29336/* interface ID3D12DeviceConfiguration1 */ 29337/* [unique][local][object][uuid] */ 29338 29339 29340EXTERN_C const IID IID_ID3D12DeviceConfiguration1; 29341 29342#if defined(__cplusplus) && !defined(CINTERFACE) 29343 29344 MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56") 29345 ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration 29346 { 29347 public: 29348 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( 29349 _In_reads_bytes_(Size) const void *pLibraryBlob, 29350 SIZE_T Size, 29351 LPCWSTR RootSignatureSubobjectName, 29352 REFIID riid, 29353 _COM_Outptr_ void **ppvDeserializer) = 0; 29354 29355 }; 29356 29357 29358#else /* C style interface */ 29359 29360 typedef struct ID3D12DeviceConfiguration1Vtbl 29361 { 29362 BEGIN_INTERFACE 29363 29364 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 29365 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 29366 ID3D12DeviceConfiguration1 * This, 29367 REFIID riid, 29368 _COM_Outptr_ void **ppvObject); 29369 29370 DECLSPEC_XFGVIRT(IUnknown, AddRef) 29371 ULONG ( STDMETHODCALLTYPE *AddRef )( 29372 ID3D12DeviceConfiguration1 * This); 29373 29374 DECLSPEC_XFGVIRT(IUnknown, Release) 29375 ULONG ( STDMETHODCALLTYPE *Release )( 29376 ID3D12DeviceConfiguration1 * This); 29377 29378 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) 29379#if !defined(_WIN32) 29380 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( 29381 ID3D12DeviceConfiguration1 * This); 29382 29383#else 29384 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( 29385 ID3D12DeviceConfiguration1 * This, 29386 D3D12_DEVICE_CONFIGURATION_DESC * RetVal); 29387 29388#endif 29389 29390 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) 29391 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( 29392 ID3D12DeviceConfiguration1 * This, 29393 _Out_writes_(NumGuids) GUID *pGuids, 29394 UINT NumGuids); 29395 29396 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) 29397 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( 29398 ID3D12DeviceConfiguration1 * This, 29399 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, 29400 _COM_Outptr_ ID3DBlob **ppResult, 29401 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); 29402 29403 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) 29404 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( 29405 ID3D12DeviceConfiguration1 * This, 29406 _In_reads_bytes_(Size) const void *pBlob, 29407 SIZE_T Size, 29408 REFIID riid, 29409 _COM_Outptr_ void **ppvDeserializer); 29410 29411 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary) 29412 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )( 29413 ID3D12DeviceConfiguration1 * This, 29414 _In_reads_bytes_(Size) const void *pLibraryBlob, 29415 SIZE_T Size, 29416 LPCWSTR RootSignatureSubobjectName, 29417 REFIID riid, 29418 _COM_Outptr_ void **ppvDeserializer); 29419 29420 END_INTERFACE 29421 } ID3D12DeviceConfiguration1Vtbl; 29422 29423 interface ID3D12DeviceConfiguration1 29424 { 29425 CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl; 29426 }; 29427 29428 29429 29430#ifdef COBJMACROS 29431 29432 29433#define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \ 29434 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 29435 29436#define ID3D12DeviceConfiguration1_AddRef(This) \ 29437 ( (This)->lpVtbl -> AddRef(This) ) 29438 29439#define ID3D12DeviceConfiguration1_Release(This) \ 29440 ( (This)->lpVtbl -> Release(This) ) 29441 29442#if !defined(_WIN32) 29443 29444#define ID3D12DeviceConfiguration1_GetDesc(This) \ 29445 ( (This)->lpVtbl -> GetDesc(This) ) 29446#else 29447#define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \ 29448 ( (This)->lpVtbl -> GetDesc(This,RetVal) ) 29449#endif 29450 29451#define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ 29452 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) 29453 29454#define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ 29455 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) 29456 29457#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ 29458 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) 29459 29460 29461#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \ 29462 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) ) 29463 29464#endif /* COBJMACROS */ 29465 29466 29467#endif /* C style interface */ 29468 29469 29470 29471 29472#endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ 29473 29474 29475/* interface __MIDL_itf_d3d12_0000_0067 */ 29476/* [local] */ 29477 29478typedef 29479enum D3D12_AXIS_SHADING_RATE 29480 { 29481 D3D12_AXIS_SHADING_RATE_1X = 0, 29482 D3D12_AXIS_SHADING_RATE_2X = 0x1, 29483 D3D12_AXIS_SHADING_RATE_4X = 0x2 29484 } D3D12_AXIS_SHADING_RATE; 29485 29486#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2 29487#define D3D12_SHADING_RATE_VALID_MASK 3 29488#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y)) 29489#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK) 29490#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK) 29491typedef 29492enum D3D12_SHADING_RATE 29493 { 29494 D3D12_SHADING_RATE_1X1 = 0, 29495 D3D12_SHADING_RATE_1X2 = 0x1, 29496 D3D12_SHADING_RATE_2X1 = 0x4, 29497 D3D12_SHADING_RATE_2X2 = 0x5, 29498 D3D12_SHADING_RATE_2X4 = 0x6, 29499 D3D12_SHADING_RATE_4X2 = 0x9, 29500 D3D12_SHADING_RATE_4X4 = 0xa 29501 } D3D12_SHADING_RATE; 29502 29503typedef 29504enum D3D12_SHADING_RATE_COMBINER 29505 { 29506 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0, 29507 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1, 29508 D3D12_SHADING_RATE_COMBINER_MIN = 2, 29509 D3D12_SHADING_RATE_COMBINER_MAX = 3, 29510 D3D12_SHADING_RATE_COMBINER_SUM = 4 29511 } D3D12_SHADING_RATE_COMBINER; 29512 29513 29514 29515extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec; 29516extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec; 29517 29518#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ 29519#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ 29520 29521/* interface ID3D12GraphicsCommandList5 */ 29522/* [unique][local][object][uuid] */ 29523 29524 29525EXTERN_C const IID IID_ID3D12GraphicsCommandList5; 29526 29527#if defined(__cplusplus) && !defined(CINTERFACE) 29528 29529 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea") 29530 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4 29531 { 29532 public: 29533 virtual void STDMETHODCALLTYPE RSSetShadingRate( 29534 _In_ D3D12_SHADING_RATE baseShadingRate, 29535 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0; 29536 29537 virtual void STDMETHODCALLTYPE RSSetShadingRateImage( 29538 _In_opt_ ID3D12Resource *shadingRateImage) = 0; 29539 29540 }; 29541 29542 29543#else /* C style interface */ 29544 29545 typedef struct ID3D12GraphicsCommandList5Vtbl 29546 { 29547 BEGIN_INTERFACE 29548 29549 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 29550 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 29551 ID3D12GraphicsCommandList5 * This, 29552 REFIID riid, 29553 _COM_Outptr_ void **ppvObject); 29554 29555 DECLSPEC_XFGVIRT(IUnknown, AddRef) 29556 ULONG ( STDMETHODCALLTYPE *AddRef )( 29557 ID3D12GraphicsCommandList5 * This); 29558 29559 DECLSPEC_XFGVIRT(IUnknown, Release) 29560 ULONG ( STDMETHODCALLTYPE *Release )( 29561 ID3D12GraphicsCommandList5 * This); 29562 29563 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 29564 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 29565 ID3D12GraphicsCommandList5 * This, 29566 _In_ REFGUID guid, 29567 _Inout_ UINT *pDataSize, 29568 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 29569 29570 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 29571 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 29572 ID3D12GraphicsCommandList5 * This, 29573 _In_ REFGUID guid, 29574 _In_ UINT DataSize, 29575 _In_reads_bytes_opt_( DataSize ) const void *pData); 29576 29577 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 29578 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 29579 ID3D12GraphicsCommandList5 * This, 29580 _In_ REFGUID guid, 29581 _In_opt_ const IUnknown *pData); 29582 29583 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 29584 HRESULT ( STDMETHODCALLTYPE *SetName )( 29585 ID3D12GraphicsCommandList5 * This, 29586 _In_z_ LPCWSTR Name); 29587 29588 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 29589 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 29590 ID3D12GraphicsCommandList5 * This, 29591 REFIID riid, 29592 _COM_Outptr_opt_ void **ppvDevice); 29593 29594 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 29595 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 29596 ID3D12GraphicsCommandList5 * This); 29597 29598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 29599 HRESULT ( STDMETHODCALLTYPE *Close )( 29600 ID3D12GraphicsCommandList5 * This); 29601 29602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 29603 HRESULT ( STDMETHODCALLTYPE *Reset )( 29604 ID3D12GraphicsCommandList5 * This, 29605 _In_ ID3D12CommandAllocator *pAllocator, 29606 _In_opt_ ID3D12PipelineState *pInitialState); 29607 29608 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 29609 void ( STDMETHODCALLTYPE *ClearState )( 29610 ID3D12GraphicsCommandList5 * This, 29611 _In_opt_ ID3D12PipelineState *pPipelineState); 29612 29613 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 29614 void ( STDMETHODCALLTYPE *DrawInstanced )( 29615 ID3D12GraphicsCommandList5 * This, 29616 _In_ UINT VertexCountPerInstance, 29617 _In_ UINT InstanceCount, 29618 _In_ UINT StartVertexLocation, 29619 _In_ UINT StartInstanceLocation); 29620 29621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 29622 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 29623 ID3D12GraphicsCommandList5 * This, 29624 _In_ UINT IndexCountPerInstance, 29625 _In_ UINT InstanceCount, 29626 _In_ UINT StartIndexLocation, 29627 _In_ INT BaseVertexLocation, 29628 _In_ UINT StartInstanceLocation); 29629 29630 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 29631 void ( STDMETHODCALLTYPE *Dispatch )( 29632 ID3D12GraphicsCommandList5 * This, 29633 _In_ UINT ThreadGroupCountX, 29634 _In_ UINT ThreadGroupCountY, 29635 _In_ UINT ThreadGroupCountZ); 29636 29637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 29638 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 29639 ID3D12GraphicsCommandList5 * This, 29640 _In_ ID3D12Resource *pDstBuffer, 29641 UINT64 DstOffset, 29642 _In_ ID3D12Resource *pSrcBuffer, 29643 UINT64 SrcOffset, 29644 UINT64 NumBytes); 29645 29646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 29647 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 29648 ID3D12GraphicsCommandList5 * This, 29649 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 29650 UINT DstX, 29651 UINT DstY, 29652 UINT DstZ, 29653 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 29654 _In_opt_ const D3D12_BOX *pSrcBox); 29655 29656 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 29657 void ( STDMETHODCALLTYPE *CopyResource )( 29658 ID3D12GraphicsCommandList5 * This, 29659 _In_ ID3D12Resource *pDstResource, 29660 _In_ ID3D12Resource *pSrcResource); 29661 29662 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 29663 void ( STDMETHODCALLTYPE *CopyTiles )( 29664 ID3D12GraphicsCommandList5 * This, 29665 _In_ ID3D12Resource *pTiledResource, 29666 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 29667 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 29668 _In_ ID3D12Resource *pBuffer, 29669 UINT64 BufferStartOffsetInBytes, 29670 D3D12_TILE_COPY_FLAGS Flags); 29671 29672 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 29673 void ( STDMETHODCALLTYPE *ResolveSubresource )( 29674 ID3D12GraphicsCommandList5 * This, 29675 _In_ ID3D12Resource *pDstResource, 29676 _In_ UINT DstSubresource, 29677 _In_ ID3D12Resource *pSrcResource, 29678 _In_ UINT SrcSubresource, 29679 _In_ DXGI_FORMAT Format); 29680 29681 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 29682 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 29683 ID3D12GraphicsCommandList5 * This, 29684 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 29685 29686 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 29687 void ( STDMETHODCALLTYPE *RSSetViewports )( 29688 ID3D12GraphicsCommandList5 * This, 29689 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 29690 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 29691 29692 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 29693 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 29694 ID3D12GraphicsCommandList5 * This, 29695 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 29696 _In_reads_( NumRects) const D3D12_RECT *pRects); 29697 29698 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 29699 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 29700 ID3D12GraphicsCommandList5 * This, 29701 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 29702 29703 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 29704 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 29705 ID3D12GraphicsCommandList5 * This, 29706 _In_ UINT StencilRef); 29707 29708 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 29709 void ( STDMETHODCALLTYPE *SetPipelineState )( 29710 ID3D12GraphicsCommandList5 * This, 29711 _In_ ID3D12PipelineState *pPipelineState); 29712 29713 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 29714 void ( STDMETHODCALLTYPE *ResourceBarrier )( 29715 ID3D12GraphicsCommandList5 * This, 29716 _In_ UINT NumBarriers, 29717 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 29718 29719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 29720 void ( STDMETHODCALLTYPE *ExecuteBundle )( 29721 ID3D12GraphicsCommandList5 * This, 29722 _In_ ID3D12GraphicsCommandList *pCommandList); 29723 29724 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 29725 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 29726 ID3D12GraphicsCommandList5 * This, 29727 _In_ UINT NumDescriptorHeaps, 29728 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 29729 29730 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 29731 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 29732 ID3D12GraphicsCommandList5 * This, 29733 _In_opt_ ID3D12RootSignature *pRootSignature); 29734 29735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 29736 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 29737 ID3D12GraphicsCommandList5 * This, 29738 _In_opt_ ID3D12RootSignature *pRootSignature); 29739 29740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 29741 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 29742 ID3D12GraphicsCommandList5 * This, 29743 _In_ UINT RootParameterIndex, 29744 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 29745 29746 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 29747 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 29748 ID3D12GraphicsCommandList5 * This, 29749 _In_ UINT RootParameterIndex, 29750 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 29751 29752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 29753 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 29754 ID3D12GraphicsCommandList5 * This, 29755 _In_ UINT RootParameterIndex, 29756 _In_ UINT SrcData, 29757 _In_ UINT DestOffsetIn32BitValues); 29758 29759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 29760 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 29761 ID3D12GraphicsCommandList5 * This, 29762 _In_ UINT RootParameterIndex, 29763 _In_ UINT SrcData, 29764 _In_ UINT DestOffsetIn32BitValues); 29765 29766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 29767 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 29768 ID3D12GraphicsCommandList5 * This, 29769 _In_ UINT RootParameterIndex, 29770 _In_ UINT Num32BitValuesToSet, 29771 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 29772 _In_ UINT DestOffsetIn32BitValues); 29773 29774 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 29775 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 29776 ID3D12GraphicsCommandList5 * This, 29777 _In_ UINT RootParameterIndex, 29778 _In_ UINT Num32BitValuesToSet, 29779 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 29780 _In_ UINT DestOffsetIn32BitValues); 29781 29782 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 29783 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 29784 ID3D12GraphicsCommandList5 * This, 29785 _In_ UINT RootParameterIndex, 29786 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29787 29788 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 29789 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 29790 ID3D12GraphicsCommandList5 * This, 29791 _In_ UINT RootParameterIndex, 29792 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29793 29794 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 29795 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 29796 ID3D12GraphicsCommandList5 * This, 29797 _In_ UINT RootParameterIndex, 29798 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29799 29800 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 29801 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 29802 ID3D12GraphicsCommandList5 * This, 29803 _In_ UINT RootParameterIndex, 29804 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29805 29806 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 29807 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 29808 ID3D12GraphicsCommandList5 * This, 29809 _In_ UINT RootParameterIndex, 29810 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29811 29812 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 29813 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 29814 ID3D12GraphicsCommandList5 * This, 29815 _In_ UINT RootParameterIndex, 29816 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 29817 29818 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 29819 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 29820 ID3D12GraphicsCommandList5 * This, 29821 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 29822 29823 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 29824 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 29825 ID3D12GraphicsCommandList5 * This, 29826 _In_ UINT StartSlot, 29827 _In_ UINT NumViews, 29828 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 29829 29830 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 29831 void ( STDMETHODCALLTYPE *SOSetTargets )( 29832 ID3D12GraphicsCommandList5 * This, 29833 _In_ UINT StartSlot, 29834 _In_ UINT NumViews, 29835 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 29836 29837 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 29838 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 29839 ID3D12GraphicsCommandList5 * This, 29840 _In_ UINT NumRenderTargetDescriptors, 29841 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 29842 _In_ BOOL RTsSingleHandleToDescriptorRange, 29843 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 29844 29845 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 29846 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 29847 ID3D12GraphicsCommandList5 * This, 29848 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 29849 _In_ D3D12_CLEAR_FLAGS ClearFlags, 29850 _In_ FLOAT Depth, 29851 _In_ UINT8 Stencil, 29852 _In_ UINT NumRects, 29853 _In_reads_(NumRects) const D3D12_RECT *pRects); 29854 29855 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 29856 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 29857 ID3D12GraphicsCommandList5 * This, 29858 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 29859 _In_ const FLOAT ColorRGBA[ 4 ], 29860 _In_ UINT NumRects, 29861 _In_reads_(NumRects) const D3D12_RECT *pRects); 29862 29863 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 29864 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 29865 ID3D12GraphicsCommandList5 * This, 29866 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 29867 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 29868 _In_ ID3D12Resource *pResource, 29869 _In_ const UINT Values[ 4 ], 29870 _In_ UINT NumRects, 29871 _In_reads_(NumRects) const D3D12_RECT *pRects); 29872 29873 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 29874 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 29875 ID3D12GraphicsCommandList5 * This, 29876 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 29877 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 29878 _In_ ID3D12Resource *pResource, 29879 _In_ const FLOAT Values[ 4 ], 29880 _In_ UINT NumRects, 29881 _In_reads_(NumRects) const D3D12_RECT *pRects); 29882 29883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 29884 void ( STDMETHODCALLTYPE *DiscardResource )( 29885 ID3D12GraphicsCommandList5 * This, 29886 _In_ ID3D12Resource *pResource, 29887 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 29888 29889 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 29890 void ( STDMETHODCALLTYPE *BeginQuery )( 29891 ID3D12GraphicsCommandList5 * This, 29892 _In_ ID3D12QueryHeap *pQueryHeap, 29893 _In_ D3D12_QUERY_TYPE Type, 29894 _In_ UINT Index); 29895 29896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 29897 void ( STDMETHODCALLTYPE *EndQuery )( 29898 ID3D12GraphicsCommandList5 * This, 29899 _In_ ID3D12QueryHeap *pQueryHeap, 29900 _In_ D3D12_QUERY_TYPE Type, 29901 _In_ UINT Index); 29902 29903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 29904 void ( STDMETHODCALLTYPE *ResolveQueryData )( 29905 ID3D12GraphicsCommandList5 * This, 29906 _In_ ID3D12QueryHeap *pQueryHeap, 29907 _In_ D3D12_QUERY_TYPE Type, 29908 _In_ UINT StartIndex, 29909 _In_ UINT NumQueries, 29910 _In_ ID3D12Resource *pDestinationBuffer, 29911 _In_ UINT64 AlignedDestinationBufferOffset); 29912 29913 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 29914 void ( STDMETHODCALLTYPE *SetPredication )( 29915 ID3D12GraphicsCommandList5 * This, 29916 _In_opt_ ID3D12Resource *pBuffer, 29917 _In_ UINT64 AlignedBufferOffset, 29918 _In_ D3D12_PREDICATION_OP Operation); 29919 29920 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 29921 void ( STDMETHODCALLTYPE *SetMarker )( 29922 ID3D12GraphicsCommandList5 * This, 29923 UINT Metadata, 29924 _In_reads_bytes_opt_(Size) const void *pData, 29925 UINT Size); 29926 29927 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 29928 void ( STDMETHODCALLTYPE *BeginEvent )( 29929 ID3D12GraphicsCommandList5 * This, 29930 UINT Metadata, 29931 _In_reads_bytes_opt_(Size) const void *pData, 29932 UINT Size); 29933 29934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 29935 void ( STDMETHODCALLTYPE *EndEvent )( 29936 ID3D12GraphicsCommandList5 * This); 29937 29938 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 29939 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 29940 ID3D12GraphicsCommandList5 * This, 29941 _In_ ID3D12CommandSignature *pCommandSignature, 29942 _In_ UINT MaxCommandCount, 29943 _In_ ID3D12Resource *pArgumentBuffer, 29944 _In_ UINT64 ArgumentBufferOffset, 29945 _In_opt_ ID3D12Resource *pCountBuffer, 29946 _In_ UINT64 CountBufferOffset); 29947 29948 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 29949 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 29950 ID3D12GraphicsCommandList5 * This, 29951 _In_ ID3D12Resource *pDstBuffer, 29952 UINT64 DstOffset, 29953 _In_ ID3D12Resource *pSrcBuffer, 29954 UINT64 SrcOffset, 29955 UINT Dependencies, 29956 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 29957 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 29958 29959 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 29960 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 29961 ID3D12GraphicsCommandList5 * This, 29962 _In_ ID3D12Resource *pDstBuffer, 29963 UINT64 DstOffset, 29964 _In_ ID3D12Resource *pSrcBuffer, 29965 UINT64 SrcOffset, 29966 UINT Dependencies, 29967 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 29968 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 29969 29970 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 29971 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 29972 ID3D12GraphicsCommandList5 * This, 29973 _In_ FLOAT Min, 29974 _In_ FLOAT Max); 29975 29976 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 29977 void ( STDMETHODCALLTYPE *SetSamplePositions )( 29978 ID3D12GraphicsCommandList5 * This, 29979 _In_ UINT NumSamplesPerPixel, 29980 _In_ UINT NumPixels, 29981 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 29982 29983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 29984 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 29985 ID3D12GraphicsCommandList5 * This, 29986 _In_ ID3D12Resource *pDstResource, 29987 _In_ UINT DstSubresource, 29988 _In_ UINT DstX, 29989 _In_ UINT DstY, 29990 _In_ ID3D12Resource *pSrcResource, 29991 _In_ UINT SrcSubresource, 29992 _In_opt_ D3D12_RECT *pSrcRect, 29993 _In_ DXGI_FORMAT Format, 29994 _In_ D3D12_RESOLVE_MODE ResolveMode); 29995 29996 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 29997 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 29998 ID3D12GraphicsCommandList5 * This, 29999 _In_ UINT Mask); 30000 30001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 30002 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 30003 ID3D12GraphicsCommandList5 * This, 30004 UINT Count, 30005 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 30006 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 30007 30008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 30009 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 30010 ID3D12GraphicsCommandList5 * This, 30011 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 30012 30013 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 30014 void ( STDMETHODCALLTYPE *BeginRenderPass )( 30015 ID3D12GraphicsCommandList5 * This, 30016 _In_ UINT NumRenderTargets, 30017 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 30018 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 30019 D3D12_RENDER_PASS_FLAGS Flags); 30020 30021 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 30022 void ( STDMETHODCALLTYPE *EndRenderPass )( 30023 ID3D12GraphicsCommandList5 * This); 30024 30025 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 30026 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 30027 ID3D12GraphicsCommandList5 * This, 30028 _In_ ID3D12MetaCommand *pMetaCommand, 30029 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 30030 _In_ SIZE_T InitializationParametersDataSizeInBytes); 30031 30032 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 30033 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 30034 ID3D12GraphicsCommandList5 * This, 30035 _In_ ID3D12MetaCommand *pMetaCommand, 30036 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 30037 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 30038 30039 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 30040 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 30041 ID3D12GraphicsCommandList5 * This, 30042 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 30043 _In_ UINT NumPostbuildInfoDescs, 30044 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 30045 30046 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 30047 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 30048 ID3D12GraphicsCommandList5 * This, 30049 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 30050 _In_ UINT NumSourceAccelerationStructures, 30051 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 30052 30053 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 30054 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 30055 ID3D12GraphicsCommandList5 * This, 30056 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 30057 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 30058 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 30059 30060 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 30061 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 30062 ID3D12GraphicsCommandList5 * This, 30063 _In_ ID3D12StateObject *pStateObject); 30064 30065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 30066 void ( STDMETHODCALLTYPE *DispatchRays )( 30067 ID3D12GraphicsCommandList5 * This, 30068 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 30069 30070 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 30071 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 30072 ID3D12GraphicsCommandList5 * This, 30073 _In_ D3D12_SHADING_RATE baseShadingRate, 30074 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 30075 30076 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 30077 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 30078 ID3D12GraphicsCommandList5 * This, 30079 _In_opt_ ID3D12Resource *shadingRateImage); 30080 30081 END_INTERFACE 30082 } ID3D12GraphicsCommandList5Vtbl; 30083 30084 interface ID3D12GraphicsCommandList5 30085 { 30086 CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl; 30087 }; 30088 30089 30090 30091#ifdef COBJMACROS 30092 30093 30094#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \ 30095 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 30096 30097#define ID3D12GraphicsCommandList5_AddRef(This) \ 30098 ( (This)->lpVtbl -> AddRef(This) ) 30099 30100#define ID3D12GraphicsCommandList5_Release(This) \ 30101 ( (This)->lpVtbl -> Release(This) ) 30102 30103 30104#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \ 30105 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 30106 30107#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \ 30108 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 30109 30110#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \ 30111 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 30112 30113#define ID3D12GraphicsCommandList5_SetName(This,Name) \ 30114 ( (This)->lpVtbl -> SetName(This,Name) ) 30115 30116 30117#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \ 30118 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 30119 30120 30121#define ID3D12GraphicsCommandList5_GetType(This) \ 30122 ( (This)->lpVtbl -> GetType(This) ) 30123 30124 30125#define ID3D12GraphicsCommandList5_Close(This) \ 30126 ( (This)->lpVtbl -> Close(This) ) 30127 30128#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \ 30129 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 30130 30131#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \ 30132 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 30133 30134#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 30135 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 30136 30137#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 30138 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 30139 30140#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 30141 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 30142 30143#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 30144 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 30145 30146#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 30147 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 30148 30149#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \ 30150 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 30151 30152#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 30153 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 30154 30155#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 30156 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 30157 30158#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \ 30159 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 30160 30161#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \ 30162 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 30163 30164#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \ 30165 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 30166 30167#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \ 30168 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 30169 30170#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \ 30171 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 30172 30173#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \ 30174 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 30175 30176#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \ 30177 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 30178 30179#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \ 30180 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 30181 30182#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 30183 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 30184 30185#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \ 30186 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 30187 30188#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \ 30189 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 30190 30191#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 30192 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 30193 30194#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 30195 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 30196 30197#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 30198 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 30199 30200#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 30201 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 30202 30203#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 30204 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 30205 30206#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 30207 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 30208 30209#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 30210 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 30211 30212#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 30213 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 30214 30215#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 30216 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 30217 30218#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 30219 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 30220 30221#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 30222 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 30223 30224#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 30225 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 30226 30227#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \ 30228 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 30229 30230#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 30231 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 30232 30233#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \ 30234 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 30235 30236#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 30237 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 30238 30239#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 30240 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 30241 30242#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 30243 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 30244 30245#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 30246 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 30247 30248#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 30249 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 30250 30251#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \ 30252 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 30253 30254#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \ 30255 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 30256 30257#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \ 30258 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 30259 30260#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 30261 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 30262 30263#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 30264 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 30265 30266#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \ 30267 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 30268 30269#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \ 30270 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 30271 30272#define ID3D12GraphicsCommandList5_EndEvent(This) \ 30273 ( (This)->lpVtbl -> EndEvent(This) ) 30274 30275#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 30276 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 30277 30278 30279#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 30280 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 30281 30282#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 30283 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 30284 30285#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \ 30286 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 30287 30288#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 30289 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 30290 30291#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 30292 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 30293 30294#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \ 30295 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 30296 30297 30298#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \ 30299 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 30300 30301 30302#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \ 30303 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 30304 30305 30306#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 30307 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 30308 30309#define ID3D12GraphicsCommandList5_EndRenderPass(This) \ 30310 ( (This)->lpVtbl -> EndRenderPass(This) ) 30311 30312#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 30313 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 30314 30315#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 30316 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 30317 30318#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 30319 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 30320 30321#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 30322 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 30323 30324#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 30325 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 30326 30327#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \ 30328 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 30329 30330#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \ 30331 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 30332 30333 30334#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \ 30335 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 30336 30337#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \ 30338 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 30339 30340#endif /* COBJMACROS */ 30341 30342 30343#endif /* C style interface */ 30344 30345 30346 30347 30348#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ 30349 30350 30351/* interface __MIDL_itf_d3d12_0000_0068 */ 30352/* [local] */ 30353 30354typedef struct D3D12_DISPATCH_MESH_ARGUMENTS 30355 { 30356 UINT ThreadGroupCountX; 30357 UINT ThreadGroupCountY; 30358 UINT ThreadGroupCountZ; 30359 } D3D12_DISPATCH_MESH_ARGUMENTS; 30360 30361 30362 30363extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_c_ifspec; 30364extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_s_ifspec; 30365 30366#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ 30367#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ 30368 30369/* interface ID3D12GraphicsCommandList6 */ 30370/* [unique][local][object][uuid] */ 30371 30372 30373EXTERN_C const IID IID_ID3D12GraphicsCommandList6; 30374 30375#if defined(__cplusplus) && !defined(CINTERFACE) 30376 30377 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80") 30378 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5 30379 { 30380 public: 30381 virtual void STDMETHODCALLTYPE DispatchMesh( 30382 _In_ UINT ThreadGroupCountX, 30383 _In_ UINT ThreadGroupCountY, 30384 _In_ UINT ThreadGroupCountZ) = 0; 30385 30386 }; 30387 30388 30389#else /* C style interface */ 30390 30391 typedef struct ID3D12GraphicsCommandList6Vtbl 30392 { 30393 BEGIN_INTERFACE 30394 30395 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 30396 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 30397 ID3D12GraphicsCommandList6 * This, 30398 REFIID riid, 30399 _COM_Outptr_ void **ppvObject); 30400 30401 DECLSPEC_XFGVIRT(IUnknown, AddRef) 30402 ULONG ( STDMETHODCALLTYPE *AddRef )( 30403 ID3D12GraphicsCommandList6 * This); 30404 30405 DECLSPEC_XFGVIRT(IUnknown, Release) 30406 ULONG ( STDMETHODCALLTYPE *Release )( 30407 ID3D12GraphicsCommandList6 * This); 30408 30409 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 30410 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 30411 ID3D12GraphicsCommandList6 * This, 30412 _In_ REFGUID guid, 30413 _Inout_ UINT *pDataSize, 30414 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 30415 30416 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 30417 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 30418 ID3D12GraphicsCommandList6 * This, 30419 _In_ REFGUID guid, 30420 _In_ UINT DataSize, 30421 _In_reads_bytes_opt_( DataSize ) const void *pData); 30422 30423 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 30424 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 30425 ID3D12GraphicsCommandList6 * This, 30426 _In_ REFGUID guid, 30427 _In_opt_ const IUnknown *pData); 30428 30429 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 30430 HRESULT ( STDMETHODCALLTYPE *SetName )( 30431 ID3D12GraphicsCommandList6 * This, 30432 _In_z_ LPCWSTR Name); 30433 30434 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 30435 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 30436 ID3D12GraphicsCommandList6 * This, 30437 REFIID riid, 30438 _COM_Outptr_opt_ void **ppvDevice); 30439 30440 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 30441 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 30442 ID3D12GraphicsCommandList6 * This); 30443 30444 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 30445 HRESULT ( STDMETHODCALLTYPE *Close )( 30446 ID3D12GraphicsCommandList6 * This); 30447 30448 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 30449 HRESULT ( STDMETHODCALLTYPE *Reset )( 30450 ID3D12GraphicsCommandList6 * This, 30451 _In_ ID3D12CommandAllocator *pAllocator, 30452 _In_opt_ ID3D12PipelineState *pInitialState); 30453 30454 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 30455 void ( STDMETHODCALLTYPE *ClearState )( 30456 ID3D12GraphicsCommandList6 * This, 30457 _In_opt_ ID3D12PipelineState *pPipelineState); 30458 30459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 30460 void ( STDMETHODCALLTYPE *DrawInstanced )( 30461 ID3D12GraphicsCommandList6 * This, 30462 _In_ UINT VertexCountPerInstance, 30463 _In_ UINT InstanceCount, 30464 _In_ UINT StartVertexLocation, 30465 _In_ UINT StartInstanceLocation); 30466 30467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 30468 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 30469 ID3D12GraphicsCommandList6 * This, 30470 _In_ UINT IndexCountPerInstance, 30471 _In_ UINT InstanceCount, 30472 _In_ UINT StartIndexLocation, 30473 _In_ INT BaseVertexLocation, 30474 _In_ UINT StartInstanceLocation); 30475 30476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 30477 void ( STDMETHODCALLTYPE *Dispatch )( 30478 ID3D12GraphicsCommandList6 * This, 30479 _In_ UINT ThreadGroupCountX, 30480 _In_ UINT ThreadGroupCountY, 30481 _In_ UINT ThreadGroupCountZ); 30482 30483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 30484 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 30485 ID3D12GraphicsCommandList6 * This, 30486 _In_ ID3D12Resource *pDstBuffer, 30487 UINT64 DstOffset, 30488 _In_ ID3D12Resource *pSrcBuffer, 30489 UINT64 SrcOffset, 30490 UINT64 NumBytes); 30491 30492 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 30493 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 30494 ID3D12GraphicsCommandList6 * This, 30495 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 30496 UINT DstX, 30497 UINT DstY, 30498 UINT DstZ, 30499 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 30500 _In_opt_ const D3D12_BOX *pSrcBox); 30501 30502 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 30503 void ( STDMETHODCALLTYPE *CopyResource )( 30504 ID3D12GraphicsCommandList6 * This, 30505 _In_ ID3D12Resource *pDstResource, 30506 _In_ ID3D12Resource *pSrcResource); 30507 30508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 30509 void ( STDMETHODCALLTYPE *CopyTiles )( 30510 ID3D12GraphicsCommandList6 * This, 30511 _In_ ID3D12Resource *pTiledResource, 30512 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 30513 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 30514 _In_ ID3D12Resource *pBuffer, 30515 UINT64 BufferStartOffsetInBytes, 30516 D3D12_TILE_COPY_FLAGS Flags); 30517 30518 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 30519 void ( STDMETHODCALLTYPE *ResolveSubresource )( 30520 ID3D12GraphicsCommandList6 * This, 30521 _In_ ID3D12Resource *pDstResource, 30522 _In_ UINT DstSubresource, 30523 _In_ ID3D12Resource *pSrcResource, 30524 _In_ UINT SrcSubresource, 30525 _In_ DXGI_FORMAT Format); 30526 30527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 30528 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 30529 ID3D12GraphicsCommandList6 * This, 30530 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 30531 30532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 30533 void ( STDMETHODCALLTYPE *RSSetViewports )( 30534 ID3D12GraphicsCommandList6 * This, 30535 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 30536 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 30537 30538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 30539 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 30540 ID3D12GraphicsCommandList6 * This, 30541 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 30542 _In_reads_( NumRects) const D3D12_RECT *pRects); 30543 30544 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 30545 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 30546 ID3D12GraphicsCommandList6 * This, 30547 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 30548 30549 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 30550 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 30551 ID3D12GraphicsCommandList6 * This, 30552 _In_ UINT StencilRef); 30553 30554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 30555 void ( STDMETHODCALLTYPE *SetPipelineState )( 30556 ID3D12GraphicsCommandList6 * This, 30557 _In_ ID3D12PipelineState *pPipelineState); 30558 30559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 30560 void ( STDMETHODCALLTYPE *ResourceBarrier )( 30561 ID3D12GraphicsCommandList6 * This, 30562 _In_ UINT NumBarriers, 30563 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 30564 30565 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 30566 void ( STDMETHODCALLTYPE *ExecuteBundle )( 30567 ID3D12GraphicsCommandList6 * This, 30568 _In_ ID3D12GraphicsCommandList *pCommandList); 30569 30570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 30571 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 30572 ID3D12GraphicsCommandList6 * This, 30573 _In_ UINT NumDescriptorHeaps, 30574 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 30575 30576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 30577 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 30578 ID3D12GraphicsCommandList6 * This, 30579 _In_opt_ ID3D12RootSignature *pRootSignature); 30580 30581 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 30582 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 30583 ID3D12GraphicsCommandList6 * This, 30584 _In_opt_ ID3D12RootSignature *pRootSignature); 30585 30586 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 30587 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 30588 ID3D12GraphicsCommandList6 * This, 30589 _In_ UINT RootParameterIndex, 30590 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 30591 30592 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 30593 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 30594 ID3D12GraphicsCommandList6 * This, 30595 _In_ UINT RootParameterIndex, 30596 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 30597 30598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 30599 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 30600 ID3D12GraphicsCommandList6 * This, 30601 _In_ UINT RootParameterIndex, 30602 _In_ UINT SrcData, 30603 _In_ UINT DestOffsetIn32BitValues); 30604 30605 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 30606 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 30607 ID3D12GraphicsCommandList6 * This, 30608 _In_ UINT RootParameterIndex, 30609 _In_ UINT SrcData, 30610 _In_ UINT DestOffsetIn32BitValues); 30611 30612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 30613 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 30614 ID3D12GraphicsCommandList6 * This, 30615 _In_ UINT RootParameterIndex, 30616 _In_ UINT Num32BitValuesToSet, 30617 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 30618 _In_ UINT DestOffsetIn32BitValues); 30619 30620 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 30621 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 30622 ID3D12GraphicsCommandList6 * This, 30623 _In_ UINT RootParameterIndex, 30624 _In_ UINT Num32BitValuesToSet, 30625 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 30626 _In_ UINT DestOffsetIn32BitValues); 30627 30628 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 30629 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 30630 ID3D12GraphicsCommandList6 * This, 30631 _In_ UINT RootParameterIndex, 30632 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30633 30634 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 30635 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 30636 ID3D12GraphicsCommandList6 * This, 30637 _In_ UINT RootParameterIndex, 30638 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30639 30640 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 30641 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 30642 ID3D12GraphicsCommandList6 * This, 30643 _In_ UINT RootParameterIndex, 30644 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30645 30646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 30647 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 30648 ID3D12GraphicsCommandList6 * This, 30649 _In_ UINT RootParameterIndex, 30650 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30651 30652 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 30653 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 30654 ID3D12GraphicsCommandList6 * This, 30655 _In_ UINT RootParameterIndex, 30656 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30657 30658 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 30659 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 30660 ID3D12GraphicsCommandList6 * This, 30661 _In_ UINT RootParameterIndex, 30662 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 30663 30664 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 30665 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 30666 ID3D12GraphicsCommandList6 * This, 30667 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 30668 30669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 30670 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 30671 ID3D12GraphicsCommandList6 * This, 30672 _In_ UINT StartSlot, 30673 _In_ UINT NumViews, 30674 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 30675 30676 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 30677 void ( STDMETHODCALLTYPE *SOSetTargets )( 30678 ID3D12GraphicsCommandList6 * This, 30679 _In_ UINT StartSlot, 30680 _In_ UINT NumViews, 30681 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 30682 30683 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 30684 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 30685 ID3D12GraphicsCommandList6 * This, 30686 _In_ UINT NumRenderTargetDescriptors, 30687 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 30688 _In_ BOOL RTsSingleHandleToDescriptorRange, 30689 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 30690 30691 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 30692 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 30693 ID3D12GraphicsCommandList6 * This, 30694 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 30695 _In_ D3D12_CLEAR_FLAGS ClearFlags, 30696 _In_ FLOAT Depth, 30697 _In_ UINT8 Stencil, 30698 _In_ UINT NumRects, 30699 _In_reads_(NumRects) const D3D12_RECT *pRects); 30700 30701 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 30702 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 30703 ID3D12GraphicsCommandList6 * This, 30704 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 30705 _In_ const FLOAT ColorRGBA[ 4 ], 30706 _In_ UINT NumRects, 30707 _In_reads_(NumRects) const D3D12_RECT *pRects); 30708 30709 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 30710 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 30711 ID3D12GraphicsCommandList6 * This, 30712 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 30713 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 30714 _In_ ID3D12Resource *pResource, 30715 _In_ const UINT Values[ 4 ], 30716 _In_ UINT NumRects, 30717 _In_reads_(NumRects) const D3D12_RECT *pRects); 30718 30719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 30720 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 30721 ID3D12GraphicsCommandList6 * This, 30722 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 30723 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 30724 _In_ ID3D12Resource *pResource, 30725 _In_ const FLOAT Values[ 4 ], 30726 _In_ UINT NumRects, 30727 _In_reads_(NumRects) const D3D12_RECT *pRects); 30728 30729 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 30730 void ( STDMETHODCALLTYPE *DiscardResource )( 30731 ID3D12GraphicsCommandList6 * This, 30732 _In_ ID3D12Resource *pResource, 30733 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 30734 30735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 30736 void ( STDMETHODCALLTYPE *BeginQuery )( 30737 ID3D12GraphicsCommandList6 * This, 30738 _In_ ID3D12QueryHeap *pQueryHeap, 30739 _In_ D3D12_QUERY_TYPE Type, 30740 _In_ UINT Index); 30741 30742 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 30743 void ( STDMETHODCALLTYPE *EndQuery )( 30744 ID3D12GraphicsCommandList6 * This, 30745 _In_ ID3D12QueryHeap *pQueryHeap, 30746 _In_ D3D12_QUERY_TYPE Type, 30747 _In_ UINT Index); 30748 30749 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 30750 void ( STDMETHODCALLTYPE *ResolveQueryData )( 30751 ID3D12GraphicsCommandList6 * This, 30752 _In_ ID3D12QueryHeap *pQueryHeap, 30753 _In_ D3D12_QUERY_TYPE Type, 30754 _In_ UINT StartIndex, 30755 _In_ UINT NumQueries, 30756 _In_ ID3D12Resource *pDestinationBuffer, 30757 _In_ UINT64 AlignedDestinationBufferOffset); 30758 30759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 30760 void ( STDMETHODCALLTYPE *SetPredication )( 30761 ID3D12GraphicsCommandList6 * This, 30762 _In_opt_ ID3D12Resource *pBuffer, 30763 _In_ UINT64 AlignedBufferOffset, 30764 _In_ D3D12_PREDICATION_OP Operation); 30765 30766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 30767 void ( STDMETHODCALLTYPE *SetMarker )( 30768 ID3D12GraphicsCommandList6 * This, 30769 UINT Metadata, 30770 _In_reads_bytes_opt_(Size) const void *pData, 30771 UINT Size); 30772 30773 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 30774 void ( STDMETHODCALLTYPE *BeginEvent )( 30775 ID3D12GraphicsCommandList6 * This, 30776 UINT Metadata, 30777 _In_reads_bytes_opt_(Size) const void *pData, 30778 UINT Size); 30779 30780 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 30781 void ( STDMETHODCALLTYPE *EndEvent )( 30782 ID3D12GraphicsCommandList6 * This); 30783 30784 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 30785 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 30786 ID3D12GraphicsCommandList6 * This, 30787 _In_ ID3D12CommandSignature *pCommandSignature, 30788 _In_ UINT MaxCommandCount, 30789 _In_ ID3D12Resource *pArgumentBuffer, 30790 _In_ UINT64 ArgumentBufferOffset, 30791 _In_opt_ ID3D12Resource *pCountBuffer, 30792 _In_ UINT64 CountBufferOffset); 30793 30794 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 30795 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 30796 ID3D12GraphicsCommandList6 * This, 30797 _In_ ID3D12Resource *pDstBuffer, 30798 UINT64 DstOffset, 30799 _In_ ID3D12Resource *pSrcBuffer, 30800 UINT64 SrcOffset, 30801 UINT Dependencies, 30802 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 30803 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 30804 30805 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 30806 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 30807 ID3D12GraphicsCommandList6 * This, 30808 _In_ ID3D12Resource *pDstBuffer, 30809 UINT64 DstOffset, 30810 _In_ ID3D12Resource *pSrcBuffer, 30811 UINT64 SrcOffset, 30812 UINT Dependencies, 30813 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 30814 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 30815 30816 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 30817 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 30818 ID3D12GraphicsCommandList6 * This, 30819 _In_ FLOAT Min, 30820 _In_ FLOAT Max); 30821 30822 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 30823 void ( STDMETHODCALLTYPE *SetSamplePositions )( 30824 ID3D12GraphicsCommandList6 * This, 30825 _In_ UINT NumSamplesPerPixel, 30826 _In_ UINT NumPixels, 30827 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 30828 30829 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 30830 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 30831 ID3D12GraphicsCommandList6 * This, 30832 _In_ ID3D12Resource *pDstResource, 30833 _In_ UINT DstSubresource, 30834 _In_ UINT DstX, 30835 _In_ UINT DstY, 30836 _In_ ID3D12Resource *pSrcResource, 30837 _In_ UINT SrcSubresource, 30838 _In_opt_ D3D12_RECT *pSrcRect, 30839 _In_ DXGI_FORMAT Format, 30840 _In_ D3D12_RESOLVE_MODE ResolveMode); 30841 30842 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 30843 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 30844 ID3D12GraphicsCommandList6 * This, 30845 _In_ UINT Mask); 30846 30847 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 30848 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 30849 ID3D12GraphicsCommandList6 * This, 30850 UINT Count, 30851 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 30852 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 30853 30854 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 30855 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 30856 ID3D12GraphicsCommandList6 * This, 30857 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 30858 30859 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 30860 void ( STDMETHODCALLTYPE *BeginRenderPass )( 30861 ID3D12GraphicsCommandList6 * This, 30862 _In_ UINT NumRenderTargets, 30863 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 30864 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 30865 D3D12_RENDER_PASS_FLAGS Flags); 30866 30867 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 30868 void ( STDMETHODCALLTYPE *EndRenderPass )( 30869 ID3D12GraphicsCommandList6 * This); 30870 30871 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 30872 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 30873 ID3D12GraphicsCommandList6 * This, 30874 _In_ ID3D12MetaCommand *pMetaCommand, 30875 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 30876 _In_ SIZE_T InitializationParametersDataSizeInBytes); 30877 30878 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 30879 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 30880 ID3D12GraphicsCommandList6 * This, 30881 _In_ ID3D12MetaCommand *pMetaCommand, 30882 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 30883 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 30884 30885 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 30886 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 30887 ID3D12GraphicsCommandList6 * This, 30888 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 30889 _In_ UINT NumPostbuildInfoDescs, 30890 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 30891 30892 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 30893 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 30894 ID3D12GraphicsCommandList6 * This, 30895 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 30896 _In_ UINT NumSourceAccelerationStructures, 30897 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 30898 30899 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 30900 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 30901 ID3D12GraphicsCommandList6 * This, 30902 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 30903 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 30904 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 30905 30906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 30907 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 30908 ID3D12GraphicsCommandList6 * This, 30909 _In_ ID3D12StateObject *pStateObject); 30910 30911 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 30912 void ( STDMETHODCALLTYPE *DispatchRays )( 30913 ID3D12GraphicsCommandList6 * This, 30914 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 30915 30916 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 30917 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 30918 ID3D12GraphicsCommandList6 * This, 30919 _In_ D3D12_SHADING_RATE baseShadingRate, 30920 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 30921 30922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 30923 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 30924 ID3D12GraphicsCommandList6 * This, 30925 _In_opt_ ID3D12Resource *shadingRateImage); 30926 30927 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) 30928 void ( STDMETHODCALLTYPE *DispatchMesh )( 30929 ID3D12GraphicsCommandList6 * This, 30930 _In_ UINT ThreadGroupCountX, 30931 _In_ UINT ThreadGroupCountY, 30932 _In_ UINT ThreadGroupCountZ); 30933 30934 END_INTERFACE 30935 } ID3D12GraphicsCommandList6Vtbl; 30936 30937 interface ID3D12GraphicsCommandList6 30938 { 30939 CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl; 30940 }; 30941 30942 30943 30944#ifdef COBJMACROS 30945 30946 30947#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \ 30948 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 30949 30950#define ID3D12GraphicsCommandList6_AddRef(This) \ 30951 ( (This)->lpVtbl -> AddRef(This) ) 30952 30953#define ID3D12GraphicsCommandList6_Release(This) \ 30954 ( (This)->lpVtbl -> Release(This) ) 30955 30956 30957#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \ 30958 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 30959 30960#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \ 30961 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 30962 30963#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \ 30964 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 30965 30966#define ID3D12GraphicsCommandList6_SetName(This,Name) \ 30967 ( (This)->lpVtbl -> SetName(This,Name) ) 30968 30969 30970#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \ 30971 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 30972 30973 30974#define ID3D12GraphicsCommandList6_GetType(This) \ 30975 ( (This)->lpVtbl -> GetType(This) ) 30976 30977 30978#define ID3D12GraphicsCommandList6_Close(This) \ 30979 ( (This)->lpVtbl -> Close(This) ) 30980 30981#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \ 30982 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 30983 30984#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \ 30985 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 30986 30987#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 30988 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 30989 30990#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 30991 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 30992 30993#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 30994 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 30995 30996#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 30997 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 30998 30999#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 31000 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 31001 31002#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \ 31003 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 31004 31005#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 31006 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 31007 31008#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 31009 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 31010 31011#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \ 31012 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 31013 31014#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \ 31015 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 31016 31017#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \ 31018 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 31019 31020#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \ 31021 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 31022 31023#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \ 31024 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 31025 31026#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \ 31027 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 31028 31029#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \ 31030 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 31031 31032#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \ 31033 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 31034 31035#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 31036 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 31037 31038#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \ 31039 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 31040 31041#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \ 31042 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 31043 31044#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 31045 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 31046 31047#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 31048 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 31049 31050#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 31051 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 31052 31053#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 31054 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 31055 31056#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 31057 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 31058 31059#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 31060 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 31061 31062#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 31063 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 31064 31065#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 31066 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 31067 31068#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 31069 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 31070 31071#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 31072 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 31073 31074#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 31075 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 31076 31077#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 31078 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 31079 31080#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \ 31081 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 31082 31083#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 31084 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 31085 31086#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \ 31087 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 31088 31089#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 31090 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 31091 31092#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 31093 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 31094 31095#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 31096 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 31097 31098#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 31099 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 31100 31101#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 31102 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 31103 31104#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \ 31105 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 31106 31107#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \ 31108 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 31109 31110#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \ 31111 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 31112 31113#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 31114 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 31115 31116#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 31117 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 31118 31119#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \ 31120 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 31121 31122#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \ 31123 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 31124 31125#define ID3D12GraphicsCommandList6_EndEvent(This) \ 31126 ( (This)->lpVtbl -> EndEvent(This) ) 31127 31128#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 31129 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 31130 31131 31132#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 31133 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 31134 31135#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 31136 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 31137 31138#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \ 31139 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 31140 31141#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 31142 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 31143 31144#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 31145 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 31146 31147#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \ 31148 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 31149 31150 31151#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \ 31152 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 31153 31154 31155#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \ 31156 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 31157 31158 31159#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 31160 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 31161 31162#define ID3D12GraphicsCommandList6_EndRenderPass(This) \ 31163 ( (This)->lpVtbl -> EndRenderPass(This) ) 31164 31165#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 31166 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 31167 31168#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 31169 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 31170 31171#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 31172 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 31173 31174#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 31175 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 31176 31177#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 31178 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 31179 31180#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \ 31181 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 31182 31183#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \ 31184 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 31185 31186 31187#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \ 31188 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 31189 31190#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \ 31191 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 31192 31193 31194#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 31195 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 31196 31197#endif /* COBJMACROS */ 31198 31199 31200#endif /* C style interface */ 31201 31202 31203 31204 31205#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */ 31206 31207 31208#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ 31209#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ 31210 31211/* interface ID3D12GraphicsCommandList7 */ 31212/* [unique][local][object][uuid] */ 31213 31214 31215EXTERN_C const IID IID_ID3D12GraphicsCommandList7; 31216 31217#if defined(__cplusplus) && !defined(CINTERFACE) 31218 31219 MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1") 31220 ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6 31221 { 31222 public: 31223 virtual void STDMETHODCALLTYPE Barrier( 31224 UINT32 NumBarrierGroups, 31225 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; 31226 31227 }; 31228 31229 31230#else /* C style interface */ 31231 31232 typedef struct ID3D12GraphicsCommandList7Vtbl 31233 { 31234 BEGIN_INTERFACE 31235 31236 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 31237 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 31238 ID3D12GraphicsCommandList7 * This, 31239 REFIID riid, 31240 _COM_Outptr_ void **ppvObject); 31241 31242 DECLSPEC_XFGVIRT(IUnknown, AddRef) 31243 ULONG ( STDMETHODCALLTYPE *AddRef )( 31244 ID3D12GraphicsCommandList7 * This); 31245 31246 DECLSPEC_XFGVIRT(IUnknown, Release) 31247 ULONG ( STDMETHODCALLTYPE *Release )( 31248 ID3D12GraphicsCommandList7 * This); 31249 31250 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 31251 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 31252 ID3D12GraphicsCommandList7 * This, 31253 _In_ REFGUID guid, 31254 _Inout_ UINT *pDataSize, 31255 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 31256 31257 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 31258 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 31259 ID3D12GraphicsCommandList7 * This, 31260 _In_ REFGUID guid, 31261 _In_ UINT DataSize, 31262 _In_reads_bytes_opt_( DataSize ) const void *pData); 31263 31264 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 31265 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 31266 ID3D12GraphicsCommandList7 * This, 31267 _In_ REFGUID guid, 31268 _In_opt_ const IUnknown *pData); 31269 31270 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 31271 HRESULT ( STDMETHODCALLTYPE *SetName )( 31272 ID3D12GraphicsCommandList7 * This, 31273 _In_z_ LPCWSTR Name); 31274 31275 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 31276 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 31277 ID3D12GraphicsCommandList7 * This, 31278 REFIID riid, 31279 _COM_Outptr_opt_ void **ppvDevice); 31280 31281 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 31282 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 31283 ID3D12GraphicsCommandList7 * This); 31284 31285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 31286 HRESULT ( STDMETHODCALLTYPE *Close )( 31287 ID3D12GraphicsCommandList7 * This); 31288 31289 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 31290 HRESULT ( STDMETHODCALLTYPE *Reset )( 31291 ID3D12GraphicsCommandList7 * This, 31292 _In_ ID3D12CommandAllocator *pAllocator, 31293 _In_opt_ ID3D12PipelineState *pInitialState); 31294 31295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 31296 void ( STDMETHODCALLTYPE *ClearState )( 31297 ID3D12GraphicsCommandList7 * This, 31298 _In_opt_ ID3D12PipelineState *pPipelineState); 31299 31300 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 31301 void ( STDMETHODCALLTYPE *DrawInstanced )( 31302 ID3D12GraphicsCommandList7 * This, 31303 _In_ UINT VertexCountPerInstance, 31304 _In_ UINT InstanceCount, 31305 _In_ UINT StartVertexLocation, 31306 _In_ UINT StartInstanceLocation); 31307 31308 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 31309 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 31310 ID3D12GraphicsCommandList7 * This, 31311 _In_ UINT IndexCountPerInstance, 31312 _In_ UINT InstanceCount, 31313 _In_ UINT StartIndexLocation, 31314 _In_ INT BaseVertexLocation, 31315 _In_ UINT StartInstanceLocation); 31316 31317 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 31318 void ( STDMETHODCALLTYPE *Dispatch )( 31319 ID3D12GraphicsCommandList7 * This, 31320 _In_ UINT ThreadGroupCountX, 31321 _In_ UINT ThreadGroupCountY, 31322 _In_ UINT ThreadGroupCountZ); 31323 31324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 31325 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 31326 ID3D12GraphicsCommandList7 * This, 31327 _In_ ID3D12Resource *pDstBuffer, 31328 UINT64 DstOffset, 31329 _In_ ID3D12Resource *pSrcBuffer, 31330 UINT64 SrcOffset, 31331 UINT64 NumBytes); 31332 31333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 31334 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 31335 ID3D12GraphicsCommandList7 * This, 31336 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 31337 UINT DstX, 31338 UINT DstY, 31339 UINT DstZ, 31340 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 31341 _In_opt_ const D3D12_BOX *pSrcBox); 31342 31343 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 31344 void ( STDMETHODCALLTYPE *CopyResource )( 31345 ID3D12GraphicsCommandList7 * This, 31346 _In_ ID3D12Resource *pDstResource, 31347 _In_ ID3D12Resource *pSrcResource); 31348 31349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 31350 void ( STDMETHODCALLTYPE *CopyTiles )( 31351 ID3D12GraphicsCommandList7 * This, 31352 _In_ ID3D12Resource *pTiledResource, 31353 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 31354 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 31355 _In_ ID3D12Resource *pBuffer, 31356 UINT64 BufferStartOffsetInBytes, 31357 D3D12_TILE_COPY_FLAGS Flags); 31358 31359 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 31360 void ( STDMETHODCALLTYPE *ResolveSubresource )( 31361 ID3D12GraphicsCommandList7 * This, 31362 _In_ ID3D12Resource *pDstResource, 31363 _In_ UINT DstSubresource, 31364 _In_ ID3D12Resource *pSrcResource, 31365 _In_ UINT SrcSubresource, 31366 _In_ DXGI_FORMAT Format); 31367 31368 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 31369 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 31370 ID3D12GraphicsCommandList7 * This, 31371 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 31372 31373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 31374 void ( STDMETHODCALLTYPE *RSSetViewports )( 31375 ID3D12GraphicsCommandList7 * This, 31376 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 31377 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 31378 31379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 31380 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 31381 ID3D12GraphicsCommandList7 * This, 31382 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 31383 _In_reads_( NumRects) const D3D12_RECT *pRects); 31384 31385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 31386 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 31387 ID3D12GraphicsCommandList7 * This, 31388 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 31389 31390 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 31391 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 31392 ID3D12GraphicsCommandList7 * This, 31393 _In_ UINT StencilRef); 31394 31395 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 31396 void ( STDMETHODCALLTYPE *SetPipelineState )( 31397 ID3D12GraphicsCommandList7 * This, 31398 _In_ ID3D12PipelineState *pPipelineState); 31399 31400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 31401 void ( STDMETHODCALLTYPE *ResourceBarrier )( 31402 ID3D12GraphicsCommandList7 * This, 31403 _In_ UINT NumBarriers, 31404 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 31405 31406 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 31407 void ( STDMETHODCALLTYPE *ExecuteBundle )( 31408 ID3D12GraphicsCommandList7 * This, 31409 _In_ ID3D12GraphicsCommandList *pCommandList); 31410 31411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 31412 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 31413 ID3D12GraphicsCommandList7 * This, 31414 _In_ UINT NumDescriptorHeaps, 31415 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 31416 31417 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 31418 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 31419 ID3D12GraphicsCommandList7 * This, 31420 _In_opt_ ID3D12RootSignature *pRootSignature); 31421 31422 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 31423 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 31424 ID3D12GraphicsCommandList7 * This, 31425 _In_opt_ ID3D12RootSignature *pRootSignature); 31426 31427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 31428 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 31429 ID3D12GraphicsCommandList7 * This, 31430 _In_ UINT RootParameterIndex, 31431 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 31432 31433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 31434 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 31435 ID3D12GraphicsCommandList7 * This, 31436 _In_ UINT RootParameterIndex, 31437 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 31438 31439 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 31440 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 31441 ID3D12GraphicsCommandList7 * This, 31442 _In_ UINT RootParameterIndex, 31443 _In_ UINT SrcData, 31444 _In_ UINT DestOffsetIn32BitValues); 31445 31446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 31447 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 31448 ID3D12GraphicsCommandList7 * This, 31449 _In_ UINT RootParameterIndex, 31450 _In_ UINT SrcData, 31451 _In_ UINT DestOffsetIn32BitValues); 31452 31453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 31454 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 31455 ID3D12GraphicsCommandList7 * This, 31456 _In_ UINT RootParameterIndex, 31457 _In_ UINT Num32BitValuesToSet, 31458 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 31459 _In_ UINT DestOffsetIn32BitValues); 31460 31461 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 31462 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 31463 ID3D12GraphicsCommandList7 * This, 31464 _In_ UINT RootParameterIndex, 31465 _In_ UINT Num32BitValuesToSet, 31466 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 31467 _In_ UINT DestOffsetIn32BitValues); 31468 31469 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 31470 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 31471 ID3D12GraphicsCommandList7 * This, 31472 _In_ UINT RootParameterIndex, 31473 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31474 31475 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 31476 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 31477 ID3D12GraphicsCommandList7 * This, 31478 _In_ UINT RootParameterIndex, 31479 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31480 31481 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 31482 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 31483 ID3D12GraphicsCommandList7 * This, 31484 _In_ UINT RootParameterIndex, 31485 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31486 31487 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 31488 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 31489 ID3D12GraphicsCommandList7 * This, 31490 _In_ UINT RootParameterIndex, 31491 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31492 31493 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 31494 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 31495 ID3D12GraphicsCommandList7 * This, 31496 _In_ UINT RootParameterIndex, 31497 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31498 31499 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 31500 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 31501 ID3D12GraphicsCommandList7 * This, 31502 _In_ UINT RootParameterIndex, 31503 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 31504 31505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 31506 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 31507 ID3D12GraphicsCommandList7 * This, 31508 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 31509 31510 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 31511 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 31512 ID3D12GraphicsCommandList7 * This, 31513 _In_ UINT StartSlot, 31514 _In_ UINT NumViews, 31515 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 31516 31517 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 31518 void ( STDMETHODCALLTYPE *SOSetTargets )( 31519 ID3D12GraphicsCommandList7 * This, 31520 _In_ UINT StartSlot, 31521 _In_ UINT NumViews, 31522 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 31523 31524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 31525 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 31526 ID3D12GraphicsCommandList7 * This, 31527 _In_ UINT NumRenderTargetDescriptors, 31528 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 31529 _In_ BOOL RTsSingleHandleToDescriptorRange, 31530 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 31531 31532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 31533 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 31534 ID3D12GraphicsCommandList7 * This, 31535 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 31536 _In_ D3D12_CLEAR_FLAGS ClearFlags, 31537 _In_ FLOAT Depth, 31538 _In_ UINT8 Stencil, 31539 _In_ UINT NumRects, 31540 _In_reads_(NumRects) const D3D12_RECT *pRects); 31541 31542 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 31543 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 31544 ID3D12GraphicsCommandList7 * This, 31545 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 31546 _In_ const FLOAT ColorRGBA[ 4 ], 31547 _In_ UINT NumRects, 31548 _In_reads_(NumRects) const D3D12_RECT *pRects); 31549 31550 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 31551 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 31552 ID3D12GraphicsCommandList7 * This, 31553 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 31554 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 31555 _In_ ID3D12Resource *pResource, 31556 _In_ const UINT Values[ 4 ], 31557 _In_ UINT NumRects, 31558 _In_reads_(NumRects) const D3D12_RECT *pRects); 31559 31560 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 31561 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 31562 ID3D12GraphicsCommandList7 * This, 31563 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 31564 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 31565 _In_ ID3D12Resource *pResource, 31566 _In_ const FLOAT Values[ 4 ], 31567 _In_ UINT NumRects, 31568 _In_reads_(NumRects) const D3D12_RECT *pRects); 31569 31570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 31571 void ( STDMETHODCALLTYPE *DiscardResource )( 31572 ID3D12GraphicsCommandList7 * This, 31573 _In_ ID3D12Resource *pResource, 31574 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 31575 31576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 31577 void ( STDMETHODCALLTYPE *BeginQuery )( 31578 ID3D12GraphicsCommandList7 * This, 31579 _In_ ID3D12QueryHeap *pQueryHeap, 31580 _In_ D3D12_QUERY_TYPE Type, 31581 _In_ UINT Index); 31582 31583 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 31584 void ( STDMETHODCALLTYPE *EndQuery )( 31585 ID3D12GraphicsCommandList7 * This, 31586 _In_ ID3D12QueryHeap *pQueryHeap, 31587 _In_ D3D12_QUERY_TYPE Type, 31588 _In_ UINT Index); 31589 31590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 31591 void ( STDMETHODCALLTYPE *ResolveQueryData )( 31592 ID3D12GraphicsCommandList7 * This, 31593 _In_ ID3D12QueryHeap *pQueryHeap, 31594 _In_ D3D12_QUERY_TYPE Type, 31595 _In_ UINT StartIndex, 31596 _In_ UINT NumQueries, 31597 _In_ ID3D12Resource *pDestinationBuffer, 31598 _In_ UINT64 AlignedDestinationBufferOffset); 31599 31600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 31601 void ( STDMETHODCALLTYPE *SetPredication )( 31602 ID3D12GraphicsCommandList7 * This, 31603 _In_opt_ ID3D12Resource *pBuffer, 31604 _In_ UINT64 AlignedBufferOffset, 31605 _In_ D3D12_PREDICATION_OP Operation); 31606 31607 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 31608 void ( STDMETHODCALLTYPE *SetMarker )( 31609 ID3D12GraphicsCommandList7 * This, 31610 UINT Metadata, 31611 _In_reads_bytes_opt_(Size) const void *pData, 31612 UINT Size); 31613 31614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 31615 void ( STDMETHODCALLTYPE *BeginEvent )( 31616 ID3D12GraphicsCommandList7 * This, 31617 UINT Metadata, 31618 _In_reads_bytes_opt_(Size) const void *pData, 31619 UINT Size); 31620 31621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 31622 void ( STDMETHODCALLTYPE *EndEvent )( 31623 ID3D12GraphicsCommandList7 * This); 31624 31625 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 31626 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 31627 ID3D12GraphicsCommandList7 * This, 31628 _In_ ID3D12CommandSignature *pCommandSignature, 31629 _In_ UINT MaxCommandCount, 31630 _In_ ID3D12Resource *pArgumentBuffer, 31631 _In_ UINT64 ArgumentBufferOffset, 31632 _In_opt_ ID3D12Resource *pCountBuffer, 31633 _In_ UINT64 CountBufferOffset); 31634 31635 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 31636 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 31637 ID3D12GraphicsCommandList7 * This, 31638 _In_ ID3D12Resource *pDstBuffer, 31639 UINT64 DstOffset, 31640 _In_ ID3D12Resource *pSrcBuffer, 31641 UINT64 SrcOffset, 31642 UINT Dependencies, 31643 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 31644 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 31645 31646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 31647 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 31648 ID3D12GraphicsCommandList7 * This, 31649 _In_ ID3D12Resource *pDstBuffer, 31650 UINT64 DstOffset, 31651 _In_ ID3D12Resource *pSrcBuffer, 31652 UINT64 SrcOffset, 31653 UINT Dependencies, 31654 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 31655 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 31656 31657 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 31658 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 31659 ID3D12GraphicsCommandList7 * This, 31660 _In_ FLOAT Min, 31661 _In_ FLOAT Max); 31662 31663 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 31664 void ( STDMETHODCALLTYPE *SetSamplePositions )( 31665 ID3D12GraphicsCommandList7 * This, 31666 _In_ UINT NumSamplesPerPixel, 31667 _In_ UINT NumPixels, 31668 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 31669 31670 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 31671 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 31672 ID3D12GraphicsCommandList7 * This, 31673 _In_ ID3D12Resource *pDstResource, 31674 _In_ UINT DstSubresource, 31675 _In_ UINT DstX, 31676 _In_ UINT DstY, 31677 _In_ ID3D12Resource *pSrcResource, 31678 _In_ UINT SrcSubresource, 31679 _In_opt_ D3D12_RECT *pSrcRect, 31680 _In_ DXGI_FORMAT Format, 31681 _In_ D3D12_RESOLVE_MODE ResolveMode); 31682 31683 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 31684 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 31685 ID3D12GraphicsCommandList7 * This, 31686 _In_ UINT Mask); 31687 31688 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 31689 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 31690 ID3D12GraphicsCommandList7 * This, 31691 UINT Count, 31692 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 31693 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 31694 31695 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 31696 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 31697 ID3D12GraphicsCommandList7 * This, 31698 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 31699 31700 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 31701 void ( STDMETHODCALLTYPE *BeginRenderPass )( 31702 ID3D12GraphicsCommandList7 * This, 31703 _In_ UINT NumRenderTargets, 31704 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 31705 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 31706 D3D12_RENDER_PASS_FLAGS Flags); 31707 31708 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 31709 void ( STDMETHODCALLTYPE *EndRenderPass )( 31710 ID3D12GraphicsCommandList7 * This); 31711 31712 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 31713 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 31714 ID3D12GraphicsCommandList7 * This, 31715 _In_ ID3D12MetaCommand *pMetaCommand, 31716 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 31717 _In_ SIZE_T InitializationParametersDataSizeInBytes); 31718 31719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 31720 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 31721 ID3D12GraphicsCommandList7 * This, 31722 _In_ ID3D12MetaCommand *pMetaCommand, 31723 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 31724 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 31725 31726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 31727 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 31728 ID3D12GraphicsCommandList7 * This, 31729 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 31730 _In_ UINT NumPostbuildInfoDescs, 31731 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 31732 31733 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 31734 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 31735 ID3D12GraphicsCommandList7 * This, 31736 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 31737 _In_ UINT NumSourceAccelerationStructures, 31738 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 31739 31740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 31741 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 31742 ID3D12GraphicsCommandList7 * This, 31743 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 31744 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 31745 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 31746 31747 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 31748 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 31749 ID3D12GraphicsCommandList7 * This, 31750 _In_ ID3D12StateObject *pStateObject); 31751 31752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 31753 void ( STDMETHODCALLTYPE *DispatchRays )( 31754 ID3D12GraphicsCommandList7 * This, 31755 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 31756 31757 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 31758 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 31759 ID3D12GraphicsCommandList7 * This, 31760 _In_ D3D12_SHADING_RATE baseShadingRate, 31761 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 31762 31763 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 31764 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 31765 ID3D12GraphicsCommandList7 * This, 31766 _In_opt_ ID3D12Resource *shadingRateImage); 31767 31768 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) 31769 void ( STDMETHODCALLTYPE *DispatchMesh )( 31770 ID3D12GraphicsCommandList7 * This, 31771 _In_ UINT ThreadGroupCountX, 31772 _In_ UINT ThreadGroupCountY, 31773 _In_ UINT ThreadGroupCountZ); 31774 31775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) 31776 void ( STDMETHODCALLTYPE *Barrier )( 31777 ID3D12GraphicsCommandList7 * This, 31778 UINT32 NumBarrierGroups, 31779 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); 31780 31781 END_INTERFACE 31782 } ID3D12GraphicsCommandList7Vtbl; 31783 31784 interface ID3D12GraphicsCommandList7 31785 { 31786 CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl; 31787 }; 31788 31789 31790 31791#ifdef COBJMACROS 31792 31793 31794#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \ 31795 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 31796 31797#define ID3D12GraphicsCommandList7_AddRef(This) \ 31798 ( (This)->lpVtbl -> AddRef(This) ) 31799 31800#define ID3D12GraphicsCommandList7_Release(This) \ 31801 ( (This)->lpVtbl -> Release(This) ) 31802 31803 31804#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \ 31805 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 31806 31807#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \ 31808 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 31809 31810#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \ 31811 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 31812 31813#define ID3D12GraphicsCommandList7_SetName(This,Name) \ 31814 ( (This)->lpVtbl -> SetName(This,Name) ) 31815 31816 31817#define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \ 31818 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 31819 31820 31821#define ID3D12GraphicsCommandList7_GetType(This) \ 31822 ( (This)->lpVtbl -> GetType(This) ) 31823 31824 31825#define ID3D12GraphicsCommandList7_Close(This) \ 31826 ( (This)->lpVtbl -> Close(This) ) 31827 31828#define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \ 31829 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 31830 31831#define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \ 31832 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 31833 31834#define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 31835 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 31836 31837#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 31838 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 31839 31840#define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 31841 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 31842 31843#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 31844 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 31845 31846#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 31847 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 31848 31849#define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \ 31850 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 31851 31852#define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 31853 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 31854 31855#define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 31856 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 31857 31858#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \ 31859 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 31860 31861#define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \ 31862 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 31863 31864#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \ 31865 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 31866 31867#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \ 31868 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 31869 31870#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \ 31871 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 31872 31873#define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \ 31874 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 31875 31876#define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \ 31877 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 31878 31879#define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \ 31880 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 31881 31882#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 31883 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 31884 31885#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \ 31886 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 31887 31888#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \ 31889 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 31890 31891#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 31892 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 31893 31894#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 31895 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 31896 31897#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 31898 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 31899 31900#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 31901 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 31902 31903#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 31904 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 31905 31906#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 31907 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 31908 31909#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 31910 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 31911 31912#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 31913 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 31914 31915#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 31916 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 31917 31918#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 31919 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 31920 31921#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 31922 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 31923 31924#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 31925 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 31926 31927#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \ 31928 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 31929 31930#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 31931 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 31932 31933#define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \ 31934 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 31935 31936#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 31937 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 31938 31939#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 31940 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 31941 31942#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 31943 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 31944 31945#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 31946 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 31947 31948#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 31949 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 31950 31951#define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \ 31952 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 31953 31954#define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \ 31955 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 31956 31957#define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \ 31958 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 31959 31960#define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 31961 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 31962 31963#define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 31964 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 31965 31966#define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \ 31967 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 31968 31969#define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \ 31970 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 31971 31972#define ID3D12GraphicsCommandList7_EndEvent(This) \ 31973 ( (This)->lpVtbl -> EndEvent(This) ) 31974 31975#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 31976 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 31977 31978 31979#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 31980 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 31981 31982#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 31983 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 31984 31985#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \ 31986 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 31987 31988#define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 31989 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 31990 31991#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 31992 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 31993 31994#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \ 31995 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 31996 31997 31998#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \ 31999 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 32000 32001 32002#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \ 32003 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 32004 32005 32006#define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 32007 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 32008 32009#define ID3D12GraphicsCommandList7_EndRenderPass(This) \ 32010 ( (This)->lpVtbl -> EndRenderPass(This) ) 32011 32012#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 32013 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 32014 32015#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 32016 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 32017 32018#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 32019 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 32020 32021#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 32022 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 32023 32024#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 32025 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 32026 32027#define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \ 32028 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 32029 32030#define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \ 32031 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 32032 32033 32034#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \ 32035 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 32036 32037#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \ 32038 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 32039 32040 32041#define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 32042 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 32043 32044 32045#define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \ 32046 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) 32047 32048#endif /* COBJMACROS */ 32049 32050 32051#endif /* C style interface */ 32052 32053 32054 32055 32056#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */ 32057 32058 32059#ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ 32060#define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ 32061 32062/* interface ID3D12GraphicsCommandList8 */ 32063/* [unique][local][object][uuid] */ 32064 32065 32066EXTERN_C const IID IID_ID3D12GraphicsCommandList8; 32067 32068#if defined(__cplusplus) && !defined(CINTERFACE) 32069 32070 MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51") 32071 ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7 32072 { 32073 public: 32074 virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef( 32075 _In_ UINT FrontStencilRef, 32076 _In_ UINT BackStencilRef) = 0; 32077 32078 }; 32079 32080 32081#else /* C style interface */ 32082 32083 typedef struct ID3D12GraphicsCommandList8Vtbl 32084 { 32085 BEGIN_INTERFACE 32086 32087 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 32088 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 32089 ID3D12GraphicsCommandList8 * This, 32090 REFIID riid, 32091 _COM_Outptr_ void **ppvObject); 32092 32093 DECLSPEC_XFGVIRT(IUnknown, AddRef) 32094 ULONG ( STDMETHODCALLTYPE *AddRef )( 32095 ID3D12GraphicsCommandList8 * This); 32096 32097 DECLSPEC_XFGVIRT(IUnknown, Release) 32098 ULONG ( STDMETHODCALLTYPE *Release )( 32099 ID3D12GraphicsCommandList8 * This); 32100 32101 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 32102 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 32103 ID3D12GraphicsCommandList8 * This, 32104 _In_ REFGUID guid, 32105 _Inout_ UINT *pDataSize, 32106 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 32107 32108 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 32109 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 32110 ID3D12GraphicsCommandList8 * This, 32111 _In_ REFGUID guid, 32112 _In_ UINT DataSize, 32113 _In_reads_bytes_opt_( DataSize ) const void *pData); 32114 32115 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 32116 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 32117 ID3D12GraphicsCommandList8 * This, 32118 _In_ REFGUID guid, 32119 _In_opt_ const IUnknown *pData); 32120 32121 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 32122 HRESULT ( STDMETHODCALLTYPE *SetName )( 32123 ID3D12GraphicsCommandList8 * This, 32124 _In_z_ LPCWSTR Name); 32125 32126 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 32127 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 32128 ID3D12GraphicsCommandList8 * This, 32129 REFIID riid, 32130 _COM_Outptr_opt_ void **ppvDevice); 32131 32132 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 32133 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 32134 ID3D12GraphicsCommandList8 * This); 32135 32136 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 32137 HRESULT ( STDMETHODCALLTYPE *Close )( 32138 ID3D12GraphicsCommandList8 * This); 32139 32140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 32141 HRESULT ( STDMETHODCALLTYPE *Reset )( 32142 ID3D12GraphicsCommandList8 * This, 32143 _In_ ID3D12CommandAllocator *pAllocator, 32144 _In_opt_ ID3D12PipelineState *pInitialState); 32145 32146 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 32147 void ( STDMETHODCALLTYPE *ClearState )( 32148 ID3D12GraphicsCommandList8 * This, 32149 _In_opt_ ID3D12PipelineState *pPipelineState); 32150 32151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 32152 void ( STDMETHODCALLTYPE *DrawInstanced )( 32153 ID3D12GraphicsCommandList8 * This, 32154 _In_ UINT VertexCountPerInstance, 32155 _In_ UINT InstanceCount, 32156 _In_ UINT StartVertexLocation, 32157 _In_ UINT StartInstanceLocation); 32158 32159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 32160 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 32161 ID3D12GraphicsCommandList8 * This, 32162 _In_ UINT IndexCountPerInstance, 32163 _In_ UINT InstanceCount, 32164 _In_ UINT StartIndexLocation, 32165 _In_ INT BaseVertexLocation, 32166 _In_ UINT StartInstanceLocation); 32167 32168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 32169 void ( STDMETHODCALLTYPE *Dispatch )( 32170 ID3D12GraphicsCommandList8 * This, 32171 _In_ UINT ThreadGroupCountX, 32172 _In_ UINT ThreadGroupCountY, 32173 _In_ UINT ThreadGroupCountZ); 32174 32175 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 32176 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 32177 ID3D12GraphicsCommandList8 * This, 32178 _In_ ID3D12Resource *pDstBuffer, 32179 UINT64 DstOffset, 32180 _In_ ID3D12Resource *pSrcBuffer, 32181 UINT64 SrcOffset, 32182 UINT64 NumBytes); 32183 32184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 32185 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 32186 ID3D12GraphicsCommandList8 * This, 32187 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 32188 UINT DstX, 32189 UINT DstY, 32190 UINT DstZ, 32191 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 32192 _In_opt_ const D3D12_BOX *pSrcBox); 32193 32194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 32195 void ( STDMETHODCALLTYPE *CopyResource )( 32196 ID3D12GraphicsCommandList8 * This, 32197 _In_ ID3D12Resource *pDstResource, 32198 _In_ ID3D12Resource *pSrcResource); 32199 32200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 32201 void ( STDMETHODCALLTYPE *CopyTiles )( 32202 ID3D12GraphicsCommandList8 * This, 32203 _In_ ID3D12Resource *pTiledResource, 32204 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 32205 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 32206 _In_ ID3D12Resource *pBuffer, 32207 UINT64 BufferStartOffsetInBytes, 32208 D3D12_TILE_COPY_FLAGS Flags); 32209 32210 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 32211 void ( STDMETHODCALLTYPE *ResolveSubresource )( 32212 ID3D12GraphicsCommandList8 * This, 32213 _In_ ID3D12Resource *pDstResource, 32214 _In_ UINT DstSubresource, 32215 _In_ ID3D12Resource *pSrcResource, 32216 _In_ UINT SrcSubresource, 32217 _In_ DXGI_FORMAT Format); 32218 32219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 32220 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 32221 ID3D12GraphicsCommandList8 * This, 32222 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 32223 32224 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 32225 void ( STDMETHODCALLTYPE *RSSetViewports )( 32226 ID3D12GraphicsCommandList8 * This, 32227 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 32228 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 32229 32230 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 32231 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 32232 ID3D12GraphicsCommandList8 * This, 32233 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 32234 _In_reads_( NumRects) const D3D12_RECT *pRects); 32235 32236 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 32237 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 32238 ID3D12GraphicsCommandList8 * This, 32239 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 32240 32241 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 32242 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 32243 ID3D12GraphicsCommandList8 * This, 32244 _In_ UINT StencilRef); 32245 32246 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 32247 void ( STDMETHODCALLTYPE *SetPipelineState )( 32248 ID3D12GraphicsCommandList8 * This, 32249 _In_ ID3D12PipelineState *pPipelineState); 32250 32251 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 32252 void ( STDMETHODCALLTYPE *ResourceBarrier )( 32253 ID3D12GraphicsCommandList8 * This, 32254 _In_ UINT NumBarriers, 32255 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 32256 32257 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 32258 void ( STDMETHODCALLTYPE *ExecuteBundle )( 32259 ID3D12GraphicsCommandList8 * This, 32260 _In_ ID3D12GraphicsCommandList *pCommandList); 32261 32262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 32263 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 32264 ID3D12GraphicsCommandList8 * This, 32265 _In_ UINT NumDescriptorHeaps, 32266 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 32267 32268 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 32269 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 32270 ID3D12GraphicsCommandList8 * This, 32271 _In_opt_ ID3D12RootSignature *pRootSignature); 32272 32273 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 32274 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 32275 ID3D12GraphicsCommandList8 * This, 32276 _In_opt_ ID3D12RootSignature *pRootSignature); 32277 32278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 32279 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 32280 ID3D12GraphicsCommandList8 * This, 32281 _In_ UINT RootParameterIndex, 32282 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 32283 32284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 32285 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 32286 ID3D12GraphicsCommandList8 * This, 32287 _In_ UINT RootParameterIndex, 32288 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 32289 32290 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 32291 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 32292 ID3D12GraphicsCommandList8 * This, 32293 _In_ UINT RootParameterIndex, 32294 _In_ UINT SrcData, 32295 _In_ UINT DestOffsetIn32BitValues); 32296 32297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 32298 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 32299 ID3D12GraphicsCommandList8 * This, 32300 _In_ UINT RootParameterIndex, 32301 _In_ UINT SrcData, 32302 _In_ UINT DestOffsetIn32BitValues); 32303 32304 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 32305 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 32306 ID3D12GraphicsCommandList8 * This, 32307 _In_ UINT RootParameterIndex, 32308 _In_ UINT Num32BitValuesToSet, 32309 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 32310 _In_ UINT DestOffsetIn32BitValues); 32311 32312 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 32313 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 32314 ID3D12GraphicsCommandList8 * This, 32315 _In_ UINT RootParameterIndex, 32316 _In_ UINT Num32BitValuesToSet, 32317 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 32318 _In_ UINT DestOffsetIn32BitValues); 32319 32320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 32321 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 32322 ID3D12GraphicsCommandList8 * This, 32323 _In_ UINT RootParameterIndex, 32324 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32325 32326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 32327 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 32328 ID3D12GraphicsCommandList8 * This, 32329 _In_ UINT RootParameterIndex, 32330 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32331 32332 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 32333 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 32334 ID3D12GraphicsCommandList8 * This, 32335 _In_ UINT RootParameterIndex, 32336 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32337 32338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 32339 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 32340 ID3D12GraphicsCommandList8 * This, 32341 _In_ UINT RootParameterIndex, 32342 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32343 32344 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 32345 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 32346 ID3D12GraphicsCommandList8 * This, 32347 _In_ UINT RootParameterIndex, 32348 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32349 32350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 32351 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 32352 ID3D12GraphicsCommandList8 * This, 32353 _In_ UINT RootParameterIndex, 32354 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 32355 32356 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 32357 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 32358 ID3D12GraphicsCommandList8 * This, 32359 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 32360 32361 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 32362 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 32363 ID3D12GraphicsCommandList8 * This, 32364 _In_ UINT StartSlot, 32365 _In_ UINT NumViews, 32366 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 32367 32368 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 32369 void ( STDMETHODCALLTYPE *SOSetTargets )( 32370 ID3D12GraphicsCommandList8 * This, 32371 _In_ UINT StartSlot, 32372 _In_ UINT NumViews, 32373 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 32374 32375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 32376 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 32377 ID3D12GraphicsCommandList8 * This, 32378 _In_ UINT NumRenderTargetDescriptors, 32379 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 32380 _In_ BOOL RTsSingleHandleToDescriptorRange, 32381 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 32382 32383 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 32384 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 32385 ID3D12GraphicsCommandList8 * This, 32386 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 32387 _In_ D3D12_CLEAR_FLAGS ClearFlags, 32388 _In_ FLOAT Depth, 32389 _In_ UINT8 Stencil, 32390 _In_ UINT NumRects, 32391 _In_reads_(NumRects) const D3D12_RECT *pRects); 32392 32393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 32394 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 32395 ID3D12GraphicsCommandList8 * This, 32396 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 32397 _In_ const FLOAT ColorRGBA[ 4 ], 32398 _In_ UINT NumRects, 32399 _In_reads_(NumRects) const D3D12_RECT *pRects); 32400 32401 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 32402 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 32403 ID3D12GraphicsCommandList8 * This, 32404 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 32405 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 32406 _In_ ID3D12Resource *pResource, 32407 _In_ const UINT Values[ 4 ], 32408 _In_ UINT NumRects, 32409 _In_reads_(NumRects) const D3D12_RECT *pRects); 32410 32411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 32412 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 32413 ID3D12GraphicsCommandList8 * This, 32414 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 32415 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 32416 _In_ ID3D12Resource *pResource, 32417 _In_ const FLOAT Values[ 4 ], 32418 _In_ UINT NumRects, 32419 _In_reads_(NumRects) const D3D12_RECT *pRects); 32420 32421 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 32422 void ( STDMETHODCALLTYPE *DiscardResource )( 32423 ID3D12GraphicsCommandList8 * This, 32424 _In_ ID3D12Resource *pResource, 32425 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 32426 32427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 32428 void ( STDMETHODCALLTYPE *BeginQuery )( 32429 ID3D12GraphicsCommandList8 * This, 32430 _In_ ID3D12QueryHeap *pQueryHeap, 32431 _In_ D3D12_QUERY_TYPE Type, 32432 _In_ UINT Index); 32433 32434 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 32435 void ( STDMETHODCALLTYPE *EndQuery )( 32436 ID3D12GraphicsCommandList8 * This, 32437 _In_ ID3D12QueryHeap *pQueryHeap, 32438 _In_ D3D12_QUERY_TYPE Type, 32439 _In_ UINT Index); 32440 32441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 32442 void ( STDMETHODCALLTYPE *ResolveQueryData )( 32443 ID3D12GraphicsCommandList8 * This, 32444 _In_ ID3D12QueryHeap *pQueryHeap, 32445 _In_ D3D12_QUERY_TYPE Type, 32446 _In_ UINT StartIndex, 32447 _In_ UINT NumQueries, 32448 _In_ ID3D12Resource *pDestinationBuffer, 32449 _In_ UINT64 AlignedDestinationBufferOffset); 32450 32451 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 32452 void ( STDMETHODCALLTYPE *SetPredication )( 32453 ID3D12GraphicsCommandList8 * This, 32454 _In_opt_ ID3D12Resource *pBuffer, 32455 _In_ UINT64 AlignedBufferOffset, 32456 _In_ D3D12_PREDICATION_OP Operation); 32457 32458 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 32459 void ( STDMETHODCALLTYPE *SetMarker )( 32460 ID3D12GraphicsCommandList8 * This, 32461 UINT Metadata, 32462 _In_reads_bytes_opt_(Size) const void *pData, 32463 UINT Size); 32464 32465 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 32466 void ( STDMETHODCALLTYPE *BeginEvent )( 32467 ID3D12GraphicsCommandList8 * This, 32468 UINT Metadata, 32469 _In_reads_bytes_opt_(Size) const void *pData, 32470 UINT Size); 32471 32472 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 32473 void ( STDMETHODCALLTYPE *EndEvent )( 32474 ID3D12GraphicsCommandList8 * This); 32475 32476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 32477 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 32478 ID3D12GraphicsCommandList8 * This, 32479 _In_ ID3D12CommandSignature *pCommandSignature, 32480 _In_ UINT MaxCommandCount, 32481 _In_ ID3D12Resource *pArgumentBuffer, 32482 _In_ UINT64 ArgumentBufferOffset, 32483 _In_opt_ ID3D12Resource *pCountBuffer, 32484 _In_ UINT64 CountBufferOffset); 32485 32486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 32487 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 32488 ID3D12GraphicsCommandList8 * This, 32489 _In_ ID3D12Resource *pDstBuffer, 32490 UINT64 DstOffset, 32491 _In_ ID3D12Resource *pSrcBuffer, 32492 UINT64 SrcOffset, 32493 UINT Dependencies, 32494 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 32495 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 32496 32497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 32498 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 32499 ID3D12GraphicsCommandList8 * This, 32500 _In_ ID3D12Resource *pDstBuffer, 32501 UINT64 DstOffset, 32502 _In_ ID3D12Resource *pSrcBuffer, 32503 UINT64 SrcOffset, 32504 UINT Dependencies, 32505 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 32506 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 32507 32508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 32509 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 32510 ID3D12GraphicsCommandList8 * This, 32511 _In_ FLOAT Min, 32512 _In_ FLOAT Max); 32513 32514 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 32515 void ( STDMETHODCALLTYPE *SetSamplePositions )( 32516 ID3D12GraphicsCommandList8 * This, 32517 _In_ UINT NumSamplesPerPixel, 32518 _In_ UINT NumPixels, 32519 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 32520 32521 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 32522 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 32523 ID3D12GraphicsCommandList8 * This, 32524 _In_ ID3D12Resource *pDstResource, 32525 _In_ UINT DstSubresource, 32526 _In_ UINT DstX, 32527 _In_ UINT DstY, 32528 _In_ ID3D12Resource *pSrcResource, 32529 _In_ UINT SrcSubresource, 32530 _In_opt_ D3D12_RECT *pSrcRect, 32531 _In_ DXGI_FORMAT Format, 32532 _In_ D3D12_RESOLVE_MODE ResolveMode); 32533 32534 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 32535 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 32536 ID3D12GraphicsCommandList8 * This, 32537 _In_ UINT Mask); 32538 32539 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 32540 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 32541 ID3D12GraphicsCommandList8 * This, 32542 UINT Count, 32543 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 32544 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 32545 32546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 32547 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 32548 ID3D12GraphicsCommandList8 * This, 32549 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 32550 32551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 32552 void ( STDMETHODCALLTYPE *BeginRenderPass )( 32553 ID3D12GraphicsCommandList8 * This, 32554 _In_ UINT NumRenderTargets, 32555 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 32556 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 32557 D3D12_RENDER_PASS_FLAGS Flags); 32558 32559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 32560 void ( STDMETHODCALLTYPE *EndRenderPass )( 32561 ID3D12GraphicsCommandList8 * This); 32562 32563 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 32564 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 32565 ID3D12GraphicsCommandList8 * This, 32566 _In_ ID3D12MetaCommand *pMetaCommand, 32567 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 32568 _In_ SIZE_T InitializationParametersDataSizeInBytes); 32569 32570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 32571 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 32572 ID3D12GraphicsCommandList8 * This, 32573 _In_ ID3D12MetaCommand *pMetaCommand, 32574 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 32575 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 32576 32577 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 32578 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 32579 ID3D12GraphicsCommandList8 * This, 32580 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 32581 _In_ UINT NumPostbuildInfoDescs, 32582 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 32583 32584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 32585 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 32586 ID3D12GraphicsCommandList8 * This, 32587 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 32588 _In_ UINT NumSourceAccelerationStructures, 32589 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 32590 32591 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 32592 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 32593 ID3D12GraphicsCommandList8 * This, 32594 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 32595 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 32596 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 32597 32598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 32599 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 32600 ID3D12GraphicsCommandList8 * This, 32601 _In_ ID3D12StateObject *pStateObject); 32602 32603 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 32604 void ( STDMETHODCALLTYPE *DispatchRays )( 32605 ID3D12GraphicsCommandList8 * This, 32606 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 32607 32608 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 32609 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 32610 ID3D12GraphicsCommandList8 * This, 32611 _In_ D3D12_SHADING_RATE baseShadingRate, 32612 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 32613 32614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 32615 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 32616 ID3D12GraphicsCommandList8 * This, 32617 _In_opt_ ID3D12Resource *shadingRateImage); 32618 32619 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) 32620 void ( STDMETHODCALLTYPE *DispatchMesh )( 32621 ID3D12GraphicsCommandList8 * This, 32622 _In_ UINT ThreadGroupCountX, 32623 _In_ UINT ThreadGroupCountY, 32624 _In_ UINT ThreadGroupCountZ); 32625 32626 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) 32627 void ( STDMETHODCALLTYPE *Barrier )( 32628 ID3D12GraphicsCommandList8 * This, 32629 UINT32 NumBarrierGroups, 32630 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); 32631 32632 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) 32633 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( 32634 ID3D12GraphicsCommandList8 * This, 32635 _In_ UINT FrontStencilRef, 32636 _In_ UINT BackStencilRef); 32637 32638 END_INTERFACE 32639 } ID3D12GraphicsCommandList8Vtbl; 32640 32641 interface ID3D12GraphicsCommandList8 32642 { 32643 CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl; 32644 }; 32645 32646 32647 32648#ifdef COBJMACROS 32649 32650 32651#define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \ 32652 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 32653 32654#define ID3D12GraphicsCommandList8_AddRef(This) \ 32655 ( (This)->lpVtbl -> AddRef(This) ) 32656 32657#define ID3D12GraphicsCommandList8_Release(This) \ 32658 ( (This)->lpVtbl -> Release(This) ) 32659 32660 32661#define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \ 32662 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 32663 32664#define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \ 32665 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 32666 32667#define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \ 32668 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 32669 32670#define ID3D12GraphicsCommandList8_SetName(This,Name) \ 32671 ( (This)->lpVtbl -> SetName(This,Name) ) 32672 32673 32674#define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \ 32675 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 32676 32677 32678#define ID3D12GraphicsCommandList8_GetType(This) \ 32679 ( (This)->lpVtbl -> GetType(This) ) 32680 32681 32682#define ID3D12GraphicsCommandList8_Close(This) \ 32683 ( (This)->lpVtbl -> Close(This) ) 32684 32685#define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \ 32686 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 32687 32688#define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \ 32689 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 32690 32691#define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 32692 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 32693 32694#define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 32695 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 32696 32697#define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 32698 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 32699 32700#define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 32701 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 32702 32703#define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 32704 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 32705 32706#define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \ 32707 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 32708 32709#define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 32710 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 32711 32712#define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 32713 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 32714 32715#define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \ 32716 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 32717 32718#define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \ 32719 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 32720 32721#define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \ 32722 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 32723 32724#define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \ 32725 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 32726 32727#define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \ 32728 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 32729 32730#define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \ 32731 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 32732 32733#define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \ 32734 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 32735 32736#define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \ 32737 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 32738 32739#define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 32740 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 32741 32742#define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \ 32743 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 32744 32745#define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \ 32746 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 32747 32748#define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 32749 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 32750 32751#define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 32752 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 32753 32754#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 32755 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 32756 32757#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 32758 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 32759 32760#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 32761 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 32762 32763#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 32764 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 32765 32766#define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 32767 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 32768 32769#define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 32770 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 32771 32772#define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 32773 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 32774 32775#define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 32776 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 32777 32778#define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 32779 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 32780 32781#define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 32782 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 32783 32784#define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \ 32785 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 32786 32787#define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 32788 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 32789 32790#define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \ 32791 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 32792 32793#define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 32794 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 32795 32796#define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 32797 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 32798 32799#define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 32800 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 32801 32802#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 32803 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 32804 32805#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 32806 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 32807 32808#define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \ 32809 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 32810 32811#define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \ 32812 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 32813 32814#define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \ 32815 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 32816 32817#define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 32818 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 32819 32820#define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 32821 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 32822 32823#define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \ 32824 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 32825 32826#define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \ 32827 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 32828 32829#define ID3D12GraphicsCommandList8_EndEvent(This) \ 32830 ( (This)->lpVtbl -> EndEvent(This) ) 32831 32832#define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 32833 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 32834 32835 32836#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 32837 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 32838 32839#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 32840 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 32841 32842#define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \ 32843 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 32844 32845#define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 32846 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 32847 32848#define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 32849 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 32850 32851#define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \ 32852 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 32853 32854 32855#define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \ 32856 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 32857 32858 32859#define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \ 32860 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 32861 32862 32863#define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 32864 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 32865 32866#define ID3D12GraphicsCommandList8_EndRenderPass(This) \ 32867 ( (This)->lpVtbl -> EndRenderPass(This) ) 32868 32869#define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 32870 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 32871 32872#define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 32873 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 32874 32875#define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 32876 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 32877 32878#define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 32879 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 32880 32881#define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 32882 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 32883 32884#define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \ 32885 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 32886 32887#define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \ 32888 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 32889 32890 32891#define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \ 32892 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 32893 32894#define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \ 32895 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 32896 32897 32898#define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 32899 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 32900 32901 32902#define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \ 32903 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) 32904 32905 32906#define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ 32907 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) 32908 32909#endif /* COBJMACROS */ 32910 32911 32912#endif /* C style interface */ 32913 32914 32915 32916 32917#endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */ 32918 32919 32920#ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ 32921#define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ 32922 32923/* interface ID3D12GraphicsCommandList9 */ 32924/* [unique][local][object][uuid] */ 32925 32926 32927EXTERN_C const IID IID_ID3D12GraphicsCommandList9; 32928 32929#if defined(__cplusplus) && !defined(CINTERFACE) 32930 32931 MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1") 32932 ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8 32933 { 32934 public: 32935 virtual void STDMETHODCALLTYPE RSSetDepthBias( 32936 _In_ FLOAT DepthBias, 32937 _In_ FLOAT DepthBiasClamp, 32938 _In_ FLOAT SlopeScaledDepthBias) = 0; 32939 32940 virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue( 32941 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0; 32942 32943 }; 32944 32945 32946#else /* C style interface */ 32947 32948 typedef struct ID3D12GraphicsCommandList9Vtbl 32949 { 32950 BEGIN_INTERFACE 32951 32952 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 32953 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 32954 ID3D12GraphicsCommandList9 * This, 32955 REFIID riid, 32956 _COM_Outptr_ void **ppvObject); 32957 32958 DECLSPEC_XFGVIRT(IUnknown, AddRef) 32959 ULONG ( STDMETHODCALLTYPE *AddRef )( 32960 ID3D12GraphicsCommandList9 * This); 32961 32962 DECLSPEC_XFGVIRT(IUnknown, Release) 32963 ULONG ( STDMETHODCALLTYPE *Release )( 32964 ID3D12GraphicsCommandList9 * This); 32965 32966 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 32967 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 32968 ID3D12GraphicsCommandList9 * This, 32969 _In_ REFGUID guid, 32970 _Inout_ UINT *pDataSize, 32971 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 32972 32973 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 32974 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 32975 ID3D12GraphicsCommandList9 * This, 32976 _In_ REFGUID guid, 32977 _In_ UINT DataSize, 32978 _In_reads_bytes_opt_( DataSize ) const void *pData); 32979 32980 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 32981 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 32982 ID3D12GraphicsCommandList9 * This, 32983 _In_ REFGUID guid, 32984 _In_opt_ const IUnknown *pData); 32985 32986 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 32987 HRESULT ( STDMETHODCALLTYPE *SetName )( 32988 ID3D12GraphicsCommandList9 * This, 32989 _In_z_ LPCWSTR Name); 32990 32991 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 32992 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 32993 ID3D12GraphicsCommandList9 * This, 32994 REFIID riid, 32995 _COM_Outptr_opt_ void **ppvDevice); 32996 32997 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 32998 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 32999 ID3D12GraphicsCommandList9 * This); 33000 33001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 33002 HRESULT ( STDMETHODCALLTYPE *Close )( 33003 ID3D12GraphicsCommandList9 * This); 33004 33005 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 33006 HRESULT ( STDMETHODCALLTYPE *Reset )( 33007 ID3D12GraphicsCommandList9 * This, 33008 _In_ ID3D12CommandAllocator *pAllocator, 33009 _In_opt_ ID3D12PipelineState *pInitialState); 33010 33011 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 33012 void ( STDMETHODCALLTYPE *ClearState )( 33013 ID3D12GraphicsCommandList9 * This, 33014 _In_opt_ ID3D12PipelineState *pPipelineState); 33015 33016 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 33017 void ( STDMETHODCALLTYPE *DrawInstanced )( 33018 ID3D12GraphicsCommandList9 * This, 33019 _In_ UINT VertexCountPerInstance, 33020 _In_ UINT InstanceCount, 33021 _In_ UINT StartVertexLocation, 33022 _In_ UINT StartInstanceLocation); 33023 33024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 33025 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 33026 ID3D12GraphicsCommandList9 * This, 33027 _In_ UINT IndexCountPerInstance, 33028 _In_ UINT InstanceCount, 33029 _In_ UINT StartIndexLocation, 33030 _In_ INT BaseVertexLocation, 33031 _In_ UINT StartInstanceLocation); 33032 33033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 33034 void ( STDMETHODCALLTYPE *Dispatch )( 33035 ID3D12GraphicsCommandList9 * This, 33036 _In_ UINT ThreadGroupCountX, 33037 _In_ UINT ThreadGroupCountY, 33038 _In_ UINT ThreadGroupCountZ); 33039 33040 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 33041 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 33042 ID3D12GraphicsCommandList9 * This, 33043 _In_ ID3D12Resource *pDstBuffer, 33044 UINT64 DstOffset, 33045 _In_ ID3D12Resource *pSrcBuffer, 33046 UINT64 SrcOffset, 33047 UINT64 NumBytes); 33048 33049 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 33050 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 33051 ID3D12GraphicsCommandList9 * This, 33052 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 33053 UINT DstX, 33054 UINT DstY, 33055 UINT DstZ, 33056 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 33057 _In_opt_ const D3D12_BOX *pSrcBox); 33058 33059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 33060 void ( STDMETHODCALLTYPE *CopyResource )( 33061 ID3D12GraphicsCommandList9 * This, 33062 _In_ ID3D12Resource *pDstResource, 33063 _In_ ID3D12Resource *pSrcResource); 33064 33065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 33066 void ( STDMETHODCALLTYPE *CopyTiles )( 33067 ID3D12GraphicsCommandList9 * This, 33068 _In_ ID3D12Resource *pTiledResource, 33069 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 33070 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 33071 _In_ ID3D12Resource *pBuffer, 33072 UINT64 BufferStartOffsetInBytes, 33073 D3D12_TILE_COPY_FLAGS Flags); 33074 33075 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 33076 void ( STDMETHODCALLTYPE *ResolveSubresource )( 33077 ID3D12GraphicsCommandList9 * This, 33078 _In_ ID3D12Resource *pDstResource, 33079 _In_ UINT DstSubresource, 33080 _In_ ID3D12Resource *pSrcResource, 33081 _In_ UINT SrcSubresource, 33082 _In_ DXGI_FORMAT Format); 33083 33084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 33085 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 33086 ID3D12GraphicsCommandList9 * This, 33087 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 33088 33089 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 33090 void ( STDMETHODCALLTYPE *RSSetViewports )( 33091 ID3D12GraphicsCommandList9 * This, 33092 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 33093 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 33094 33095 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 33096 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 33097 ID3D12GraphicsCommandList9 * This, 33098 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 33099 _In_reads_( NumRects) const D3D12_RECT *pRects); 33100 33101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 33102 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 33103 ID3D12GraphicsCommandList9 * This, 33104 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 33105 33106 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 33107 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 33108 ID3D12GraphicsCommandList9 * This, 33109 _In_ UINT StencilRef); 33110 33111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 33112 void ( STDMETHODCALLTYPE *SetPipelineState )( 33113 ID3D12GraphicsCommandList9 * This, 33114 _In_ ID3D12PipelineState *pPipelineState); 33115 33116 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 33117 void ( STDMETHODCALLTYPE *ResourceBarrier )( 33118 ID3D12GraphicsCommandList9 * This, 33119 _In_ UINT NumBarriers, 33120 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 33121 33122 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 33123 void ( STDMETHODCALLTYPE *ExecuteBundle )( 33124 ID3D12GraphicsCommandList9 * This, 33125 _In_ ID3D12GraphicsCommandList *pCommandList); 33126 33127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 33128 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 33129 ID3D12GraphicsCommandList9 * This, 33130 _In_ UINT NumDescriptorHeaps, 33131 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 33132 33133 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 33134 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 33135 ID3D12GraphicsCommandList9 * This, 33136 _In_opt_ ID3D12RootSignature *pRootSignature); 33137 33138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 33139 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 33140 ID3D12GraphicsCommandList9 * This, 33141 _In_opt_ ID3D12RootSignature *pRootSignature); 33142 33143 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 33144 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 33145 ID3D12GraphicsCommandList9 * This, 33146 _In_ UINT RootParameterIndex, 33147 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 33148 33149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 33150 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 33151 ID3D12GraphicsCommandList9 * This, 33152 _In_ UINT RootParameterIndex, 33153 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 33154 33155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 33156 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 33157 ID3D12GraphicsCommandList9 * This, 33158 _In_ UINT RootParameterIndex, 33159 _In_ UINT SrcData, 33160 _In_ UINT DestOffsetIn32BitValues); 33161 33162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 33163 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 33164 ID3D12GraphicsCommandList9 * This, 33165 _In_ UINT RootParameterIndex, 33166 _In_ UINT SrcData, 33167 _In_ UINT DestOffsetIn32BitValues); 33168 33169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 33170 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 33171 ID3D12GraphicsCommandList9 * This, 33172 _In_ UINT RootParameterIndex, 33173 _In_ UINT Num32BitValuesToSet, 33174 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 33175 _In_ UINT DestOffsetIn32BitValues); 33176 33177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 33178 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 33179 ID3D12GraphicsCommandList9 * This, 33180 _In_ UINT RootParameterIndex, 33181 _In_ UINT Num32BitValuesToSet, 33182 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 33183 _In_ UINT DestOffsetIn32BitValues); 33184 33185 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 33186 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 33187 ID3D12GraphicsCommandList9 * This, 33188 _In_ UINT RootParameterIndex, 33189 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33190 33191 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 33192 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 33193 ID3D12GraphicsCommandList9 * This, 33194 _In_ UINT RootParameterIndex, 33195 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33196 33197 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 33198 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 33199 ID3D12GraphicsCommandList9 * This, 33200 _In_ UINT RootParameterIndex, 33201 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33202 33203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 33204 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 33205 ID3D12GraphicsCommandList9 * This, 33206 _In_ UINT RootParameterIndex, 33207 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33208 33209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 33210 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 33211 ID3D12GraphicsCommandList9 * This, 33212 _In_ UINT RootParameterIndex, 33213 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33214 33215 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 33216 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 33217 ID3D12GraphicsCommandList9 * This, 33218 _In_ UINT RootParameterIndex, 33219 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 33220 33221 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 33222 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 33223 ID3D12GraphicsCommandList9 * This, 33224 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 33225 33226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 33227 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 33228 ID3D12GraphicsCommandList9 * This, 33229 _In_ UINT StartSlot, 33230 _In_ UINT NumViews, 33231 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 33232 33233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 33234 void ( STDMETHODCALLTYPE *SOSetTargets )( 33235 ID3D12GraphicsCommandList9 * This, 33236 _In_ UINT StartSlot, 33237 _In_ UINT NumViews, 33238 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 33239 33240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 33241 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 33242 ID3D12GraphicsCommandList9 * This, 33243 _In_ UINT NumRenderTargetDescriptors, 33244 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 33245 _In_ BOOL RTsSingleHandleToDescriptorRange, 33246 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 33247 33248 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 33249 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 33250 ID3D12GraphicsCommandList9 * This, 33251 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 33252 _In_ D3D12_CLEAR_FLAGS ClearFlags, 33253 _In_ FLOAT Depth, 33254 _In_ UINT8 Stencil, 33255 _In_ UINT NumRects, 33256 _In_reads_(NumRects) const D3D12_RECT *pRects); 33257 33258 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 33259 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 33260 ID3D12GraphicsCommandList9 * This, 33261 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 33262 _In_ const FLOAT ColorRGBA[ 4 ], 33263 _In_ UINT NumRects, 33264 _In_reads_(NumRects) const D3D12_RECT *pRects); 33265 33266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 33267 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 33268 ID3D12GraphicsCommandList9 * This, 33269 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 33270 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 33271 _In_ ID3D12Resource *pResource, 33272 _In_ const UINT Values[ 4 ], 33273 _In_ UINT NumRects, 33274 _In_reads_(NumRects) const D3D12_RECT *pRects); 33275 33276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 33277 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 33278 ID3D12GraphicsCommandList9 * This, 33279 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 33280 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 33281 _In_ ID3D12Resource *pResource, 33282 _In_ const FLOAT Values[ 4 ], 33283 _In_ UINT NumRects, 33284 _In_reads_(NumRects) const D3D12_RECT *pRects); 33285 33286 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 33287 void ( STDMETHODCALLTYPE *DiscardResource )( 33288 ID3D12GraphicsCommandList9 * This, 33289 _In_ ID3D12Resource *pResource, 33290 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 33291 33292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 33293 void ( STDMETHODCALLTYPE *BeginQuery )( 33294 ID3D12GraphicsCommandList9 * This, 33295 _In_ ID3D12QueryHeap *pQueryHeap, 33296 _In_ D3D12_QUERY_TYPE Type, 33297 _In_ UINT Index); 33298 33299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 33300 void ( STDMETHODCALLTYPE *EndQuery )( 33301 ID3D12GraphicsCommandList9 * This, 33302 _In_ ID3D12QueryHeap *pQueryHeap, 33303 _In_ D3D12_QUERY_TYPE Type, 33304 _In_ UINT Index); 33305 33306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 33307 void ( STDMETHODCALLTYPE *ResolveQueryData )( 33308 ID3D12GraphicsCommandList9 * This, 33309 _In_ ID3D12QueryHeap *pQueryHeap, 33310 _In_ D3D12_QUERY_TYPE Type, 33311 _In_ UINT StartIndex, 33312 _In_ UINT NumQueries, 33313 _In_ ID3D12Resource *pDestinationBuffer, 33314 _In_ UINT64 AlignedDestinationBufferOffset); 33315 33316 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 33317 void ( STDMETHODCALLTYPE *SetPredication )( 33318 ID3D12GraphicsCommandList9 * This, 33319 _In_opt_ ID3D12Resource *pBuffer, 33320 _In_ UINT64 AlignedBufferOffset, 33321 _In_ D3D12_PREDICATION_OP Operation); 33322 33323 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 33324 void ( STDMETHODCALLTYPE *SetMarker )( 33325 ID3D12GraphicsCommandList9 * This, 33326 UINT Metadata, 33327 _In_reads_bytes_opt_(Size) const void *pData, 33328 UINT Size); 33329 33330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 33331 void ( STDMETHODCALLTYPE *BeginEvent )( 33332 ID3D12GraphicsCommandList9 * This, 33333 UINT Metadata, 33334 _In_reads_bytes_opt_(Size) const void *pData, 33335 UINT Size); 33336 33337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 33338 void ( STDMETHODCALLTYPE *EndEvent )( 33339 ID3D12GraphicsCommandList9 * This); 33340 33341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 33342 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 33343 ID3D12GraphicsCommandList9 * This, 33344 _In_ ID3D12CommandSignature *pCommandSignature, 33345 _In_ UINT MaxCommandCount, 33346 _In_ ID3D12Resource *pArgumentBuffer, 33347 _In_ UINT64 ArgumentBufferOffset, 33348 _In_opt_ ID3D12Resource *pCountBuffer, 33349 _In_ UINT64 CountBufferOffset); 33350 33351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 33352 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 33353 ID3D12GraphicsCommandList9 * This, 33354 _In_ ID3D12Resource *pDstBuffer, 33355 UINT64 DstOffset, 33356 _In_ ID3D12Resource *pSrcBuffer, 33357 UINT64 SrcOffset, 33358 UINT Dependencies, 33359 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 33360 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 33361 33362 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 33363 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 33364 ID3D12GraphicsCommandList9 * This, 33365 _In_ ID3D12Resource *pDstBuffer, 33366 UINT64 DstOffset, 33367 _In_ ID3D12Resource *pSrcBuffer, 33368 UINT64 SrcOffset, 33369 UINT Dependencies, 33370 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 33371 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 33372 33373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 33374 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 33375 ID3D12GraphicsCommandList9 * This, 33376 _In_ FLOAT Min, 33377 _In_ FLOAT Max); 33378 33379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 33380 void ( STDMETHODCALLTYPE *SetSamplePositions )( 33381 ID3D12GraphicsCommandList9 * This, 33382 _In_ UINT NumSamplesPerPixel, 33383 _In_ UINT NumPixels, 33384 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 33385 33386 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 33387 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 33388 ID3D12GraphicsCommandList9 * This, 33389 _In_ ID3D12Resource *pDstResource, 33390 _In_ UINT DstSubresource, 33391 _In_ UINT DstX, 33392 _In_ UINT DstY, 33393 _In_ ID3D12Resource *pSrcResource, 33394 _In_ UINT SrcSubresource, 33395 _In_opt_ D3D12_RECT *pSrcRect, 33396 _In_ DXGI_FORMAT Format, 33397 _In_ D3D12_RESOLVE_MODE ResolveMode); 33398 33399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 33400 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 33401 ID3D12GraphicsCommandList9 * This, 33402 _In_ UINT Mask); 33403 33404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 33405 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 33406 ID3D12GraphicsCommandList9 * This, 33407 UINT Count, 33408 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 33409 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 33410 33411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 33412 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 33413 ID3D12GraphicsCommandList9 * This, 33414 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 33415 33416 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 33417 void ( STDMETHODCALLTYPE *BeginRenderPass )( 33418 ID3D12GraphicsCommandList9 * This, 33419 _In_ UINT NumRenderTargets, 33420 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 33421 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 33422 D3D12_RENDER_PASS_FLAGS Flags); 33423 33424 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 33425 void ( STDMETHODCALLTYPE *EndRenderPass )( 33426 ID3D12GraphicsCommandList9 * This); 33427 33428 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 33429 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 33430 ID3D12GraphicsCommandList9 * This, 33431 _In_ ID3D12MetaCommand *pMetaCommand, 33432 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 33433 _In_ SIZE_T InitializationParametersDataSizeInBytes); 33434 33435 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 33436 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 33437 ID3D12GraphicsCommandList9 * This, 33438 _In_ ID3D12MetaCommand *pMetaCommand, 33439 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 33440 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 33441 33442 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 33443 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 33444 ID3D12GraphicsCommandList9 * This, 33445 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 33446 _In_ UINT NumPostbuildInfoDescs, 33447 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 33448 33449 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 33450 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 33451 ID3D12GraphicsCommandList9 * This, 33452 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 33453 _In_ UINT NumSourceAccelerationStructures, 33454 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 33455 33456 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 33457 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 33458 ID3D12GraphicsCommandList9 * This, 33459 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 33460 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 33461 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 33462 33463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 33464 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 33465 ID3D12GraphicsCommandList9 * This, 33466 _In_ ID3D12StateObject *pStateObject); 33467 33468 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 33469 void ( STDMETHODCALLTYPE *DispatchRays )( 33470 ID3D12GraphicsCommandList9 * This, 33471 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 33472 33473 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 33474 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 33475 ID3D12GraphicsCommandList9 * This, 33476 _In_ D3D12_SHADING_RATE baseShadingRate, 33477 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 33478 33479 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 33480 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 33481 ID3D12GraphicsCommandList9 * This, 33482 _In_opt_ ID3D12Resource *shadingRateImage); 33483 33484 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) 33485 void ( STDMETHODCALLTYPE *DispatchMesh )( 33486 ID3D12GraphicsCommandList9 * This, 33487 _In_ UINT ThreadGroupCountX, 33488 _In_ UINT ThreadGroupCountY, 33489 _In_ UINT ThreadGroupCountZ); 33490 33491 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) 33492 void ( STDMETHODCALLTYPE *Barrier )( 33493 ID3D12GraphicsCommandList9 * This, 33494 UINT32 NumBarrierGroups, 33495 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); 33496 33497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) 33498 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( 33499 ID3D12GraphicsCommandList9 * This, 33500 _In_ UINT FrontStencilRef, 33501 _In_ UINT BackStencilRef); 33502 33503 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) 33504 void ( STDMETHODCALLTYPE *RSSetDepthBias )( 33505 ID3D12GraphicsCommandList9 * This, 33506 _In_ FLOAT DepthBias, 33507 _In_ FLOAT DepthBiasClamp, 33508 _In_ FLOAT SlopeScaledDepthBias); 33509 33510 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) 33511 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( 33512 ID3D12GraphicsCommandList9 * This, 33513 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); 33514 33515 END_INTERFACE 33516 } ID3D12GraphicsCommandList9Vtbl; 33517 33518 interface ID3D12GraphicsCommandList9 33519 { 33520 CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl; 33521 }; 33522 33523 33524 33525#ifdef COBJMACROS 33526 33527 33528#define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \ 33529 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 33530 33531#define ID3D12GraphicsCommandList9_AddRef(This) \ 33532 ( (This)->lpVtbl -> AddRef(This) ) 33533 33534#define ID3D12GraphicsCommandList9_Release(This) \ 33535 ( (This)->lpVtbl -> Release(This) ) 33536 33537 33538#define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \ 33539 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 33540 33541#define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \ 33542 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 33543 33544#define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \ 33545 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 33546 33547#define ID3D12GraphicsCommandList9_SetName(This,Name) \ 33548 ( (This)->lpVtbl -> SetName(This,Name) ) 33549 33550 33551#define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \ 33552 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 33553 33554 33555#define ID3D12GraphicsCommandList9_GetType(This) \ 33556 ( (This)->lpVtbl -> GetType(This) ) 33557 33558 33559#define ID3D12GraphicsCommandList9_Close(This) \ 33560 ( (This)->lpVtbl -> Close(This) ) 33561 33562#define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \ 33563 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 33564 33565#define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \ 33566 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 33567 33568#define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 33569 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 33570 33571#define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 33572 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 33573 33574#define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 33575 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 33576 33577#define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 33578 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 33579 33580#define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 33581 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 33582 33583#define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \ 33584 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 33585 33586#define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 33587 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 33588 33589#define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 33590 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 33591 33592#define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \ 33593 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 33594 33595#define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \ 33596 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 33597 33598#define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \ 33599 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 33600 33601#define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \ 33602 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 33603 33604#define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \ 33605 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 33606 33607#define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \ 33608 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 33609 33610#define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \ 33611 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 33612 33613#define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \ 33614 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 33615 33616#define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 33617 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 33618 33619#define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \ 33620 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 33621 33622#define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \ 33623 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 33624 33625#define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 33626 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 33627 33628#define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 33629 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 33630 33631#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 33632 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 33633 33634#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 33635 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 33636 33637#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 33638 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 33639 33640#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 33641 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 33642 33643#define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 33644 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 33645 33646#define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 33647 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 33648 33649#define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 33650 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 33651 33652#define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 33653 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 33654 33655#define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 33656 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 33657 33658#define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 33659 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 33660 33661#define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \ 33662 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 33663 33664#define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 33665 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 33666 33667#define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \ 33668 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 33669 33670#define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 33671 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 33672 33673#define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 33674 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 33675 33676#define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 33677 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 33678 33679#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 33680 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 33681 33682#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 33683 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 33684 33685#define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \ 33686 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 33687 33688#define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \ 33689 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 33690 33691#define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \ 33692 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 33693 33694#define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 33695 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 33696 33697#define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 33698 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 33699 33700#define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \ 33701 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 33702 33703#define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \ 33704 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 33705 33706#define ID3D12GraphicsCommandList9_EndEvent(This) \ 33707 ( (This)->lpVtbl -> EndEvent(This) ) 33708 33709#define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 33710 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 33711 33712 33713#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 33714 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 33715 33716#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 33717 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 33718 33719#define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \ 33720 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 33721 33722#define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 33723 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 33724 33725#define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 33726 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 33727 33728#define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \ 33729 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 33730 33731 33732#define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \ 33733 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 33734 33735 33736#define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \ 33737 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 33738 33739 33740#define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 33741 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 33742 33743#define ID3D12GraphicsCommandList9_EndRenderPass(This) \ 33744 ( (This)->lpVtbl -> EndRenderPass(This) ) 33745 33746#define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 33747 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 33748 33749#define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 33750 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 33751 33752#define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 33753 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 33754 33755#define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 33756 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 33757 33758#define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 33759 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 33760 33761#define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \ 33762 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 33763 33764#define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \ 33765 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 33766 33767 33768#define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \ 33769 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 33770 33771#define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \ 33772 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 33773 33774 33775#define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 33776 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 33777 33778 33779#define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \ 33780 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) 33781 33782 33783#define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ 33784 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) 33785 33786 33787#define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ 33788 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) 33789 33790#define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ 33791 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) 33792 33793#endif /* COBJMACROS */ 33794 33795 33796#endif /* C style interface */ 33797 33798 33799 33800 33801#endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */ 33802 33803 33804#ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ 33805#define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ 33806 33807/* interface ID3D12GraphicsCommandList10 */ 33808/* [unique][local][object][uuid] */ 33809 33810 33811EXTERN_C const IID IID_ID3D12GraphicsCommandList10; 33812 33813#if defined(__cplusplus) && !defined(CINTERFACE) 33814 33815 MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc") 33816 ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9 33817 { 33818 public: 33819 virtual void STDMETHODCALLTYPE SetProgram( 33820 _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0; 33821 33822 virtual void STDMETHODCALLTYPE DispatchGraph( 33823 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0; 33824 33825 }; 33826 33827 33828#else /* C style interface */ 33829 33830 typedef struct ID3D12GraphicsCommandList10Vtbl 33831 { 33832 BEGIN_INTERFACE 33833 33834 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 33835 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 33836 ID3D12GraphicsCommandList10 * This, 33837 REFIID riid, 33838 _COM_Outptr_ void **ppvObject); 33839 33840 DECLSPEC_XFGVIRT(IUnknown, AddRef) 33841 ULONG ( STDMETHODCALLTYPE *AddRef )( 33842 ID3D12GraphicsCommandList10 * This); 33843 33844 DECLSPEC_XFGVIRT(IUnknown, Release) 33845 ULONG ( STDMETHODCALLTYPE *Release )( 33846 ID3D12GraphicsCommandList10 * This); 33847 33848 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) 33849 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 33850 ID3D12GraphicsCommandList10 * This, 33851 _In_ REFGUID guid, 33852 _Inout_ UINT *pDataSize, 33853 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 33854 33855 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) 33856 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 33857 ID3D12GraphicsCommandList10 * This, 33858 _In_ REFGUID guid, 33859 _In_ UINT DataSize, 33860 _In_reads_bytes_opt_( DataSize ) const void *pData); 33861 33862 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) 33863 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 33864 ID3D12GraphicsCommandList10 * This, 33865 _In_ REFGUID guid, 33866 _In_opt_ const IUnknown *pData); 33867 33868 DECLSPEC_XFGVIRT(ID3D12Object, SetName) 33869 HRESULT ( STDMETHODCALLTYPE *SetName )( 33870 ID3D12GraphicsCommandList10 * This, 33871 _In_z_ LPCWSTR Name); 33872 33873 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) 33874 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 33875 ID3D12GraphicsCommandList10 * This, 33876 REFIID riid, 33877 _COM_Outptr_opt_ void **ppvDevice); 33878 33879 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) 33880 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 33881 ID3D12GraphicsCommandList10 * This); 33882 33883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) 33884 HRESULT ( STDMETHODCALLTYPE *Close )( 33885 ID3D12GraphicsCommandList10 * This); 33886 33887 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) 33888 HRESULT ( STDMETHODCALLTYPE *Reset )( 33889 ID3D12GraphicsCommandList10 * This, 33890 _In_ ID3D12CommandAllocator *pAllocator, 33891 _In_opt_ ID3D12PipelineState *pInitialState); 33892 33893 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) 33894 void ( STDMETHODCALLTYPE *ClearState )( 33895 ID3D12GraphicsCommandList10 * This, 33896 _In_opt_ ID3D12PipelineState *pPipelineState); 33897 33898 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) 33899 void ( STDMETHODCALLTYPE *DrawInstanced )( 33900 ID3D12GraphicsCommandList10 * This, 33901 _In_ UINT VertexCountPerInstance, 33902 _In_ UINT InstanceCount, 33903 _In_ UINT StartVertexLocation, 33904 _In_ UINT StartInstanceLocation); 33905 33906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) 33907 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( 33908 ID3D12GraphicsCommandList10 * This, 33909 _In_ UINT IndexCountPerInstance, 33910 _In_ UINT InstanceCount, 33911 _In_ UINT StartIndexLocation, 33912 _In_ INT BaseVertexLocation, 33913 _In_ UINT StartInstanceLocation); 33914 33915 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) 33916 void ( STDMETHODCALLTYPE *Dispatch )( 33917 ID3D12GraphicsCommandList10 * This, 33918 _In_ UINT ThreadGroupCountX, 33919 _In_ UINT ThreadGroupCountY, 33920 _In_ UINT ThreadGroupCountZ); 33921 33922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) 33923 void ( STDMETHODCALLTYPE *CopyBufferRegion )( 33924 ID3D12GraphicsCommandList10 * This, 33925 _In_ ID3D12Resource *pDstBuffer, 33926 UINT64 DstOffset, 33927 _In_ ID3D12Resource *pSrcBuffer, 33928 UINT64 SrcOffset, 33929 UINT64 NumBytes); 33930 33931 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) 33932 void ( STDMETHODCALLTYPE *CopyTextureRegion )( 33933 ID3D12GraphicsCommandList10 * This, 33934 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, 33935 UINT DstX, 33936 UINT DstY, 33937 UINT DstZ, 33938 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, 33939 _In_opt_ const D3D12_BOX *pSrcBox); 33940 33941 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) 33942 void ( STDMETHODCALLTYPE *CopyResource )( 33943 ID3D12GraphicsCommandList10 * This, 33944 _In_ ID3D12Resource *pDstResource, 33945 _In_ ID3D12Resource *pSrcResource); 33946 33947 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) 33948 void ( STDMETHODCALLTYPE *CopyTiles )( 33949 ID3D12GraphicsCommandList10 * This, 33950 _In_ ID3D12Resource *pTiledResource, 33951 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, 33952 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, 33953 _In_ ID3D12Resource *pBuffer, 33954 UINT64 BufferStartOffsetInBytes, 33955 D3D12_TILE_COPY_FLAGS Flags); 33956 33957 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) 33958 void ( STDMETHODCALLTYPE *ResolveSubresource )( 33959 ID3D12GraphicsCommandList10 * This, 33960 _In_ ID3D12Resource *pDstResource, 33961 _In_ UINT DstSubresource, 33962 _In_ ID3D12Resource *pSrcResource, 33963 _In_ UINT SrcSubresource, 33964 _In_ DXGI_FORMAT Format); 33965 33966 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) 33967 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( 33968 ID3D12GraphicsCommandList10 * This, 33969 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); 33970 33971 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) 33972 void ( STDMETHODCALLTYPE *RSSetViewports )( 33973 ID3D12GraphicsCommandList10 * This, 33974 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, 33975 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); 33976 33977 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) 33978 void ( STDMETHODCALLTYPE *RSSetScissorRects )( 33979 ID3D12GraphicsCommandList10 * This, 33980 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, 33981 _In_reads_( NumRects) const D3D12_RECT *pRects); 33982 33983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) 33984 void ( STDMETHODCALLTYPE *OMSetBlendFactor )( 33985 ID3D12GraphicsCommandList10 * This, 33986 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); 33987 33988 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) 33989 void ( STDMETHODCALLTYPE *OMSetStencilRef )( 33990 ID3D12GraphicsCommandList10 * This, 33991 _In_ UINT StencilRef); 33992 33993 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) 33994 void ( STDMETHODCALLTYPE *SetPipelineState )( 33995 ID3D12GraphicsCommandList10 * This, 33996 _In_ ID3D12PipelineState *pPipelineState); 33997 33998 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) 33999 void ( STDMETHODCALLTYPE *ResourceBarrier )( 34000 ID3D12GraphicsCommandList10 * This, 34001 _In_ UINT NumBarriers, 34002 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 34003 34004 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) 34005 void ( STDMETHODCALLTYPE *ExecuteBundle )( 34006 ID3D12GraphicsCommandList10 * This, 34007 _In_ ID3D12GraphicsCommandList *pCommandList); 34008 34009 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) 34010 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( 34011 ID3D12GraphicsCommandList10 * This, 34012 _In_ UINT NumDescriptorHeaps, 34013 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); 34014 34015 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) 34016 void ( STDMETHODCALLTYPE *SetComputeRootSignature )( 34017 ID3D12GraphicsCommandList10 * This, 34018 _In_opt_ ID3D12RootSignature *pRootSignature); 34019 34020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) 34021 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( 34022 ID3D12GraphicsCommandList10 * This, 34023 _In_opt_ ID3D12RootSignature *pRootSignature); 34024 34025 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) 34026 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( 34027 ID3D12GraphicsCommandList10 * This, 34028 _In_ UINT RootParameterIndex, 34029 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 34030 34031 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) 34032 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( 34033 ID3D12GraphicsCommandList10 * This, 34034 _In_ UINT RootParameterIndex, 34035 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); 34036 34037 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) 34038 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( 34039 ID3D12GraphicsCommandList10 * This, 34040 _In_ UINT RootParameterIndex, 34041 _In_ UINT SrcData, 34042 _In_ UINT DestOffsetIn32BitValues); 34043 34044 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) 34045 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( 34046 ID3D12GraphicsCommandList10 * This, 34047 _In_ UINT RootParameterIndex, 34048 _In_ UINT SrcData, 34049 _In_ UINT DestOffsetIn32BitValues); 34050 34051 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) 34052 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( 34053 ID3D12GraphicsCommandList10 * This, 34054 _In_ UINT RootParameterIndex, 34055 _In_ UINT Num32BitValuesToSet, 34056 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 34057 _In_ UINT DestOffsetIn32BitValues); 34058 34059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) 34060 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( 34061 ID3D12GraphicsCommandList10 * This, 34062 _In_ UINT RootParameterIndex, 34063 _In_ UINT Num32BitValuesToSet, 34064 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, 34065 _In_ UINT DestOffsetIn32BitValues); 34066 34067 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) 34068 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( 34069 ID3D12GraphicsCommandList10 * This, 34070 _In_ UINT RootParameterIndex, 34071 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34072 34073 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) 34074 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( 34075 ID3D12GraphicsCommandList10 * This, 34076 _In_ UINT RootParameterIndex, 34077 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34078 34079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) 34080 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( 34081 ID3D12GraphicsCommandList10 * This, 34082 _In_ UINT RootParameterIndex, 34083 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34084 34085 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) 34086 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( 34087 ID3D12GraphicsCommandList10 * This, 34088 _In_ UINT RootParameterIndex, 34089 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34090 34091 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) 34092 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( 34093 ID3D12GraphicsCommandList10 * This, 34094 _In_ UINT RootParameterIndex, 34095 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34096 34097 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) 34098 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( 34099 ID3D12GraphicsCommandList10 * This, 34100 _In_ UINT RootParameterIndex, 34101 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); 34102 34103 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) 34104 void ( STDMETHODCALLTYPE *IASetIndexBuffer )( 34105 ID3D12GraphicsCommandList10 * This, 34106 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); 34107 34108 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) 34109 void ( STDMETHODCALLTYPE *IASetVertexBuffers )( 34110 ID3D12GraphicsCommandList10 * This, 34111 _In_ UINT StartSlot, 34112 _In_ UINT NumViews, 34113 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); 34114 34115 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) 34116 void ( STDMETHODCALLTYPE *SOSetTargets )( 34117 ID3D12GraphicsCommandList10 * This, 34118 _In_ UINT StartSlot, 34119 _In_ UINT NumViews, 34120 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); 34121 34122 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) 34123 void ( STDMETHODCALLTYPE *OMSetRenderTargets )( 34124 ID3D12GraphicsCommandList10 * This, 34125 _In_ UINT NumRenderTargetDescriptors, 34126 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, 34127 _In_ BOOL RTsSingleHandleToDescriptorRange, 34128 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); 34129 34130 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) 34131 void ( STDMETHODCALLTYPE *ClearDepthStencilView )( 34132 ID3D12GraphicsCommandList10 * This, 34133 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, 34134 _In_ D3D12_CLEAR_FLAGS ClearFlags, 34135 _In_ FLOAT Depth, 34136 _In_ UINT8 Stencil, 34137 _In_ UINT NumRects, 34138 _In_reads_(NumRects) const D3D12_RECT *pRects); 34139 34140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) 34141 void ( STDMETHODCALLTYPE *ClearRenderTargetView )( 34142 ID3D12GraphicsCommandList10 * This, 34143 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, 34144 _In_ const FLOAT ColorRGBA[ 4 ], 34145 _In_ UINT NumRects, 34146 _In_reads_(NumRects) const D3D12_RECT *pRects); 34147 34148 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) 34149 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( 34150 ID3D12GraphicsCommandList10 * This, 34151 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 34152 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 34153 _In_ ID3D12Resource *pResource, 34154 _In_ const UINT Values[ 4 ], 34155 _In_ UINT NumRects, 34156 _In_reads_(NumRects) const D3D12_RECT *pRects); 34157 34158 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) 34159 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( 34160 ID3D12GraphicsCommandList10 * This, 34161 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, 34162 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, 34163 _In_ ID3D12Resource *pResource, 34164 _In_ const FLOAT Values[ 4 ], 34165 _In_ UINT NumRects, 34166 _In_reads_(NumRects) const D3D12_RECT *pRects); 34167 34168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) 34169 void ( STDMETHODCALLTYPE *DiscardResource )( 34170 ID3D12GraphicsCommandList10 * This, 34171 _In_ ID3D12Resource *pResource, 34172 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 34173 34174 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) 34175 void ( STDMETHODCALLTYPE *BeginQuery )( 34176 ID3D12GraphicsCommandList10 * This, 34177 _In_ ID3D12QueryHeap *pQueryHeap, 34178 _In_ D3D12_QUERY_TYPE Type, 34179 _In_ UINT Index); 34180 34181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) 34182 void ( STDMETHODCALLTYPE *EndQuery )( 34183 ID3D12GraphicsCommandList10 * This, 34184 _In_ ID3D12QueryHeap *pQueryHeap, 34185 _In_ D3D12_QUERY_TYPE Type, 34186 _In_ UINT Index); 34187 34188 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) 34189 void ( STDMETHODCALLTYPE *ResolveQueryData )( 34190 ID3D12GraphicsCommandList10 * This, 34191 _In_ ID3D12QueryHeap *pQueryHeap, 34192 _In_ D3D12_QUERY_TYPE Type, 34193 _In_ UINT StartIndex, 34194 _In_ UINT NumQueries, 34195 _In_ ID3D12Resource *pDestinationBuffer, 34196 _In_ UINT64 AlignedDestinationBufferOffset); 34197 34198 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) 34199 void ( STDMETHODCALLTYPE *SetPredication )( 34200 ID3D12GraphicsCommandList10 * This, 34201 _In_opt_ ID3D12Resource *pBuffer, 34202 _In_ UINT64 AlignedBufferOffset, 34203 _In_ D3D12_PREDICATION_OP Operation); 34204 34205 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) 34206 void ( STDMETHODCALLTYPE *SetMarker )( 34207 ID3D12GraphicsCommandList10 * This, 34208 UINT Metadata, 34209 _In_reads_bytes_opt_(Size) const void *pData, 34210 UINT Size); 34211 34212 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) 34213 void ( STDMETHODCALLTYPE *BeginEvent )( 34214 ID3D12GraphicsCommandList10 * This, 34215 UINT Metadata, 34216 _In_reads_bytes_opt_(Size) const void *pData, 34217 UINT Size); 34218 34219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) 34220 void ( STDMETHODCALLTYPE *EndEvent )( 34221 ID3D12GraphicsCommandList10 * This); 34222 34223 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) 34224 void ( STDMETHODCALLTYPE *ExecuteIndirect )( 34225 ID3D12GraphicsCommandList10 * This, 34226 _In_ ID3D12CommandSignature *pCommandSignature, 34227 _In_ UINT MaxCommandCount, 34228 _In_ ID3D12Resource *pArgumentBuffer, 34229 _In_ UINT64 ArgumentBufferOffset, 34230 _In_opt_ ID3D12Resource *pCountBuffer, 34231 _In_ UINT64 CountBufferOffset); 34232 34233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) 34234 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( 34235 ID3D12GraphicsCommandList10 * This, 34236 _In_ ID3D12Resource *pDstBuffer, 34237 UINT64 DstOffset, 34238 _In_ ID3D12Resource *pSrcBuffer, 34239 UINT64 SrcOffset, 34240 UINT Dependencies, 34241 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 34242 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 34243 34244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) 34245 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( 34246 ID3D12GraphicsCommandList10 * This, 34247 _In_ ID3D12Resource *pDstBuffer, 34248 UINT64 DstOffset, 34249 _In_ ID3D12Resource *pSrcBuffer, 34250 UINT64 SrcOffset, 34251 UINT Dependencies, 34252 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, 34253 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); 34254 34255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) 34256 void ( STDMETHODCALLTYPE *OMSetDepthBounds )( 34257 ID3D12GraphicsCommandList10 * This, 34258 _In_ FLOAT Min, 34259 _In_ FLOAT Max); 34260 34261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) 34262 void ( STDMETHODCALLTYPE *SetSamplePositions )( 34263 ID3D12GraphicsCommandList10 * This, 34264 _In_ UINT NumSamplesPerPixel, 34265 _In_ UINT NumPixels, 34266 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); 34267 34268 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) 34269 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( 34270 ID3D12GraphicsCommandList10 * This, 34271 _In_ ID3D12Resource *pDstResource, 34272 _In_ UINT DstSubresource, 34273 _In_ UINT DstX, 34274 _In_ UINT DstY, 34275 _In_ ID3D12Resource *pSrcResource, 34276 _In_ UINT SrcSubresource, 34277 _In_opt_ D3D12_RECT *pSrcRect, 34278 _In_ DXGI_FORMAT Format, 34279 _In_ D3D12_RESOLVE_MODE ResolveMode); 34280 34281 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) 34282 void ( STDMETHODCALLTYPE *SetViewInstanceMask )( 34283 ID3D12GraphicsCommandList10 * This, 34284 _In_ UINT Mask); 34285 34286 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) 34287 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 34288 ID3D12GraphicsCommandList10 * This, 34289 UINT Count, 34290 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 34291 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 34292 34293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) 34294 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( 34295 ID3D12GraphicsCommandList10 * This, 34296 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); 34297 34298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) 34299 void ( STDMETHODCALLTYPE *BeginRenderPass )( 34300 ID3D12GraphicsCommandList10 * This, 34301 _In_ UINT NumRenderTargets, 34302 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, 34303 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, 34304 D3D12_RENDER_PASS_FLAGS Flags); 34305 34306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) 34307 void ( STDMETHODCALLTYPE *EndRenderPass )( 34308 ID3D12GraphicsCommandList10 * This); 34309 34310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) 34311 void ( STDMETHODCALLTYPE *InitializeMetaCommand )( 34312 ID3D12GraphicsCommandList10 * This, 34313 _In_ ID3D12MetaCommand *pMetaCommand, 34314 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, 34315 _In_ SIZE_T InitializationParametersDataSizeInBytes); 34316 34317 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) 34318 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( 34319 ID3D12GraphicsCommandList10 * This, 34320 _In_ ID3D12MetaCommand *pMetaCommand, 34321 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, 34322 _In_ SIZE_T ExecutionParametersDataSizeInBytes); 34323 34324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) 34325 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( 34326 ID3D12GraphicsCommandList10 * This, 34327 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, 34328 _In_ UINT NumPostbuildInfoDescs, 34329 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); 34330 34331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) 34332 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( 34333 ID3D12GraphicsCommandList10 * This, 34334 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, 34335 _In_ UINT NumSourceAccelerationStructures, 34336 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); 34337 34338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) 34339 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( 34340 ID3D12GraphicsCommandList10 * This, 34341 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, 34342 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, 34343 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); 34344 34345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) 34346 void ( STDMETHODCALLTYPE *SetPipelineState1 )( 34347 ID3D12GraphicsCommandList10 * This, 34348 _In_ ID3D12StateObject *pStateObject); 34349 34350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) 34351 void ( STDMETHODCALLTYPE *DispatchRays )( 34352 ID3D12GraphicsCommandList10 * This, 34353 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); 34354 34355 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) 34356 void ( STDMETHODCALLTYPE *RSSetShadingRate )( 34357 ID3D12GraphicsCommandList10 * This, 34358 _In_ D3D12_SHADING_RATE baseShadingRate, 34359 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); 34360 34361 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) 34362 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( 34363 ID3D12GraphicsCommandList10 * This, 34364 _In_opt_ ID3D12Resource *shadingRateImage); 34365 34366 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) 34367 void ( STDMETHODCALLTYPE *DispatchMesh )( 34368 ID3D12GraphicsCommandList10 * This, 34369 _In_ UINT ThreadGroupCountX, 34370 _In_ UINT ThreadGroupCountY, 34371 _In_ UINT ThreadGroupCountZ); 34372 34373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) 34374 void ( STDMETHODCALLTYPE *Barrier )( 34375 ID3D12GraphicsCommandList10 * This, 34376 UINT32 NumBarrierGroups, 34377 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); 34378 34379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) 34380 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( 34381 ID3D12GraphicsCommandList10 * This, 34382 _In_ UINT FrontStencilRef, 34383 _In_ UINT BackStencilRef); 34384 34385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) 34386 void ( STDMETHODCALLTYPE *RSSetDepthBias )( 34387 ID3D12GraphicsCommandList10 * This, 34388 _In_ FLOAT DepthBias, 34389 _In_ FLOAT DepthBiasClamp, 34390 _In_ FLOAT SlopeScaledDepthBias); 34391 34392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) 34393 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( 34394 ID3D12GraphicsCommandList10 * This, 34395 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); 34396 34397 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram) 34398 void ( STDMETHODCALLTYPE *SetProgram )( 34399 ID3D12GraphicsCommandList10 * This, 34400 _In_ const D3D12_SET_PROGRAM_DESC *pDesc); 34401 34402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph) 34403 void ( STDMETHODCALLTYPE *DispatchGraph )( 34404 ID3D12GraphicsCommandList10 * This, 34405 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc); 34406 34407 END_INTERFACE 34408 } ID3D12GraphicsCommandList10Vtbl; 34409 34410 interface ID3D12GraphicsCommandList10 34411 { 34412 CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl; 34413 }; 34414 34415 34416 34417#ifdef COBJMACROS 34418 34419 34420#define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \ 34421 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 34422 34423#define ID3D12GraphicsCommandList10_AddRef(This) \ 34424 ( (This)->lpVtbl -> AddRef(This) ) 34425 34426#define ID3D12GraphicsCommandList10_Release(This) \ 34427 ( (This)->lpVtbl -> Release(This) ) 34428 34429 34430#define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \ 34431 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 34432 34433#define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \ 34434 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 34435 34436#define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \ 34437 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 34438 34439#define ID3D12GraphicsCommandList10_SetName(This,Name) \ 34440 ( (This)->lpVtbl -> SetName(This,Name) ) 34441 34442 34443#define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \ 34444 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 34445 34446 34447#define ID3D12GraphicsCommandList10_GetType(This) \ 34448 ( (This)->lpVtbl -> GetType(This) ) 34449 34450 34451#define ID3D12GraphicsCommandList10_Close(This) \ 34452 ( (This)->lpVtbl -> Close(This) ) 34453 34454#define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \ 34455 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) 34456 34457#define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \ 34458 ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) 34459 34460#define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ 34461 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) 34462 34463#define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ 34464 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) 34465 34466#define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 34467 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 34468 34469#define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ 34470 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) 34471 34472#define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ 34473 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) 34474 34475#define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \ 34476 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) 34477 34478#define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ 34479 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) 34480 34481#define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ 34482 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) 34483 34484#define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \ 34485 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) 34486 34487#define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \ 34488 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) 34489 34490#define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \ 34491 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) 34492 34493#define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \ 34494 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) 34495 34496#define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \ 34497 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) 34498 34499#define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \ 34500 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) 34501 34502#define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \ 34503 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 34504 34505#define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \ 34506 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) 34507 34508#define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ 34509 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) 34510 34511#define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \ 34512 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) 34513 34514#define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \ 34515 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) 34516 34517#define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 34518 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 34519 34520#define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ 34521 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) 34522 34523#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 34524 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 34525 34526#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ 34527 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) 34528 34529#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 34530 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 34531 34532#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ 34533 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) 34534 34535#define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 34536 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 34537 34538#define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ 34539 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) 34540 34541#define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 34542 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 34543 34544#define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ 34545 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) 34546 34547#define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 34548 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 34549 34550#define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ 34551 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) 34552 34553#define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \ 34554 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) 34555 34556#define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ 34557 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) 34558 34559#define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \ 34560 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) 34561 34562#define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ 34563 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) 34564 34565#define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ 34566 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) 34567 34568#define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ 34569 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) 34570 34571#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 34572 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 34573 34574#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ 34575 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) 34576 34577#define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \ 34578 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 34579 34580#define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \ 34581 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 34582 34583#define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \ 34584 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 34585 34586#define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 34587 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 34588 34589#define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 34590 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 34591 34592#define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \ 34593 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 34594 34595#define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \ 34596 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 34597 34598#define ID3D12GraphicsCommandList10_EndEvent(This) \ 34599 ( (This)->lpVtbl -> EndEvent(This) ) 34600 34601#define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ 34602 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) 34603 34604 34605#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 34606 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 34607 34608#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ 34609 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) 34610 34611#define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \ 34612 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) 34613 34614#define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ 34615 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) 34616 34617#define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ 34618 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) 34619 34620#define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \ 34621 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) 34622 34623 34624#define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \ 34625 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 34626 34627 34628#define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \ 34629 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) 34630 34631 34632#define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ 34633 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) 34634 34635#define ID3D12GraphicsCommandList10_EndRenderPass(This) \ 34636 ( (This)->lpVtbl -> EndRenderPass(This) ) 34637 34638#define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ 34639 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) 34640 34641#define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ 34642 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) 34643 34644#define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ 34645 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) 34646 34647#define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ 34648 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) 34649 34650#define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ 34651 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) 34652 34653#define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \ 34654 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) 34655 34656#define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \ 34657 ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) 34658 34659 34660#define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \ 34661 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) 34662 34663#define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \ 34664 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) 34665 34666 34667#define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ 34668 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) 34669 34670 34671#define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \ 34672 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) 34673 34674 34675#define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ 34676 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) 34677 34678 34679#define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ 34680 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) 34681 34682#define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ 34683 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) 34684 34685 34686#define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \ 34687 ( (This)->lpVtbl -> SetProgram(This,pDesc) ) 34688 34689#define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \ 34690 ( (This)->lpVtbl -> DispatchGraph(This,pDesc) ) 34691 34692#endif /* COBJMACROS */ 34693 34694 34695#endif /* C style interface */ 34696 34697 34698 34699 34700#endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */ 34701 34702 34703#ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ 34704#define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ 34705 34706/* interface ID3D12GBVDiagnostics */ 34707/* [unique][local][object][uuid] */ 34708 34709 34710EXTERN_C const IID IID_ID3D12GBVDiagnostics; 34711 34712#if defined(__cplusplus) && !defined(CINTERFACE) 34713 34714 MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee") 34715 ID3D12GBVDiagnostics : public IUnknown 34716 { 34717 public: 34718 virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData( 34719 _In_ ID3D12Resource *pResource, 34720 _Out_writes_bytes_(DataSize) int *pData, 34721 UINT DataSize) = 0; 34722 34723 virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState( 34724 _In_ ID3D12Resource *pResource, 34725 UINT Subresource, 34726 _Out_ int *pData) = 0; 34727 34728 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState( 34729 _In_ ID3D12Resource *pResource, 34730 _Out_ int *pData) = 0; 34731 34732 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo( 34733 _In_ ID3D12Resource *pResource, 34734 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, 34735 _In_opt_ UINT32 *pResourceHash, 34736 _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0; 34737 34738 virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0; 34739 34740 virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0; 34741 34742 }; 34743 34744 34745#else /* C style interface */ 34746 34747 typedef struct ID3D12GBVDiagnosticsVtbl 34748 { 34749 BEGIN_INTERFACE 34750 34751 DECLSPEC_XFGVIRT(IUnknown, QueryInterface) 34752 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 34753 ID3D12GBVDiagnostics * This, 34754 REFIID riid, 34755 _COM_Outptr_ void **ppvObject); 34756 34757 DECLSPEC_XFGVIRT(IUnknown, AddRef) 34758 ULONG ( STDMETHODCALLTYPE *AddRef )( 34759 ID3D12GBVDiagnostics * This); 34760 34761 DECLSPEC_XFGVIRT(IUnknown, Release) 34762 ULONG ( STDMETHODCALLTYPE *Release )( 34763 ID3D12GBVDiagnostics * This); 34764 34765 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData) 34766 HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )( 34767 ID3D12GBVDiagnostics * This, 34768 _In_ ID3D12Resource *pResource, 34769 _Out_writes_bytes_(DataSize) int *pData, 34770 UINT DataSize); 34771 34772 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState) 34773 HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )( 34774 ID3D12GBVDiagnostics * This, 34775 _In_ ID3D12Resource *pResource, 34776 UINT Subresource, 34777 _Out_ int *pData); 34778 34779 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState) 34780 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )( 34781 ID3D12GBVDiagnostics * This, 34782 _In_ ID3D12Resource *pResource, 34783 _Out_ int *pData); 34784 34785 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo) 34786 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )( 34787 ID3D12GBVDiagnostics * This, 34788 _In_ ID3D12Resource *pResource, 34789 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, 34790 _In_opt_ UINT32 *pResourceHash, 34791 _In_opt_ UINT32 *pSubresourceStatesByteOffset); 34792 34793 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0) 34794 void ( STDMETHODCALLTYPE *GBVReserved0 )( 34795 ID3D12GBVDiagnostics * This); 34796 34797 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1) 34798 void ( STDMETHODCALLTYPE *GBVReserved1 )( 34799 ID3D12GBVDiagnostics * This); 34800 34801 END_INTERFACE 34802 } ID3D12GBVDiagnosticsVtbl; 34803 34804 interface ID3D12GBVDiagnostics 34805 { 34806 CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl; 34807 }; 34808 34809 34810 34811#ifdef COBJMACROS 34812 34813 34814#define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \ 34815 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 34816 34817#define ID3D12GBVDiagnostics_AddRef(This) \ 34818 ( (This)->lpVtbl -> AddRef(This) ) 34819 34820#define ID3D12GBVDiagnostics_Release(This) \ 34821 ( (This)->lpVtbl -> Release(This) ) 34822 34823 34824#define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \ 34825 ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) ) 34826 34827#define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \ 34828 ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) ) 34829 34830#define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \ 34831 ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) ) 34832 34833#define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \ 34834 ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) ) 34835 34836#define ID3D12GBVDiagnostics_GBVReserved0(This) \ 34837 ( (This)->lpVtbl -> GBVReserved0(This) ) 34838 34839#define ID3D12GBVDiagnostics_GBVReserved1(This) \ 34840 ( (This)->lpVtbl -> GBVReserved1(This) ) 34841 34842#endif /* COBJMACROS */ 34843 34844 34845#endif /* C style interface */ 34846 34847 34848 34849 34850#endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ 34851 34852 34853/* interface __MIDL_itf_d3d12_0000_0074 */ 34854/* [local] */ 34855 34856#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ 34857#ifdef _MSC_VER 34858#pragma endregion 34859#endif 34860DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8); 34861DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57); 34862DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14); 34863DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46); 34864DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0); 34865DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6); 34866DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3); 34867DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad); 34868DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24); 34869DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); 34870DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); 34871DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); 34872DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); 34873DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); 34874DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); 34875DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5); 34876DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55); 34877DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); 34878DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28); 34879DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); 34880DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); 34881DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f); 34882DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); 34883DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e); 34884DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28); 34885DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98); 34886DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B); 34887DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D); 34888DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5); 34889DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8); 34890DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f); 34891DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13); 34892DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d); 34893DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); 34894DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38); 34895DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57); 34896DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d); 34897DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63); 34898DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B); 34899DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea); 34900DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71); 34901DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06); 34902DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54); 34903DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc); 34904DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09); 34905DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b); 34906DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3); 34907DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19); 34908DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95); 34909DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D); 34910DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D); 34911DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70); 34912DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74); 34913DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8); 34914DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c); 34915DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31); 34916DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39); 34917DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5); 34918DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e); 34919DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23); 34920DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76); 34921DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); 34922DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7); 34923DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f); 34924DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb); 34925DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad); 34926DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56); 34927DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea); 34928DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80); 34929DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1); 34930DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51); 34931DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1); 34932DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc); 34933DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); 34934 34935 34936extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; 34937extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; 34938 34939/* Additional Prototypes for ALL interfaces */ 34940 34941/* end of Additional Prototypes */ 34942 34943#ifdef __cplusplus 34944} 34945#endif 34946 34947#endif 34948 34949 34950[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.