aboutsummaryrefslogtreecommitdiff
path: root/contrib/DirectX-Headers/include/directx/d3d12.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/DirectX-Headers/include/directx/d3d12.h')
-rw-r--r--contrib/DirectX-Headers/include/directx/d3d12.h23139
1 files changed, 23139 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers/include/directx/d3d12.h b/contrib/DirectX-Headers/include/directx/d3d12.h
new file mode 100644
index 0000000..0cac343
--- /dev/null
+++ b/contrib/DirectX-Headers/include/directx/d3d12.h
@@ -0,0 +1,23139 @@
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.0625 */
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 _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/* Forward Declarations */
54
55#ifndef __ID3D12Object_FWD_DEFINED__
56#define __ID3D12Object_FWD_DEFINED__
57typedef interface ID3D12Object ID3D12Object;
58
59#endif /* __ID3D12Object_FWD_DEFINED__ */
60
61
62#ifndef __ID3D12DeviceChild_FWD_DEFINED__
63#define __ID3D12DeviceChild_FWD_DEFINED__
64typedef interface ID3D12DeviceChild ID3D12DeviceChild;
65
66#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
67
68
69#ifndef __ID3D12RootSignature_FWD_DEFINED__
70#define __ID3D12RootSignature_FWD_DEFINED__
71typedef interface ID3D12RootSignature ID3D12RootSignature;
72
73#endif /* __ID3D12RootSignature_FWD_DEFINED__ */
74
75
76#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
77#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
78typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
79
80#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
81
82
83#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
84#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
85typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
86
87#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
88
89
90#ifndef __ID3D12Pageable_FWD_DEFINED__
91#define __ID3D12Pageable_FWD_DEFINED__
92typedef interface ID3D12Pageable ID3D12Pageable;
93
94#endif /* __ID3D12Pageable_FWD_DEFINED__ */
95
96
97#ifndef __ID3D12Heap_FWD_DEFINED__
98#define __ID3D12Heap_FWD_DEFINED__
99typedef interface ID3D12Heap ID3D12Heap;
100
101#endif /* __ID3D12Heap_FWD_DEFINED__ */
102
103
104#ifndef __ID3D12Resource_FWD_DEFINED__
105#define __ID3D12Resource_FWD_DEFINED__
106typedef interface ID3D12Resource ID3D12Resource;
107
108#endif /* __ID3D12Resource_FWD_DEFINED__ */
109
110
111#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
112#define __ID3D12CommandAllocator_FWD_DEFINED__
113typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
114
115#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
116
117
118#ifndef __ID3D12Fence_FWD_DEFINED__
119#define __ID3D12Fence_FWD_DEFINED__
120typedef interface ID3D12Fence ID3D12Fence;
121
122#endif /* __ID3D12Fence_FWD_DEFINED__ */
123
124
125#ifndef __ID3D12Fence1_FWD_DEFINED__
126#define __ID3D12Fence1_FWD_DEFINED__
127typedef interface ID3D12Fence1 ID3D12Fence1;
128
129#endif /* __ID3D12Fence1_FWD_DEFINED__ */
130
131
132#ifndef __ID3D12PipelineState_FWD_DEFINED__
133#define __ID3D12PipelineState_FWD_DEFINED__
134typedef interface ID3D12PipelineState ID3D12PipelineState;
135
136#endif /* __ID3D12PipelineState_FWD_DEFINED__ */
137
138
139#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
140#define __ID3D12DescriptorHeap_FWD_DEFINED__
141typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
142
143#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
144
145
146#ifndef __ID3D12QueryHeap_FWD_DEFINED__
147#define __ID3D12QueryHeap_FWD_DEFINED__
148typedef interface ID3D12QueryHeap ID3D12QueryHeap;
149
150#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
151
152
153#ifndef __ID3D12CommandSignature_FWD_DEFINED__
154#define __ID3D12CommandSignature_FWD_DEFINED__
155typedef interface ID3D12CommandSignature ID3D12CommandSignature;
156
157#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
158
159
160#ifndef __ID3D12CommandList_FWD_DEFINED__
161#define __ID3D12CommandList_FWD_DEFINED__
162typedef interface ID3D12CommandList ID3D12CommandList;
163
164#endif /* __ID3D12CommandList_FWD_DEFINED__ */
165
166
167#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
168#define __ID3D12GraphicsCommandList_FWD_DEFINED__
169typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
170
171#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
172
173
174#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
175#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
176typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
177
178#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
179
180
181#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
182#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
183typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
184
185#endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */
186
187
188#ifndef __ID3D12CommandQueue_FWD_DEFINED__
189#define __ID3D12CommandQueue_FWD_DEFINED__
190typedef interface ID3D12CommandQueue ID3D12CommandQueue;
191
192#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
193
194
195#ifndef __ID3D12Device_FWD_DEFINED__
196#define __ID3D12Device_FWD_DEFINED__
197typedef interface ID3D12Device ID3D12Device;
198
199#endif /* __ID3D12Device_FWD_DEFINED__ */
200
201
202#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
203#define __ID3D12PipelineLibrary_FWD_DEFINED__
204typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
205
206#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
207
208
209#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
210#define __ID3D12PipelineLibrary1_FWD_DEFINED__
211typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
212
213#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
214
215
216#ifndef __ID3D12Device1_FWD_DEFINED__
217#define __ID3D12Device1_FWD_DEFINED__
218typedef interface ID3D12Device1 ID3D12Device1;
219
220#endif /* __ID3D12Device1_FWD_DEFINED__ */
221
222
223#ifndef __ID3D12Device2_FWD_DEFINED__
224#define __ID3D12Device2_FWD_DEFINED__
225typedef interface ID3D12Device2 ID3D12Device2;
226
227#endif /* __ID3D12Device2_FWD_DEFINED__ */
228
229
230#ifndef __ID3D12Device3_FWD_DEFINED__
231#define __ID3D12Device3_FWD_DEFINED__
232typedef interface ID3D12Device3 ID3D12Device3;
233
234#endif /* __ID3D12Device3_FWD_DEFINED__ */
235
236
237#ifndef __ID3D12ProtectedSession_FWD_DEFINED__
238#define __ID3D12ProtectedSession_FWD_DEFINED__
239typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
240
241#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */
242
243
244#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
245#define __ID3D12ProtectedResourceSession_FWD_DEFINED__
246typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
247
248#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */
249
250
251#ifndef __ID3D12Device4_FWD_DEFINED__
252#define __ID3D12Device4_FWD_DEFINED__
253typedef interface ID3D12Device4 ID3D12Device4;
254
255#endif /* __ID3D12Device4_FWD_DEFINED__ */
256
257
258#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
259#define __ID3D12LifetimeOwner_FWD_DEFINED__
260typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
261
262#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */
263
264
265#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
266#define __ID3D12SwapChainAssistant_FWD_DEFINED__
267typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
268
269#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */
270
271
272#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
273#define __ID3D12LifetimeTracker_FWD_DEFINED__
274typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
275
276#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */
277
278
279#ifndef __ID3D12StateObject_FWD_DEFINED__
280#define __ID3D12StateObject_FWD_DEFINED__
281typedef interface ID3D12StateObject ID3D12StateObject;
282
283#endif /* __ID3D12StateObject_FWD_DEFINED__ */
284
285
286#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
287#define __ID3D12StateObjectProperties_FWD_DEFINED__
288typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
289
290#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */
291
292
293#ifndef __ID3D12Device5_FWD_DEFINED__
294#define __ID3D12Device5_FWD_DEFINED__
295typedef interface ID3D12Device5 ID3D12Device5;
296
297#endif /* __ID3D12Device5_FWD_DEFINED__ */
298
299
300#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
301#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
302typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
303
304#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */
305
306
307#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
308#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
309typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1;
310
311#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */
312
313
314#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
315#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
316typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
317
318#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */
319
320
321#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
322#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
323typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1;
324
325#endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */
326
327
328#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
329#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
330typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2;
331
332#endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */
333
334
335#ifndef __ID3D12Device6_FWD_DEFINED__
336#define __ID3D12Device6_FWD_DEFINED__
337typedef interface ID3D12Device6 ID3D12Device6;
338
339#endif /* __ID3D12Device6_FWD_DEFINED__ */
340
341
342#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__
343#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__
344typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1;
345
346#endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */
347
348
349#ifndef __ID3D12Device7_FWD_DEFINED__
350#define __ID3D12Device7_FWD_DEFINED__
351typedef interface ID3D12Device7 ID3D12Device7;
352
353#endif /* __ID3D12Device7_FWD_DEFINED__ */
354
355
356#ifndef __ID3D12Device8_FWD_DEFINED__
357#define __ID3D12Device8_FWD_DEFINED__
358typedef interface ID3D12Device8 ID3D12Device8;
359
360#endif /* __ID3D12Device8_FWD_DEFINED__ */
361
362
363#ifndef __ID3D12Resource1_FWD_DEFINED__
364#define __ID3D12Resource1_FWD_DEFINED__
365typedef interface ID3D12Resource1 ID3D12Resource1;
366
367#endif /* __ID3D12Resource1_FWD_DEFINED__ */
368
369
370#ifndef __ID3D12Resource2_FWD_DEFINED__
371#define __ID3D12Resource2_FWD_DEFINED__
372typedef interface ID3D12Resource2 ID3D12Resource2;
373
374#endif /* __ID3D12Resource2_FWD_DEFINED__ */
375
376
377#ifndef __ID3D12Heap1_FWD_DEFINED__
378#define __ID3D12Heap1_FWD_DEFINED__
379typedef interface ID3D12Heap1 ID3D12Heap1;
380
381#endif /* __ID3D12Heap1_FWD_DEFINED__ */
382
383
384#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
385#define __ID3D12GraphicsCommandList3_FWD_DEFINED__
386typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
387
388#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */
389
390
391#ifndef __ID3D12MetaCommand_FWD_DEFINED__
392#define __ID3D12MetaCommand_FWD_DEFINED__
393typedef interface ID3D12MetaCommand ID3D12MetaCommand;
394
395#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */
396
397
398#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
399#define __ID3D12GraphicsCommandList4_FWD_DEFINED__
400typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
401
402#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */
403
404
405#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__
406#define __ID3D12ShaderCacheSession_FWD_DEFINED__
407typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession;
408
409#endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */
410
411
412#ifndef __ID3D12Device9_FWD_DEFINED__
413#define __ID3D12Device9_FWD_DEFINED__
414typedef interface ID3D12Device9 ID3D12Device9;
415
416#endif /* __ID3D12Device9_FWD_DEFINED__ */
417
418
419#ifndef __ID3D12Tools_FWD_DEFINED__
420#define __ID3D12Tools_FWD_DEFINED__
421typedef interface ID3D12Tools ID3D12Tools;
422
423#endif /* __ID3D12Tools_FWD_DEFINED__ */
424
425
426#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__
427#define __ID3D12SDKConfiguration_FWD_DEFINED__
428typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration;
429
430#endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */
431
432
433#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
434#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
435typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
436
437#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */
438
439
440#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
441#define __ID3D12GraphicsCommandList6_FWD_DEFINED__
442typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
443
444#endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */
445
446
447/* header files for imported files */
448#include "OAIdl.h"
449#include "OCIdl.h"
450#include "dxgicommon.h"
451#include "dxgiformat.h"
452#include "d3dcommon.h"
453
454#ifdef __cplusplus
455extern "C"{
456#endif
457
458
459/* interface __MIDL_itf_d3d12_0000_0000 */
460/* [local] */
461
462#include <winapifamily.h>
463#pragma region App Family
464#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
465#ifndef _D3D12_CONSTANTS
466#define _D3D12_CONSTANTS
467#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff )
468
469#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff )
470
471#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff )
472
473#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff )
474
475#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 )
476
477#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 )
478
479#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 )
480
481#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 )
482
483#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 )
484
485#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 )
486
487#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 )
488
489#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 )
490
491#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
492
493#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 )
494
495#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
496
497#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
498
499#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 )
500
501#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
502
503#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 )
504
505#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
506
507#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
508
509#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 )
510
511#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 )
512
513#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 )
514
515#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 )
516
517#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 )
518
519#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 )
520
521#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 )
522
523#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 )
524
525#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 )
526
527#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 )
528
529#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 )
530
531#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 )
532
533#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 )
534
535#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 )
536
537#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 )
538
539#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 )
540
541#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 )
542
543#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 )
544
545#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 )
546
547#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 )
548
549#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 )
550
551#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 )
552
553#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 )
554
555#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 )
556
557#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 )
558
559#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 )
560
561#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 )
562
563#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 )
564
565#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 )
566
567#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 )
568
569#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 )
570
571#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 )
572
573#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 )
574
575#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 )
576
577#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 )
578
579#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 )
580
581#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 )
582
583#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 )
584
585#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 )
586
587#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 )
588
589#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 )
590
591#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 )
592
593#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 )
594
595#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 )
596
597#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 )
598
599#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 )
600
601#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 )
602
603#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 )
604
605#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 )
606
607#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 )
608
609#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 )
610
611#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 )
612
613#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 )
614
615#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 )
616
617#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 )
618
619#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 )
620
621#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 )
622
623#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 )
624
625#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 )
626
627#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 )
628
629#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 )
630
631#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 )
632
633#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 )
634
635#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 )
636
637#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 )
638
639#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 )
640
641#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 )
642
643#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 )
644
645#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 )
646
647#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 )
648
649#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 )
650
651#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 )
652
653#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 )
654
655#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 )
656
657#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 )
658
659#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 )
660
661#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 )
662
663#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 )
664
665#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 )
666
667#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 )
668
669#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 )
670
671#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )
672#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )
673#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )
674#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )
675#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )
676#define D3D12_DEFAULT_DEPTH_BIAS ( 0 )
677
678#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )
679#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 )
680
681#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )
682#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 )
683
684#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 )
685
686#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
687
688#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff )
689
690#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 )
691
692#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 )
693
694#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 )
695
696#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 )
697
698#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )
699#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff )
700
701#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 )
702
703#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff )
704
705#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 )
706
707#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 )
708
709#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )
710#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )
711#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 )
712
713#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 )
714
715#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 )
716
717#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff )
718
719#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 )
720
721#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
722
723#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
724
725#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
726
727#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
728
729#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 )
730
731#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
732
733#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
734
735#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 )
736
737#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
738
739#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 )
740
741#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 )
742
743#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 )
744
745#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
746
747#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
748
749#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
750
751#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
752
753#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
754
755#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
756
757#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
758
759#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
760
761#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
762
763#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
764
765#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 )
766
767#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
768
769#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 )
770
771#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )
772#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )
773#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )
774#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )
775#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )
776#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )
777#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )
778#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )
779#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )
780#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )
781#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )
782#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )
783#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )
784#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 )
785
786#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 )
787
788#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
789
790#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
791
792#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 )
793
794#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 )
795
796#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 )
797
798#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 )
799
800#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 )
801
802#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 )
803
804#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 )
805
806#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
807
808#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 )
809
810#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 )
811
812#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 )
813
814#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 )
815
816#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 )
817
818#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 )
819
820#define D3D12_GS_OUTPUT_ELEMENTS ( 32 )
821
822#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 )
823
824#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
825
826#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 )
827
828#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 )
829
830#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 )
831
832#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
833
834#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
835
836#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
837
838#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
839
840#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
841
842#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
843
844#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
845
846#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 )
847
848#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
849
850#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
851
852#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
853
854#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
855
856#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 )
857
858#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
859
860#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
861
862#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
863
864#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
865
866#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
867
868#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
869
870#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
871
872#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
873
874#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )
875#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )
876#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
877
878#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 )
879
880#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
881
882#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 )
883
884#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 )
885
886#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 )
887
888#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
889
890#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
891
892#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
893
894#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
895
896#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
897
898#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 )
899
900#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 )
901
902#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 )
903
904#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 )
905
906#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 )
907
908#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 )
909
910#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 )
911
912#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 )
913
914#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 )
915
916#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 )
917
918#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 )
919
920#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 )
921
922#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 )
923
924#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff )
925
926#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff )
927
928#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff )
929
930#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff )
931
932#define D3D12_LINEAR_GAMMA ( 1.0f )
933#define D3D12_MAJOR_VERSION ( 12 )
934
935#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )
936#define D3D12_MAX_DEPTH ( 1.0f )
937#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 )
938
939#define D3D12_MAX_MAXANISOTROPY ( 16 )
940
941#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 )
942
943#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )
944#define D3D12_MAX_ROOT_COST ( 64 )
945
946#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 )
947
948#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 )
949
950#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 )
951
952#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 )
953
954#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 )
955
956#define D3D12_MINOR_VERSION ( 0 )
957
958#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )
959#define D3D12_MIN_DEPTH ( 0.0f )
960#define D3D12_MIN_MAXANISOTROPY ( 0 )
961
962#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )
963#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )
964#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 )
965
966#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 )
967
968#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
969#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
970
971#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
972
973#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
974
975#define D3D12_PACKED_TILE ( 0xffffffff )
976
977#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
978
979#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
980
981#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
982
983#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
984
985#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
986
987#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
988
989#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
990
991#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
992
993#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
994
995#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
996
997#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
998
999#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
1000
1001#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
1002
1003#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
1004
1005#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
1006#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
1007
1008#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1009
1010#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
1011
1012#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
1013
1014#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1015
1016#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
1017
1018#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1019
1020#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1021
1022#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
1023
1024#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
1025#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
1026
1027#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
1028
1029#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
1030
1031#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
1032
1033#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
1034
1035#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
1036
1037#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1038
1039#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1040
1041#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
1042
1043#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
1044
1045#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
1046
1047#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
1048
1049#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
1050
1051#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
1052
1053#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
1054
1055#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
1056
1057#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1058
1059#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
1060
1061#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
1062
1063#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
1064
1065#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
1066
1067#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
1068
1069#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1070
1071#define D3D12_REQ_MAXANISOTROPY ( 16 )
1072
1073#define D3D12_REQ_MIP_LEVELS ( 15 )
1074
1075#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
1076
1077#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1078
1079#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
1080
1081#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
1082
1083#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
1084#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
1085
1086#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
1087
1088#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1089
1090#define D3D12_REQ_SUBRESOURCES ( 30720 )
1091
1092#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
1093
1094#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
1095
1096#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
1097
1098#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
1099
1100#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
1101
1102#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
1103
1104#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
1105
1106#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
1107
1108#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
1109
1110#define D3D12_SDK_VERSION ( 4 )
1111
1112#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
1113
1114#define D3D12_SHADER_MAJOR_VERSION ( 5 )
1115
1116#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
1117
1118#define D3D12_SHADER_MAX_INTERFACES ( 253 )
1119
1120#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
1121
1122#define D3D12_SHADER_MAX_TYPES ( 65535 )
1123
1124#define D3D12_SHADER_MINOR_VERSION ( 1 )
1125
1126#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
1127
1128#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
1129
1130#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
1131
1132#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
1133
1134#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
1135
1136#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
1137
1138#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
1139
1140#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
1141
1142#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
1143
1144#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
1145
1146#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
1147
1148#define D3D12_SO_STREAM_COUNT ( 4 )
1149
1150#define D3D12_SPEC_DATE_DAY ( 14 )
1151
1152#define D3D12_SPEC_DATE_MONTH ( 11 )
1153
1154#define D3D12_SPEC_DATE_YEAR ( 2014 )
1155
1156#define D3D12_SPEC_VERSION ( 1.16 )
1157#define D3D12_SRGB_GAMMA ( 2.2f )
1158#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
1159#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
1160#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
1161#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
1162#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
1163#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
1164#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
1165
1166#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
1167
1168#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
1169
1170#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
1171
1172#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
1173
1174#define D3D12_STANDARD_VECTOR_SIZE ( 4 )
1175
1176#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
1177
1178#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
1179
1180#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
1181
1182#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
1183
1184#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1185
1186#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
1187
1188#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
1189
1190#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
1191
1192#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
1193
1194#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
1195
1196#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
1197
1198#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
1199
1200#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
1201
1202#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1203
1204#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
1205
1206#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
1207
1208#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
1209
1210#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
1211
1212#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
1213
1214#define D3D12_UAV_SLOT_COUNT ( 64 )
1215
1216#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
1217
1218#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
1219
1220#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
1221
1222#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
1223
1224#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
1225
1226#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
1227
1228#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
1229
1230#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
1231
1232#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
1233
1234#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
1235
1236#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
1237
1238#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
1239
1240#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
1241
1242#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1243
1244#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
1245
1246#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
1247
1248#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
1249
1250#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1251
1252#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1253
1254#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
1255
1256#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
1257
1258#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
1259
1260#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
1261
1262#endif
1263
1264typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
1265
1266typedef
1267enum D3D12_COMMAND_LIST_TYPE
1268 {
1269 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
1270 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
1271 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
1272 D3D12_COMMAND_LIST_TYPE_COPY = 3,
1273 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
1274 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
1275 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6
1276 } D3D12_COMMAND_LIST_TYPE;
1277
1278typedef
1279enum D3D12_COMMAND_QUEUE_FLAGS
1280 {
1281 D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
1282 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
1283 } D3D12_COMMAND_QUEUE_FLAGS;
1284
1285DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS );
1286typedef
1287enum D3D12_COMMAND_QUEUE_PRIORITY
1288 {
1289 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
1290 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
1291 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
1292 } D3D12_COMMAND_QUEUE_PRIORITY;
1293
1294typedef struct D3D12_COMMAND_QUEUE_DESC
1295 {
1296 D3D12_COMMAND_LIST_TYPE Type;
1297 INT Priority;
1298 D3D12_COMMAND_QUEUE_FLAGS Flags;
1299 UINT NodeMask;
1300 } D3D12_COMMAND_QUEUE_DESC;
1301
1302typedef
1303enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
1304 {
1305 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
1306 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
1307 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
1308 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
1309 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
1310 } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
1311
1312typedef
1313enum D3D12_INPUT_CLASSIFICATION
1314 {
1315 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
1316 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
1317 } D3D12_INPUT_CLASSIFICATION;
1318
1319typedef struct D3D12_INPUT_ELEMENT_DESC
1320 {
1321 LPCSTR SemanticName;
1322 UINT SemanticIndex;
1323 DXGI_FORMAT Format;
1324 UINT InputSlot;
1325 UINT AlignedByteOffset;
1326 D3D12_INPUT_CLASSIFICATION InputSlotClass;
1327 UINT InstanceDataStepRate;
1328 } D3D12_INPUT_ELEMENT_DESC;
1329
1330typedef
1331enum D3D12_FILL_MODE
1332 {
1333 D3D12_FILL_MODE_WIREFRAME = 2,
1334 D3D12_FILL_MODE_SOLID = 3
1335 } D3D12_FILL_MODE;
1336
1337typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
1338
1339typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
1340
1341typedef
1342enum D3D12_CULL_MODE
1343 {
1344 D3D12_CULL_MODE_NONE = 1,
1345 D3D12_CULL_MODE_FRONT = 2,
1346 D3D12_CULL_MODE_BACK = 3
1347 } D3D12_CULL_MODE;
1348
1349typedef struct D3D12_SO_DECLARATION_ENTRY
1350 {
1351 UINT Stream;
1352 LPCSTR SemanticName;
1353 UINT SemanticIndex;
1354 BYTE StartComponent;
1355 BYTE ComponentCount;
1356 BYTE OutputSlot;
1357 } D3D12_SO_DECLARATION_ENTRY;
1358
1359typedef struct D3D12_VIEWPORT
1360 {
1361 FLOAT TopLeftX;
1362 FLOAT TopLeftY;
1363 FLOAT Width;
1364 FLOAT Height;
1365 FLOAT MinDepth;
1366 FLOAT MaxDepth;
1367 } D3D12_VIEWPORT;
1368
1369typedef RECT D3D12_RECT;
1370
1371typedef struct D3D12_BOX
1372 {
1373 UINT left;
1374 UINT top;
1375 UINT front;
1376 UINT right;
1377 UINT bottom;
1378 UINT back;
1379 } D3D12_BOX;
1380
1381typedef
1382enum D3D12_COMPARISON_FUNC
1383 {
1384 D3D12_COMPARISON_FUNC_NEVER = 1,
1385 D3D12_COMPARISON_FUNC_LESS = 2,
1386 D3D12_COMPARISON_FUNC_EQUAL = 3,
1387 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
1388 D3D12_COMPARISON_FUNC_GREATER = 5,
1389 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
1390 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
1391 D3D12_COMPARISON_FUNC_ALWAYS = 8
1392 } D3D12_COMPARISON_FUNC;
1393
1394typedef
1395enum D3D12_DEPTH_WRITE_MASK
1396 {
1397 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
1398 D3D12_DEPTH_WRITE_MASK_ALL = 1
1399 } D3D12_DEPTH_WRITE_MASK;
1400
1401typedef
1402enum D3D12_STENCIL_OP
1403 {
1404 D3D12_STENCIL_OP_KEEP = 1,
1405 D3D12_STENCIL_OP_ZERO = 2,
1406 D3D12_STENCIL_OP_REPLACE = 3,
1407 D3D12_STENCIL_OP_INCR_SAT = 4,
1408 D3D12_STENCIL_OP_DECR_SAT = 5,
1409 D3D12_STENCIL_OP_INVERT = 6,
1410 D3D12_STENCIL_OP_INCR = 7,
1411 D3D12_STENCIL_OP_DECR = 8
1412 } D3D12_STENCIL_OP;
1413
1414typedef struct D3D12_DEPTH_STENCILOP_DESC
1415 {
1416 D3D12_STENCIL_OP StencilFailOp;
1417 D3D12_STENCIL_OP StencilDepthFailOp;
1418 D3D12_STENCIL_OP StencilPassOp;
1419 D3D12_COMPARISON_FUNC StencilFunc;
1420 } D3D12_DEPTH_STENCILOP_DESC;
1421
1422typedef struct D3D12_DEPTH_STENCIL_DESC
1423 {
1424 BOOL DepthEnable;
1425 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1426 D3D12_COMPARISON_FUNC DepthFunc;
1427 BOOL StencilEnable;
1428 UINT8 StencilReadMask;
1429 UINT8 StencilWriteMask;
1430 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1431 D3D12_DEPTH_STENCILOP_DESC BackFace;
1432 } D3D12_DEPTH_STENCIL_DESC;
1433
1434typedef struct D3D12_DEPTH_STENCIL_DESC1
1435 {
1436 BOOL DepthEnable;
1437 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1438 D3D12_COMPARISON_FUNC DepthFunc;
1439 BOOL StencilEnable;
1440 UINT8 StencilReadMask;
1441 UINT8 StencilWriteMask;
1442 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1443 D3D12_DEPTH_STENCILOP_DESC BackFace;
1444 BOOL DepthBoundsTestEnable;
1445 } D3D12_DEPTH_STENCIL_DESC1;
1446
1447typedef
1448enum D3D12_BLEND
1449 {
1450 D3D12_BLEND_ZERO = 1,
1451 D3D12_BLEND_ONE = 2,
1452 D3D12_BLEND_SRC_COLOR = 3,
1453 D3D12_BLEND_INV_SRC_COLOR = 4,
1454 D3D12_BLEND_SRC_ALPHA = 5,
1455 D3D12_BLEND_INV_SRC_ALPHA = 6,
1456 D3D12_BLEND_DEST_ALPHA = 7,
1457 D3D12_BLEND_INV_DEST_ALPHA = 8,
1458 D3D12_BLEND_DEST_COLOR = 9,
1459 D3D12_BLEND_INV_DEST_COLOR = 10,
1460 D3D12_BLEND_SRC_ALPHA_SAT = 11,
1461 D3D12_BLEND_BLEND_FACTOR = 14,
1462 D3D12_BLEND_INV_BLEND_FACTOR = 15,
1463 D3D12_BLEND_SRC1_COLOR = 16,
1464 D3D12_BLEND_INV_SRC1_COLOR = 17,
1465 D3D12_BLEND_SRC1_ALPHA = 18,
1466 D3D12_BLEND_INV_SRC1_ALPHA = 19
1467 } D3D12_BLEND;
1468
1469typedef
1470enum D3D12_BLEND_OP
1471 {
1472 D3D12_BLEND_OP_ADD = 1,
1473 D3D12_BLEND_OP_SUBTRACT = 2,
1474 D3D12_BLEND_OP_REV_SUBTRACT = 3,
1475 D3D12_BLEND_OP_MIN = 4,
1476 D3D12_BLEND_OP_MAX = 5
1477 } D3D12_BLEND_OP;
1478
1479typedef
1480enum D3D12_COLOR_WRITE_ENABLE
1481 {
1482 D3D12_COLOR_WRITE_ENABLE_RED = 1,
1483 D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
1484 D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
1485 D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
1486 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 )
1487 } D3D12_COLOR_WRITE_ENABLE;
1488
1489typedef
1490enum D3D12_LOGIC_OP
1491 {
1492 D3D12_LOGIC_OP_CLEAR = 0,
1493 D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
1494 D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
1495 D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
1496 D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
1497 D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
1498 D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
1499 D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
1500 D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
1501 D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
1502 D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
1503 D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
1504 D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
1505 D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
1506 D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
1507 D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
1508 } D3D12_LOGIC_OP;
1509
1510typedef struct D3D12_RENDER_TARGET_BLEND_DESC
1511 {
1512 BOOL BlendEnable;
1513 BOOL LogicOpEnable;
1514 D3D12_BLEND SrcBlend;
1515 D3D12_BLEND DestBlend;
1516 D3D12_BLEND_OP BlendOp;
1517 D3D12_BLEND SrcBlendAlpha;
1518 D3D12_BLEND DestBlendAlpha;
1519 D3D12_BLEND_OP BlendOpAlpha;
1520 D3D12_LOGIC_OP LogicOp;
1521 UINT8 RenderTargetWriteMask;
1522 } D3D12_RENDER_TARGET_BLEND_DESC;
1523
1524typedef struct D3D12_BLEND_DESC
1525 {
1526 BOOL AlphaToCoverageEnable;
1527 BOOL IndependentBlendEnable;
1528 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1529 } D3D12_BLEND_DESC;
1530
1531/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
1532 IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1533typedef
1534enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
1535 {
1536 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
1537 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
1538 } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
1539
1540typedef struct D3D12_RASTERIZER_DESC
1541 {
1542 D3D12_FILL_MODE FillMode;
1543 D3D12_CULL_MODE CullMode;
1544 BOOL FrontCounterClockwise;
1545 INT DepthBias;
1546 FLOAT DepthBiasClamp;
1547 FLOAT SlopeScaledDepthBias;
1548 BOOL DepthClipEnable;
1549 BOOL MultisampleEnable;
1550 BOOL AntialiasedLineEnable;
1551 UINT ForcedSampleCount;
1552 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1553 } D3D12_RASTERIZER_DESC;
1554
1555
1556
1557extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
1558extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
1559
1560#ifndef __ID3D12Object_INTERFACE_DEFINED__
1561#define __ID3D12Object_INTERFACE_DEFINED__
1562
1563/* interface ID3D12Object */
1564/* [unique][local][object][uuid] */
1565
1566
1567EXTERN_C const IID IID_ID3D12Object;
1568
1569#if defined(__cplusplus) && !defined(CINTERFACE)
1570
1571 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1572 ID3D12Object : public IUnknown
1573 {
1574 public:
1575 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1576 _In_ REFGUID guid,
1577 _Inout_ UINT *pDataSize,
1578 _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
1579
1580 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1581 _In_ REFGUID guid,
1582 _In_ UINT DataSize,
1583 _In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
1584
1585 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1586 _In_ REFGUID guid,
1587 _In_opt_ const IUnknown *pData) = 0;
1588
1589 virtual HRESULT STDMETHODCALLTYPE SetName(
1590 _In_z_ LPCWSTR Name) = 0;
1591
1592 };
1593
1594
1595#else /* C style interface */
1596
1597 typedef struct ID3D12ObjectVtbl
1598 {
1599 BEGIN_INTERFACE
1600
1601 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1602 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1603 ID3D12Object * This,
1604 REFIID riid,
1605 _COM_Outptr_ void **ppvObject);
1606
1607 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1608 ULONG ( STDMETHODCALLTYPE *AddRef )(
1609 ID3D12Object * This);
1610
1611 DECLSPEC_XFGVIRT(IUnknown, Release)
1612 ULONG ( STDMETHODCALLTYPE *Release )(
1613 ID3D12Object * This);
1614
1615 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1616 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1617 ID3D12Object * This,
1618 _In_ REFGUID guid,
1619 _Inout_ UINT *pDataSize,
1620 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1621
1622 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1623 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1624 ID3D12Object * This,
1625 _In_ REFGUID guid,
1626 _In_ UINT DataSize,
1627 _In_reads_bytes_opt_( DataSize ) const void *pData);
1628
1629 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1630 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1631 ID3D12Object * This,
1632 _In_ REFGUID guid,
1633 _In_opt_ const IUnknown *pData);
1634
1635 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1636 HRESULT ( STDMETHODCALLTYPE *SetName )(
1637 ID3D12Object * This,
1638 _In_z_ LPCWSTR Name);
1639
1640 END_INTERFACE
1641 } ID3D12ObjectVtbl;
1642
1643 interface ID3D12Object
1644 {
1645 CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1646 };
1647
1648
1649
1650#ifdef COBJMACROS
1651
1652
1653#define ID3D12Object_QueryInterface(This,riid,ppvObject) \
1654 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1655
1656#define ID3D12Object_AddRef(This) \
1657 ( (This)->lpVtbl -> AddRef(This) )
1658
1659#define ID3D12Object_Release(This) \
1660 ( (This)->lpVtbl -> Release(This) )
1661
1662
1663#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
1664 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1665
1666#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
1667 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1668
1669#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
1670 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1671
1672#define ID3D12Object_SetName(This,Name) \
1673 ( (This)->lpVtbl -> SetName(This,Name) )
1674
1675#endif /* COBJMACROS */
1676
1677
1678#endif /* C style interface */
1679
1680
1681
1682
1683#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
1684
1685
1686#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
1687#define __ID3D12DeviceChild_INTERFACE_DEFINED__
1688
1689/* interface ID3D12DeviceChild */
1690/* [unique][local][object][uuid] */
1691
1692
1693EXTERN_C const IID IID_ID3D12DeviceChild;
1694
1695#if defined(__cplusplus) && !defined(CINTERFACE)
1696
1697 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
1698 ID3D12DeviceChild : public ID3D12Object
1699 {
1700 public:
1701 virtual HRESULT STDMETHODCALLTYPE GetDevice(
1702 REFIID riid,
1703 _COM_Outptr_opt_ void **ppvDevice) = 0;
1704
1705 };
1706
1707
1708#else /* C style interface */
1709
1710 typedef struct ID3D12DeviceChildVtbl
1711 {
1712 BEGIN_INTERFACE
1713
1714 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1715 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1716 ID3D12DeviceChild * This,
1717 REFIID riid,
1718 _COM_Outptr_ void **ppvObject);
1719
1720 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1721 ULONG ( STDMETHODCALLTYPE *AddRef )(
1722 ID3D12DeviceChild * This);
1723
1724 DECLSPEC_XFGVIRT(IUnknown, Release)
1725 ULONG ( STDMETHODCALLTYPE *Release )(
1726 ID3D12DeviceChild * This);
1727
1728 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1729 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1730 ID3D12DeviceChild * This,
1731 _In_ REFGUID guid,
1732 _Inout_ UINT *pDataSize,
1733 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1734
1735 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1736 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1737 ID3D12DeviceChild * This,
1738 _In_ REFGUID guid,
1739 _In_ UINT DataSize,
1740 _In_reads_bytes_opt_( DataSize ) const void *pData);
1741
1742 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1743 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1744 ID3D12DeviceChild * This,
1745 _In_ REFGUID guid,
1746 _In_opt_ const IUnknown *pData);
1747
1748 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1749 HRESULT ( STDMETHODCALLTYPE *SetName )(
1750 ID3D12DeviceChild * This,
1751 _In_z_ LPCWSTR Name);
1752
1753 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1754 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1755 ID3D12DeviceChild * This,
1756 REFIID riid,
1757 _COM_Outptr_opt_ void **ppvDevice);
1758
1759 END_INTERFACE
1760 } ID3D12DeviceChildVtbl;
1761
1762 interface ID3D12DeviceChild
1763 {
1764 CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
1765 };
1766
1767
1768
1769#ifdef COBJMACROS
1770
1771
1772#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
1773 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1774
1775#define ID3D12DeviceChild_AddRef(This) \
1776 ( (This)->lpVtbl -> AddRef(This) )
1777
1778#define ID3D12DeviceChild_Release(This) \
1779 ( (This)->lpVtbl -> Release(This) )
1780
1781
1782#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
1783 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1784
1785#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
1786 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1787
1788#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
1789 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1790
1791#define ID3D12DeviceChild_SetName(This,Name) \
1792 ( (This)->lpVtbl -> SetName(This,Name) )
1793
1794
1795#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
1796 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1797
1798#endif /* COBJMACROS */
1799
1800
1801#endif /* C style interface */
1802
1803
1804
1805
1806#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
1807
1808
1809#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
1810#define __ID3D12RootSignature_INTERFACE_DEFINED__
1811
1812/* interface ID3D12RootSignature */
1813/* [unique][local][object][uuid] */
1814
1815
1816EXTERN_C const IID IID_ID3D12RootSignature;
1817
1818#if defined(__cplusplus) && !defined(CINTERFACE)
1819
1820 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
1821 ID3D12RootSignature : public ID3D12DeviceChild
1822 {
1823 public:
1824 };
1825
1826
1827#else /* C style interface */
1828
1829 typedef struct ID3D12RootSignatureVtbl
1830 {
1831 BEGIN_INTERFACE
1832
1833 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1834 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1835 ID3D12RootSignature * This,
1836 REFIID riid,
1837 _COM_Outptr_ void **ppvObject);
1838
1839 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1840 ULONG ( STDMETHODCALLTYPE *AddRef )(
1841 ID3D12RootSignature * This);
1842
1843 DECLSPEC_XFGVIRT(IUnknown, Release)
1844 ULONG ( STDMETHODCALLTYPE *Release )(
1845 ID3D12RootSignature * This);
1846
1847 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1848 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1849 ID3D12RootSignature * This,
1850 _In_ REFGUID guid,
1851 _Inout_ UINT *pDataSize,
1852 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1853
1854 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1855 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1856 ID3D12RootSignature * This,
1857 _In_ REFGUID guid,
1858 _In_ UINT DataSize,
1859 _In_reads_bytes_opt_( DataSize ) const void *pData);
1860
1861 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1862 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1863 ID3D12RootSignature * This,
1864 _In_ REFGUID guid,
1865 _In_opt_ const IUnknown *pData);
1866
1867 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1868 HRESULT ( STDMETHODCALLTYPE *SetName )(
1869 ID3D12RootSignature * This,
1870 _In_z_ LPCWSTR Name);
1871
1872 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1873 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1874 ID3D12RootSignature * This,
1875 REFIID riid,
1876 _COM_Outptr_opt_ void **ppvDevice);
1877
1878 END_INTERFACE
1879 } ID3D12RootSignatureVtbl;
1880
1881 interface ID3D12RootSignature
1882 {
1883 CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
1884 };
1885
1886
1887
1888#ifdef COBJMACROS
1889
1890
1891#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
1892 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1893
1894#define ID3D12RootSignature_AddRef(This) \
1895 ( (This)->lpVtbl -> AddRef(This) )
1896
1897#define ID3D12RootSignature_Release(This) \
1898 ( (This)->lpVtbl -> Release(This) )
1899
1900
1901#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
1902 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1903
1904#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
1905 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1906
1907#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
1908 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1909
1910#define ID3D12RootSignature_SetName(This,Name) \
1911 ( (This)->lpVtbl -> SetName(This,Name) )
1912
1913
1914#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
1915 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1916
1917
1918#endif /* COBJMACROS */
1919
1920
1921#endif /* C style interface */
1922
1923
1924
1925
1926#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
1927
1928
1929/* interface __MIDL_itf_d3d12_0000_0001 */
1930/* [local] */
1931
1932typedef struct D3D12_SHADER_BYTECODE
1933 {
1934 _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
1935 SIZE_T BytecodeLength;
1936 } D3D12_SHADER_BYTECODE;
1937
1938typedef struct D3D12_STREAM_OUTPUT_DESC
1939 {
1940 _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
1941 UINT NumEntries;
1942 _Field_size_full_(NumStrides) const UINT *pBufferStrides;
1943 UINT NumStrides;
1944 UINT RasterizedStream;
1945 } D3D12_STREAM_OUTPUT_DESC;
1946
1947typedef struct D3D12_INPUT_LAYOUT_DESC
1948 {
1949 _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
1950 UINT NumElements;
1951 } D3D12_INPUT_LAYOUT_DESC;
1952
1953typedef
1954enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
1955 {
1956 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
1957 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
1958 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
1959 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
1960
1961typedef struct D3D12_CACHED_PIPELINE_STATE
1962 {
1963 _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
1964 SIZE_T CachedBlobSizeInBytes;
1965 } D3D12_CACHED_PIPELINE_STATE;
1966
1967typedef
1968enum D3D12_PIPELINE_STATE_FLAGS
1969 {
1970 D3D12_PIPELINE_STATE_FLAG_NONE = 0,
1971 D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1
1972 } D3D12_PIPELINE_STATE_FLAGS;
1973
1974DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS );
1975typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
1976 {
1977 ID3D12RootSignature *pRootSignature;
1978 D3D12_SHADER_BYTECODE VS;
1979 D3D12_SHADER_BYTECODE PS;
1980 D3D12_SHADER_BYTECODE DS;
1981 D3D12_SHADER_BYTECODE HS;
1982 D3D12_SHADER_BYTECODE GS;
1983 D3D12_STREAM_OUTPUT_DESC StreamOutput;
1984 D3D12_BLEND_DESC BlendState;
1985 UINT SampleMask;
1986 D3D12_RASTERIZER_DESC RasterizerState;
1987 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
1988 D3D12_INPUT_LAYOUT_DESC InputLayout;
1989 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
1990 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
1991 UINT NumRenderTargets;
1992 DXGI_FORMAT RTVFormats[ 8 ];
1993 DXGI_FORMAT DSVFormat;
1994 DXGI_SAMPLE_DESC SampleDesc;
1995 UINT NodeMask;
1996 D3D12_CACHED_PIPELINE_STATE CachedPSO;
1997 D3D12_PIPELINE_STATE_FLAGS Flags;
1998 } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
1999
2000typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
2001 {
2002 ID3D12RootSignature *pRootSignature;
2003 D3D12_SHADER_BYTECODE CS;
2004 UINT NodeMask;
2005 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2006 D3D12_PIPELINE_STATE_FLAGS Flags;
2007 } D3D12_COMPUTE_PIPELINE_STATE_DESC;
2008
2009struct D3D12_RT_FORMAT_ARRAY
2010 {
2011 DXGI_FORMAT RTFormats[ 8 ];
2012 UINT NumRenderTargets;
2013 } ;
2014typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
2015 {
2016 _In_ SIZE_T SizeInBytes;
2017 _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
2018 } D3D12_PIPELINE_STATE_STREAM_DESC;
2019
2020typedef
2021enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
2022 {
2023 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
2024 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
2025 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
2026 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
2027 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
2028 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
2029 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
2030 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
2031 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
2032 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
2033 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
2034 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
2035 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
2036 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
2037 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
2038 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
2039 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
2040 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
2041 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
2042 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
2043 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
2044 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
2045 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
2046 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24,
2047 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25,
2048 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS + 1 )
2049 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2050
2051typedef
2052enum D3D12_FEATURE
2053 {
2054 D3D12_FEATURE_D3D12_OPTIONS = 0,
2055 D3D12_FEATURE_ARCHITECTURE = 1,
2056 D3D12_FEATURE_FEATURE_LEVELS = 2,
2057 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2058 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2059 D3D12_FEATURE_FORMAT_INFO = 5,
2060 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2061 D3D12_FEATURE_SHADER_MODEL = 7,
2062 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2063 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2064 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2065 D3D12_FEATURE_ARCHITECTURE1 = 16,
2066 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2067 D3D12_FEATURE_SHADER_CACHE = 19,
2068 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2069 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2070 D3D12_FEATURE_EXISTING_HEAPS = 22,
2071 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
2072 D3D12_FEATURE_SERIALIZATION = 24,
2073 D3D12_FEATURE_CROSS_NODE = 25,
2074 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
2075 D3D12_FEATURE_DISPLAYABLE = 28,
2076 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
2077 D3D12_FEATURE_QUERY_META_COMMAND = 31,
2078 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
2079 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
2080 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
2081 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
2082 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
2083 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
2084 D3D12_FEATURE_D3D12_OPTIONS11 = 40
2085 } D3D12_FEATURE;
2086
2087typedef
2088enum D3D12_SHADER_MIN_PRECISION_SUPPORT
2089 {
2090 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
2091 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
2092 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
2093 } D3D12_SHADER_MIN_PRECISION_SUPPORT;
2094
2095DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT );
2096typedef
2097enum D3D12_TILED_RESOURCES_TIER
2098 {
2099 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
2100 D3D12_TILED_RESOURCES_TIER_1 = 1,
2101 D3D12_TILED_RESOURCES_TIER_2 = 2,
2102 D3D12_TILED_RESOURCES_TIER_3 = 3,
2103 D3D12_TILED_RESOURCES_TIER_4 = 4
2104 } D3D12_TILED_RESOURCES_TIER;
2105
2106typedef
2107enum D3D12_RESOURCE_BINDING_TIER
2108 {
2109 D3D12_RESOURCE_BINDING_TIER_1 = 1,
2110 D3D12_RESOURCE_BINDING_TIER_2 = 2,
2111 D3D12_RESOURCE_BINDING_TIER_3 = 3
2112 } D3D12_RESOURCE_BINDING_TIER;
2113
2114typedef
2115enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
2116 {
2117 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
2118 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
2119 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
2120 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
2121 } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
2122
2123typedef
2124enum D3D12_FORMAT_SUPPORT1
2125 {
2126 D3D12_FORMAT_SUPPORT1_NONE = 0,
2127 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
2128 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
2129 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
2130 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
2131 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
2132 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
2133 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
2134 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
2135 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
2136 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
2137 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
2138 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
2139 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
2140 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
2141 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
2142 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
2143 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
2144 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
2145 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
2146 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
2147 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
2148 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
2149 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
2150 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
2151 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
2152 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
2153 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
2154 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
2155 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
2156 } D3D12_FORMAT_SUPPORT1;
2157
2158DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 );
2159typedef
2160enum D3D12_FORMAT_SUPPORT2
2161 {
2162 D3D12_FORMAT_SUPPORT2_NONE = 0,
2163 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
2164 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
2165 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
2166 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
2167 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
2168 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
2169 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
2170 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
2171 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
2172 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
2173 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
2174 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000
2175 } D3D12_FORMAT_SUPPORT2;
2176
2177DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 );
2178typedef
2179enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
2180 {
2181 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
2182 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
2183 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
2184
2185DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS );
2186typedef
2187enum D3D12_CROSS_NODE_SHARING_TIER
2188 {
2189 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
2190 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
2191 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
2192 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
2193 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
2194 } D3D12_CROSS_NODE_SHARING_TIER;
2195
2196typedef
2197enum D3D12_RESOURCE_HEAP_TIER
2198 {
2199 D3D12_RESOURCE_HEAP_TIER_1 = 1,
2200 D3D12_RESOURCE_HEAP_TIER_2 = 2
2201 } D3D12_RESOURCE_HEAP_TIER;
2202
2203typedef
2204enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
2205 {
2206 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
2207 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
2208 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
2209 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
2210
2211typedef
2212enum D3D12_VIEW_INSTANCING_TIER
2213 {
2214 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
2215 D3D12_VIEW_INSTANCING_TIER_1 = 1,
2216 D3D12_VIEW_INSTANCING_TIER_2 = 2,
2217 D3D12_VIEW_INSTANCING_TIER_3 = 3
2218 } D3D12_VIEW_INSTANCING_TIER;
2219
2220typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
2221 {
2222 _Out_ BOOL DoublePrecisionFloatShaderOps;
2223 _Out_ BOOL OutputMergerLogicOp;
2224 _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
2225 _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
2226 _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
2227 _Out_ BOOL PSSpecifiedStencilRefSupported;
2228 _Out_ BOOL TypedUAVLoadAdditionalFormats;
2229 _Out_ BOOL ROVsSupported;
2230 _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
2231 _Out_ UINT MaxGPUVirtualAddressBitsPerResource;
2232 _Out_ BOOL StandardSwizzle64KBSupported;
2233 _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
2234 _Out_ BOOL CrossAdapterRowMajorTextureSupported;
2235 _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
2236 _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
2237 } D3D12_FEATURE_DATA_D3D12_OPTIONS;
2238
2239typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
2240 {
2241 _Out_ BOOL WaveOps;
2242 _Out_ UINT WaveLaneCountMin;
2243 _Out_ UINT WaveLaneCountMax;
2244 _Out_ UINT TotalLaneCount;
2245 _Out_ BOOL ExpandedComputeResourceStates;
2246 _Out_ BOOL Int64ShaderOps;
2247 } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2248
2249typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
2250 {
2251 _Out_ BOOL DepthBoundsTestSupported;
2252 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2253 } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2254
2255typedef
2256enum D3D_ROOT_SIGNATURE_VERSION
2257 {
2258 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2259 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2260 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
2261 } D3D_ROOT_SIGNATURE_VERSION;
2262
2263typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
2264 {
2265 _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2266 } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2267
2268typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
2269 {
2270 _In_ UINT NodeIndex;
2271 _Out_ BOOL TileBasedRenderer;
2272 _Out_ BOOL UMA;
2273 _Out_ BOOL CacheCoherentUMA;
2274 } D3D12_FEATURE_DATA_ARCHITECTURE;
2275
2276typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
2277 {
2278 _In_ UINT NodeIndex;
2279 _Out_ BOOL TileBasedRenderer;
2280 _Out_ BOOL UMA;
2281 _Out_ BOOL CacheCoherentUMA;
2282 _Out_ BOOL IsolatedMMU;
2283 } D3D12_FEATURE_DATA_ARCHITECTURE1;
2284
2285typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
2286 {
2287 _In_ UINT NumFeatureLevels;
2288 _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2289 _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2290 } D3D12_FEATURE_DATA_FEATURE_LEVELS;
2291
2292typedef
2293enum D3D_SHADER_MODEL
2294 {
2295 D3D_SHADER_MODEL_5_1 = 0x51,
2296 D3D_SHADER_MODEL_6_0 = 0x60,
2297 D3D_SHADER_MODEL_6_1 = 0x61,
2298 D3D_SHADER_MODEL_6_2 = 0x62,
2299 D3D_SHADER_MODEL_6_3 = 0x63,
2300 D3D_SHADER_MODEL_6_4 = 0x64,
2301 D3D_SHADER_MODEL_6_5 = 0x65,
2302 D3D_SHADER_MODEL_6_6 = 0x66,
2303 D3D_SHADER_MODEL_6_7 = 0x67
2304 } D3D_SHADER_MODEL;
2305
2306typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
2307 {
2308 _Inout_ D3D_SHADER_MODEL HighestShaderModel;
2309 } D3D12_FEATURE_DATA_SHADER_MODEL;
2310
2311typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
2312 {
2313 _In_ DXGI_FORMAT Format;
2314 _Out_ D3D12_FORMAT_SUPPORT1 Support1;
2315 _Out_ D3D12_FORMAT_SUPPORT2 Support2;
2316 } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
2317
2318typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
2319 {
2320 _In_ DXGI_FORMAT Format;
2321 _In_ UINT SampleCount;
2322 _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
2323 _Out_ UINT NumQualityLevels;
2324 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
2325
2326typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
2327 {
2328 DXGI_FORMAT Format;
2329 UINT8 PlaneCount;
2330 } D3D12_FEATURE_DATA_FORMAT_INFO;
2331
2332typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
2333 {
2334 UINT MaxGPUVirtualAddressBitsPerResource;
2335 UINT MaxGPUVirtualAddressBitsPerProcess;
2336 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2337
2338typedef
2339enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
2340 {
2341 D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
2342 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
2343 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
2344 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
2345 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
2346 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
2347 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
2348 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
2349 } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
2350
2351DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS );
2352typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
2353 {
2354 _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2355 } D3D12_FEATURE_DATA_SHADER_CACHE;
2356
2357typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
2358 {
2359 _In_ D3D12_COMMAND_LIST_TYPE CommandListType;
2360 _In_ UINT Priority;
2361 _Out_ BOOL PriorityForTypeIsSupported;
2362 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2363
2364typedef
2365enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
2366 {
2367 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
2368 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
2369 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
2370 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
2371 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
2372 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
2373 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
2374 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
2375 } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
2376
2377DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS );
2378typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
2379 {
2380 _Out_ BOOL CopyQueueTimestampQueriesSupported;
2381 _Out_ BOOL CastingFullyTypedFormatSupported;
2382 _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2383 _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2384 _Out_ BOOL BarycentricsSupported;
2385 } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2386
2387typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
2388 {
2389 _Out_ BOOL Supported;
2390 } D3D12_FEATURE_DATA_EXISTING_HEAPS;
2391
2392typedef
2393enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
2394 {
2395 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
2396 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) ,
2397 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 ) ,
2398 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_3 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 + 1 )
2399 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
2400
2401typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
2402 {
2403 _Out_ BOOL DisplayableTexture;
2404 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2405 } D3D12_FEATURE_DATA_DISPLAYABLE;
2406
2407typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
2408 {
2409 _Out_ BOOL MSAA64KBAlignedTextureSupported;
2410 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2411 _Out_ BOOL Native16BitShaderOpsSupported;
2412 } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2413
2414typedef
2415enum D3D12_HEAP_SERIALIZATION_TIER
2416 {
2417 D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
2418 D3D12_HEAP_SERIALIZATION_TIER_10 = 10
2419 } D3D12_HEAP_SERIALIZATION_TIER;
2420
2421typedef struct D3D12_FEATURE_DATA_SERIALIZATION
2422 {
2423 _In_ UINT NodeIndex;
2424 _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2425 } D3D12_FEATURE_DATA_SERIALIZATION;
2426
2427typedef struct D3D12_FEATURE_DATA_CROSS_NODE
2428 {
2429 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2430 BOOL AtomicShaderInstructions;
2431 } D3D12_FEATURE_DATA_CROSS_NODE;
2432
2433typedef
2434enum D3D12_RENDER_PASS_TIER
2435 {
2436 D3D12_RENDER_PASS_TIER_0 = 0,
2437 D3D12_RENDER_PASS_TIER_1 = 1,
2438 D3D12_RENDER_PASS_TIER_2 = 2
2439 } D3D12_RENDER_PASS_TIER;
2440
2441typedef
2442enum D3D12_RAYTRACING_TIER
2443 {
2444 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
2445 D3D12_RAYTRACING_TIER_1_0 = 10,
2446 D3D12_RAYTRACING_TIER_1_1 = 11
2447 } D3D12_RAYTRACING_TIER;
2448
2449typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
2450 {
2451 _Out_ BOOL SRVOnlyTiledResourceTier3;
2452 _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
2453 _Out_ D3D12_RAYTRACING_TIER RaytracingTier;
2454 } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2455
2456typedef
2457enum D3D12_VARIABLE_SHADING_RATE_TIER
2458 {
2459 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
2460 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
2461 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
2462 } D3D12_VARIABLE_SHADING_RATE_TIER;
2463
2464typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
2465 {
2466 _Out_ BOOL AdditionalShadingRatesSupported;
2467 _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2468 _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2469 _Out_ UINT ShadingRateImageTileSize;
2470 _Out_ BOOL BackgroundProcessingSupported;
2471 } D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2472
2473typedef
2474enum D3D12_MESH_SHADER_TIER
2475 {
2476 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
2477 D3D12_MESH_SHADER_TIER_1 = 10
2478 } D3D12_MESH_SHADER_TIER;
2479
2480typedef
2481enum D3D12_SAMPLER_FEEDBACK_TIER
2482 {
2483 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
2484 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
2485 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
2486 } D3D12_SAMPLER_FEEDBACK_TIER;
2487
2488typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
2489 {
2490 _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier;
2491 _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2492 } D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2493
2494typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
2495 {
2496 _In_ GUID CommandId;
2497 _In_ UINT NodeMask;
2498 _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
2499 _In_ SIZE_T QueryInputDataSizeInBytes;
2500 _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
2501 _In_ SIZE_T QueryOutputDataSizeInBytes;
2502 } D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2503
2504typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
2505 {
2506 _Out_ BOOL UnalignedBlockTexturesSupported;
2507 } D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2508
2509typedef
2510enum D3D12_WAVE_MMA_TIER
2511 {
2512 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
2513 D3D12_WAVE_MMA_TIER_1_0 = 10
2514 } D3D12_WAVE_MMA_TIER;
2515
2516typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
2517 {
2518 _Out_ BOOL MeshShaderPipelineStatsSupported;
2519 _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2520 _Out_ BOOL AtomicInt64OnTypedResourceSupported;
2521 _Out_ BOOL AtomicInt64OnGroupSharedSupported;
2522 _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported;
2523 _Out_ D3D12_WAVE_MMA_TIER WaveMMATier;
2524 } D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2525
2526typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
2527 {
2528 _Out_ BOOL VariableRateShadingSumCombinerSupported;
2529 _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
2530 } D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2531
2532typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
2533 {
2534 _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
2535 } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2536
2537typedef struct D3D12_RESOURCE_ALLOCATION_INFO
2538 {
2539 UINT64 SizeInBytes;
2540 UINT64 Alignment;
2541 } D3D12_RESOURCE_ALLOCATION_INFO;
2542
2543typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
2544 {
2545 UINT64 Offset;
2546 UINT64 Alignment;
2547 UINT64 SizeInBytes;
2548 } D3D12_RESOURCE_ALLOCATION_INFO1;
2549
2550typedef
2551enum D3D12_HEAP_TYPE
2552 {
2553 D3D12_HEAP_TYPE_DEFAULT = 1,
2554 D3D12_HEAP_TYPE_UPLOAD = 2,
2555 D3D12_HEAP_TYPE_READBACK = 3,
2556 D3D12_HEAP_TYPE_CUSTOM = 4
2557 } D3D12_HEAP_TYPE;
2558
2559typedef
2560enum D3D12_CPU_PAGE_PROPERTY
2561 {
2562 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
2563 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
2564 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
2565 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
2566 } D3D12_CPU_PAGE_PROPERTY;
2567
2568typedef
2569enum D3D12_MEMORY_POOL
2570 {
2571 D3D12_MEMORY_POOL_UNKNOWN = 0,
2572 D3D12_MEMORY_POOL_L0 = 1,
2573 D3D12_MEMORY_POOL_L1 = 2
2574 } D3D12_MEMORY_POOL;
2575
2576typedef struct D3D12_HEAP_PROPERTIES
2577 {
2578 D3D12_HEAP_TYPE Type;
2579 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
2580 D3D12_MEMORY_POOL MemoryPoolPreference;
2581 UINT CreationNodeMask;
2582 UINT VisibleNodeMask;
2583 } D3D12_HEAP_PROPERTIES;
2584
2585typedef
2586enum D3D12_HEAP_FLAGS
2587 {
2588 D3D12_HEAP_FLAG_NONE = 0,
2589 D3D12_HEAP_FLAG_SHARED = 0x1,
2590 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
2591 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
2592 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
2593 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
2594 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
2595 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
2596 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
2597 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
2598 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
2599 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
2600 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
2601 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
2602 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
2603 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
2604 } D3D12_HEAP_FLAGS;
2605
2606DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS );
2607typedef struct D3D12_HEAP_DESC
2608 {
2609 UINT64 SizeInBytes;
2610 D3D12_HEAP_PROPERTIES Properties;
2611 UINT64 Alignment;
2612 D3D12_HEAP_FLAGS Flags;
2613 } D3D12_HEAP_DESC;
2614
2615typedef
2616enum D3D12_RESOURCE_DIMENSION
2617 {
2618 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
2619 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
2620 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
2621 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
2622 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
2623 } D3D12_RESOURCE_DIMENSION;
2624
2625typedef
2626enum D3D12_TEXTURE_LAYOUT
2627 {
2628 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
2629 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
2630 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
2631 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
2632 } D3D12_TEXTURE_LAYOUT;
2633
2634typedef
2635enum D3D12_RESOURCE_FLAGS
2636 {
2637 D3D12_RESOURCE_FLAG_NONE = 0,
2638 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
2639 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
2640 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
2641 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
2642 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
2643 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
2644 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
2645 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80
2646 } D3D12_RESOURCE_FLAGS;
2647
2648DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS );
2649typedef struct D3D12_MIP_REGION
2650 {
2651 UINT Width;
2652 UINT Height;
2653 UINT Depth;
2654 } D3D12_MIP_REGION;
2655
2656typedef struct D3D12_RESOURCE_DESC
2657 {
2658 D3D12_RESOURCE_DIMENSION Dimension;
2659 UINT64 Alignment;
2660 UINT64 Width;
2661 UINT Height;
2662 UINT16 DepthOrArraySize;
2663 UINT16 MipLevels;
2664 DXGI_FORMAT Format;
2665 DXGI_SAMPLE_DESC SampleDesc;
2666 D3D12_TEXTURE_LAYOUT Layout;
2667 D3D12_RESOURCE_FLAGS Flags;
2668 } D3D12_RESOURCE_DESC;
2669
2670typedef struct D3D12_RESOURCE_DESC1
2671 {
2672 D3D12_RESOURCE_DIMENSION Dimension;
2673 UINT64 Alignment;
2674 UINT64 Width;
2675 UINT Height;
2676 UINT16 DepthOrArraySize;
2677 UINT16 MipLevels;
2678 DXGI_FORMAT Format;
2679 DXGI_SAMPLE_DESC SampleDesc;
2680 D3D12_TEXTURE_LAYOUT Layout;
2681 D3D12_RESOURCE_FLAGS Flags;
2682 D3D12_MIP_REGION SamplerFeedbackMipRegion;
2683 } D3D12_RESOURCE_DESC1;
2684
2685typedef struct D3D12_DEPTH_STENCIL_VALUE
2686 {
2687 FLOAT Depth;
2688 UINT8 Stencil;
2689 } D3D12_DEPTH_STENCIL_VALUE;
2690
2691typedef struct D3D12_CLEAR_VALUE
2692 {
2693 DXGI_FORMAT Format;
2694 union
2695 {
2696 FLOAT Color[ 4 ];
2697 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
2698 } ;
2699 } D3D12_CLEAR_VALUE;
2700
2701typedef struct D3D12_RANGE
2702 {
2703 SIZE_T Begin;
2704 SIZE_T End;
2705 } D3D12_RANGE;
2706
2707typedef struct D3D12_RANGE_UINT64
2708 {
2709 UINT64 Begin;
2710 UINT64 End;
2711 } D3D12_RANGE_UINT64;
2712
2713typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
2714 {
2715 UINT Subresource;
2716 D3D12_RANGE_UINT64 Range;
2717 } D3D12_SUBRESOURCE_RANGE_UINT64;
2718
2719typedef struct D3D12_SUBRESOURCE_INFO
2720 {
2721 UINT64 Offset;
2722 UINT RowPitch;
2723 UINT DepthPitch;
2724 } D3D12_SUBRESOURCE_INFO;
2725
2726typedef struct D3D12_TILED_RESOURCE_COORDINATE
2727 {
2728 UINT X;
2729 UINT Y;
2730 UINT Z;
2731 UINT Subresource;
2732 } D3D12_TILED_RESOURCE_COORDINATE;
2733
2734typedef struct D3D12_TILE_REGION_SIZE
2735 {
2736 UINT NumTiles;
2737 BOOL UseBox;
2738 UINT Width;
2739 UINT16 Height;
2740 UINT16 Depth;
2741 } D3D12_TILE_REGION_SIZE;
2742
2743typedef
2744enum D3D12_TILE_RANGE_FLAGS
2745 {
2746 D3D12_TILE_RANGE_FLAG_NONE = 0,
2747 D3D12_TILE_RANGE_FLAG_NULL = 1,
2748 D3D12_TILE_RANGE_FLAG_SKIP = 2,
2749 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
2750 } D3D12_TILE_RANGE_FLAGS;
2751
2752typedef struct D3D12_SUBRESOURCE_TILING
2753 {
2754 UINT WidthInTiles;
2755 UINT16 HeightInTiles;
2756 UINT16 DepthInTiles;
2757 UINT StartTileIndexInOverallResource;
2758 } D3D12_SUBRESOURCE_TILING;
2759
2760typedef struct D3D12_TILE_SHAPE
2761 {
2762 UINT WidthInTexels;
2763 UINT HeightInTexels;
2764 UINT DepthInTexels;
2765 } D3D12_TILE_SHAPE;
2766
2767typedef struct D3D12_PACKED_MIP_INFO
2768 {
2769 UINT8 NumStandardMips;
2770 UINT8 NumPackedMips;
2771 UINT NumTilesForPackedMips;
2772 UINT StartTileIndexInOverallResource;
2773 } D3D12_PACKED_MIP_INFO;
2774
2775typedef
2776enum D3D12_TILE_MAPPING_FLAGS
2777 {
2778 D3D12_TILE_MAPPING_FLAG_NONE = 0,
2779 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
2780 } D3D12_TILE_MAPPING_FLAGS;
2781
2782DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS );
2783typedef
2784enum D3D12_TILE_COPY_FLAGS
2785 {
2786 D3D12_TILE_COPY_FLAG_NONE = 0,
2787 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
2788 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
2789 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
2790 } D3D12_TILE_COPY_FLAGS;
2791
2792DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS );
2793typedef
2794enum D3D12_RESOURCE_STATES
2795 {
2796 D3D12_RESOURCE_STATE_COMMON = 0,
2797 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
2798 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
2799 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
2800 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
2801 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
2802 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
2803 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
2804 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
2805 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
2806 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
2807 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
2808 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
2809 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
2810 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
2811 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
2812 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
2813 D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
2814 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) ,
2815 D3D12_RESOURCE_STATE_PRESENT = 0,
2816 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
2817 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
2818 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
2819 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
2820 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
2821 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
2822 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
2823 } D3D12_RESOURCE_STATES;
2824
2825DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES );
2826typedef
2827enum D3D12_RESOURCE_BARRIER_TYPE
2828 {
2829 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
2830 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
2831 D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
2832 } D3D12_RESOURCE_BARRIER_TYPE;
2833
2834
2835typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
2836 {
2837 ID3D12Resource *pResource;
2838 UINT Subresource;
2839 D3D12_RESOURCE_STATES StateBefore;
2840 D3D12_RESOURCE_STATES StateAfter;
2841 } D3D12_RESOURCE_TRANSITION_BARRIER;
2842
2843typedef struct D3D12_RESOURCE_ALIASING_BARRIER
2844 {
2845 ID3D12Resource *pResourceBefore;
2846 ID3D12Resource *pResourceAfter;
2847 } D3D12_RESOURCE_ALIASING_BARRIER;
2848
2849typedef struct D3D12_RESOURCE_UAV_BARRIER
2850 {
2851 ID3D12Resource *pResource;
2852 } D3D12_RESOURCE_UAV_BARRIER;
2853
2854typedef
2855enum D3D12_RESOURCE_BARRIER_FLAGS
2856 {
2857 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
2858 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
2859 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
2860 } D3D12_RESOURCE_BARRIER_FLAGS;
2861
2862DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS );
2863typedef struct D3D12_RESOURCE_BARRIER
2864 {
2865 D3D12_RESOURCE_BARRIER_TYPE Type;
2866 D3D12_RESOURCE_BARRIER_FLAGS Flags;
2867 union
2868 {
2869 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
2870 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
2871 D3D12_RESOURCE_UAV_BARRIER UAV;
2872 } ;
2873 } D3D12_RESOURCE_BARRIER;
2874
2875typedef struct D3D12_SUBRESOURCE_FOOTPRINT
2876 {
2877 DXGI_FORMAT Format;
2878 UINT Width;
2879 UINT Height;
2880 UINT Depth;
2881 UINT RowPitch;
2882 } D3D12_SUBRESOURCE_FOOTPRINT;
2883
2884typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
2885 {
2886 UINT64 Offset;
2887 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
2888 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
2889
2890typedef
2891enum D3D12_TEXTURE_COPY_TYPE
2892 {
2893 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
2894 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
2895 } D3D12_TEXTURE_COPY_TYPE;
2896
2897typedef struct D3D12_TEXTURE_COPY_LOCATION
2898 {
2899 ID3D12Resource *pResource;
2900 D3D12_TEXTURE_COPY_TYPE Type;
2901 union
2902 {
2903 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
2904 UINT SubresourceIndex;
2905 } ;
2906 } D3D12_TEXTURE_COPY_LOCATION;
2907
2908typedef
2909enum D3D12_RESOLVE_MODE
2910 {
2911 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
2912 D3D12_RESOLVE_MODE_MIN = 1,
2913 D3D12_RESOLVE_MODE_MAX = 2,
2914 D3D12_RESOLVE_MODE_AVERAGE = 3,
2915 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
2916 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
2917 } D3D12_RESOLVE_MODE;
2918
2919typedef struct D3D12_SAMPLE_POSITION
2920 {
2921 INT8 X;
2922 INT8 Y;
2923 } D3D12_SAMPLE_POSITION;
2924
2925typedef struct D3D12_VIEW_INSTANCE_LOCATION
2926 {
2927 UINT ViewportArrayIndex;
2928 UINT RenderTargetArrayIndex;
2929 } D3D12_VIEW_INSTANCE_LOCATION;
2930
2931typedef
2932enum D3D12_VIEW_INSTANCING_FLAGS
2933 {
2934 D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
2935 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
2936 } D3D12_VIEW_INSTANCING_FLAGS;
2937
2938DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS );
2939typedef struct D3D12_VIEW_INSTANCING_DESC
2940 {
2941 UINT ViewInstanceCount;
2942 _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
2943 D3D12_VIEW_INSTANCING_FLAGS Flags;
2944 } D3D12_VIEW_INSTANCING_DESC;
2945
2946typedef
2947enum D3D12_SHADER_COMPONENT_MAPPING
2948 {
2949 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
2950 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
2951 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
2952 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
2953 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
2954 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
2955 } D3D12_SHADER_COMPONENT_MAPPING;
2956
2957#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
2958#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
2959#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
2960#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
2961 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
2962 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
2963 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
2964 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
2965#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))
2966#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
2967typedef
2968enum D3D12_BUFFER_SRV_FLAGS
2969 {
2970 D3D12_BUFFER_SRV_FLAG_NONE = 0,
2971 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
2972 } D3D12_BUFFER_SRV_FLAGS;
2973
2974DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS );
2975typedef struct D3D12_BUFFER_SRV
2976 {
2977 UINT64 FirstElement;
2978 UINT NumElements;
2979 UINT StructureByteStride;
2980 D3D12_BUFFER_SRV_FLAGS Flags;
2981 } D3D12_BUFFER_SRV;
2982
2983typedef struct D3D12_TEX1D_SRV
2984 {
2985 UINT MostDetailedMip;
2986 UINT MipLevels;
2987 FLOAT ResourceMinLODClamp;
2988 } D3D12_TEX1D_SRV;
2989
2990typedef struct D3D12_TEX1D_ARRAY_SRV
2991 {
2992 UINT MostDetailedMip;
2993 UINT MipLevels;
2994 UINT FirstArraySlice;
2995 UINT ArraySize;
2996 FLOAT ResourceMinLODClamp;
2997 } D3D12_TEX1D_ARRAY_SRV;
2998
2999typedef struct D3D12_TEX2D_SRV
3000 {
3001 UINT MostDetailedMip;
3002 UINT MipLevels;
3003 UINT PlaneSlice;
3004 FLOAT ResourceMinLODClamp;
3005 } D3D12_TEX2D_SRV;
3006
3007typedef struct D3D12_TEX2D_ARRAY_SRV
3008 {
3009 UINT MostDetailedMip;
3010 UINT MipLevels;
3011 UINT FirstArraySlice;
3012 UINT ArraySize;
3013 UINT PlaneSlice;
3014 FLOAT ResourceMinLODClamp;
3015 } D3D12_TEX2D_ARRAY_SRV;
3016
3017typedef struct D3D12_TEX3D_SRV
3018 {
3019 UINT MostDetailedMip;
3020 UINT MipLevels;
3021 FLOAT ResourceMinLODClamp;
3022 } D3D12_TEX3D_SRV;
3023
3024typedef struct D3D12_TEXCUBE_SRV
3025 {
3026 UINT MostDetailedMip;
3027 UINT MipLevels;
3028 FLOAT ResourceMinLODClamp;
3029 } D3D12_TEXCUBE_SRV;
3030
3031typedef struct D3D12_TEXCUBE_ARRAY_SRV
3032 {
3033 UINT MostDetailedMip;
3034 UINT MipLevels;
3035 UINT First2DArrayFace;
3036 UINT NumCubes;
3037 FLOAT ResourceMinLODClamp;
3038 } D3D12_TEXCUBE_ARRAY_SRV;
3039
3040typedef struct D3D12_TEX2DMS_SRV
3041 {
3042 UINT UnusedField_NothingToDefine;
3043 } D3D12_TEX2DMS_SRV;
3044
3045typedef struct D3D12_TEX2DMS_ARRAY_SRV
3046 {
3047 UINT FirstArraySlice;
3048 UINT ArraySize;
3049 } D3D12_TEX2DMS_ARRAY_SRV;
3050
3051typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
3052 {
3053 D3D12_GPU_VIRTUAL_ADDRESS Location;
3054 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
3055
3056typedef
3057enum D3D12_SRV_DIMENSION
3058 {
3059 D3D12_SRV_DIMENSION_UNKNOWN = 0,
3060 D3D12_SRV_DIMENSION_BUFFER = 1,
3061 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
3062 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
3063 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
3064 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
3065 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
3066 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
3067 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
3068 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
3069 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
3070 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
3071 } D3D12_SRV_DIMENSION;
3072
3073typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
3074 {
3075 DXGI_FORMAT Format;
3076 D3D12_SRV_DIMENSION ViewDimension;
3077 UINT Shader4ComponentMapping;
3078 union
3079 {
3080 D3D12_BUFFER_SRV Buffer;
3081 D3D12_TEX1D_SRV Texture1D;
3082 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
3083 D3D12_TEX2D_SRV Texture2D;
3084 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
3085 D3D12_TEX2DMS_SRV Texture2DMS;
3086 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3087 D3D12_TEX3D_SRV Texture3D;
3088 D3D12_TEXCUBE_SRV TextureCube;
3089 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
3090 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
3091 } ;
3092 } D3D12_SHADER_RESOURCE_VIEW_DESC;
3093
3094typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
3095 {
3096 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3097 UINT SizeInBytes;
3098 } D3D12_CONSTANT_BUFFER_VIEW_DESC;
3099
3100typedef
3101enum D3D12_FILTER
3102 {
3103 D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
3104 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
3105 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
3106 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
3107 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
3108 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
3109 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
3110 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
3111 D3D12_FILTER_ANISOTROPIC = 0x55,
3112 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
3113 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
3114 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
3115 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
3116 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
3117 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
3118 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
3119 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
3120 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
3121 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
3122 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
3123 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
3124 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
3125 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
3126 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
3127 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
3128 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
3129 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
3130 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
3131 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
3132 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
3133 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
3134 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
3135 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
3136 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
3137 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
3138 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
3139 } D3D12_FILTER;
3140
3141typedef
3142enum D3D12_FILTER_TYPE
3143 {
3144 D3D12_FILTER_TYPE_POINT = 0,
3145 D3D12_FILTER_TYPE_LINEAR = 1
3146 } D3D12_FILTER_TYPE;
3147
3148typedef
3149enum D3D12_FILTER_REDUCTION_TYPE
3150 {
3151 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
3152 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
3153 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
3154 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
3155 } D3D12_FILTER_REDUCTION_TYPE;
3156
3157#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
3158
3159#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
3160
3161#define D3D12_FILTER_TYPE_MASK ( 0x3 )
3162
3163#define D3D12_MIN_FILTER_SHIFT ( 4 )
3164
3165#define D3D12_MAG_FILTER_SHIFT ( 2 )
3166
3167#define D3D12_MIP_FILTER_SHIFT ( 0 )
3168
3169#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
3170
3171#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
3172 ( ( D3D12_FILTER ) ( \
3173 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
3174 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
3175 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
3176 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
3177#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
3178 ( ( D3D12_FILTER ) ( \
3179 D3D12_ANISOTROPIC_FILTERING_BIT | \
3180 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3181 D3D12_FILTER_TYPE_LINEAR, \
3182 D3D12_FILTER_TYPE_LINEAR, \
3183 reduction ) ) )
3184#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
3185 ( ( D3D12_FILTER_TYPE ) \
3186 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3187#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
3188 ( ( D3D12_FILTER_TYPE ) \
3189 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3190#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
3191 ( ( D3D12_FILTER_TYPE ) \
3192 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3193#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
3194 ( ( D3D12_FILTER_REDUCTION_TYPE ) \
3195 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
3196#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
3197 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
3198#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
3199 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
3200 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
3201 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \
3202 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) )
3203typedef
3204enum D3D12_TEXTURE_ADDRESS_MODE
3205 {
3206 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
3207 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
3208 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
3209 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
3210 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
3211 } D3D12_TEXTURE_ADDRESS_MODE;
3212
3213typedef struct D3D12_SAMPLER_DESC
3214 {
3215 D3D12_FILTER Filter;
3216 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3217 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3218 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3219 FLOAT MipLODBias;
3220 UINT MaxAnisotropy;
3221 D3D12_COMPARISON_FUNC ComparisonFunc;
3222 FLOAT BorderColor[ 4 ];
3223 FLOAT MinLOD;
3224 FLOAT MaxLOD;
3225 } D3D12_SAMPLER_DESC;
3226
3227typedef
3228enum D3D12_BUFFER_UAV_FLAGS
3229 {
3230 D3D12_BUFFER_UAV_FLAG_NONE = 0,
3231 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
3232 } D3D12_BUFFER_UAV_FLAGS;
3233
3234DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS );
3235typedef struct D3D12_BUFFER_UAV
3236 {
3237 UINT64 FirstElement;
3238 UINT NumElements;
3239 UINT StructureByteStride;
3240 UINT64 CounterOffsetInBytes;
3241 D3D12_BUFFER_UAV_FLAGS Flags;
3242 } D3D12_BUFFER_UAV;
3243
3244typedef struct D3D12_TEX1D_UAV
3245 {
3246 UINT MipSlice;
3247 } D3D12_TEX1D_UAV;
3248
3249typedef struct D3D12_TEX1D_ARRAY_UAV
3250 {
3251 UINT MipSlice;
3252 UINT FirstArraySlice;
3253 UINT ArraySize;
3254 } D3D12_TEX1D_ARRAY_UAV;
3255
3256typedef struct D3D12_TEX2D_UAV
3257 {
3258 UINT MipSlice;
3259 UINT PlaneSlice;
3260 } D3D12_TEX2D_UAV;
3261
3262typedef struct D3D12_TEX2D_ARRAY_UAV
3263 {
3264 UINT MipSlice;
3265 UINT FirstArraySlice;
3266 UINT ArraySize;
3267 UINT PlaneSlice;
3268 } D3D12_TEX2D_ARRAY_UAV;
3269
3270typedef struct D3D12_TEX3D_UAV
3271 {
3272 UINT MipSlice;
3273 UINT FirstWSlice;
3274 UINT WSize;
3275 } D3D12_TEX3D_UAV;
3276
3277typedef
3278enum D3D12_UAV_DIMENSION
3279 {
3280 D3D12_UAV_DIMENSION_UNKNOWN = 0,
3281 D3D12_UAV_DIMENSION_BUFFER = 1,
3282 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
3283 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
3284 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
3285 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
3286 D3D12_UAV_DIMENSION_TEXTURE3D = 8
3287 } D3D12_UAV_DIMENSION;
3288
3289typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
3290 {
3291 DXGI_FORMAT Format;
3292 D3D12_UAV_DIMENSION ViewDimension;
3293 union
3294 {
3295 D3D12_BUFFER_UAV Buffer;
3296 D3D12_TEX1D_UAV Texture1D;
3297 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
3298 D3D12_TEX2D_UAV Texture2D;
3299 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
3300 D3D12_TEX3D_UAV Texture3D;
3301 } ;
3302 } D3D12_UNORDERED_ACCESS_VIEW_DESC;
3303
3304typedef struct D3D12_BUFFER_RTV
3305 {
3306 UINT64 FirstElement;
3307 UINT NumElements;
3308 } D3D12_BUFFER_RTV;
3309
3310typedef struct D3D12_TEX1D_RTV
3311 {
3312 UINT MipSlice;
3313 } D3D12_TEX1D_RTV;
3314
3315typedef struct D3D12_TEX1D_ARRAY_RTV
3316 {
3317 UINT MipSlice;
3318 UINT FirstArraySlice;
3319 UINT ArraySize;
3320 } D3D12_TEX1D_ARRAY_RTV;
3321
3322typedef struct D3D12_TEX2D_RTV
3323 {
3324 UINT MipSlice;
3325 UINT PlaneSlice;
3326 } D3D12_TEX2D_RTV;
3327
3328typedef struct D3D12_TEX2DMS_RTV
3329 {
3330 UINT UnusedField_NothingToDefine;
3331 } D3D12_TEX2DMS_RTV;
3332
3333typedef struct D3D12_TEX2D_ARRAY_RTV
3334 {
3335 UINT MipSlice;
3336 UINT FirstArraySlice;
3337 UINT ArraySize;
3338 UINT PlaneSlice;
3339 } D3D12_TEX2D_ARRAY_RTV;
3340
3341typedef struct D3D12_TEX2DMS_ARRAY_RTV
3342 {
3343 UINT FirstArraySlice;
3344 UINT ArraySize;
3345 } D3D12_TEX2DMS_ARRAY_RTV;
3346
3347typedef struct D3D12_TEX3D_RTV
3348 {
3349 UINT MipSlice;
3350 UINT FirstWSlice;
3351 UINT WSize;
3352 } D3D12_TEX3D_RTV;
3353
3354typedef
3355enum D3D12_RTV_DIMENSION
3356 {
3357 D3D12_RTV_DIMENSION_UNKNOWN = 0,
3358 D3D12_RTV_DIMENSION_BUFFER = 1,
3359 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
3360 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
3361 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
3362 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
3363 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
3364 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
3365 D3D12_RTV_DIMENSION_TEXTURE3D = 8
3366 } D3D12_RTV_DIMENSION;
3367
3368typedef struct D3D12_RENDER_TARGET_VIEW_DESC
3369 {
3370 DXGI_FORMAT Format;
3371 D3D12_RTV_DIMENSION ViewDimension;
3372 union
3373 {
3374 D3D12_BUFFER_RTV Buffer;
3375 D3D12_TEX1D_RTV Texture1D;
3376 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
3377 D3D12_TEX2D_RTV Texture2D;
3378 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
3379 D3D12_TEX2DMS_RTV Texture2DMS;
3380 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3381 D3D12_TEX3D_RTV Texture3D;
3382 } ;
3383 } D3D12_RENDER_TARGET_VIEW_DESC;
3384
3385typedef struct D3D12_TEX1D_DSV
3386 {
3387 UINT MipSlice;
3388 } D3D12_TEX1D_DSV;
3389
3390typedef struct D3D12_TEX1D_ARRAY_DSV
3391 {
3392 UINT MipSlice;
3393 UINT FirstArraySlice;
3394 UINT ArraySize;
3395 } D3D12_TEX1D_ARRAY_DSV;
3396
3397typedef struct D3D12_TEX2D_DSV
3398 {
3399 UINT MipSlice;
3400 } D3D12_TEX2D_DSV;
3401
3402typedef struct D3D12_TEX2D_ARRAY_DSV
3403 {
3404 UINT MipSlice;
3405 UINT FirstArraySlice;
3406 UINT ArraySize;
3407 } D3D12_TEX2D_ARRAY_DSV;
3408
3409typedef struct D3D12_TEX2DMS_DSV
3410 {
3411 UINT UnusedField_NothingToDefine;
3412 } D3D12_TEX2DMS_DSV;
3413
3414typedef struct D3D12_TEX2DMS_ARRAY_DSV
3415 {
3416 UINT FirstArraySlice;
3417 UINT ArraySize;
3418 } D3D12_TEX2DMS_ARRAY_DSV;
3419
3420typedef
3421enum D3D12_DSV_FLAGS
3422 {
3423 D3D12_DSV_FLAG_NONE = 0,
3424 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
3425 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
3426 } D3D12_DSV_FLAGS;
3427
3428DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS );
3429typedef
3430enum D3D12_DSV_DIMENSION
3431 {
3432 D3D12_DSV_DIMENSION_UNKNOWN = 0,
3433 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
3434 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
3435 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
3436 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
3437 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
3438 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
3439 } D3D12_DSV_DIMENSION;
3440
3441typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
3442 {
3443 DXGI_FORMAT Format;
3444 D3D12_DSV_DIMENSION ViewDimension;
3445 D3D12_DSV_FLAGS Flags;
3446 union
3447 {
3448 D3D12_TEX1D_DSV Texture1D;
3449 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
3450 D3D12_TEX2D_DSV Texture2D;
3451 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
3452 D3D12_TEX2DMS_DSV Texture2DMS;
3453 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
3454 } ;
3455 } D3D12_DEPTH_STENCIL_VIEW_DESC;
3456
3457typedef
3458enum D3D12_CLEAR_FLAGS
3459 {
3460 D3D12_CLEAR_FLAG_DEPTH = 0x1,
3461 D3D12_CLEAR_FLAG_STENCIL = 0x2
3462 } D3D12_CLEAR_FLAGS;
3463
3464DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS );
3465typedef
3466enum D3D12_FENCE_FLAGS
3467 {
3468 D3D12_FENCE_FLAG_NONE = 0,
3469 D3D12_FENCE_FLAG_SHARED = 0x1,
3470 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
3471 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
3472 } D3D12_FENCE_FLAGS;
3473
3474DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS );
3475typedef
3476enum D3D12_DESCRIPTOR_HEAP_TYPE
3477 {
3478 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
3479 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
3480 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
3481 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
3482 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
3483 } D3D12_DESCRIPTOR_HEAP_TYPE;
3484
3485typedef
3486enum D3D12_DESCRIPTOR_HEAP_FLAGS
3487 {
3488 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
3489 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
3490 } D3D12_DESCRIPTOR_HEAP_FLAGS;
3491
3492DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS );
3493typedef struct D3D12_DESCRIPTOR_HEAP_DESC
3494 {
3495 D3D12_DESCRIPTOR_HEAP_TYPE Type;
3496 UINT NumDescriptors;
3497 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
3498 UINT NodeMask;
3499 } D3D12_DESCRIPTOR_HEAP_DESC;
3500
3501typedef
3502enum D3D12_DESCRIPTOR_RANGE_TYPE
3503 {
3504 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
3505 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
3506 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
3507 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
3508 } D3D12_DESCRIPTOR_RANGE_TYPE;
3509
3510typedef struct D3D12_DESCRIPTOR_RANGE
3511 {
3512 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
3513 UINT NumDescriptors;
3514 UINT BaseShaderRegister;
3515 UINT RegisterSpace;
3516 UINT OffsetInDescriptorsFromTableStart;
3517 } D3D12_DESCRIPTOR_RANGE;
3518
3519typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
3520 {
3521 UINT NumDescriptorRanges;
3522 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
3523 } D3D12_ROOT_DESCRIPTOR_TABLE;
3524
3525typedef struct D3D12_ROOT_CONSTANTS
3526 {
3527 UINT ShaderRegister;
3528 UINT RegisterSpace;
3529 UINT Num32BitValues;
3530 } D3D12_ROOT_CONSTANTS;
3531
3532typedef struct D3D12_ROOT_DESCRIPTOR
3533 {
3534 UINT ShaderRegister;
3535 UINT RegisterSpace;
3536 } D3D12_ROOT_DESCRIPTOR;
3537
3538typedef
3539enum D3D12_SHADER_VISIBILITY
3540 {
3541 D3D12_SHADER_VISIBILITY_ALL = 0,
3542 D3D12_SHADER_VISIBILITY_VERTEX = 1,
3543 D3D12_SHADER_VISIBILITY_HULL = 2,
3544 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
3545 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
3546 D3D12_SHADER_VISIBILITY_PIXEL = 5,
3547 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
3548 D3D12_SHADER_VISIBILITY_MESH = 7
3549 } D3D12_SHADER_VISIBILITY;
3550
3551typedef
3552enum D3D12_ROOT_PARAMETER_TYPE
3553 {
3554 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
3555 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
3556 D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
3557 D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
3558 D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
3559 } D3D12_ROOT_PARAMETER_TYPE;
3560
3561typedef struct D3D12_ROOT_PARAMETER
3562 {
3563 D3D12_ROOT_PARAMETER_TYPE ParameterType;
3564 union
3565 {
3566 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
3567 D3D12_ROOT_CONSTANTS Constants;
3568 D3D12_ROOT_DESCRIPTOR Descriptor;
3569 } ;
3570 D3D12_SHADER_VISIBILITY ShaderVisibility;
3571 } D3D12_ROOT_PARAMETER;
3572
3573typedef
3574enum D3D12_ROOT_SIGNATURE_FLAGS
3575 {
3576 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
3577 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
3578 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
3579 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
3580 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
3581 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
3582 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
3583 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
3584 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
3585 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
3586 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
3587 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
3588 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
3589 } D3D12_ROOT_SIGNATURE_FLAGS;
3590
3591DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS );
3592typedef
3593enum D3D12_STATIC_BORDER_COLOR
3594 {
3595 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
3596 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
3597 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 )
3598 } D3D12_STATIC_BORDER_COLOR;
3599
3600typedef struct D3D12_STATIC_SAMPLER_DESC
3601 {
3602 D3D12_FILTER Filter;
3603 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3604 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3605 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3606 FLOAT MipLODBias;
3607 UINT MaxAnisotropy;
3608 D3D12_COMPARISON_FUNC ComparisonFunc;
3609 D3D12_STATIC_BORDER_COLOR BorderColor;
3610 FLOAT MinLOD;
3611 FLOAT MaxLOD;
3612 UINT ShaderRegister;
3613 UINT RegisterSpace;
3614 D3D12_SHADER_VISIBILITY ShaderVisibility;
3615 } D3D12_STATIC_SAMPLER_DESC;
3616
3617typedef struct D3D12_ROOT_SIGNATURE_DESC
3618 {
3619 UINT NumParameters;
3620 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
3621 UINT NumStaticSamplers;
3622 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
3623 D3D12_ROOT_SIGNATURE_FLAGS Flags;
3624 } D3D12_ROOT_SIGNATURE_DESC;
3625
3626typedef
3627enum D3D12_DESCRIPTOR_RANGE_FLAGS
3628 {
3629 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
3630 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
3631 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
3632 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
3633 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
3634 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
3635 } D3D12_DESCRIPTOR_RANGE_FLAGS;
3636
3637DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS );
3638typedef struct D3D12_DESCRIPTOR_RANGE1
3639 {
3640 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
3641 UINT NumDescriptors;
3642 UINT BaseShaderRegister;
3643 UINT RegisterSpace;
3644 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
3645 UINT OffsetInDescriptorsFromTableStart;
3646 } D3D12_DESCRIPTOR_RANGE1;
3647
3648typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
3649 {
3650 UINT NumDescriptorRanges;
3651 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
3652 } D3D12_ROOT_DESCRIPTOR_TABLE1;
3653
3654typedef
3655enum D3D12_ROOT_DESCRIPTOR_FLAGS
3656 {
3657 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
3658 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
3659 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
3660 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
3661 } D3D12_ROOT_DESCRIPTOR_FLAGS;
3662
3663DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS );
3664typedef struct D3D12_ROOT_DESCRIPTOR1
3665 {
3666 UINT ShaderRegister;
3667 UINT RegisterSpace;
3668 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
3669 } D3D12_ROOT_DESCRIPTOR1;
3670
3671typedef struct D3D12_ROOT_PARAMETER1
3672 {
3673 D3D12_ROOT_PARAMETER_TYPE ParameterType;
3674 union
3675 {
3676 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
3677 D3D12_ROOT_CONSTANTS Constants;
3678 D3D12_ROOT_DESCRIPTOR1 Descriptor;
3679 } ;
3680 D3D12_SHADER_VISIBILITY ShaderVisibility;
3681 } D3D12_ROOT_PARAMETER1;
3682
3683typedef struct D3D12_ROOT_SIGNATURE_DESC1
3684 {
3685 UINT NumParameters;
3686 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
3687 UINT NumStaticSamplers;
3688 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
3689 D3D12_ROOT_SIGNATURE_FLAGS Flags;
3690 } D3D12_ROOT_SIGNATURE_DESC1;
3691
3692typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
3693 {
3694 D3D_ROOT_SIGNATURE_VERSION Version;
3695 union
3696 {
3697 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
3698 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
3699 } ;
3700 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
3701
3702
3703
3704extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
3705extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
3706
3707#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
3708#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
3709
3710/* interface ID3D12RootSignatureDeserializer */
3711/* [unique][local][object][uuid] */
3712
3713
3714EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
3715
3716#if defined(__cplusplus) && !defined(CINTERFACE)
3717
3718 MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
3719 ID3D12RootSignatureDeserializer : public IUnknown
3720 {
3721 public:
3722 virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
3723
3724 };
3725
3726
3727#else /* C style interface */
3728
3729 typedef struct ID3D12RootSignatureDeserializerVtbl
3730 {
3731 BEGIN_INTERFACE
3732
3733 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3734 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3735 ID3D12RootSignatureDeserializer * This,
3736 REFIID riid,
3737 _COM_Outptr_ void **ppvObject);
3738
3739 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3740 ULONG ( STDMETHODCALLTYPE *AddRef )(
3741 ID3D12RootSignatureDeserializer * This);
3742
3743 DECLSPEC_XFGVIRT(IUnknown, Release)
3744 ULONG ( STDMETHODCALLTYPE *Release )(
3745 ID3D12RootSignatureDeserializer * This);
3746
3747 DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc)
3748 const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
3749 ID3D12RootSignatureDeserializer * This);
3750
3751 END_INTERFACE
3752 } ID3D12RootSignatureDeserializerVtbl;
3753
3754 interface ID3D12RootSignatureDeserializer
3755 {
3756 CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl;
3757 };
3758
3759
3760
3761#ifdef COBJMACROS
3762
3763
3764#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
3765 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3766
3767#define ID3D12RootSignatureDeserializer_AddRef(This) \
3768 ( (This)->lpVtbl -> AddRef(This) )
3769
3770#define ID3D12RootSignatureDeserializer_Release(This) \
3771 ( (This)->lpVtbl -> Release(This) )
3772
3773
3774#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \
3775 ( (This)->lpVtbl -> GetRootSignatureDesc(This) )
3776
3777#endif /* COBJMACROS */
3778
3779
3780#endif /* C style interface */
3781
3782
3783
3784
3785#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
3786
3787
3788#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
3789#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
3790
3791/* interface ID3D12VersionedRootSignatureDeserializer */
3792/* [unique][local][object][uuid] */
3793
3794
3795EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
3796
3797#if defined(__cplusplus) && !defined(CINTERFACE)
3798
3799 MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
3800 ID3D12VersionedRootSignatureDeserializer : public IUnknown
3801 {
3802 public:
3803 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
3804 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
3805 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
3806
3807 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
3808
3809 };
3810
3811
3812#else /* C style interface */
3813
3814 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
3815 {
3816 BEGIN_INTERFACE
3817
3818 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3819 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3820 ID3D12VersionedRootSignatureDeserializer * This,
3821 REFIID riid,
3822 _COM_Outptr_ void **ppvObject);
3823
3824 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3825 ULONG ( STDMETHODCALLTYPE *AddRef )(
3826 ID3D12VersionedRootSignatureDeserializer * This);
3827
3828 DECLSPEC_XFGVIRT(IUnknown, Release)
3829 ULONG ( STDMETHODCALLTYPE *Release )(
3830 ID3D12VersionedRootSignatureDeserializer * This);
3831
3832 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion)
3833 HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
3834 ID3D12VersionedRootSignatureDeserializer * This,
3835 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
3836 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
3837
3838 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc)
3839 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
3840 ID3D12VersionedRootSignatureDeserializer * This);
3841
3842 END_INTERFACE
3843 } ID3D12VersionedRootSignatureDeserializerVtbl;
3844
3845 interface ID3D12VersionedRootSignatureDeserializer
3846 {
3847 CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
3848 };
3849
3850
3851
3852#ifdef COBJMACROS
3853
3854
3855#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
3856 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3857
3858#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
3859 ( (This)->lpVtbl -> AddRef(This) )
3860
3861#define ID3D12VersionedRootSignatureDeserializer_Release(This) \
3862 ( (This)->lpVtbl -> Release(This) )
3863
3864
3865#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
3866 ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
3867
3868#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
3869 ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
3870
3871#endif /* COBJMACROS */
3872
3873
3874#endif /* C style interface */
3875
3876
3877
3878
3879#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
3880
3881
3882/* interface __MIDL_itf_d3d12_0000_0003 */
3883/* [local] */
3884
3885typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
3886 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
3887 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
3888 _Out_ ID3DBlob** ppBlob,
3889 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
3890
3891HRESULT WINAPI D3D12SerializeRootSignature(
3892 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
3893 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
3894 _Out_ ID3DBlob** ppBlob,
3895 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
3896
3897typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
3898 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
3899 _In_ SIZE_T SrcDataSizeInBytes,
3900 _In_ REFIID pRootSignatureDeserializerInterface,
3901 _Out_ void** ppRootSignatureDeserializer);
3902
3903HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
3904 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
3905 _In_ SIZE_T SrcDataSizeInBytes,
3906 _In_ REFIID pRootSignatureDeserializerInterface,
3907 _Out_ void** ppRootSignatureDeserializer);
3908
3909typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
3910 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
3911 _Out_ ID3DBlob** ppBlob,
3912 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
3913
3914HRESULT WINAPI D3D12SerializeVersionedRootSignature(
3915 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
3916 _Out_ ID3DBlob** ppBlob,
3917 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
3918
3919typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
3920 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
3921 _In_ SIZE_T SrcDataSizeInBytes,
3922 _In_ REFIID pRootSignatureDeserializerInterface,
3923 _Out_ void** ppRootSignatureDeserializer);
3924
3925HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
3926 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
3927 _In_ SIZE_T SrcDataSizeInBytes,
3928 _In_ REFIID pRootSignatureDeserializerInterface,
3929 _Out_ void** ppRootSignatureDeserializer);
3930
3931typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
3932 {
3933 SIZE_T ptr;
3934 } D3D12_CPU_DESCRIPTOR_HANDLE;
3935
3936typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
3937 {
3938 UINT64 ptr;
3939 } D3D12_GPU_DESCRIPTOR_HANDLE;
3940
3941// If rects are supplied in D3D12_DISCARD_REGION, below, the resource
3942// must have 2D subresources with all specified subresources the same dimension.
3943typedef struct D3D12_DISCARD_REGION
3944 {
3945 UINT NumRects;
3946 _In_reads_(NumRects) const D3D12_RECT *pRects;
3947 UINT FirstSubresource;
3948 UINT NumSubresources;
3949 } D3D12_DISCARD_REGION;
3950
3951typedef
3952enum D3D12_QUERY_HEAP_TYPE
3953 {
3954 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
3955 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
3956 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
3957 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
3958 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
3959 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
3960 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
3961 } D3D12_QUERY_HEAP_TYPE;
3962
3963typedef struct D3D12_QUERY_HEAP_DESC
3964 {
3965 D3D12_QUERY_HEAP_TYPE Type;
3966 UINT Count;
3967 UINT NodeMask;
3968 } D3D12_QUERY_HEAP_DESC;
3969
3970typedef
3971enum D3D12_QUERY_TYPE
3972 {
3973 D3D12_QUERY_TYPE_OCCLUSION = 0,
3974 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
3975 D3D12_QUERY_TYPE_TIMESTAMP = 2,
3976 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
3977 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
3978 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
3979 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
3980 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
3981 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
3982 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
3983 } D3D12_QUERY_TYPE;
3984
3985typedef
3986enum D3D12_PREDICATION_OP
3987 {
3988 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
3989 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
3990 } D3D12_PREDICATION_OP;
3991
3992typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
3993 {
3994 UINT64 IAVertices;
3995 UINT64 IAPrimitives;
3996 UINT64 VSInvocations;
3997 UINT64 GSInvocations;
3998 UINT64 GSPrimitives;
3999 UINT64 CInvocations;
4000 UINT64 CPrimitives;
4001 UINT64 PSInvocations;
4002 UINT64 HSInvocations;
4003 UINT64 DSInvocations;
4004 UINT64 CSInvocations;
4005 } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
4006
4007typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
4008 {
4009 UINT64 IAVertices;
4010 UINT64 IAPrimitives;
4011 UINT64 VSInvocations;
4012 UINT64 GSInvocations;
4013 UINT64 GSPrimitives;
4014 UINT64 CInvocations;
4015 UINT64 CPrimitives;
4016 UINT64 PSInvocations;
4017 UINT64 HSInvocations;
4018 UINT64 DSInvocations;
4019 UINT64 CSInvocations;
4020 UINT64 ASInvocations;
4021 UINT64 MSInvocations;
4022 UINT64 MSPrimitives;
4023 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
4024
4025typedef struct D3D12_QUERY_DATA_SO_STATISTICS
4026 {
4027 UINT64 NumPrimitivesWritten;
4028 UINT64 PrimitivesStorageNeeded;
4029 } D3D12_QUERY_DATA_SO_STATISTICS;
4030
4031typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
4032 {
4033 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4034 UINT64 SizeInBytes;
4035 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
4036 } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
4037
4038typedef struct D3D12_DRAW_ARGUMENTS
4039 {
4040 UINT VertexCountPerInstance;
4041 UINT InstanceCount;
4042 UINT StartVertexLocation;
4043 UINT StartInstanceLocation;
4044 } D3D12_DRAW_ARGUMENTS;
4045
4046typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
4047 {
4048 UINT IndexCountPerInstance;
4049 UINT InstanceCount;
4050 UINT StartIndexLocation;
4051 INT BaseVertexLocation;
4052 UINT StartInstanceLocation;
4053 } D3D12_DRAW_INDEXED_ARGUMENTS;
4054
4055typedef struct D3D12_DISPATCH_ARGUMENTS
4056 {
4057 UINT ThreadGroupCountX;
4058 UINT ThreadGroupCountY;
4059 UINT ThreadGroupCountZ;
4060 } D3D12_DISPATCH_ARGUMENTS;
4061
4062typedef struct D3D12_VERTEX_BUFFER_VIEW
4063 {
4064 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4065 UINT SizeInBytes;
4066 UINT StrideInBytes;
4067 } D3D12_VERTEX_BUFFER_VIEW;
4068
4069typedef struct D3D12_INDEX_BUFFER_VIEW
4070 {
4071 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4072 UINT SizeInBytes;
4073 DXGI_FORMAT Format;
4074 } D3D12_INDEX_BUFFER_VIEW;
4075
4076typedef
4077enum D3D12_INDIRECT_ARGUMENT_TYPE
4078 {
4079 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
4080 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) ,
4081 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) ,
4082 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) ,
4083 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) ,
4084 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) ,
4085 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) ,
4086 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) ,
4087 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) ,
4088 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) ,
4089 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 )
4090 } D3D12_INDIRECT_ARGUMENT_TYPE;
4091
4092typedef struct D3D12_INDIRECT_ARGUMENT_DESC
4093 {
4094 D3D12_INDIRECT_ARGUMENT_TYPE Type;
4095 union
4096 {
4097 struct
4098 {
4099 UINT Slot;
4100 } VertexBuffer;
4101 struct
4102 {
4103 UINT RootParameterIndex;
4104 UINT DestOffsetIn32BitValues;
4105 UINT Num32BitValuesToSet;
4106 } Constant;
4107 struct
4108 {
4109 UINT RootParameterIndex;
4110 } ConstantBufferView;
4111 struct
4112 {
4113 UINT RootParameterIndex;
4114 } ShaderResourceView;
4115 struct
4116 {
4117 UINT RootParameterIndex;
4118 } UnorderedAccessView;
4119 } ;
4120 } D3D12_INDIRECT_ARGUMENT_DESC;
4121
4122typedef struct D3D12_COMMAND_SIGNATURE_DESC
4123 {
4124 UINT ByteStride;
4125 UINT NumArgumentDescs;
4126 _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
4127 UINT NodeMask;
4128 } D3D12_COMMAND_SIGNATURE_DESC;
4129
4130
4131
4132
4133extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
4134extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
4135
4136#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
4137#define __ID3D12Pageable_INTERFACE_DEFINED__
4138
4139/* interface ID3D12Pageable */
4140/* [unique][local][object][uuid] */
4141
4142
4143EXTERN_C const IID IID_ID3D12Pageable;
4144
4145#if defined(__cplusplus) && !defined(CINTERFACE)
4146
4147 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
4148 ID3D12Pageable : public ID3D12DeviceChild
4149 {
4150 public:
4151 };
4152
4153
4154#else /* C style interface */
4155
4156 typedef struct ID3D12PageableVtbl
4157 {
4158 BEGIN_INTERFACE
4159
4160 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4161 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4162 ID3D12Pageable * This,
4163 REFIID riid,
4164 _COM_Outptr_ void **ppvObject);
4165
4166 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4167 ULONG ( STDMETHODCALLTYPE *AddRef )(
4168 ID3D12Pageable * This);
4169
4170 DECLSPEC_XFGVIRT(IUnknown, Release)
4171 ULONG ( STDMETHODCALLTYPE *Release )(
4172 ID3D12Pageable * This);
4173
4174 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4175 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4176 ID3D12Pageable * This,
4177 _In_ REFGUID guid,
4178 _Inout_ UINT *pDataSize,
4179 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4180
4181 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4182 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4183 ID3D12Pageable * This,
4184 _In_ REFGUID guid,
4185 _In_ UINT DataSize,
4186 _In_reads_bytes_opt_( DataSize ) const void *pData);
4187
4188 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4189 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4190 ID3D12Pageable * This,
4191 _In_ REFGUID guid,
4192 _In_opt_ const IUnknown *pData);
4193
4194 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4195 HRESULT ( STDMETHODCALLTYPE *SetName )(
4196 ID3D12Pageable * This,
4197 _In_z_ LPCWSTR Name);
4198
4199 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4200 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4201 ID3D12Pageable * This,
4202 REFIID riid,
4203 _COM_Outptr_opt_ void **ppvDevice);
4204
4205 END_INTERFACE
4206 } ID3D12PageableVtbl;
4207
4208 interface ID3D12Pageable
4209 {
4210 CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
4211 };
4212
4213
4214
4215#ifdef COBJMACROS
4216
4217
4218#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \
4219 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4220
4221#define ID3D12Pageable_AddRef(This) \
4222 ( (This)->lpVtbl -> AddRef(This) )
4223
4224#define ID3D12Pageable_Release(This) \
4225 ( (This)->lpVtbl -> Release(This) )
4226
4227
4228#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \
4229 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4230
4231#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \
4232 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4233
4234#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \
4235 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4236
4237#define ID3D12Pageable_SetName(This,Name) \
4238 ( (This)->lpVtbl -> SetName(This,Name) )
4239
4240
4241#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \
4242 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4243
4244
4245#endif /* COBJMACROS */
4246
4247
4248#endif /* C style interface */
4249
4250
4251
4252
4253#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
4254
4255
4256#ifndef __ID3D12Heap_INTERFACE_DEFINED__
4257#define __ID3D12Heap_INTERFACE_DEFINED__
4258
4259/* interface ID3D12Heap */
4260/* [unique][local][object][uuid] */
4261
4262
4263EXTERN_C const IID IID_ID3D12Heap;
4264
4265#if defined(__cplusplus) && !defined(CINTERFACE)
4266
4267 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
4268 ID3D12Heap : public ID3D12Pageable
4269 {
4270 public:
4271 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4272
4273 };
4274
4275
4276#else /* C style interface */
4277
4278 typedef struct ID3D12HeapVtbl
4279 {
4280 BEGIN_INTERFACE
4281
4282 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4283 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4284 ID3D12Heap * This,
4285 REFIID riid,
4286 _COM_Outptr_ void **ppvObject);
4287
4288 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4289 ULONG ( STDMETHODCALLTYPE *AddRef )(
4290 ID3D12Heap * This);
4291
4292 DECLSPEC_XFGVIRT(IUnknown, Release)
4293 ULONG ( STDMETHODCALLTYPE *Release )(
4294 ID3D12Heap * This);
4295
4296 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4297 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4298 ID3D12Heap * This,
4299 _In_ REFGUID guid,
4300 _Inout_ UINT *pDataSize,
4301 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4302
4303 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4304 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4305 ID3D12Heap * This,
4306 _In_ REFGUID guid,
4307 _In_ UINT DataSize,
4308 _In_reads_bytes_opt_( DataSize ) const void *pData);
4309
4310 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4311 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4312 ID3D12Heap * This,
4313 _In_ REFGUID guid,
4314 _In_opt_ const IUnknown *pData);
4315
4316 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4317 HRESULT ( STDMETHODCALLTYPE *SetName )(
4318 ID3D12Heap * This,
4319 _In_z_ LPCWSTR Name);
4320
4321 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4322 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4323 ID3D12Heap * This,
4324 REFIID riid,
4325 _COM_Outptr_opt_ void **ppvDevice);
4326
4327 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
4328 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
4329 ID3D12Heap * This,
4330 D3D12_HEAP_DESC * RetVal);
4331
4332 END_INTERFACE
4333 } ID3D12HeapVtbl;
4334
4335 interface ID3D12Heap
4336 {
4337 CONST_VTBL struct ID3D12HeapVtbl *lpVtbl;
4338 };
4339
4340
4341
4342#ifdef COBJMACROS
4343
4344
4345#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \
4346 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4347
4348#define ID3D12Heap_AddRef(This) \
4349 ( (This)->lpVtbl -> AddRef(This) )
4350
4351#define ID3D12Heap_Release(This) \
4352 ( (This)->lpVtbl -> Release(This) )
4353
4354
4355#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \
4356 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4357
4358#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \
4359 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4360
4361#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \
4362 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4363
4364#define ID3D12Heap_SetName(This,Name) \
4365 ( (This)->lpVtbl -> SetName(This,Name) )
4366
4367
4368#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \
4369 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4370
4371
4372
4373#define ID3D12Heap_GetDesc(This,RetVal) \
4374 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
4375
4376#endif /* COBJMACROS */
4377
4378
4379#endif /* C style interface */
4380
4381
4382
4383
4384#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
4385
4386
4387#ifndef __ID3D12Resource_INTERFACE_DEFINED__
4388#define __ID3D12Resource_INTERFACE_DEFINED__
4389
4390/* interface ID3D12Resource */
4391/* [unique][local][object][uuid] */
4392
4393
4394EXTERN_C const IID IID_ID3D12Resource;
4395
4396#if defined(__cplusplus) && !defined(CINTERFACE)
4397
4398 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
4399 ID3D12Resource : public ID3D12Pageable
4400 {
4401 public:
4402 virtual HRESULT STDMETHODCALLTYPE Map(
4403 UINT Subresource,
4404 _In_opt_ const D3D12_RANGE *pReadRange,
4405 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
4406
4407 virtual void STDMETHODCALLTYPE Unmap(
4408 UINT Subresource,
4409 _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
4410
4411 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4412
4413 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0;
4414
4415 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
4416 UINT DstSubresource,
4417 _In_opt_ const D3D12_BOX *pDstBox,
4418 _In_ const void *pSrcData,
4419 UINT SrcRowPitch,
4420 UINT SrcDepthPitch) = 0;
4421
4422 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
4423 _Out_ void *pDstData,
4424 UINT DstRowPitch,
4425 UINT DstDepthPitch,
4426 UINT SrcSubresource,
4427 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
4428
4429 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
4430 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
4431 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0;
4432
4433 };
4434
4435
4436#else /* C style interface */
4437
4438 typedef struct ID3D12ResourceVtbl
4439 {
4440 BEGIN_INTERFACE
4441
4442 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4443 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4444 ID3D12Resource * This,
4445 REFIID riid,
4446 _COM_Outptr_ void **ppvObject);
4447
4448 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4449 ULONG ( STDMETHODCALLTYPE *AddRef )(
4450 ID3D12Resource * This);
4451
4452 DECLSPEC_XFGVIRT(IUnknown, Release)
4453 ULONG ( STDMETHODCALLTYPE *Release )(
4454 ID3D12Resource * This);
4455
4456 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4457 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4458 ID3D12Resource * This,
4459 _In_ REFGUID guid,
4460 _Inout_ UINT *pDataSize,
4461 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4462
4463 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4464 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4465 ID3D12Resource * This,
4466 _In_ REFGUID guid,
4467 _In_ UINT DataSize,
4468 _In_reads_bytes_opt_( DataSize ) const void *pData);
4469
4470 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4471 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4472 ID3D12Resource * This,
4473 _In_ REFGUID guid,
4474 _In_opt_ const IUnknown *pData);
4475
4476 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4477 HRESULT ( STDMETHODCALLTYPE *SetName )(
4478 ID3D12Resource * This,
4479 _In_z_ LPCWSTR Name);
4480
4481 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4482 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4483 ID3D12Resource * This,
4484 REFIID riid,
4485 _COM_Outptr_opt_ void **ppvDevice);
4486
4487 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
4488 HRESULT ( STDMETHODCALLTYPE *Map )(
4489 ID3D12Resource * This,
4490 UINT Subresource,
4491 _In_opt_ const D3D12_RANGE *pReadRange,
4492 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
4493
4494 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
4495 void ( STDMETHODCALLTYPE *Unmap )(
4496 ID3D12Resource * This,
4497 UINT Subresource,
4498 _In_opt_ const D3D12_RANGE *pWrittenRange);
4499
4500 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
4501 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
4502 ID3D12Resource * This,
4503 D3D12_RESOURCE_DESC * RetVal);
4504
4505 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
4506 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
4507 ID3D12Resource * This);
4508
4509 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
4510 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
4511 ID3D12Resource * This,
4512 UINT DstSubresource,
4513 _In_opt_ const D3D12_BOX *pDstBox,
4514 _In_ const void *pSrcData,
4515 UINT SrcRowPitch,
4516 UINT SrcDepthPitch);
4517
4518 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
4519 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
4520 ID3D12Resource * This,
4521 _Out_ void *pDstData,
4522 UINT DstRowPitch,
4523 UINT DstDepthPitch,
4524 UINT SrcSubresource,
4525 _In_opt_ const D3D12_BOX *pSrcBox);
4526
4527 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
4528 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
4529 ID3D12Resource * This,
4530 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
4531 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
4532
4533 END_INTERFACE
4534 } ID3D12ResourceVtbl;
4535
4536 interface ID3D12Resource
4537 {
4538 CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
4539 };
4540
4541
4542
4543#ifdef COBJMACROS
4544
4545
4546#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \
4547 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4548
4549#define ID3D12Resource_AddRef(This) \
4550 ( (This)->lpVtbl -> AddRef(This) )
4551
4552#define ID3D12Resource_Release(This) \
4553 ( (This)->lpVtbl -> Release(This) )
4554
4555
4556#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \
4557 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4558
4559#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \
4560 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4561
4562#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \
4563 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4564
4565#define ID3D12Resource_SetName(This,Name) \
4566 ( (This)->lpVtbl -> SetName(This,Name) )
4567
4568
4569#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \
4570 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4571
4572
4573
4574#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \
4575 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
4576
4577#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \
4578 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
4579
4580#define ID3D12Resource_GetDesc(This,RetVal) \
4581 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
4582
4583#define ID3D12Resource_GetGPUVirtualAddress(This) \
4584 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
4585
4586#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
4587 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
4588
4589#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
4590 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
4591
4592#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
4593 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
4594
4595#endif /* COBJMACROS */
4596
4597
4598#endif /* C style interface */
4599
4600
4601
4602
4603#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
4604
4605
4606#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
4607#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
4608
4609/* interface ID3D12CommandAllocator */
4610/* [unique][local][object][uuid] */
4611
4612
4613EXTERN_C const IID IID_ID3D12CommandAllocator;
4614
4615#if defined(__cplusplus) && !defined(CINTERFACE)
4616
4617 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
4618 ID3D12CommandAllocator : public ID3D12Pageable
4619 {
4620 public:
4621 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
4622
4623 };
4624
4625
4626#else /* C style interface */
4627
4628 typedef struct ID3D12CommandAllocatorVtbl
4629 {
4630 BEGIN_INTERFACE
4631
4632 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4633 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4634 ID3D12CommandAllocator * This,
4635 REFIID riid,
4636 _COM_Outptr_ void **ppvObject);
4637
4638 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4639 ULONG ( STDMETHODCALLTYPE *AddRef )(
4640 ID3D12CommandAllocator * This);
4641
4642 DECLSPEC_XFGVIRT(IUnknown, Release)
4643 ULONG ( STDMETHODCALLTYPE *Release )(
4644 ID3D12CommandAllocator * This);
4645
4646 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4647 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4648 ID3D12CommandAllocator * This,
4649 _In_ REFGUID guid,
4650 _Inout_ UINT *pDataSize,
4651 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4652
4653 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4654 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4655 ID3D12CommandAllocator * This,
4656 _In_ REFGUID guid,
4657 _In_ UINT DataSize,
4658 _In_reads_bytes_opt_( DataSize ) const void *pData);
4659
4660 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4661 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4662 ID3D12CommandAllocator * This,
4663 _In_ REFGUID guid,
4664 _In_opt_ const IUnknown *pData);
4665
4666 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4667 HRESULT ( STDMETHODCALLTYPE *SetName )(
4668 ID3D12CommandAllocator * This,
4669 _In_z_ LPCWSTR Name);
4670
4671 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4672 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4673 ID3D12CommandAllocator * This,
4674 REFIID riid,
4675 _COM_Outptr_opt_ void **ppvDevice);
4676
4677 DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset)
4678 HRESULT ( STDMETHODCALLTYPE *Reset )(
4679 ID3D12CommandAllocator * This);
4680
4681 END_INTERFACE
4682 } ID3D12CommandAllocatorVtbl;
4683
4684 interface ID3D12CommandAllocator
4685 {
4686 CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
4687 };
4688
4689
4690
4691#ifdef COBJMACROS
4692
4693
4694#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \
4695 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4696
4697#define ID3D12CommandAllocator_AddRef(This) \
4698 ( (This)->lpVtbl -> AddRef(This) )
4699
4700#define ID3D12CommandAllocator_Release(This) \
4701 ( (This)->lpVtbl -> Release(This) )
4702
4703
4704#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \
4705 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4706
4707#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \
4708 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4709
4710#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \
4711 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4712
4713#define ID3D12CommandAllocator_SetName(This,Name) \
4714 ( (This)->lpVtbl -> SetName(This,Name) )
4715
4716
4717#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \
4718 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4719
4720
4721
4722#define ID3D12CommandAllocator_Reset(This) \
4723 ( (This)->lpVtbl -> Reset(This) )
4724
4725#endif /* COBJMACROS */
4726
4727
4728#endif /* C style interface */
4729
4730
4731
4732
4733#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
4734
4735
4736#ifndef __ID3D12Fence_INTERFACE_DEFINED__
4737#define __ID3D12Fence_INTERFACE_DEFINED__
4738
4739/* interface ID3D12Fence */
4740/* [unique][local][object][uuid] */
4741
4742
4743EXTERN_C const IID IID_ID3D12Fence;
4744
4745#if defined(__cplusplus) && !defined(CINTERFACE)
4746
4747 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
4748 ID3D12Fence : public ID3D12Pageable
4749 {
4750 public:
4751 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0;
4752
4753 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
4754 UINT64 Value,
4755 HANDLE hEvent) = 0;
4756
4757 virtual HRESULT STDMETHODCALLTYPE Signal(
4758 UINT64 Value) = 0;
4759
4760 };
4761
4762
4763#else /* C style interface */
4764
4765 typedef struct ID3D12FenceVtbl
4766 {
4767 BEGIN_INTERFACE
4768
4769 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4770 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4771 ID3D12Fence * This,
4772 REFIID riid,
4773 _COM_Outptr_ void **ppvObject);
4774
4775 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4776 ULONG ( STDMETHODCALLTYPE *AddRef )(
4777 ID3D12Fence * This);
4778
4779 DECLSPEC_XFGVIRT(IUnknown, Release)
4780 ULONG ( STDMETHODCALLTYPE *Release )(
4781 ID3D12Fence * This);
4782
4783 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4784 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4785 ID3D12Fence * This,
4786 _In_ REFGUID guid,
4787 _Inout_ UINT *pDataSize,
4788 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4789
4790 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4791 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4792 ID3D12Fence * This,
4793 _In_ REFGUID guid,
4794 _In_ UINT DataSize,
4795 _In_reads_bytes_opt_( DataSize ) const void *pData);
4796
4797 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4798 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4799 ID3D12Fence * This,
4800 _In_ REFGUID guid,
4801 _In_opt_ const IUnknown *pData);
4802
4803 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4804 HRESULT ( STDMETHODCALLTYPE *SetName )(
4805 ID3D12Fence * This,
4806 _In_z_ LPCWSTR Name);
4807
4808 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4809 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4810 ID3D12Fence * This,
4811 REFIID riid,
4812 _COM_Outptr_opt_ void **ppvDevice);
4813
4814 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
4815 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
4816 ID3D12Fence * This);
4817
4818 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
4819 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
4820 ID3D12Fence * This,
4821 UINT64 Value,
4822 HANDLE hEvent);
4823
4824 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
4825 HRESULT ( STDMETHODCALLTYPE *Signal )(
4826 ID3D12Fence * This,
4827 UINT64 Value);
4828
4829 END_INTERFACE
4830 } ID3D12FenceVtbl;
4831
4832 interface ID3D12Fence
4833 {
4834 CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
4835 };
4836
4837
4838
4839#ifdef COBJMACROS
4840
4841
4842#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \
4843 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4844
4845#define ID3D12Fence_AddRef(This) \
4846 ( (This)->lpVtbl -> AddRef(This) )
4847
4848#define ID3D12Fence_Release(This) \
4849 ( (This)->lpVtbl -> Release(This) )
4850
4851
4852#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \
4853 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4854
4855#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \
4856 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4857
4858#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \
4859 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4860
4861#define ID3D12Fence_SetName(This,Name) \
4862 ( (This)->lpVtbl -> SetName(This,Name) )
4863
4864
4865#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \
4866 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4867
4868
4869
4870#define ID3D12Fence_GetCompletedValue(This) \
4871 ( (This)->lpVtbl -> GetCompletedValue(This) )
4872
4873#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \
4874 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
4875
4876#define ID3D12Fence_Signal(This,Value) \
4877 ( (This)->lpVtbl -> Signal(This,Value) )
4878
4879#endif /* COBJMACROS */
4880
4881
4882#endif /* C style interface */
4883
4884
4885
4886
4887#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
4888
4889
4890#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
4891#define __ID3D12Fence1_INTERFACE_DEFINED__
4892
4893/* interface ID3D12Fence1 */
4894/* [unique][local][object][uuid] */
4895
4896
4897EXTERN_C const IID IID_ID3D12Fence1;
4898
4899#if defined(__cplusplus) && !defined(CINTERFACE)
4900
4901 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
4902 ID3D12Fence1 : public ID3D12Fence
4903 {
4904 public:
4905 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0;
4906
4907 };
4908
4909
4910#else /* C style interface */
4911
4912 typedef struct ID3D12Fence1Vtbl
4913 {
4914 BEGIN_INTERFACE
4915
4916 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4917 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4918 ID3D12Fence1 * This,
4919 REFIID riid,
4920 _COM_Outptr_ void **ppvObject);
4921
4922 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4923 ULONG ( STDMETHODCALLTYPE *AddRef )(
4924 ID3D12Fence1 * This);
4925
4926 DECLSPEC_XFGVIRT(IUnknown, Release)
4927 ULONG ( STDMETHODCALLTYPE *Release )(
4928 ID3D12Fence1 * This);
4929
4930 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4931 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4932 ID3D12Fence1 * This,
4933 _In_ REFGUID guid,
4934 _Inout_ UINT *pDataSize,
4935 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4936
4937 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4938 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4939 ID3D12Fence1 * This,
4940 _In_ REFGUID guid,
4941 _In_ UINT DataSize,
4942 _In_reads_bytes_opt_( DataSize ) const void *pData);
4943
4944 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4945 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4946 ID3D12Fence1 * This,
4947 _In_ REFGUID guid,
4948 _In_opt_ const IUnknown *pData);
4949
4950 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4951 HRESULT ( STDMETHODCALLTYPE *SetName )(
4952 ID3D12Fence1 * This,
4953 _In_z_ LPCWSTR Name);
4954
4955 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4956 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4957 ID3D12Fence1 * This,
4958 REFIID riid,
4959 _COM_Outptr_opt_ void **ppvDevice);
4960
4961 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
4962 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
4963 ID3D12Fence1 * This);
4964
4965 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
4966 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
4967 ID3D12Fence1 * This,
4968 UINT64 Value,
4969 HANDLE hEvent);
4970
4971 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
4972 HRESULT ( STDMETHODCALLTYPE *Signal )(
4973 ID3D12Fence1 * This,
4974 UINT64 Value);
4975
4976 DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags)
4977 D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )(
4978 ID3D12Fence1 * This);
4979
4980 END_INTERFACE
4981 } ID3D12Fence1Vtbl;
4982
4983 interface ID3D12Fence1
4984 {
4985 CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl;
4986 };
4987
4988
4989
4990#ifdef COBJMACROS
4991
4992
4993#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \
4994 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4995
4996#define ID3D12Fence1_AddRef(This) \
4997 ( (This)->lpVtbl -> AddRef(This) )
4998
4999#define ID3D12Fence1_Release(This) \
5000 ( (This)->lpVtbl -> Release(This) )
5001
5002
5003#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \
5004 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5005
5006#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \
5007 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5008
5009#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \
5010 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5011
5012#define ID3D12Fence1_SetName(This,Name) \
5013 ( (This)->lpVtbl -> SetName(This,Name) )
5014
5015
5016#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \
5017 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5018
5019
5020
5021#define ID3D12Fence1_GetCompletedValue(This) \
5022 ( (This)->lpVtbl -> GetCompletedValue(This) )
5023
5024#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \
5025 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5026
5027#define ID3D12Fence1_Signal(This,Value) \
5028 ( (This)->lpVtbl -> Signal(This,Value) )
5029
5030
5031#define ID3D12Fence1_GetCreationFlags(This) \
5032 ( (This)->lpVtbl -> GetCreationFlags(This) )
5033
5034#endif /* COBJMACROS */
5035
5036
5037#endif /* C style interface */
5038
5039
5040
5041
5042#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
5043
5044
5045#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5046#define __ID3D12PipelineState_INTERFACE_DEFINED__
5047
5048/* interface ID3D12PipelineState */
5049/* [unique][local][object][uuid] */
5050
5051
5052EXTERN_C const IID IID_ID3D12PipelineState;
5053
5054#if defined(__cplusplus) && !defined(CINTERFACE)
5055
5056 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5057 ID3D12PipelineState : public ID3D12Pageable
5058 {
5059 public:
5060 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5061 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
5062
5063 };
5064
5065
5066#else /* C style interface */
5067
5068 typedef struct ID3D12PipelineStateVtbl
5069 {
5070 BEGIN_INTERFACE
5071
5072 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5073 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5074 ID3D12PipelineState * This,
5075 REFIID riid,
5076 _COM_Outptr_ void **ppvObject);
5077
5078 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5079 ULONG ( STDMETHODCALLTYPE *AddRef )(
5080 ID3D12PipelineState * This);
5081
5082 DECLSPEC_XFGVIRT(IUnknown, Release)
5083 ULONG ( STDMETHODCALLTYPE *Release )(
5084 ID3D12PipelineState * This);
5085
5086 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5087 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5088 ID3D12PipelineState * This,
5089 _In_ REFGUID guid,
5090 _Inout_ UINT *pDataSize,
5091 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5092
5093 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5094 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5095 ID3D12PipelineState * This,
5096 _In_ REFGUID guid,
5097 _In_ UINT DataSize,
5098 _In_reads_bytes_opt_( DataSize ) const void *pData);
5099
5100 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5101 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5102 ID3D12PipelineState * This,
5103 _In_ REFGUID guid,
5104 _In_opt_ const IUnknown *pData);
5105
5106 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5107 HRESULT ( STDMETHODCALLTYPE *SetName )(
5108 ID3D12PipelineState * This,
5109 _In_z_ LPCWSTR Name);
5110
5111 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5112 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5113 ID3D12PipelineState * This,
5114 REFIID riid,
5115 _COM_Outptr_opt_ void **ppvDevice);
5116
5117 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5118 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5119 ID3D12PipelineState * This,
5120 _COM_Outptr_ ID3DBlob **ppBlob);
5121
5122 END_INTERFACE
5123 } ID3D12PipelineStateVtbl;
5124
5125 interface ID3D12PipelineState
5126 {
5127 CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5128 };
5129
5130
5131
5132#ifdef COBJMACROS
5133
5134
5135#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \
5136 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5137
5138#define ID3D12PipelineState_AddRef(This) \
5139 ( (This)->lpVtbl -> AddRef(This) )
5140
5141#define ID3D12PipelineState_Release(This) \
5142 ( (This)->lpVtbl -> Release(This) )
5143
5144
5145#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \
5146 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5147
5148#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \
5149 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5150
5151#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \
5152 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5153
5154#define ID3D12PipelineState_SetName(This,Name) \
5155 ( (This)->lpVtbl -> SetName(This,Name) )
5156
5157
5158#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \
5159 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5160
5161
5162
5163#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \
5164 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5165
5166#endif /* COBJMACROS */
5167
5168
5169#endif /* C style interface */
5170
5171
5172
5173
5174#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5175
5176
5177#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5178#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5179
5180/* interface ID3D12DescriptorHeap */
5181/* [unique][local][object][uuid] */
5182
5183
5184EXTERN_C const IID IID_ID3D12DescriptorHeap;
5185
5186#if defined(__cplusplus) && !defined(CINTERFACE)
5187
5188 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5189 ID3D12DescriptorHeap : public ID3D12Pageable
5190 {
5191 public:
5192 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5193
5194 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0;
5195
5196 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0;
5197
5198 };
5199
5200
5201#else /* C style interface */
5202
5203 typedef struct ID3D12DescriptorHeapVtbl
5204 {
5205 BEGIN_INTERFACE
5206
5207 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5208 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5209 ID3D12DescriptorHeap * This,
5210 REFIID riid,
5211 _COM_Outptr_ void **ppvObject);
5212
5213 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5214 ULONG ( STDMETHODCALLTYPE *AddRef )(
5215 ID3D12DescriptorHeap * This);
5216
5217 DECLSPEC_XFGVIRT(IUnknown, Release)
5218 ULONG ( STDMETHODCALLTYPE *Release )(
5219 ID3D12DescriptorHeap * This);
5220
5221 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5222 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5223 ID3D12DescriptorHeap * This,
5224 _In_ REFGUID guid,
5225 _Inout_ UINT *pDataSize,
5226 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5227
5228 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5229 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5230 ID3D12DescriptorHeap * This,
5231 _In_ REFGUID guid,
5232 _In_ UINT DataSize,
5233 _In_reads_bytes_opt_( DataSize ) const void *pData);
5234
5235 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5236 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5237 ID3D12DescriptorHeap * This,
5238 _In_ REFGUID guid,
5239 _In_opt_ const IUnknown *pData);
5240
5241 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5242 HRESULT ( STDMETHODCALLTYPE *SetName )(
5243 ID3D12DescriptorHeap * This,
5244 _In_z_ LPCWSTR Name);
5245
5246 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5247 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5248 ID3D12DescriptorHeap * This,
5249 REFIID riid,
5250 _COM_Outptr_opt_ void **ppvDevice);
5251
5252 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc)
5253 D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
5254 ID3D12DescriptorHeap * This,
5255 D3D12_DESCRIPTOR_HEAP_DESC * RetVal);
5256
5257 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart)
5258 D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
5259 ID3D12DescriptorHeap * This,
5260 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal);
5261
5262 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart)
5263 D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
5264 ID3D12DescriptorHeap * This,
5265 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal);
5266
5267 END_INTERFACE
5268 } ID3D12DescriptorHeapVtbl;
5269
5270 interface ID3D12DescriptorHeap
5271 {
5272 CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
5273 };
5274
5275
5276
5277#ifdef COBJMACROS
5278
5279
5280#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \
5281 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5282
5283#define ID3D12DescriptorHeap_AddRef(This) \
5284 ( (This)->lpVtbl -> AddRef(This) )
5285
5286#define ID3D12DescriptorHeap_Release(This) \
5287 ( (This)->lpVtbl -> Release(This) )
5288
5289
5290#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \
5291 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5292
5293#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \
5294 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5295
5296#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \
5297 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5298
5299#define ID3D12DescriptorHeap_SetName(This,Name) \
5300 ( (This)->lpVtbl -> SetName(This,Name) )
5301
5302
5303#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \
5304 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5305
5306
5307
5308#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \
5309 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5310
5311#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \
5312 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) )
5313
5314#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \
5315 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) )
5316
5317#endif /* COBJMACROS */
5318
5319
5320#endif /* C style interface */
5321
5322
5323
5324
5325#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
5326
5327
5328#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
5329#define __ID3D12QueryHeap_INTERFACE_DEFINED__
5330
5331/* interface ID3D12QueryHeap */
5332/* [unique][local][object][uuid] */
5333
5334
5335EXTERN_C const IID IID_ID3D12QueryHeap;
5336
5337#if defined(__cplusplus) && !defined(CINTERFACE)
5338
5339 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
5340 ID3D12QueryHeap : public ID3D12Pageable
5341 {
5342 public:
5343 };
5344
5345
5346#else /* C style interface */
5347
5348 typedef struct ID3D12QueryHeapVtbl
5349 {
5350 BEGIN_INTERFACE
5351
5352 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5353 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5354 ID3D12QueryHeap * This,
5355 REFIID riid,
5356 _COM_Outptr_ void **ppvObject);
5357
5358 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5359 ULONG ( STDMETHODCALLTYPE *AddRef )(
5360 ID3D12QueryHeap * This);
5361
5362 DECLSPEC_XFGVIRT(IUnknown, Release)
5363 ULONG ( STDMETHODCALLTYPE *Release )(
5364 ID3D12QueryHeap * This);
5365
5366 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5367 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5368 ID3D12QueryHeap * This,
5369 _In_ REFGUID guid,
5370 _Inout_ UINT *pDataSize,
5371 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5372
5373 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5374 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5375 ID3D12QueryHeap * This,
5376 _In_ REFGUID guid,
5377 _In_ UINT DataSize,
5378 _In_reads_bytes_opt_( DataSize ) const void *pData);
5379
5380 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5381 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5382 ID3D12QueryHeap * This,
5383 _In_ REFGUID guid,
5384 _In_opt_ const IUnknown *pData);
5385
5386 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5387 HRESULT ( STDMETHODCALLTYPE *SetName )(
5388 ID3D12QueryHeap * This,
5389 _In_z_ LPCWSTR Name);
5390
5391 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5392 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5393 ID3D12QueryHeap * This,
5394 REFIID riid,
5395 _COM_Outptr_opt_ void **ppvDevice);
5396
5397 END_INTERFACE
5398 } ID3D12QueryHeapVtbl;
5399
5400 interface ID3D12QueryHeap
5401 {
5402 CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
5403 };
5404
5405
5406
5407#ifdef COBJMACROS
5408
5409
5410#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \
5411 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5412
5413#define ID3D12QueryHeap_AddRef(This) \
5414 ( (This)->lpVtbl -> AddRef(This) )
5415
5416#define ID3D12QueryHeap_Release(This) \
5417 ( (This)->lpVtbl -> Release(This) )
5418
5419
5420#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \
5421 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5422
5423#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \
5424 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5425
5426#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \
5427 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5428
5429#define ID3D12QueryHeap_SetName(This,Name) \
5430 ( (This)->lpVtbl -> SetName(This,Name) )
5431
5432
5433#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \
5434 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5435
5436
5437
5438#endif /* COBJMACROS */
5439
5440
5441#endif /* C style interface */
5442
5443
5444
5445
5446#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
5447
5448
5449#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
5450#define __ID3D12CommandSignature_INTERFACE_DEFINED__
5451
5452/* interface ID3D12CommandSignature */
5453/* [unique][local][object][uuid] */
5454
5455
5456EXTERN_C const IID IID_ID3D12CommandSignature;
5457
5458#if defined(__cplusplus) && !defined(CINTERFACE)
5459
5460 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
5461 ID3D12CommandSignature : public ID3D12Pageable
5462 {
5463 public:
5464 };
5465
5466
5467#else /* C style interface */
5468
5469 typedef struct ID3D12CommandSignatureVtbl
5470 {
5471 BEGIN_INTERFACE
5472
5473 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5474 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5475 ID3D12CommandSignature * This,
5476 REFIID riid,
5477 _COM_Outptr_ void **ppvObject);
5478
5479 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5480 ULONG ( STDMETHODCALLTYPE *AddRef )(
5481 ID3D12CommandSignature * This);
5482
5483 DECLSPEC_XFGVIRT(IUnknown, Release)
5484 ULONG ( STDMETHODCALLTYPE *Release )(
5485 ID3D12CommandSignature * This);
5486
5487 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5488 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5489 ID3D12CommandSignature * This,
5490 _In_ REFGUID guid,
5491 _Inout_ UINT *pDataSize,
5492 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5493
5494 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5495 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5496 ID3D12CommandSignature * This,
5497 _In_ REFGUID guid,
5498 _In_ UINT DataSize,
5499 _In_reads_bytes_opt_( DataSize ) const void *pData);
5500
5501 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5502 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5503 ID3D12CommandSignature * This,
5504 _In_ REFGUID guid,
5505 _In_opt_ const IUnknown *pData);
5506
5507 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5508 HRESULT ( STDMETHODCALLTYPE *SetName )(
5509 ID3D12CommandSignature * This,
5510 _In_z_ LPCWSTR Name);
5511
5512 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5513 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5514 ID3D12CommandSignature * This,
5515 REFIID riid,
5516 _COM_Outptr_opt_ void **ppvDevice);
5517
5518 END_INTERFACE
5519 } ID3D12CommandSignatureVtbl;
5520
5521 interface ID3D12CommandSignature
5522 {
5523 CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl;
5524 };
5525
5526
5527
5528#ifdef COBJMACROS
5529
5530
5531#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \
5532 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5533
5534#define ID3D12CommandSignature_AddRef(This) \
5535 ( (This)->lpVtbl -> AddRef(This) )
5536
5537#define ID3D12CommandSignature_Release(This) \
5538 ( (This)->lpVtbl -> Release(This) )
5539
5540
5541#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \
5542 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5543
5544#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \
5545 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5546
5547#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \
5548 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5549
5550#define ID3D12CommandSignature_SetName(This,Name) \
5551 ( (This)->lpVtbl -> SetName(This,Name) )
5552
5553
5554#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \
5555 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5556
5557
5558
5559#endif /* COBJMACROS */
5560
5561
5562#endif /* C style interface */
5563
5564
5565
5566
5567#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
5568
5569
5570#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
5571#define __ID3D12CommandList_INTERFACE_DEFINED__
5572
5573/* interface ID3D12CommandList */
5574/* [unique][local][object][uuid] */
5575
5576
5577EXTERN_C const IID IID_ID3D12CommandList;
5578
5579#if defined(__cplusplus) && !defined(CINTERFACE)
5580
5581 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
5582 ID3D12CommandList : public ID3D12DeviceChild
5583 {
5584 public:
5585 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0;
5586
5587 };
5588
5589
5590#else /* C style interface */
5591
5592 typedef struct ID3D12CommandListVtbl
5593 {
5594 BEGIN_INTERFACE
5595
5596 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5597 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5598 ID3D12CommandList * This,
5599 REFIID riid,
5600 _COM_Outptr_ void **ppvObject);
5601
5602 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5603 ULONG ( STDMETHODCALLTYPE *AddRef )(
5604 ID3D12CommandList * This);
5605
5606 DECLSPEC_XFGVIRT(IUnknown, Release)
5607 ULONG ( STDMETHODCALLTYPE *Release )(
5608 ID3D12CommandList * This);
5609
5610 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5611 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5612 ID3D12CommandList * This,
5613 _In_ REFGUID guid,
5614 _Inout_ UINT *pDataSize,
5615 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5616
5617 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5618 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5619 ID3D12CommandList * This,
5620 _In_ REFGUID guid,
5621 _In_ UINT DataSize,
5622 _In_reads_bytes_opt_( DataSize ) const void *pData);
5623
5624 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5625 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5626 ID3D12CommandList * This,
5627 _In_ REFGUID guid,
5628 _In_opt_ const IUnknown *pData);
5629
5630 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5631 HRESULT ( STDMETHODCALLTYPE *SetName )(
5632 ID3D12CommandList * This,
5633 _In_z_ LPCWSTR Name);
5634
5635 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5636 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5637 ID3D12CommandList * This,
5638 REFIID riid,
5639 _COM_Outptr_opt_ void **ppvDevice);
5640
5641 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
5642 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
5643 ID3D12CommandList * This);
5644
5645 END_INTERFACE
5646 } ID3D12CommandListVtbl;
5647
5648 interface ID3D12CommandList
5649 {
5650 CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
5651 };
5652
5653
5654
5655#ifdef COBJMACROS
5656
5657
5658#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \
5659 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5660
5661#define ID3D12CommandList_AddRef(This) \
5662 ( (This)->lpVtbl -> AddRef(This) )
5663
5664#define ID3D12CommandList_Release(This) \
5665 ( (This)->lpVtbl -> Release(This) )
5666
5667
5668#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \
5669 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5670
5671#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \
5672 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5673
5674#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \
5675 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5676
5677#define ID3D12CommandList_SetName(This,Name) \
5678 ( (This)->lpVtbl -> SetName(This,Name) )
5679
5680
5681#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \
5682 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5683
5684
5685#define ID3D12CommandList_GetType(This) \
5686 ( (This)->lpVtbl -> GetType(This) )
5687
5688#endif /* COBJMACROS */
5689
5690
5691#endif /* C style interface */
5692
5693
5694
5695
5696#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
5697
5698
5699#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
5700#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
5701
5702/* interface ID3D12GraphicsCommandList */
5703/* [unique][local][object][uuid] */
5704
5705
5706EXTERN_C const IID IID_ID3D12GraphicsCommandList;
5707
5708#if defined(__cplusplus) && !defined(CINTERFACE)
5709
5710 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
5711 ID3D12GraphicsCommandList : public ID3D12CommandList
5712 {
5713 public:
5714 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
5715
5716 virtual HRESULT STDMETHODCALLTYPE Reset(
5717 _In_ ID3D12CommandAllocator *pAllocator,
5718 _In_opt_ ID3D12PipelineState *pInitialState) = 0;
5719
5720 virtual void STDMETHODCALLTYPE ClearState(
5721 _In_opt_ ID3D12PipelineState *pPipelineState) = 0;
5722
5723 virtual void STDMETHODCALLTYPE DrawInstanced(
5724 _In_ UINT VertexCountPerInstance,
5725 _In_ UINT InstanceCount,
5726 _In_ UINT StartVertexLocation,
5727 _In_ UINT StartInstanceLocation) = 0;
5728
5729 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
5730 _In_ UINT IndexCountPerInstance,
5731 _In_ UINT InstanceCount,
5732 _In_ UINT StartIndexLocation,
5733 _In_ INT BaseVertexLocation,
5734 _In_ UINT StartInstanceLocation) = 0;
5735
5736 virtual void STDMETHODCALLTYPE Dispatch(
5737 _In_ UINT ThreadGroupCountX,
5738 _In_ UINT ThreadGroupCountY,
5739 _In_ UINT ThreadGroupCountZ) = 0;
5740
5741 virtual void STDMETHODCALLTYPE CopyBufferRegion(
5742 _In_ ID3D12Resource *pDstBuffer,
5743 UINT64 DstOffset,
5744 _In_ ID3D12Resource *pSrcBuffer,
5745 UINT64 SrcOffset,
5746 UINT64 NumBytes) = 0;
5747
5748 virtual void STDMETHODCALLTYPE CopyTextureRegion(
5749 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
5750 UINT DstX,
5751 UINT DstY,
5752 UINT DstZ,
5753 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
5754 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
5755
5756 virtual void STDMETHODCALLTYPE CopyResource(
5757 _In_ ID3D12Resource *pDstResource,
5758 _In_ ID3D12Resource *pSrcResource) = 0;
5759
5760 virtual void STDMETHODCALLTYPE CopyTiles(
5761 _In_ ID3D12Resource *pTiledResource,
5762 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
5763 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
5764 _In_ ID3D12Resource *pBuffer,
5765 UINT64 BufferStartOffsetInBytes,
5766 D3D12_TILE_COPY_FLAGS Flags) = 0;
5767
5768 virtual void STDMETHODCALLTYPE ResolveSubresource(
5769 _In_ ID3D12Resource *pDstResource,
5770 _In_ UINT DstSubresource,
5771 _In_ ID3D12Resource *pSrcResource,
5772 _In_ UINT SrcSubresource,
5773 _In_ DXGI_FORMAT Format) = 0;
5774
5775 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
5776 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
5777
5778 virtual void STDMETHODCALLTYPE RSSetViewports(
5779 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
5780 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
5781
5782 virtual void STDMETHODCALLTYPE RSSetScissorRects(
5783 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
5784 _In_reads_( NumRects) const D3D12_RECT *pRects) = 0;
5785
5786 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
5787 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0;
5788
5789 virtual void STDMETHODCALLTYPE OMSetStencilRef(
5790 _In_ UINT StencilRef) = 0;
5791
5792 virtual void STDMETHODCALLTYPE SetPipelineState(
5793 _In_ ID3D12PipelineState *pPipelineState) = 0;
5794
5795 virtual void STDMETHODCALLTYPE ResourceBarrier(
5796 _In_ UINT NumBarriers,
5797 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
5798
5799 virtual void STDMETHODCALLTYPE ExecuteBundle(
5800 _In_ ID3D12GraphicsCommandList *pCommandList) = 0;
5801
5802 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
5803 _In_ UINT NumDescriptorHeaps,
5804 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
5805
5806 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
5807 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
5808
5809 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
5810 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
5811
5812 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
5813 _In_ UINT RootParameterIndex,
5814 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
5815
5816 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
5817 _In_ UINT RootParameterIndex,
5818 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
5819
5820 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
5821 _In_ UINT RootParameterIndex,
5822 _In_ UINT SrcData,
5823 _In_ UINT DestOffsetIn32BitValues) = 0;
5824
5825 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
5826 _In_ UINT RootParameterIndex,
5827 _In_ UINT SrcData,
5828 _In_ UINT DestOffsetIn32BitValues) = 0;
5829
5830 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
5831 _In_ UINT RootParameterIndex,
5832 _In_ UINT Num32BitValuesToSet,
5833 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
5834 _In_ UINT DestOffsetIn32BitValues) = 0;
5835
5836 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
5837 _In_ UINT RootParameterIndex,
5838 _In_ UINT Num32BitValuesToSet,
5839 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
5840 _In_ UINT DestOffsetIn32BitValues) = 0;
5841
5842 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
5843 _In_ UINT RootParameterIndex,
5844 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5845
5846 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
5847 _In_ UINT RootParameterIndex,
5848 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5849
5850 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
5851 _In_ UINT RootParameterIndex,
5852 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5853
5854 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
5855 _In_ UINT RootParameterIndex,
5856 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5857
5858 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
5859 _In_ UINT RootParameterIndex,
5860 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5861
5862 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
5863 _In_ UINT RootParameterIndex,
5864 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
5865
5866 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
5867 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
5868
5869 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
5870 _In_ UINT StartSlot,
5871 _In_ UINT NumViews,
5872 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
5873
5874 virtual void STDMETHODCALLTYPE SOSetTargets(
5875 _In_ UINT StartSlot,
5876 _In_ UINT NumViews,
5877 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
5878
5879 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
5880 _In_ UINT NumRenderTargetDescriptors,
5881 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
5882 _In_ BOOL RTsSingleHandleToDescriptorRange,
5883 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
5884
5885 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
5886 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
5887 _In_ D3D12_CLEAR_FLAGS ClearFlags,
5888 _In_ FLOAT Depth,
5889 _In_ UINT8 Stencil,
5890 _In_ UINT NumRects,
5891 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
5892
5893 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
5894 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
5895 _In_ const FLOAT ColorRGBA[ 4 ],
5896 _In_ UINT NumRects,
5897 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
5898
5899 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
5900 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
5901 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
5902 _In_ ID3D12Resource *pResource,
5903 _In_ const UINT Values[ 4 ],
5904 _In_ UINT NumRects,
5905 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
5906
5907 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
5908 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
5909 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
5910 _In_ ID3D12Resource *pResource,
5911 _In_ const FLOAT Values[ 4 ],
5912 _In_ UINT NumRects,
5913 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
5914
5915 virtual void STDMETHODCALLTYPE DiscardResource(
5916 _In_ ID3D12Resource *pResource,
5917 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
5918
5919 virtual void STDMETHODCALLTYPE BeginQuery(
5920 _In_ ID3D12QueryHeap *pQueryHeap,
5921 _In_ D3D12_QUERY_TYPE Type,
5922 _In_ UINT Index) = 0;
5923
5924 virtual void STDMETHODCALLTYPE EndQuery(
5925 _In_ ID3D12QueryHeap *pQueryHeap,
5926 _In_ D3D12_QUERY_TYPE Type,
5927 _In_ UINT Index) = 0;
5928
5929 virtual void STDMETHODCALLTYPE ResolveQueryData(
5930 _In_ ID3D12QueryHeap *pQueryHeap,
5931 _In_ D3D12_QUERY_TYPE Type,
5932 _In_ UINT StartIndex,
5933 _In_ UINT NumQueries,
5934 _In_ ID3D12Resource *pDestinationBuffer,
5935 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
5936
5937 virtual void STDMETHODCALLTYPE SetPredication(
5938 _In_opt_ ID3D12Resource *pBuffer,
5939 _In_ UINT64 AlignedBufferOffset,
5940 _In_ D3D12_PREDICATION_OP Operation) = 0;
5941
5942 virtual void STDMETHODCALLTYPE SetMarker(
5943 UINT Metadata,
5944 _In_reads_bytes_opt_(Size) const void *pData,
5945 UINT Size) = 0;
5946
5947 virtual void STDMETHODCALLTYPE BeginEvent(
5948 UINT Metadata,
5949 _In_reads_bytes_opt_(Size) const void *pData,
5950 UINT Size) = 0;
5951
5952 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
5953
5954 virtual void STDMETHODCALLTYPE ExecuteIndirect(
5955 _In_ ID3D12CommandSignature *pCommandSignature,
5956 _In_ UINT MaxCommandCount,
5957 _In_ ID3D12Resource *pArgumentBuffer,
5958 _In_ UINT64 ArgumentBufferOffset,
5959 _In_opt_ ID3D12Resource *pCountBuffer,
5960 _In_ UINT64 CountBufferOffset) = 0;
5961
5962 };
5963
5964
5965#else /* C style interface */
5966
5967 typedef struct ID3D12GraphicsCommandListVtbl
5968 {
5969 BEGIN_INTERFACE
5970
5971 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5972 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5973 ID3D12GraphicsCommandList * This,
5974 REFIID riid,
5975 _COM_Outptr_ void **ppvObject);
5976
5977 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5978 ULONG ( STDMETHODCALLTYPE *AddRef )(
5979 ID3D12GraphicsCommandList * This);
5980
5981 DECLSPEC_XFGVIRT(IUnknown, Release)
5982 ULONG ( STDMETHODCALLTYPE *Release )(
5983 ID3D12GraphicsCommandList * This);
5984
5985 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5986 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5987 ID3D12GraphicsCommandList * This,
5988 _In_ REFGUID guid,
5989 _Inout_ UINT *pDataSize,
5990 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5991
5992 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5993 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5994 ID3D12GraphicsCommandList * This,
5995 _In_ REFGUID guid,
5996 _In_ UINT DataSize,
5997 _In_reads_bytes_opt_( DataSize ) const void *pData);
5998
5999 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6000 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6001 ID3D12GraphicsCommandList * This,
6002 _In_ REFGUID guid,
6003 _In_opt_ const IUnknown *pData);
6004
6005 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6006 HRESULT ( STDMETHODCALLTYPE *SetName )(
6007 ID3D12GraphicsCommandList * This,
6008 _In_z_ LPCWSTR Name);
6009
6010 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6011 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6012 ID3D12GraphicsCommandList * This,
6013 REFIID riid,
6014 _COM_Outptr_opt_ void **ppvDevice);
6015
6016 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6017 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6018 ID3D12GraphicsCommandList * This);
6019
6020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
6021 HRESULT ( STDMETHODCALLTYPE *Close )(
6022 ID3D12GraphicsCommandList * This);
6023
6024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
6025 HRESULT ( STDMETHODCALLTYPE *Reset )(
6026 ID3D12GraphicsCommandList * This,
6027 _In_ ID3D12CommandAllocator *pAllocator,
6028 _In_opt_ ID3D12PipelineState *pInitialState);
6029
6030 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
6031 void ( STDMETHODCALLTYPE *ClearState )(
6032 ID3D12GraphicsCommandList * This,
6033 _In_opt_ ID3D12PipelineState *pPipelineState);
6034
6035 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
6036 void ( STDMETHODCALLTYPE *DrawInstanced )(
6037 ID3D12GraphicsCommandList * This,
6038 _In_ UINT VertexCountPerInstance,
6039 _In_ UINT InstanceCount,
6040 _In_ UINT StartVertexLocation,
6041 _In_ UINT StartInstanceLocation);
6042
6043 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
6044 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
6045 ID3D12GraphicsCommandList * This,
6046 _In_ UINT IndexCountPerInstance,
6047 _In_ UINT InstanceCount,
6048 _In_ UINT StartIndexLocation,
6049 _In_ INT BaseVertexLocation,
6050 _In_ UINT StartInstanceLocation);
6051
6052 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
6053 void ( STDMETHODCALLTYPE *Dispatch )(
6054 ID3D12GraphicsCommandList * This,
6055 _In_ UINT ThreadGroupCountX,
6056 _In_ UINT ThreadGroupCountY,
6057 _In_ UINT ThreadGroupCountZ);
6058
6059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
6060 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
6061 ID3D12GraphicsCommandList * This,
6062 _In_ ID3D12Resource *pDstBuffer,
6063 UINT64 DstOffset,
6064 _In_ ID3D12Resource *pSrcBuffer,
6065 UINT64 SrcOffset,
6066 UINT64 NumBytes);
6067
6068 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
6069 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
6070 ID3D12GraphicsCommandList * This,
6071 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6072 UINT DstX,
6073 UINT DstY,
6074 UINT DstZ,
6075 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6076 _In_opt_ const D3D12_BOX *pSrcBox);
6077
6078 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
6079 void ( STDMETHODCALLTYPE *CopyResource )(
6080 ID3D12GraphicsCommandList * This,
6081 _In_ ID3D12Resource *pDstResource,
6082 _In_ ID3D12Resource *pSrcResource);
6083
6084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
6085 void ( STDMETHODCALLTYPE *CopyTiles )(
6086 ID3D12GraphicsCommandList * This,
6087 _In_ ID3D12Resource *pTiledResource,
6088 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6089 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6090 _In_ ID3D12Resource *pBuffer,
6091 UINT64 BufferStartOffsetInBytes,
6092 D3D12_TILE_COPY_FLAGS Flags);
6093
6094 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
6095 void ( STDMETHODCALLTYPE *ResolveSubresource )(
6096 ID3D12GraphicsCommandList * This,
6097 _In_ ID3D12Resource *pDstResource,
6098 _In_ UINT DstSubresource,
6099 _In_ ID3D12Resource *pSrcResource,
6100 _In_ UINT SrcSubresource,
6101 _In_ DXGI_FORMAT Format);
6102
6103 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
6104 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
6105 ID3D12GraphicsCommandList * This,
6106 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
6107
6108 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
6109 void ( STDMETHODCALLTYPE *RSSetViewports )(
6110 ID3D12GraphicsCommandList * This,
6111 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6112 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
6113
6114 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
6115 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
6116 ID3D12GraphicsCommandList * This,
6117 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6118 _In_reads_( NumRects) const D3D12_RECT *pRects);
6119
6120 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
6121 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
6122 ID3D12GraphicsCommandList * This,
6123 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
6124
6125 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
6126 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
6127 ID3D12GraphicsCommandList * This,
6128 _In_ UINT StencilRef);
6129
6130 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
6131 void ( STDMETHODCALLTYPE *SetPipelineState )(
6132 ID3D12GraphicsCommandList * This,
6133 _In_ ID3D12PipelineState *pPipelineState);
6134
6135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
6136 void ( STDMETHODCALLTYPE *ResourceBarrier )(
6137 ID3D12GraphicsCommandList * This,
6138 _In_ UINT NumBarriers,
6139 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6140
6141 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
6142 void ( STDMETHODCALLTYPE *ExecuteBundle )(
6143 ID3D12GraphicsCommandList * This,
6144 _In_ ID3D12GraphicsCommandList *pCommandList);
6145
6146 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
6147 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
6148 ID3D12GraphicsCommandList * This,
6149 _In_ UINT NumDescriptorHeaps,
6150 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
6151
6152 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
6153 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
6154 ID3D12GraphicsCommandList * This,
6155 _In_opt_ ID3D12RootSignature *pRootSignature);
6156
6157 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
6158 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
6159 ID3D12GraphicsCommandList * This,
6160 _In_opt_ ID3D12RootSignature *pRootSignature);
6161
6162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
6163 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
6164 ID3D12GraphicsCommandList * This,
6165 _In_ UINT RootParameterIndex,
6166 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6167
6168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
6169 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
6170 ID3D12GraphicsCommandList * This,
6171 _In_ UINT RootParameterIndex,
6172 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6173
6174 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
6175 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
6176 ID3D12GraphicsCommandList * This,
6177 _In_ UINT RootParameterIndex,
6178 _In_ UINT SrcData,
6179 _In_ UINT DestOffsetIn32BitValues);
6180
6181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
6182 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
6183 ID3D12GraphicsCommandList * This,
6184 _In_ UINT RootParameterIndex,
6185 _In_ UINT SrcData,
6186 _In_ UINT DestOffsetIn32BitValues);
6187
6188 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
6189 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
6190 ID3D12GraphicsCommandList * This,
6191 _In_ UINT RootParameterIndex,
6192 _In_ UINT Num32BitValuesToSet,
6193 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6194 _In_ UINT DestOffsetIn32BitValues);
6195
6196 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
6197 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
6198 ID3D12GraphicsCommandList * This,
6199 _In_ UINT RootParameterIndex,
6200 _In_ UINT Num32BitValuesToSet,
6201 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6202 _In_ UINT DestOffsetIn32BitValues);
6203
6204 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
6205 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
6206 ID3D12GraphicsCommandList * This,
6207 _In_ UINT RootParameterIndex,
6208 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6209
6210 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
6211 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
6212 ID3D12GraphicsCommandList * This,
6213 _In_ UINT RootParameterIndex,
6214 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6215
6216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
6217 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
6218 ID3D12GraphicsCommandList * This,
6219 _In_ UINT RootParameterIndex,
6220 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6221
6222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
6223 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
6224 ID3D12GraphicsCommandList * This,
6225 _In_ UINT RootParameterIndex,
6226 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6227
6228 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
6229 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
6230 ID3D12GraphicsCommandList * This,
6231 _In_ UINT RootParameterIndex,
6232 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6233
6234 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
6235 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
6236 ID3D12GraphicsCommandList * This,
6237 _In_ UINT RootParameterIndex,
6238 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6239
6240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
6241 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
6242 ID3D12GraphicsCommandList * This,
6243 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
6244
6245 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
6246 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
6247 ID3D12GraphicsCommandList * This,
6248 _In_ UINT StartSlot,
6249 _In_ UINT NumViews,
6250 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
6251
6252 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
6253 void ( STDMETHODCALLTYPE *SOSetTargets )(
6254 ID3D12GraphicsCommandList * This,
6255 _In_ UINT StartSlot,
6256 _In_ UINT NumViews,
6257 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
6258
6259 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
6260 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
6261 ID3D12GraphicsCommandList * This,
6262 _In_ UINT NumRenderTargetDescriptors,
6263 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6264 _In_ BOOL RTsSingleHandleToDescriptorRange,
6265 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
6266
6267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
6268 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
6269 ID3D12GraphicsCommandList * This,
6270 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6271 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6272 _In_ FLOAT Depth,
6273 _In_ UINT8 Stencil,
6274 _In_ UINT NumRects,
6275 _In_reads_(NumRects) const D3D12_RECT *pRects);
6276
6277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
6278 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
6279 ID3D12GraphicsCommandList * This,
6280 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6281 _In_ const FLOAT ColorRGBA[ 4 ],
6282 _In_ UINT NumRects,
6283 _In_reads_(NumRects) const D3D12_RECT *pRects);
6284
6285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
6286 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
6287 ID3D12GraphicsCommandList * This,
6288 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6289 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6290 _In_ ID3D12Resource *pResource,
6291 _In_ const UINT Values[ 4 ],
6292 _In_ UINT NumRects,
6293 _In_reads_(NumRects) const D3D12_RECT *pRects);
6294
6295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
6296 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
6297 ID3D12GraphicsCommandList * This,
6298 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6299 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6300 _In_ ID3D12Resource *pResource,
6301 _In_ const FLOAT Values[ 4 ],
6302 _In_ UINT NumRects,
6303 _In_reads_(NumRects) const D3D12_RECT *pRects);
6304
6305 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
6306 void ( STDMETHODCALLTYPE *DiscardResource )(
6307 ID3D12GraphicsCommandList * This,
6308 _In_ ID3D12Resource *pResource,
6309 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
6310
6311 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
6312 void ( STDMETHODCALLTYPE *BeginQuery )(
6313 ID3D12GraphicsCommandList * This,
6314 _In_ ID3D12QueryHeap *pQueryHeap,
6315 _In_ D3D12_QUERY_TYPE Type,
6316 _In_ UINT Index);
6317
6318 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
6319 void ( STDMETHODCALLTYPE *EndQuery )(
6320 ID3D12GraphicsCommandList * This,
6321 _In_ ID3D12QueryHeap *pQueryHeap,
6322 _In_ D3D12_QUERY_TYPE Type,
6323 _In_ UINT Index);
6324
6325 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
6326 void ( STDMETHODCALLTYPE *ResolveQueryData )(
6327 ID3D12GraphicsCommandList * This,
6328 _In_ ID3D12QueryHeap *pQueryHeap,
6329 _In_ D3D12_QUERY_TYPE Type,
6330 _In_ UINT StartIndex,
6331 _In_ UINT NumQueries,
6332 _In_ ID3D12Resource *pDestinationBuffer,
6333 _In_ UINT64 AlignedDestinationBufferOffset);
6334
6335 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
6336 void ( STDMETHODCALLTYPE *SetPredication )(
6337 ID3D12GraphicsCommandList * This,
6338 _In_opt_ ID3D12Resource *pBuffer,
6339 _In_ UINT64 AlignedBufferOffset,
6340 _In_ D3D12_PREDICATION_OP Operation);
6341
6342 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
6343 void ( STDMETHODCALLTYPE *SetMarker )(
6344 ID3D12GraphicsCommandList * This,
6345 UINT Metadata,
6346 _In_reads_bytes_opt_(Size) const void *pData,
6347 UINT Size);
6348
6349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
6350 void ( STDMETHODCALLTYPE *BeginEvent )(
6351 ID3D12GraphicsCommandList * This,
6352 UINT Metadata,
6353 _In_reads_bytes_opt_(Size) const void *pData,
6354 UINT Size);
6355
6356 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
6357 void ( STDMETHODCALLTYPE *EndEvent )(
6358 ID3D12GraphicsCommandList * This);
6359
6360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
6361 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
6362 ID3D12GraphicsCommandList * This,
6363 _In_ ID3D12CommandSignature *pCommandSignature,
6364 _In_ UINT MaxCommandCount,
6365 _In_ ID3D12Resource *pArgumentBuffer,
6366 _In_ UINT64 ArgumentBufferOffset,
6367 _In_opt_ ID3D12Resource *pCountBuffer,
6368 _In_ UINT64 CountBufferOffset);
6369
6370 END_INTERFACE
6371 } ID3D12GraphicsCommandListVtbl;
6372
6373 interface ID3D12GraphicsCommandList
6374 {
6375 CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl;
6376 };
6377
6378
6379
6380#ifdef COBJMACROS
6381
6382
6383#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \
6384 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6385
6386#define ID3D12GraphicsCommandList_AddRef(This) \
6387 ( (This)->lpVtbl -> AddRef(This) )
6388
6389#define ID3D12GraphicsCommandList_Release(This) \
6390 ( (This)->lpVtbl -> Release(This) )
6391
6392
6393#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \
6394 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6395
6396#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \
6397 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6398
6399#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \
6400 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6401
6402#define ID3D12GraphicsCommandList_SetName(This,Name) \
6403 ( (This)->lpVtbl -> SetName(This,Name) )
6404
6405
6406#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \
6407 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6408
6409
6410#define ID3D12GraphicsCommandList_GetType(This) \
6411 ( (This)->lpVtbl -> GetType(This) )
6412
6413
6414#define ID3D12GraphicsCommandList_Close(This) \
6415 ( (This)->lpVtbl -> Close(This) )
6416
6417#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \
6418 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
6419
6420#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \
6421 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
6422
6423#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
6424 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
6425
6426#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
6427 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
6428
6429#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
6430 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
6431
6432#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
6433 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
6434
6435#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
6436 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
6437
6438#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \
6439 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
6440
6441#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
6442 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
6443
6444#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
6445 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
6446
6447#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \
6448 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
6449
6450#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \
6451 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
6452
6453#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \
6454 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
6455
6456#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \
6457 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
6458
6459#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \
6460 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
6461
6462#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \
6463 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
6464
6465#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
6466 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
6467
6468#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \
6469 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
6470
6471#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
6472 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
6473
6474#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \
6475 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
6476
6477#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \
6478 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
6479
6480#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
6481 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
6482
6483#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
6484 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
6485
6486#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
6487 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
6488
6489#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
6490 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
6491
6492#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
6493 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
6494
6495#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
6496 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
6497
6498#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
6499 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
6500
6501#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
6502 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
6503
6504#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
6505 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
6506
6507#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
6508 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
6509
6510#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
6511 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
6512
6513#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
6514 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
6515
6516#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \
6517 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
6518
6519#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
6520 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
6521
6522#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \
6523 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
6524
6525#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
6526 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
6527
6528#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
6529 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
6530
6531#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
6532 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
6533
6534#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
6535 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
6536
6537#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
6538 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
6539
6540#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \
6541 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
6542
6543#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
6544 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
6545
6546#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \
6547 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
6548
6549#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
6550 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
6551
6552#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
6553 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
6554
6555#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \
6556 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
6557
6558#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \
6559 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
6560
6561#define ID3D12GraphicsCommandList_EndEvent(This) \
6562 ( (This)->lpVtbl -> EndEvent(This) )
6563
6564#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
6565 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
6566
6567#endif /* COBJMACROS */
6568
6569
6570#endif /* C style interface */
6571
6572
6573
6574
6575#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
6576
6577
6578#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
6579#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
6580
6581/* interface ID3D12GraphicsCommandList1 */
6582/* [unique][local][object][uuid] */
6583
6584
6585EXTERN_C const IID IID_ID3D12GraphicsCommandList1;
6586
6587#if defined(__cplusplus) && !defined(CINTERFACE)
6588
6589 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
6590 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
6591 {
6592 public:
6593 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
6594 _In_ ID3D12Resource *pDstBuffer,
6595 UINT64 DstOffset,
6596 _In_ ID3D12Resource *pSrcBuffer,
6597 UINT64 SrcOffset,
6598 UINT Dependencies,
6599 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
6600 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
6601
6602 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
6603 _In_ ID3D12Resource *pDstBuffer,
6604 UINT64 DstOffset,
6605 _In_ ID3D12Resource *pSrcBuffer,
6606 UINT64 SrcOffset,
6607 UINT Dependencies,
6608 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
6609 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
6610
6611 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
6612 _In_ FLOAT Min,
6613 _In_ FLOAT Max) = 0;
6614
6615 virtual void STDMETHODCALLTYPE SetSamplePositions(
6616 _In_ UINT NumSamplesPerPixel,
6617 _In_ UINT NumPixels,
6618 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0;
6619
6620 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
6621 _In_ ID3D12Resource *pDstResource,
6622 _In_ UINT DstSubresource,
6623 _In_ UINT DstX,
6624 _In_ UINT DstY,
6625 _In_ ID3D12Resource *pSrcResource,
6626 _In_ UINT SrcSubresource,
6627 _In_opt_ D3D12_RECT *pSrcRect,
6628 _In_ DXGI_FORMAT Format,
6629 _In_ D3D12_RESOLVE_MODE ResolveMode) = 0;
6630
6631 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
6632 _In_ UINT Mask) = 0;
6633
6634 };
6635
6636
6637#else /* C style interface */
6638
6639 typedef struct ID3D12GraphicsCommandList1Vtbl
6640 {
6641 BEGIN_INTERFACE
6642
6643 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6644 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6645 ID3D12GraphicsCommandList1 * This,
6646 REFIID riid,
6647 _COM_Outptr_ void **ppvObject);
6648
6649 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6650 ULONG ( STDMETHODCALLTYPE *AddRef )(
6651 ID3D12GraphicsCommandList1 * This);
6652
6653 DECLSPEC_XFGVIRT(IUnknown, Release)
6654 ULONG ( STDMETHODCALLTYPE *Release )(
6655 ID3D12GraphicsCommandList1 * This);
6656
6657 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6658 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6659 ID3D12GraphicsCommandList1 * This,
6660 _In_ REFGUID guid,
6661 _Inout_ UINT *pDataSize,
6662 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6663
6664 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6665 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6666 ID3D12GraphicsCommandList1 * This,
6667 _In_ REFGUID guid,
6668 _In_ UINT DataSize,
6669 _In_reads_bytes_opt_( DataSize ) const void *pData);
6670
6671 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6672 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6673 ID3D12GraphicsCommandList1 * This,
6674 _In_ REFGUID guid,
6675 _In_opt_ const IUnknown *pData);
6676
6677 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6678 HRESULT ( STDMETHODCALLTYPE *SetName )(
6679 ID3D12GraphicsCommandList1 * This,
6680 _In_z_ LPCWSTR Name);
6681
6682 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6683 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6684 ID3D12GraphicsCommandList1 * This,
6685 REFIID riid,
6686 _COM_Outptr_opt_ void **ppvDevice);
6687
6688 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6689 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6690 ID3D12GraphicsCommandList1 * This);
6691
6692 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
6693 HRESULT ( STDMETHODCALLTYPE *Close )(
6694 ID3D12GraphicsCommandList1 * This);
6695
6696 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
6697 HRESULT ( STDMETHODCALLTYPE *Reset )(
6698 ID3D12GraphicsCommandList1 * This,
6699 _In_ ID3D12CommandAllocator *pAllocator,
6700 _In_opt_ ID3D12PipelineState *pInitialState);
6701
6702 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
6703 void ( STDMETHODCALLTYPE *ClearState )(
6704 ID3D12GraphicsCommandList1 * This,
6705 _In_opt_ ID3D12PipelineState *pPipelineState);
6706
6707 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
6708 void ( STDMETHODCALLTYPE *DrawInstanced )(
6709 ID3D12GraphicsCommandList1 * This,
6710 _In_ UINT VertexCountPerInstance,
6711 _In_ UINT InstanceCount,
6712 _In_ UINT StartVertexLocation,
6713 _In_ UINT StartInstanceLocation);
6714
6715 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
6716 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
6717 ID3D12GraphicsCommandList1 * This,
6718 _In_ UINT IndexCountPerInstance,
6719 _In_ UINT InstanceCount,
6720 _In_ UINT StartIndexLocation,
6721 _In_ INT BaseVertexLocation,
6722 _In_ UINT StartInstanceLocation);
6723
6724 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
6725 void ( STDMETHODCALLTYPE *Dispatch )(
6726 ID3D12GraphicsCommandList1 * This,
6727 _In_ UINT ThreadGroupCountX,
6728 _In_ UINT ThreadGroupCountY,
6729 _In_ UINT ThreadGroupCountZ);
6730
6731 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
6732 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
6733 ID3D12GraphicsCommandList1 * This,
6734 _In_ ID3D12Resource *pDstBuffer,
6735 UINT64 DstOffset,
6736 _In_ ID3D12Resource *pSrcBuffer,
6737 UINT64 SrcOffset,
6738 UINT64 NumBytes);
6739
6740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
6741 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
6742 ID3D12GraphicsCommandList1 * This,
6743 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6744 UINT DstX,
6745 UINT DstY,
6746 UINT DstZ,
6747 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6748 _In_opt_ const D3D12_BOX *pSrcBox);
6749
6750 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
6751 void ( STDMETHODCALLTYPE *CopyResource )(
6752 ID3D12GraphicsCommandList1 * This,
6753 _In_ ID3D12Resource *pDstResource,
6754 _In_ ID3D12Resource *pSrcResource);
6755
6756 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
6757 void ( STDMETHODCALLTYPE *CopyTiles )(
6758 ID3D12GraphicsCommandList1 * This,
6759 _In_ ID3D12Resource *pTiledResource,
6760 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6761 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6762 _In_ ID3D12Resource *pBuffer,
6763 UINT64 BufferStartOffsetInBytes,
6764 D3D12_TILE_COPY_FLAGS Flags);
6765
6766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
6767 void ( STDMETHODCALLTYPE *ResolveSubresource )(
6768 ID3D12GraphicsCommandList1 * This,
6769 _In_ ID3D12Resource *pDstResource,
6770 _In_ UINT DstSubresource,
6771 _In_ ID3D12Resource *pSrcResource,
6772 _In_ UINT SrcSubresource,
6773 _In_ DXGI_FORMAT Format);
6774
6775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
6776 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
6777 ID3D12GraphicsCommandList1 * This,
6778 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
6779
6780 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
6781 void ( STDMETHODCALLTYPE *RSSetViewports )(
6782 ID3D12GraphicsCommandList1 * This,
6783 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6784 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
6785
6786 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
6787 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
6788 ID3D12GraphicsCommandList1 * This,
6789 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6790 _In_reads_( NumRects) const D3D12_RECT *pRects);
6791
6792 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
6793 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
6794 ID3D12GraphicsCommandList1 * This,
6795 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
6796
6797 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
6798 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
6799 ID3D12GraphicsCommandList1 * This,
6800 _In_ UINT StencilRef);
6801
6802 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
6803 void ( STDMETHODCALLTYPE *SetPipelineState )(
6804 ID3D12GraphicsCommandList1 * This,
6805 _In_ ID3D12PipelineState *pPipelineState);
6806
6807 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
6808 void ( STDMETHODCALLTYPE *ResourceBarrier )(
6809 ID3D12GraphicsCommandList1 * This,
6810 _In_ UINT NumBarriers,
6811 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6812
6813 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
6814 void ( STDMETHODCALLTYPE *ExecuteBundle )(
6815 ID3D12GraphicsCommandList1 * This,
6816 _In_ ID3D12GraphicsCommandList *pCommandList);
6817
6818 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
6819 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
6820 ID3D12GraphicsCommandList1 * This,
6821 _In_ UINT NumDescriptorHeaps,
6822 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
6823
6824 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
6825 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
6826 ID3D12GraphicsCommandList1 * This,
6827 _In_opt_ ID3D12RootSignature *pRootSignature);
6828
6829 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
6830 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
6831 ID3D12GraphicsCommandList1 * This,
6832 _In_opt_ ID3D12RootSignature *pRootSignature);
6833
6834 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
6835 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
6836 ID3D12GraphicsCommandList1 * This,
6837 _In_ UINT RootParameterIndex,
6838 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6839
6840 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
6841 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
6842 ID3D12GraphicsCommandList1 * This,
6843 _In_ UINT RootParameterIndex,
6844 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6845
6846 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
6847 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
6848 ID3D12GraphicsCommandList1 * This,
6849 _In_ UINT RootParameterIndex,
6850 _In_ UINT SrcData,
6851 _In_ UINT DestOffsetIn32BitValues);
6852
6853 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
6854 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
6855 ID3D12GraphicsCommandList1 * This,
6856 _In_ UINT RootParameterIndex,
6857 _In_ UINT SrcData,
6858 _In_ UINT DestOffsetIn32BitValues);
6859
6860 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
6861 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
6862 ID3D12GraphicsCommandList1 * This,
6863 _In_ UINT RootParameterIndex,
6864 _In_ UINT Num32BitValuesToSet,
6865 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6866 _In_ UINT DestOffsetIn32BitValues);
6867
6868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
6869 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
6870 ID3D12GraphicsCommandList1 * This,
6871 _In_ UINT RootParameterIndex,
6872 _In_ UINT Num32BitValuesToSet,
6873 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6874 _In_ UINT DestOffsetIn32BitValues);
6875
6876 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
6877 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
6878 ID3D12GraphicsCommandList1 * This,
6879 _In_ UINT RootParameterIndex,
6880 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6881
6882 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
6883 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
6884 ID3D12GraphicsCommandList1 * This,
6885 _In_ UINT RootParameterIndex,
6886 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6887
6888 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
6889 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
6890 ID3D12GraphicsCommandList1 * This,
6891 _In_ UINT RootParameterIndex,
6892 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6893
6894 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
6895 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
6896 ID3D12GraphicsCommandList1 * This,
6897 _In_ UINT RootParameterIndex,
6898 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6899
6900 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
6901 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
6902 ID3D12GraphicsCommandList1 * This,
6903 _In_ UINT RootParameterIndex,
6904 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6905
6906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
6907 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
6908 ID3D12GraphicsCommandList1 * This,
6909 _In_ UINT RootParameterIndex,
6910 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6911
6912 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
6913 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
6914 ID3D12GraphicsCommandList1 * This,
6915 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
6916
6917 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
6918 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
6919 ID3D12GraphicsCommandList1 * This,
6920 _In_ UINT StartSlot,
6921 _In_ UINT NumViews,
6922 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
6923
6924 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
6925 void ( STDMETHODCALLTYPE *SOSetTargets )(
6926 ID3D12GraphicsCommandList1 * This,
6927 _In_ UINT StartSlot,
6928 _In_ UINT NumViews,
6929 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
6930
6931 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
6932 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
6933 ID3D12GraphicsCommandList1 * This,
6934 _In_ UINT NumRenderTargetDescriptors,
6935 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6936 _In_ BOOL RTsSingleHandleToDescriptorRange,
6937 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
6938
6939 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
6940 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
6941 ID3D12GraphicsCommandList1 * This,
6942 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6943 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6944 _In_ FLOAT Depth,
6945 _In_ UINT8 Stencil,
6946 _In_ UINT NumRects,
6947 _In_reads_(NumRects) const D3D12_RECT *pRects);
6948
6949 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
6950 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
6951 ID3D12GraphicsCommandList1 * This,
6952 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6953 _In_ const FLOAT ColorRGBA[ 4 ],
6954 _In_ UINT NumRects,
6955 _In_reads_(NumRects) const D3D12_RECT *pRects);
6956
6957 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
6958 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
6959 ID3D12GraphicsCommandList1 * This,
6960 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6961 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6962 _In_ ID3D12Resource *pResource,
6963 _In_ const UINT Values[ 4 ],
6964 _In_ UINT NumRects,
6965 _In_reads_(NumRects) const D3D12_RECT *pRects);
6966
6967 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
6968 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
6969 ID3D12GraphicsCommandList1 * This,
6970 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6971 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6972 _In_ ID3D12Resource *pResource,
6973 _In_ const FLOAT Values[ 4 ],
6974 _In_ UINT NumRects,
6975 _In_reads_(NumRects) const D3D12_RECT *pRects);
6976
6977 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
6978 void ( STDMETHODCALLTYPE *DiscardResource )(
6979 ID3D12GraphicsCommandList1 * This,
6980 _In_ ID3D12Resource *pResource,
6981 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
6982
6983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
6984 void ( STDMETHODCALLTYPE *BeginQuery )(
6985 ID3D12GraphicsCommandList1 * This,
6986 _In_ ID3D12QueryHeap *pQueryHeap,
6987 _In_ D3D12_QUERY_TYPE Type,
6988 _In_ UINT Index);
6989
6990 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
6991 void ( STDMETHODCALLTYPE *EndQuery )(
6992 ID3D12GraphicsCommandList1 * This,
6993 _In_ ID3D12QueryHeap *pQueryHeap,
6994 _In_ D3D12_QUERY_TYPE Type,
6995 _In_ UINT Index);
6996
6997 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
6998 void ( STDMETHODCALLTYPE *ResolveQueryData )(
6999 ID3D12GraphicsCommandList1 * This,
7000 _In_ ID3D12QueryHeap *pQueryHeap,
7001 _In_ D3D12_QUERY_TYPE Type,
7002 _In_ UINT StartIndex,
7003 _In_ UINT NumQueries,
7004 _In_ ID3D12Resource *pDestinationBuffer,
7005 _In_ UINT64 AlignedDestinationBufferOffset);
7006
7007 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7008 void ( STDMETHODCALLTYPE *SetPredication )(
7009 ID3D12GraphicsCommandList1 * This,
7010 _In_opt_ ID3D12Resource *pBuffer,
7011 _In_ UINT64 AlignedBufferOffset,
7012 _In_ D3D12_PREDICATION_OP Operation);
7013
7014 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7015 void ( STDMETHODCALLTYPE *SetMarker )(
7016 ID3D12GraphicsCommandList1 * This,
7017 UINT Metadata,
7018 _In_reads_bytes_opt_(Size) const void *pData,
7019 UINT Size);
7020
7021 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7022 void ( STDMETHODCALLTYPE *BeginEvent )(
7023 ID3D12GraphicsCommandList1 * This,
7024 UINT Metadata,
7025 _In_reads_bytes_opt_(Size) const void *pData,
7026 UINT Size);
7027
7028 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7029 void ( STDMETHODCALLTYPE *EndEvent )(
7030 ID3D12GraphicsCommandList1 * This);
7031
7032 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7033 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7034 ID3D12GraphicsCommandList1 * This,
7035 _In_ ID3D12CommandSignature *pCommandSignature,
7036 _In_ UINT MaxCommandCount,
7037 _In_ ID3D12Resource *pArgumentBuffer,
7038 _In_ UINT64 ArgumentBufferOffset,
7039 _In_opt_ ID3D12Resource *pCountBuffer,
7040 _In_ UINT64 CountBufferOffset);
7041
7042 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
7043 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
7044 ID3D12GraphicsCommandList1 * This,
7045 _In_ ID3D12Resource *pDstBuffer,
7046 UINT64 DstOffset,
7047 _In_ ID3D12Resource *pSrcBuffer,
7048 UINT64 SrcOffset,
7049 UINT Dependencies,
7050 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7051 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7052
7053 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
7054 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
7055 ID3D12GraphicsCommandList1 * This,
7056 _In_ ID3D12Resource *pDstBuffer,
7057 UINT64 DstOffset,
7058 _In_ ID3D12Resource *pSrcBuffer,
7059 UINT64 SrcOffset,
7060 UINT Dependencies,
7061 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7062 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7063
7064 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
7065 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
7066 ID3D12GraphicsCommandList1 * This,
7067 _In_ FLOAT Min,
7068 _In_ FLOAT Max);
7069
7070 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
7071 void ( STDMETHODCALLTYPE *SetSamplePositions )(
7072 ID3D12GraphicsCommandList1 * This,
7073 _In_ UINT NumSamplesPerPixel,
7074 _In_ UINT NumPixels,
7075 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
7076
7077 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
7078 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
7079 ID3D12GraphicsCommandList1 * This,
7080 _In_ ID3D12Resource *pDstResource,
7081 _In_ UINT DstSubresource,
7082 _In_ UINT DstX,
7083 _In_ UINT DstY,
7084 _In_ ID3D12Resource *pSrcResource,
7085 _In_ UINT SrcSubresource,
7086 _In_opt_ D3D12_RECT *pSrcRect,
7087 _In_ DXGI_FORMAT Format,
7088 _In_ D3D12_RESOLVE_MODE ResolveMode);
7089
7090 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
7091 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
7092 ID3D12GraphicsCommandList1 * This,
7093 _In_ UINT Mask);
7094
7095 END_INTERFACE
7096 } ID3D12GraphicsCommandList1Vtbl;
7097
7098 interface ID3D12GraphicsCommandList1
7099 {
7100 CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl;
7101 };
7102
7103
7104
7105#ifdef COBJMACROS
7106
7107
7108#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \
7109 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7110
7111#define ID3D12GraphicsCommandList1_AddRef(This) \
7112 ( (This)->lpVtbl -> AddRef(This) )
7113
7114#define ID3D12GraphicsCommandList1_Release(This) \
7115 ( (This)->lpVtbl -> Release(This) )
7116
7117
7118#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
7119 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7120
7121#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \
7122 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7123
7124#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \
7125 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7126
7127#define ID3D12GraphicsCommandList1_SetName(This,Name) \
7128 ( (This)->lpVtbl -> SetName(This,Name) )
7129
7130
7131#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \
7132 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7133
7134
7135#define ID3D12GraphicsCommandList1_GetType(This) \
7136 ( (This)->lpVtbl -> GetType(This) )
7137
7138
7139#define ID3D12GraphicsCommandList1_Close(This) \
7140 ( (This)->lpVtbl -> Close(This) )
7141
7142#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \
7143 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7144
7145#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \
7146 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7147
7148#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7149 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7150
7151#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7152 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7153
7154#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7155 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7156
7157#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7158 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7159
7160#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
7161 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
7162
7163#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \
7164 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
7165
7166#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
7167 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
7168
7169#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
7170 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
7171
7172#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \
7173 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
7174
7175#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \
7176 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
7177
7178#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \
7179 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7180
7181#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \
7182 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7183
7184#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \
7185 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7186
7187#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \
7188 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7189
7190#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
7191 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7192
7193#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \
7194 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7195
7196#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7197 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7198
7199#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \
7200 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7201
7202#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \
7203 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7204
7205#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7206 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7207
7208#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7209 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7210
7211#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7212 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7213
7214#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7215 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7216
7217#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7218 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7219
7220#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7221 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7222
7223#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7224 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7225
7226#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7227 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7228
7229#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7230 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7231
7232#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7233 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7234
7235#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7236 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7237
7238#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7239 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7240
7241#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \
7242 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7243
7244#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7245 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7246
7247#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \
7248 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7249
7250#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7251 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7252
7253#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7254 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7255
7256#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7257 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7258
7259#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7260 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7261
7262#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7263 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7264
7265#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \
7266 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
7267
7268#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
7269 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
7270
7271#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
7272 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
7273
7274#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
7275 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
7276
7277#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
7278 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
7279
7280#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \
7281 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
7282
7283#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \
7284 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
7285
7286#define ID3D12GraphicsCommandList1_EndEvent(This) \
7287 ( (This)->lpVtbl -> EndEvent(This) )
7288
7289#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
7290 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
7291
7292
7293#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
7294 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
7295
7296#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
7297 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
7298
7299#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \
7300 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
7301
7302#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
7303 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
7304
7305#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
7306 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
7307
7308#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \
7309 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
7310
7311#endif /* COBJMACROS */
7312
7313
7314#endif /* C style interface */
7315
7316
7317
7318
7319#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
7320
7321
7322/* interface __MIDL_itf_d3d12_0000_0018 */
7323/* [local] */
7324
7325typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
7326 {
7327 D3D12_GPU_VIRTUAL_ADDRESS Dest;
7328 UINT32 Value;
7329 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
7330
7331typedef
7332enum D3D12_WRITEBUFFERIMMEDIATE_MODE
7333 {
7334 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0,
7335 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
7336 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
7337 } D3D12_WRITEBUFFERIMMEDIATE_MODE;
7338
7339
7340
7341extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec;
7342extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec;
7343
7344#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
7345#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
7346
7347/* interface ID3D12GraphicsCommandList2 */
7348/* [unique][local][object][uuid] */
7349
7350
7351EXTERN_C const IID IID_ID3D12GraphicsCommandList2;
7352
7353#if defined(__cplusplus) && !defined(CINTERFACE)
7354
7355 MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28")
7356 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
7357 {
7358 public:
7359 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
7360 UINT Count,
7361 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
7362 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
7363
7364 };
7365
7366
7367#else /* C style interface */
7368
7369 typedef struct ID3D12GraphicsCommandList2Vtbl
7370 {
7371 BEGIN_INTERFACE
7372
7373 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7374 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7375 ID3D12GraphicsCommandList2 * This,
7376 REFIID riid,
7377 _COM_Outptr_ void **ppvObject);
7378
7379 DECLSPEC_XFGVIRT(IUnknown, AddRef)
7380 ULONG ( STDMETHODCALLTYPE *AddRef )(
7381 ID3D12GraphicsCommandList2 * This);
7382
7383 DECLSPEC_XFGVIRT(IUnknown, Release)
7384 ULONG ( STDMETHODCALLTYPE *Release )(
7385 ID3D12GraphicsCommandList2 * This);
7386
7387 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7388 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7389 ID3D12GraphicsCommandList2 * This,
7390 _In_ REFGUID guid,
7391 _Inout_ UINT *pDataSize,
7392 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
7393
7394 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7395 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7396 ID3D12GraphicsCommandList2 * This,
7397 _In_ REFGUID guid,
7398 _In_ UINT DataSize,
7399 _In_reads_bytes_opt_( DataSize ) const void *pData);
7400
7401 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7402 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7403 ID3D12GraphicsCommandList2 * This,
7404 _In_ REFGUID guid,
7405 _In_opt_ const IUnknown *pData);
7406
7407 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7408 HRESULT ( STDMETHODCALLTYPE *SetName )(
7409 ID3D12GraphicsCommandList2 * This,
7410 _In_z_ LPCWSTR Name);
7411
7412 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7413 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7414 ID3D12GraphicsCommandList2 * This,
7415 REFIID riid,
7416 _COM_Outptr_opt_ void **ppvDevice);
7417
7418 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
7419 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
7420 ID3D12GraphicsCommandList2 * This);
7421
7422 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
7423 HRESULT ( STDMETHODCALLTYPE *Close )(
7424 ID3D12GraphicsCommandList2 * This);
7425
7426 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
7427 HRESULT ( STDMETHODCALLTYPE *Reset )(
7428 ID3D12GraphicsCommandList2 * This,
7429 _In_ ID3D12CommandAllocator *pAllocator,
7430 _In_opt_ ID3D12PipelineState *pInitialState);
7431
7432 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
7433 void ( STDMETHODCALLTYPE *ClearState )(
7434 ID3D12GraphicsCommandList2 * This,
7435 _In_opt_ ID3D12PipelineState *pPipelineState);
7436
7437 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
7438 void ( STDMETHODCALLTYPE *DrawInstanced )(
7439 ID3D12GraphicsCommandList2 * This,
7440 _In_ UINT VertexCountPerInstance,
7441 _In_ UINT InstanceCount,
7442 _In_ UINT StartVertexLocation,
7443 _In_ UINT StartInstanceLocation);
7444
7445 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
7446 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
7447 ID3D12GraphicsCommandList2 * This,
7448 _In_ UINT IndexCountPerInstance,
7449 _In_ UINT InstanceCount,
7450 _In_ UINT StartIndexLocation,
7451 _In_ INT BaseVertexLocation,
7452 _In_ UINT StartInstanceLocation);
7453
7454 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
7455 void ( STDMETHODCALLTYPE *Dispatch )(
7456 ID3D12GraphicsCommandList2 * This,
7457 _In_ UINT ThreadGroupCountX,
7458 _In_ UINT ThreadGroupCountY,
7459 _In_ UINT ThreadGroupCountZ);
7460
7461 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
7462 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
7463 ID3D12GraphicsCommandList2 * This,
7464 _In_ ID3D12Resource *pDstBuffer,
7465 UINT64 DstOffset,
7466 _In_ ID3D12Resource *pSrcBuffer,
7467 UINT64 SrcOffset,
7468 UINT64 NumBytes);
7469
7470 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
7471 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
7472 ID3D12GraphicsCommandList2 * This,
7473 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
7474 UINT DstX,
7475 UINT DstY,
7476 UINT DstZ,
7477 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
7478 _In_opt_ const D3D12_BOX *pSrcBox);
7479
7480 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
7481 void ( STDMETHODCALLTYPE *CopyResource )(
7482 ID3D12GraphicsCommandList2 * This,
7483 _In_ ID3D12Resource *pDstResource,
7484 _In_ ID3D12Resource *pSrcResource);
7485
7486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
7487 void ( STDMETHODCALLTYPE *CopyTiles )(
7488 ID3D12GraphicsCommandList2 * This,
7489 _In_ ID3D12Resource *pTiledResource,
7490 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
7491 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
7492 _In_ ID3D12Resource *pBuffer,
7493 UINT64 BufferStartOffsetInBytes,
7494 D3D12_TILE_COPY_FLAGS Flags);
7495
7496 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
7497 void ( STDMETHODCALLTYPE *ResolveSubresource )(
7498 ID3D12GraphicsCommandList2 * This,
7499 _In_ ID3D12Resource *pDstResource,
7500 _In_ UINT DstSubresource,
7501 _In_ ID3D12Resource *pSrcResource,
7502 _In_ UINT SrcSubresource,
7503 _In_ DXGI_FORMAT Format);
7504
7505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
7506 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
7507 ID3D12GraphicsCommandList2 * This,
7508 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
7509
7510 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
7511 void ( STDMETHODCALLTYPE *RSSetViewports )(
7512 ID3D12GraphicsCommandList2 * This,
7513 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
7514 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
7515
7516 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
7517 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
7518 ID3D12GraphicsCommandList2 * This,
7519 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
7520 _In_reads_( NumRects) const D3D12_RECT *pRects);
7521
7522 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
7523 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
7524 ID3D12GraphicsCommandList2 * This,
7525 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
7526
7527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
7528 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
7529 ID3D12GraphicsCommandList2 * This,
7530 _In_ UINT StencilRef);
7531
7532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
7533 void ( STDMETHODCALLTYPE *SetPipelineState )(
7534 ID3D12GraphicsCommandList2 * This,
7535 _In_ ID3D12PipelineState *pPipelineState);
7536
7537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
7538 void ( STDMETHODCALLTYPE *ResourceBarrier )(
7539 ID3D12GraphicsCommandList2 * This,
7540 _In_ UINT NumBarriers,
7541 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
7542
7543 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
7544 void ( STDMETHODCALLTYPE *ExecuteBundle )(
7545 ID3D12GraphicsCommandList2 * This,
7546 _In_ ID3D12GraphicsCommandList *pCommandList);
7547
7548 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
7549 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
7550 ID3D12GraphicsCommandList2 * This,
7551 _In_ UINT NumDescriptorHeaps,
7552 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
7553
7554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
7555 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
7556 ID3D12GraphicsCommandList2 * This,
7557 _In_opt_ ID3D12RootSignature *pRootSignature);
7558
7559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
7560 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
7561 ID3D12GraphicsCommandList2 * This,
7562 _In_opt_ ID3D12RootSignature *pRootSignature);
7563
7564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7565 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7566 ID3D12GraphicsCommandList2 * This,
7567 _In_ UINT RootParameterIndex,
7568 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7569
7570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7571 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7572 ID3D12GraphicsCommandList2 * This,
7573 _In_ UINT RootParameterIndex,
7574 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7575
7576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7577 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7578 ID3D12GraphicsCommandList2 * This,
7579 _In_ UINT RootParameterIndex,
7580 _In_ UINT SrcData,
7581 _In_ UINT DestOffsetIn32BitValues);
7582
7583 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7584 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7585 ID3D12GraphicsCommandList2 * This,
7586 _In_ UINT RootParameterIndex,
7587 _In_ UINT SrcData,
7588 _In_ UINT DestOffsetIn32BitValues);
7589
7590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7591 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7592 ID3D12GraphicsCommandList2 * This,
7593 _In_ UINT RootParameterIndex,
7594 _In_ UINT Num32BitValuesToSet,
7595 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7596 _In_ UINT DestOffsetIn32BitValues);
7597
7598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7599 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7600 ID3D12GraphicsCommandList2 * This,
7601 _In_ UINT RootParameterIndex,
7602 _In_ UINT Num32BitValuesToSet,
7603 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7604 _In_ UINT DestOffsetIn32BitValues);
7605
7606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7607 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7608 ID3D12GraphicsCommandList2 * This,
7609 _In_ UINT RootParameterIndex,
7610 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7611
7612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7613 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7614 ID3D12GraphicsCommandList2 * This,
7615 _In_ UINT RootParameterIndex,
7616 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7617
7618 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7619 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7620 ID3D12GraphicsCommandList2 * This,
7621 _In_ UINT RootParameterIndex,
7622 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7623
7624 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7625 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7626 ID3D12GraphicsCommandList2 * This,
7627 _In_ UINT RootParameterIndex,
7628 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7629
7630 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7631 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7632 ID3D12GraphicsCommandList2 * This,
7633 _In_ UINT RootParameterIndex,
7634 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7635
7636 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7637 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7638 ID3D12GraphicsCommandList2 * This,
7639 _In_ UINT RootParameterIndex,
7640 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7641
7642 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7643 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7644 ID3D12GraphicsCommandList2 * This,
7645 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7646
7647 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7648 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7649 ID3D12GraphicsCommandList2 * This,
7650 _In_ UINT StartSlot,
7651 _In_ UINT NumViews,
7652 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7653
7654 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7655 void ( STDMETHODCALLTYPE *SOSetTargets )(
7656 ID3D12GraphicsCommandList2 * This,
7657 _In_ UINT StartSlot,
7658 _In_ UINT NumViews,
7659 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7660
7661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7662 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7663 ID3D12GraphicsCommandList2 * This,
7664 _In_ UINT NumRenderTargetDescriptors,
7665 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7666 _In_ BOOL RTsSingleHandleToDescriptorRange,
7667 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7668
7669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7670 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7671 ID3D12GraphicsCommandList2 * This,
7672 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7673 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7674 _In_ FLOAT Depth,
7675 _In_ UINT8 Stencil,
7676 _In_ UINT NumRects,
7677 _In_reads_(NumRects) const D3D12_RECT *pRects);
7678
7679 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7680 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7681 ID3D12GraphicsCommandList2 * This,
7682 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7683 _In_ const FLOAT ColorRGBA[ 4 ],
7684 _In_ UINT NumRects,
7685 _In_reads_(NumRects) const D3D12_RECT *pRects);
7686
7687 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7688 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7689 ID3D12GraphicsCommandList2 * This,
7690 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7691 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7692 _In_ ID3D12Resource *pResource,
7693 _In_ const UINT Values[ 4 ],
7694 _In_ UINT NumRects,
7695 _In_reads_(NumRects) const D3D12_RECT *pRects);
7696
7697 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7698 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7699 ID3D12GraphicsCommandList2 * This,
7700 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7701 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7702 _In_ ID3D12Resource *pResource,
7703 _In_ const FLOAT Values[ 4 ],
7704 _In_ UINT NumRects,
7705 _In_reads_(NumRects) const D3D12_RECT *pRects);
7706
7707 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7708 void ( STDMETHODCALLTYPE *DiscardResource )(
7709 ID3D12GraphicsCommandList2 * This,
7710 _In_ ID3D12Resource *pResource,
7711 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7712
7713 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7714 void ( STDMETHODCALLTYPE *BeginQuery )(
7715 ID3D12GraphicsCommandList2 * This,
7716 _In_ ID3D12QueryHeap *pQueryHeap,
7717 _In_ D3D12_QUERY_TYPE Type,
7718 _In_ UINT Index);
7719
7720 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7721 void ( STDMETHODCALLTYPE *EndQuery )(
7722 ID3D12GraphicsCommandList2 * This,
7723 _In_ ID3D12QueryHeap *pQueryHeap,
7724 _In_ D3D12_QUERY_TYPE Type,
7725 _In_ UINT Index);
7726
7727 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7728 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7729 ID3D12GraphicsCommandList2 * This,
7730 _In_ ID3D12QueryHeap *pQueryHeap,
7731 _In_ D3D12_QUERY_TYPE Type,
7732 _In_ UINT StartIndex,
7733 _In_ UINT NumQueries,
7734 _In_ ID3D12Resource *pDestinationBuffer,
7735 _In_ UINT64 AlignedDestinationBufferOffset);
7736
7737 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7738 void ( STDMETHODCALLTYPE *SetPredication )(
7739 ID3D12GraphicsCommandList2 * This,
7740 _In_opt_ ID3D12Resource *pBuffer,
7741 _In_ UINT64 AlignedBufferOffset,
7742 _In_ D3D12_PREDICATION_OP Operation);
7743
7744 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7745 void ( STDMETHODCALLTYPE *SetMarker )(
7746 ID3D12GraphicsCommandList2 * This,
7747 UINT Metadata,
7748 _In_reads_bytes_opt_(Size) const void *pData,
7749 UINT Size);
7750
7751 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7752 void ( STDMETHODCALLTYPE *BeginEvent )(
7753 ID3D12GraphicsCommandList2 * This,
7754 UINT Metadata,
7755 _In_reads_bytes_opt_(Size) const void *pData,
7756 UINT Size);
7757
7758 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7759 void ( STDMETHODCALLTYPE *EndEvent )(
7760 ID3D12GraphicsCommandList2 * This);
7761
7762 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7763 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7764 ID3D12GraphicsCommandList2 * This,
7765 _In_ ID3D12CommandSignature *pCommandSignature,
7766 _In_ UINT MaxCommandCount,
7767 _In_ ID3D12Resource *pArgumentBuffer,
7768 _In_ UINT64 ArgumentBufferOffset,
7769 _In_opt_ ID3D12Resource *pCountBuffer,
7770 _In_ UINT64 CountBufferOffset);
7771
7772 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
7773 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
7774 ID3D12GraphicsCommandList2 * This,
7775 _In_ ID3D12Resource *pDstBuffer,
7776 UINT64 DstOffset,
7777 _In_ ID3D12Resource *pSrcBuffer,
7778 UINT64 SrcOffset,
7779 UINT Dependencies,
7780 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7781 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7782
7783 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
7784 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
7785 ID3D12GraphicsCommandList2 * This,
7786 _In_ ID3D12Resource *pDstBuffer,
7787 UINT64 DstOffset,
7788 _In_ ID3D12Resource *pSrcBuffer,
7789 UINT64 SrcOffset,
7790 UINT Dependencies,
7791 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7792 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7793
7794 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
7795 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
7796 ID3D12GraphicsCommandList2 * This,
7797 _In_ FLOAT Min,
7798 _In_ FLOAT Max);
7799
7800 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
7801 void ( STDMETHODCALLTYPE *SetSamplePositions )(
7802 ID3D12GraphicsCommandList2 * This,
7803 _In_ UINT NumSamplesPerPixel,
7804 _In_ UINT NumPixels,
7805 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
7806
7807 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
7808 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
7809 ID3D12GraphicsCommandList2 * This,
7810 _In_ ID3D12Resource *pDstResource,
7811 _In_ UINT DstSubresource,
7812 _In_ UINT DstX,
7813 _In_ UINT DstY,
7814 _In_ ID3D12Resource *pSrcResource,
7815 _In_ UINT SrcSubresource,
7816 _In_opt_ D3D12_RECT *pSrcRect,
7817 _In_ DXGI_FORMAT Format,
7818 _In_ D3D12_RESOLVE_MODE ResolveMode);
7819
7820 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
7821 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
7822 ID3D12GraphicsCommandList2 * This,
7823 _In_ UINT Mask);
7824
7825 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
7826 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
7827 ID3D12GraphicsCommandList2 * This,
7828 UINT Count,
7829 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
7830 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
7831
7832 END_INTERFACE
7833 } ID3D12GraphicsCommandList2Vtbl;
7834
7835 interface ID3D12GraphicsCommandList2
7836 {
7837 CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl;
7838 };
7839
7840
7841
7842#ifdef COBJMACROS
7843
7844
7845#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \
7846 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7847
7848#define ID3D12GraphicsCommandList2_AddRef(This) \
7849 ( (This)->lpVtbl -> AddRef(This) )
7850
7851#define ID3D12GraphicsCommandList2_Release(This) \
7852 ( (This)->lpVtbl -> Release(This) )
7853
7854
7855#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
7856 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7857
7858#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \
7859 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7860
7861#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \
7862 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7863
7864#define ID3D12GraphicsCommandList2_SetName(This,Name) \
7865 ( (This)->lpVtbl -> SetName(This,Name) )
7866
7867
7868#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \
7869 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7870
7871
7872#define ID3D12GraphicsCommandList2_GetType(This) \
7873 ( (This)->lpVtbl -> GetType(This) )
7874
7875
7876#define ID3D12GraphicsCommandList2_Close(This) \
7877 ( (This)->lpVtbl -> Close(This) )
7878
7879#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \
7880 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7881
7882#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \
7883 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7884
7885#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7886 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7887
7888#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7889 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7890
7891#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7892 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7893
7894#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7895 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7896
7897#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
7898 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
7899
7900#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \
7901 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
7902
7903#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
7904 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
7905
7906#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
7907 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
7908
7909#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \
7910 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
7911
7912#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \
7913 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
7914
7915#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \
7916 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7917
7918#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \
7919 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7920
7921#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \
7922 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7923
7924#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \
7925 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7926
7927#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
7928 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7929
7930#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \
7931 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7932
7933#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7934 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7935
7936#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \
7937 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7938
7939#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \
7940 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7941
7942#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7943 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7944
7945#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7946 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7947
7948#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7949 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7950
7951#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7952 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7953
7954#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7955 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7956
7957#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7958 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7959
7960#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7961 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7962
7963#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7964 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7965
7966#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7967 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7968
7969#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7970 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7971
7972#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7973 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7974
7975#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7976 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7977
7978#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \
7979 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7980
7981#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7982 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7983
7984#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \
7985 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7986
7987#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7988 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7989
7990#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7991 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7992
7993#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7994 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7995
7996#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7997 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7998
7999#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8000 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8001
8002#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \
8003 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8004
8005#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
8006 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8007
8008#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
8009 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8010
8011#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8012 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8013
8014#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8015 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8016
8017#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \
8018 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8019
8020#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \
8021 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8022
8023#define ID3D12GraphicsCommandList2_EndEvent(This) \
8024 ( (This)->lpVtbl -> EndEvent(This) )
8025
8026#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8027 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8028
8029
8030#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8031 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8032
8033#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8034 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8035
8036#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \
8037 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8038
8039#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8040 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8041
8042#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8043 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8044
8045#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \
8046 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8047
8048
8049#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
8050 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
8051
8052#endif /* COBJMACROS */
8053
8054
8055#endif /* C style interface */
8056
8057
8058
8059
8060#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
8061
8062
8063#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
8064#define __ID3D12CommandQueue_INTERFACE_DEFINED__
8065
8066/* interface ID3D12CommandQueue */
8067/* [unique][local][object][uuid] */
8068
8069
8070EXTERN_C const IID IID_ID3D12CommandQueue;
8071
8072#if defined(__cplusplus) && !defined(CINTERFACE)
8073
8074 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
8075 ID3D12CommandQueue : public ID3D12Pageable
8076 {
8077 public:
8078 virtual void STDMETHODCALLTYPE UpdateTileMappings(
8079 _In_ ID3D12Resource *pResource,
8080 UINT NumResourceRegions,
8081 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8082 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8083 _In_opt_ ID3D12Heap *pHeap,
8084 UINT NumRanges,
8085 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8086 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8087 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8088 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8089
8090 virtual void STDMETHODCALLTYPE CopyTileMappings(
8091 _In_ ID3D12Resource *pDstResource,
8092 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8093 _In_ ID3D12Resource *pSrcResource,
8094 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8095 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8096 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8097
8098 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
8099 _In_ UINT NumCommandLists,
8100 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
8101
8102 virtual void STDMETHODCALLTYPE SetMarker(
8103 UINT Metadata,
8104 _In_reads_bytes_opt_(Size) const void *pData,
8105 UINT Size) = 0;
8106
8107 virtual void STDMETHODCALLTYPE BeginEvent(
8108 UINT Metadata,
8109 _In_reads_bytes_opt_(Size) const void *pData,
8110 UINT Size) = 0;
8111
8112 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
8113
8114 virtual HRESULT STDMETHODCALLTYPE Signal(
8115 ID3D12Fence *pFence,
8116 UINT64 Value) = 0;
8117
8118 virtual HRESULT STDMETHODCALLTYPE Wait(
8119 ID3D12Fence *pFence,
8120 UINT64 Value) = 0;
8121
8122 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
8123 _Out_ UINT64 *pFrequency) = 0;
8124
8125 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
8126 _Out_ UINT64 *pGpuTimestamp,
8127 _Out_ UINT64 *pCpuTimestamp) = 0;
8128
8129 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
8130
8131 };
8132
8133
8134#else /* C style interface */
8135
8136 typedef struct ID3D12CommandQueueVtbl
8137 {
8138 BEGIN_INTERFACE
8139
8140 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8141 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8142 ID3D12CommandQueue * This,
8143 REFIID riid,
8144 _COM_Outptr_ void **ppvObject);
8145
8146 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8147 ULONG ( STDMETHODCALLTYPE *AddRef )(
8148 ID3D12CommandQueue * This);
8149
8150 DECLSPEC_XFGVIRT(IUnknown, Release)
8151 ULONG ( STDMETHODCALLTYPE *Release )(
8152 ID3D12CommandQueue * This);
8153
8154 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8155 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8156 ID3D12CommandQueue * This,
8157 _In_ REFGUID guid,
8158 _Inout_ UINT *pDataSize,
8159 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
8160
8161 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8162 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8163 ID3D12CommandQueue * This,
8164 _In_ REFGUID guid,
8165 _In_ UINT DataSize,
8166 _In_reads_bytes_opt_( DataSize ) const void *pData);
8167
8168 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8169 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8170 ID3D12CommandQueue * This,
8171 _In_ REFGUID guid,
8172 _In_opt_ const IUnknown *pData);
8173
8174 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8175 HRESULT ( STDMETHODCALLTYPE *SetName )(
8176 ID3D12CommandQueue * This,
8177 _In_z_ LPCWSTR Name);
8178
8179 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8180 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8181 ID3D12CommandQueue * This,
8182 REFIID riid,
8183 _COM_Outptr_opt_ void **ppvDevice);
8184
8185 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
8186 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
8187 ID3D12CommandQueue * This,
8188 _In_ ID3D12Resource *pResource,
8189 UINT NumResourceRegions,
8190 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8191 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8192 _In_opt_ ID3D12Heap *pHeap,
8193 UINT NumRanges,
8194 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8195 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8196 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8197 D3D12_TILE_MAPPING_FLAGS Flags);
8198
8199 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
8200 void ( STDMETHODCALLTYPE *CopyTileMappings )(
8201 ID3D12CommandQueue * This,
8202 _In_ ID3D12Resource *pDstResource,
8203 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8204 _In_ ID3D12Resource *pSrcResource,
8205 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8206 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8207 D3D12_TILE_MAPPING_FLAGS Flags);
8208
8209 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
8210 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
8211 ID3D12CommandQueue * This,
8212 _In_ UINT NumCommandLists,
8213 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
8214
8215 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
8216 void ( STDMETHODCALLTYPE *SetMarker )(
8217 ID3D12CommandQueue * This,
8218 UINT Metadata,
8219 _In_reads_bytes_opt_(Size) const void *pData,
8220 UINT Size);
8221
8222 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
8223 void ( STDMETHODCALLTYPE *BeginEvent )(
8224 ID3D12CommandQueue * This,
8225 UINT Metadata,
8226 _In_reads_bytes_opt_(Size) const void *pData,
8227 UINT Size);
8228
8229 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
8230 void ( STDMETHODCALLTYPE *EndEvent )(
8231 ID3D12CommandQueue * This);
8232
8233 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
8234 HRESULT ( STDMETHODCALLTYPE *Signal )(
8235 ID3D12CommandQueue * This,
8236 ID3D12Fence *pFence,
8237 UINT64 Value);
8238
8239 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
8240 HRESULT ( STDMETHODCALLTYPE *Wait )(
8241 ID3D12CommandQueue * This,
8242 ID3D12Fence *pFence,
8243 UINT64 Value);
8244
8245 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
8246 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
8247 ID3D12CommandQueue * This,
8248 _Out_ UINT64 *pFrequency);
8249
8250 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
8251 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
8252 ID3D12CommandQueue * This,
8253 _Out_ UINT64 *pGpuTimestamp,
8254 _Out_ UINT64 *pCpuTimestamp);
8255
8256 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
8257 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
8258 ID3D12CommandQueue * This,
8259 D3D12_COMMAND_QUEUE_DESC * RetVal);
8260
8261 END_INTERFACE
8262 } ID3D12CommandQueueVtbl;
8263
8264 interface ID3D12CommandQueue
8265 {
8266 CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
8267 };
8268
8269
8270
8271#ifdef COBJMACROS
8272
8273
8274#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \
8275 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8276
8277#define ID3D12CommandQueue_AddRef(This) \
8278 ( (This)->lpVtbl -> AddRef(This) )
8279
8280#define ID3D12CommandQueue_Release(This) \
8281 ( (This)->lpVtbl -> Release(This) )
8282
8283
8284#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \
8285 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8286
8287#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \
8288 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8289
8290#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \
8291 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8292
8293#define ID3D12CommandQueue_SetName(This,Name) \
8294 ( (This)->lpVtbl -> SetName(This,Name) )
8295
8296
8297#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \
8298 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8299
8300
8301
8302#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
8303 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
8304
8305#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
8306 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
8307
8308#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
8309 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
8310
8311#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \
8312 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8313
8314#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \
8315 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8316
8317#define ID3D12CommandQueue_EndEvent(This) \
8318 ( (This)->lpVtbl -> EndEvent(This) )
8319
8320#define ID3D12CommandQueue_Signal(This,pFence,Value) \
8321 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
8322
8323#define ID3D12CommandQueue_Wait(This,pFence,Value) \
8324 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
8325
8326#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \
8327 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
8328
8329#define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
8330 ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
8331
8332#define ID3D12CommandQueue_GetDesc(This,RetVal) \
8333 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
8334
8335#endif /* COBJMACROS */
8336
8337
8338#endif /* C style interface */
8339
8340
8341
8342
8343#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
8344
8345
8346/* interface __MIDL_itf_d3d12_0000_0020 */
8347/* [local] */
8348
8349#ifdef __midl
8350#ifndef LUID_DEFINED
8351#define LUID_DEFINED 1
8352typedef struct __LUID
8353 {
8354 DWORD LowPart;
8355 LONG HighPart;
8356 } LUID;
8357
8358typedef struct __LUID *PLUID;
8359
8360#endif
8361#endif
8362
8363
8364extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec;
8365extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec;
8366
8367#ifndef __ID3D12Device_INTERFACE_DEFINED__
8368#define __ID3D12Device_INTERFACE_DEFINED__
8369
8370/* interface ID3D12Device */
8371/* [unique][local][object][uuid] */
8372
8373
8374EXTERN_C const IID IID_ID3D12Device;
8375
8376#if defined(__cplusplus) && !defined(CINTERFACE)
8377
8378 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
8379 ID3D12Device : public ID3D12Object
8380 {
8381 public:
8382 virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0;
8383
8384 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
8385 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
8386 REFIID riid,
8387 _COM_Outptr_ void **ppCommandQueue) = 0;
8388
8389 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
8390 _In_ D3D12_COMMAND_LIST_TYPE type,
8391 REFIID riid,
8392 _COM_Outptr_ void **ppCommandAllocator) = 0;
8393
8394 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
8395 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
8396 REFIID riid,
8397 _COM_Outptr_ void **ppPipelineState) = 0;
8398
8399 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
8400 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
8401 REFIID riid,
8402 _COM_Outptr_ void **ppPipelineState) = 0;
8403
8404 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
8405 _In_ UINT nodeMask,
8406 _In_ D3D12_COMMAND_LIST_TYPE type,
8407 _In_ ID3D12CommandAllocator *pCommandAllocator,
8408 _In_opt_ ID3D12PipelineState *pInitialState,
8409 REFIID riid,
8410 _COM_Outptr_ void **ppCommandList) = 0;
8411
8412 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
8413 D3D12_FEATURE Feature,
8414 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
8415 UINT FeatureSupportDataSize) = 0;
8416
8417 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
8418 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
8419 REFIID riid,
8420 _COM_Outptr_ void **ppvHeap) = 0;
8421
8422 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
8423 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
8424
8425 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
8426 _In_ UINT nodeMask,
8427 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
8428 _In_ SIZE_T blobLengthInBytes,
8429 REFIID riid,
8430 _COM_Outptr_ void **ppvRootSignature) = 0;
8431
8432 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
8433 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
8434 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8435
8436 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
8437 _In_opt_ ID3D12Resource *pResource,
8438 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
8439 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8440
8441 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
8442 _In_opt_ ID3D12Resource *pResource,
8443 _In_opt_ ID3D12Resource *pCounterResource,
8444 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
8445 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8446
8447 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
8448 _In_opt_ ID3D12Resource *pResource,
8449 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
8450 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8451
8452 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
8453 _In_opt_ ID3D12Resource *pResource,
8454 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
8455 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8456
8457 virtual void STDMETHODCALLTYPE CreateSampler(
8458 _In_ const D3D12_SAMPLER_DESC *pDesc,
8459 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8460
8461 virtual void STDMETHODCALLTYPE CopyDescriptors(
8462 _In_ UINT NumDestDescriptorRanges,
8463 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
8464 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
8465 _In_ UINT NumSrcDescriptorRanges,
8466 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
8467 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
8468 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
8469
8470 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
8471 _In_ UINT NumDescriptors,
8472 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
8473 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
8474 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
8475
8476 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
8477 _In_ UINT visibleMask,
8478 _In_ UINT numResourceDescs,
8479 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
8480
8481 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
8482 _In_ UINT nodeMask,
8483 D3D12_HEAP_TYPE heapType) = 0;
8484
8485 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
8486 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
8487 D3D12_HEAP_FLAGS HeapFlags,
8488 _In_ const D3D12_RESOURCE_DESC *pDesc,
8489 D3D12_RESOURCE_STATES InitialResourceState,
8490 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8491 REFIID riidResource,
8492 _COM_Outptr_opt_ void **ppvResource) = 0;
8493
8494 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
8495 _In_ const D3D12_HEAP_DESC *pDesc,
8496 REFIID riid,
8497 _COM_Outptr_opt_ void **ppvHeap) = 0;
8498
8499 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
8500 _In_ ID3D12Heap *pHeap,
8501 UINT64 HeapOffset,
8502 _In_ const D3D12_RESOURCE_DESC *pDesc,
8503 D3D12_RESOURCE_STATES InitialState,
8504 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8505 REFIID riid,
8506 _COM_Outptr_opt_ void **ppvResource) = 0;
8507
8508 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
8509 _In_ const D3D12_RESOURCE_DESC *pDesc,
8510 D3D12_RESOURCE_STATES InitialState,
8511 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8512 REFIID riid,
8513 _COM_Outptr_opt_ void **ppvResource) = 0;
8514
8515 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
8516 _In_ ID3D12DeviceChild *pObject,
8517 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
8518 DWORD Access,
8519 _In_opt_ LPCWSTR Name,
8520 _Out_ HANDLE *pHandle) = 0;
8521
8522 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
8523 _In_ HANDLE NTHandle,
8524 REFIID riid,
8525 _COM_Outptr_opt_ void **ppvObj) = 0;
8526
8527 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
8528 _In_ LPCWSTR Name,
8529 DWORD Access,
8530 /* [annotation][out] */
8531 _Out_ HANDLE *pNTHandle) = 0;
8532
8533 virtual HRESULT STDMETHODCALLTYPE MakeResident(
8534 UINT NumObjects,
8535 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
8536
8537 virtual HRESULT STDMETHODCALLTYPE Evict(
8538 UINT NumObjects,
8539 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
8540
8541 virtual HRESULT STDMETHODCALLTYPE CreateFence(
8542 UINT64 InitialValue,
8543 D3D12_FENCE_FLAGS Flags,
8544 REFIID riid,
8545 _COM_Outptr_ void **ppFence) = 0;
8546
8547 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
8548
8549 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
8550 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
8551 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
8552 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
8553 UINT64 BaseOffset,
8554 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
8555 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
8556 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
8557 _Out_opt_ UINT64 *pTotalBytes) = 0;
8558
8559 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
8560 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
8561 REFIID riid,
8562 _COM_Outptr_opt_ void **ppvHeap) = 0;
8563
8564 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
8565 BOOL Enable) = 0;
8566
8567 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
8568 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
8569 _In_opt_ ID3D12RootSignature *pRootSignature,
8570 REFIID riid,
8571 _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
8572
8573 virtual void STDMETHODCALLTYPE GetResourceTiling(
8574 _In_ ID3D12Resource *pTiledResource,
8575 _Out_opt_ UINT *pNumTilesForEntireResource,
8576 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
8577 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
8578 _Inout_opt_ UINT *pNumSubresourceTilings,
8579 _In_ UINT FirstSubresourceTilingToGet,
8580 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0;
8581
8582 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0;
8583
8584 };
8585
8586
8587#else /* C style interface */
8588
8589 typedef struct ID3D12DeviceVtbl
8590 {
8591 BEGIN_INTERFACE
8592
8593 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8594 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8595 ID3D12Device * This,
8596 REFIID riid,
8597 _COM_Outptr_ void **ppvObject);
8598
8599 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8600 ULONG ( STDMETHODCALLTYPE *AddRef )(
8601 ID3D12Device * This);
8602
8603 DECLSPEC_XFGVIRT(IUnknown, Release)
8604 ULONG ( STDMETHODCALLTYPE *Release )(
8605 ID3D12Device * This);
8606
8607 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8608 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8609 ID3D12Device * This,
8610 _In_ REFGUID guid,
8611 _Inout_ UINT *pDataSize,
8612 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
8613
8614 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8615 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8616 ID3D12Device * This,
8617 _In_ REFGUID guid,
8618 _In_ UINT DataSize,
8619 _In_reads_bytes_opt_( DataSize ) const void *pData);
8620
8621 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8622 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8623 ID3D12Device * This,
8624 _In_ REFGUID guid,
8625 _In_opt_ const IUnknown *pData);
8626
8627 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8628 HRESULT ( STDMETHODCALLTYPE *SetName )(
8629 ID3D12Device * This,
8630 _In_z_ LPCWSTR Name);
8631
8632 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
8633 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
8634 ID3D12Device * This);
8635
8636 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
8637 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
8638 ID3D12Device * This,
8639 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
8640 REFIID riid,
8641 _COM_Outptr_ void **ppCommandQueue);
8642
8643 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
8644 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
8645 ID3D12Device * This,
8646 _In_ D3D12_COMMAND_LIST_TYPE type,
8647 REFIID riid,
8648 _COM_Outptr_ void **ppCommandAllocator);
8649
8650 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
8651 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
8652 ID3D12Device * This,
8653 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
8654 REFIID riid,
8655 _COM_Outptr_ void **ppPipelineState);
8656
8657 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
8658 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
8659 ID3D12Device * This,
8660 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
8661 REFIID riid,
8662 _COM_Outptr_ void **ppPipelineState);
8663
8664 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
8665 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
8666 ID3D12Device * This,
8667 _In_ UINT nodeMask,
8668 _In_ D3D12_COMMAND_LIST_TYPE type,
8669 _In_ ID3D12CommandAllocator *pCommandAllocator,
8670 _In_opt_ ID3D12PipelineState *pInitialState,
8671 REFIID riid,
8672 _COM_Outptr_ void **ppCommandList);
8673
8674 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
8675 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
8676 ID3D12Device * This,
8677 D3D12_FEATURE Feature,
8678 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
8679 UINT FeatureSupportDataSize);
8680
8681 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
8682 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
8683 ID3D12Device * This,
8684 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
8685 REFIID riid,
8686 _COM_Outptr_ void **ppvHeap);
8687
8688 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
8689 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
8690 ID3D12Device * This,
8691 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
8692
8693 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
8694 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
8695 ID3D12Device * This,
8696 _In_ UINT nodeMask,
8697 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
8698 _In_ SIZE_T blobLengthInBytes,
8699 REFIID riid,
8700 _COM_Outptr_ void **ppvRootSignature);
8701
8702 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
8703 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
8704 ID3D12Device * This,
8705 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
8706 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8707
8708 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
8709 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
8710 ID3D12Device * This,
8711 _In_opt_ ID3D12Resource *pResource,
8712 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
8713 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8714
8715 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
8716 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
8717 ID3D12Device * This,
8718 _In_opt_ ID3D12Resource *pResource,
8719 _In_opt_ ID3D12Resource *pCounterResource,
8720 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
8721 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8722
8723 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
8724 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
8725 ID3D12Device * This,
8726 _In_opt_ ID3D12Resource *pResource,
8727 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
8728 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8729
8730 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
8731 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
8732 ID3D12Device * This,
8733 _In_opt_ ID3D12Resource *pResource,
8734 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
8735 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8736
8737 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
8738 void ( STDMETHODCALLTYPE *CreateSampler )(
8739 ID3D12Device * This,
8740 _In_ const D3D12_SAMPLER_DESC *pDesc,
8741 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
8742
8743 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
8744 void ( STDMETHODCALLTYPE *CopyDescriptors )(
8745 ID3D12Device * This,
8746 _In_ UINT NumDestDescriptorRanges,
8747 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
8748 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
8749 _In_ UINT NumSrcDescriptorRanges,
8750 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
8751 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
8752 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
8753
8754 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
8755 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
8756 ID3D12Device * This,
8757 _In_ UINT NumDescriptors,
8758 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
8759 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
8760 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
8761
8762 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
8763 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
8764 ID3D12Device * This,
8765 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
8766 _In_ UINT visibleMask,
8767 _In_ UINT numResourceDescs,
8768 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
8769
8770 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
8771 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
8772 ID3D12Device * This,
8773 D3D12_HEAP_PROPERTIES * RetVal,
8774 _In_ UINT nodeMask,
8775 D3D12_HEAP_TYPE heapType);
8776
8777 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
8778 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
8779 ID3D12Device * This,
8780 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
8781 D3D12_HEAP_FLAGS HeapFlags,
8782 _In_ const D3D12_RESOURCE_DESC *pDesc,
8783 D3D12_RESOURCE_STATES InitialResourceState,
8784 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8785 REFIID riidResource,
8786 _COM_Outptr_opt_ void **ppvResource);
8787
8788 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
8789 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
8790 ID3D12Device * This,
8791 _In_ const D3D12_HEAP_DESC *pDesc,
8792 REFIID riid,
8793 _COM_Outptr_opt_ void **ppvHeap);
8794
8795 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
8796 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
8797 ID3D12Device * This,
8798 _In_ ID3D12Heap *pHeap,
8799 UINT64 HeapOffset,
8800 _In_ const D3D12_RESOURCE_DESC *pDesc,
8801 D3D12_RESOURCE_STATES InitialState,
8802 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8803 REFIID riid,
8804 _COM_Outptr_opt_ void **ppvResource);
8805
8806 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
8807 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
8808 ID3D12Device * This,
8809 _In_ const D3D12_RESOURCE_DESC *pDesc,
8810 D3D12_RESOURCE_STATES InitialState,
8811 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
8812 REFIID riid,
8813 _COM_Outptr_opt_ void **ppvResource);
8814
8815 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
8816 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
8817 ID3D12Device * This,
8818 _In_ ID3D12DeviceChild *pObject,
8819 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
8820 DWORD Access,
8821 _In_opt_ LPCWSTR Name,
8822 _Out_ HANDLE *pHandle);
8823
8824 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
8825 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
8826 ID3D12Device * This,
8827 _In_ HANDLE NTHandle,
8828 REFIID riid,
8829 _COM_Outptr_opt_ void **ppvObj);
8830
8831 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
8832 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
8833 ID3D12Device * This,
8834 _In_ LPCWSTR Name,
8835 DWORD Access,
8836 /* [annotation][out] */
8837 _Out_ HANDLE *pNTHandle);
8838
8839 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
8840 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
8841 ID3D12Device * This,
8842 UINT NumObjects,
8843 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
8844
8845 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
8846 HRESULT ( STDMETHODCALLTYPE *Evict )(
8847 ID3D12Device * This,
8848 UINT NumObjects,
8849 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
8850
8851 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
8852 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
8853 ID3D12Device * This,
8854 UINT64 InitialValue,
8855 D3D12_FENCE_FLAGS Flags,
8856 REFIID riid,
8857 _COM_Outptr_ void **ppFence);
8858
8859 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
8860 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
8861 ID3D12Device * This);
8862
8863 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
8864 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
8865 ID3D12Device * This,
8866 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
8867 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
8868 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
8869 UINT64 BaseOffset,
8870 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
8871 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
8872 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
8873 _Out_opt_ UINT64 *pTotalBytes);
8874
8875 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
8876 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
8877 ID3D12Device * This,
8878 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
8879 REFIID riid,
8880 _COM_Outptr_opt_ void **ppvHeap);
8881
8882 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
8883 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
8884 ID3D12Device * This,
8885 BOOL Enable);
8886
8887 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
8888 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
8889 ID3D12Device * This,
8890 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
8891 _In_opt_ ID3D12RootSignature *pRootSignature,
8892 REFIID riid,
8893 _COM_Outptr_opt_ void **ppvCommandSignature);
8894
8895 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
8896 void ( STDMETHODCALLTYPE *GetResourceTiling )(
8897 ID3D12Device * This,
8898 _In_ ID3D12Resource *pTiledResource,
8899 _Out_opt_ UINT *pNumTilesForEntireResource,
8900 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
8901 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
8902 _Inout_opt_ UINT *pNumSubresourceTilings,
8903 _In_ UINT FirstSubresourceTilingToGet,
8904 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
8905
8906 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
8907 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
8908 ID3D12Device * This,
8909 LUID * RetVal);
8910
8911 END_INTERFACE
8912 } ID3D12DeviceVtbl;
8913
8914 interface ID3D12Device
8915 {
8916 CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
8917 };
8918
8919
8920
8921#ifdef COBJMACROS
8922
8923
8924#define ID3D12Device_QueryInterface(This,riid,ppvObject) \
8925 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8926
8927#define ID3D12Device_AddRef(This) \
8928 ( (This)->lpVtbl -> AddRef(This) )
8929
8930#define ID3D12Device_Release(This) \
8931 ( (This)->lpVtbl -> Release(This) )
8932
8933
8934#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \
8935 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8936
8937#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \
8938 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8939
8940#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \
8941 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8942
8943#define ID3D12Device_SetName(This,Name) \
8944 ( (This)->lpVtbl -> SetName(This,Name) )
8945
8946
8947#define ID3D12Device_GetNodeCount(This) \
8948 ( (This)->lpVtbl -> GetNodeCount(This) )
8949
8950#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
8951 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
8952
8953#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
8954 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
8955
8956#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
8957 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
8958
8959#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
8960 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
8961
8962#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
8963 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
8964
8965#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
8966 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
8967
8968#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
8969 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
8970
8971#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
8972 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
8973
8974#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
8975 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
8976
8977#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \
8978 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
8979
8980#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
8981 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
8982
8983#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
8984 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
8985
8986#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
8987 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
8988
8989#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
8990 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
8991
8992#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \
8993 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
8994
8995#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
8996 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
8997
8998#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
8999 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
9000
9001#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
9002 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
9003
9004#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
9005 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
9006
9007#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
9008 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
9009
9010#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
9011 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
9012
9013#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9014 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9015
9016#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9017 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9018
9019#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
9020 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
9021
9022#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
9023 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
9024
9025#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
9026 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
9027
9028#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \
9029 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
9030
9031#define ID3D12Device_Evict(This,NumObjects,ppObjects) \
9032 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
9033
9034#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \
9035 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
9036
9037#define ID3D12Device_GetDeviceRemovedReason(This) \
9038 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
9039
9040#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
9041 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
9042
9043#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
9044 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
9045
9046#define ID3D12Device_SetStablePowerState(This,Enable) \
9047 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
9048
9049#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
9050 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
9051
9052#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
9053 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
9054
9055#define ID3D12Device_GetAdapterLuid(This,RetVal) \
9056 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
9057
9058#endif /* COBJMACROS */
9059
9060
9061#endif /* C style interface */
9062
9063
9064
9065
9066#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
9067
9068
9069#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9070#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9071
9072/* interface ID3D12PipelineLibrary */
9073/* [unique][local][object][uuid] */
9074
9075
9076EXTERN_C const IID IID_ID3D12PipelineLibrary;
9077
9078#if defined(__cplusplus) && !defined(CINTERFACE)
9079
9080 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
9081 ID3D12PipelineLibrary : public ID3D12DeviceChild
9082 {
9083 public:
9084 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
9085 _In_opt_ LPCWSTR pName,
9086 _In_ ID3D12PipelineState *pPipeline) = 0;
9087
9088 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
9089 _In_ LPCWSTR pName,
9090 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9091 REFIID riid,
9092 _COM_Outptr_ void **ppPipelineState) = 0;
9093
9094 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
9095 _In_ LPCWSTR pName,
9096 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9097 REFIID riid,
9098 _COM_Outptr_ void **ppPipelineState) = 0;
9099
9100 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
9101
9102 virtual HRESULT STDMETHODCALLTYPE Serialize(
9103 _Out_writes_(DataSizeInBytes) void *pData,
9104 SIZE_T DataSizeInBytes) = 0;
9105
9106 };
9107
9108
9109#else /* C style interface */
9110
9111 typedef struct ID3D12PipelineLibraryVtbl
9112 {
9113 BEGIN_INTERFACE
9114
9115 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9116 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9117 ID3D12PipelineLibrary * This,
9118 REFIID riid,
9119 _COM_Outptr_ void **ppvObject);
9120
9121 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9122 ULONG ( STDMETHODCALLTYPE *AddRef )(
9123 ID3D12PipelineLibrary * This);
9124
9125 DECLSPEC_XFGVIRT(IUnknown, Release)
9126 ULONG ( STDMETHODCALLTYPE *Release )(
9127 ID3D12PipelineLibrary * This);
9128
9129 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9130 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9131 ID3D12PipelineLibrary * This,
9132 _In_ REFGUID guid,
9133 _Inout_ UINT *pDataSize,
9134 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9135
9136 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9137 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9138 ID3D12PipelineLibrary * This,
9139 _In_ REFGUID guid,
9140 _In_ UINT DataSize,
9141 _In_reads_bytes_opt_( DataSize ) const void *pData);
9142
9143 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9144 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9145 ID3D12PipelineLibrary * This,
9146 _In_ REFGUID guid,
9147 _In_opt_ const IUnknown *pData);
9148
9149 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9150 HRESULT ( STDMETHODCALLTYPE *SetName )(
9151 ID3D12PipelineLibrary * This,
9152 _In_z_ LPCWSTR Name);
9153
9154 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9155 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9156 ID3D12PipelineLibrary * This,
9157 REFIID riid,
9158 _COM_Outptr_opt_ void **ppvDevice);
9159
9160 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
9161 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
9162 ID3D12PipelineLibrary * This,
9163 _In_opt_ LPCWSTR pName,
9164 _In_ ID3D12PipelineState *pPipeline);
9165
9166 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
9167 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
9168 ID3D12PipelineLibrary * This,
9169 _In_ LPCWSTR pName,
9170 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9171 REFIID riid,
9172 _COM_Outptr_ void **ppPipelineState);
9173
9174 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
9175 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
9176 ID3D12PipelineLibrary * This,
9177 _In_ LPCWSTR pName,
9178 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9179 REFIID riid,
9180 _COM_Outptr_ void **ppPipelineState);
9181
9182 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
9183 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
9184 ID3D12PipelineLibrary * This);
9185
9186 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
9187 HRESULT ( STDMETHODCALLTYPE *Serialize )(
9188 ID3D12PipelineLibrary * This,
9189 _Out_writes_(DataSizeInBytes) void *pData,
9190 SIZE_T DataSizeInBytes);
9191
9192 END_INTERFACE
9193 } ID3D12PipelineLibraryVtbl;
9194
9195 interface ID3D12PipelineLibrary
9196 {
9197 CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
9198 };
9199
9200
9201
9202#ifdef COBJMACROS
9203
9204
9205#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
9206 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9207
9208#define ID3D12PipelineLibrary_AddRef(This) \
9209 ( (This)->lpVtbl -> AddRef(This) )
9210
9211#define ID3D12PipelineLibrary_Release(This) \
9212 ( (This)->lpVtbl -> Release(This) )
9213
9214
9215#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
9216 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9217
9218#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
9219 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9220
9221#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
9222 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9223
9224#define ID3D12PipelineLibrary_SetName(This,Name) \
9225 ( (This)->lpVtbl -> SetName(This,Name) )
9226
9227
9228#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
9229 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9230
9231
9232#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
9233 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
9234
9235#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
9236 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
9237
9238#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
9239 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
9240
9241#define ID3D12PipelineLibrary_GetSerializedSize(This) \
9242 ( (This)->lpVtbl -> GetSerializedSize(This) )
9243
9244#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
9245 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
9246
9247#endif /* COBJMACROS */
9248
9249
9250#endif /* C style interface */
9251
9252
9253
9254
9255#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
9256
9257
9258#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9259#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9260
9261/* interface ID3D12PipelineLibrary1 */
9262/* [unique][local][object][uuid] */
9263
9264
9265EXTERN_C const IID IID_ID3D12PipelineLibrary1;
9266
9267#if defined(__cplusplus) && !defined(CINTERFACE)
9268
9269 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
9270 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
9271 {
9272 public:
9273 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
9274 _In_ LPCWSTR pName,
9275 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
9276 REFIID riid,
9277 _COM_Outptr_ void **ppPipelineState) = 0;
9278
9279 };
9280
9281
9282#else /* C style interface */
9283
9284 typedef struct ID3D12PipelineLibrary1Vtbl
9285 {
9286 BEGIN_INTERFACE
9287
9288 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9289 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9290 ID3D12PipelineLibrary1 * This,
9291 REFIID riid,
9292 _COM_Outptr_ void **ppvObject);
9293
9294 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9295 ULONG ( STDMETHODCALLTYPE *AddRef )(
9296 ID3D12PipelineLibrary1 * This);
9297
9298 DECLSPEC_XFGVIRT(IUnknown, Release)
9299 ULONG ( STDMETHODCALLTYPE *Release )(
9300 ID3D12PipelineLibrary1 * This);
9301
9302 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9303 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9304 ID3D12PipelineLibrary1 * This,
9305 _In_ REFGUID guid,
9306 _Inout_ UINT *pDataSize,
9307 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9308
9309 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9310 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9311 ID3D12PipelineLibrary1 * This,
9312 _In_ REFGUID guid,
9313 _In_ UINT DataSize,
9314 _In_reads_bytes_opt_( DataSize ) const void *pData);
9315
9316 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9317 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9318 ID3D12PipelineLibrary1 * This,
9319 _In_ REFGUID guid,
9320 _In_opt_ const IUnknown *pData);
9321
9322 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9323 HRESULT ( STDMETHODCALLTYPE *SetName )(
9324 ID3D12PipelineLibrary1 * This,
9325 _In_z_ LPCWSTR Name);
9326
9327 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9328 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9329 ID3D12PipelineLibrary1 * This,
9330 REFIID riid,
9331 _COM_Outptr_opt_ void **ppvDevice);
9332
9333 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
9334 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
9335 ID3D12PipelineLibrary1 * This,
9336 _In_opt_ LPCWSTR pName,
9337 _In_ ID3D12PipelineState *pPipeline);
9338
9339 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
9340 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
9341 ID3D12PipelineLibrary1 * This,
9342 _In_ LPCWSTR pName,
9343 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9344 REFIID riid,
9345 _COM_Outptr_ void **ppPipelineState);
9346
9347 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
9348 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
9349 ID3D12PipelineLibrary1 * This,
9350 _In_ LPCWSTR pName,
9351 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9352 REFIID riid,
9353 _COM_Outptr_ void **ppPipelineState);
9354
9355 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
9356 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
9357 ID3D12PipelineLibrary1 * This);
9358
9359 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
9360 HRESULT ( STDMETHODCALLTYPE *Serialize )(
9361 ID3D12PipelineLibrary1 * This,
9362 _Out_writes_(DataSizeInBytes) void *pData,
9363 SIZE_T DataSizeInBytes);
9364
9365 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline)
9366 HRESULT ( STDMETHODCALLTYPE *LoadPipeline )(
9367 ID3D12PipelineLibrary1 * This,
9368 _In_ LPCWSTR pName,
9369 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
9370 REFIID riid,
9371 _COM_Outptr_ void **ppPipelineState);
9372
9373 END_INTERFACE
9374 } ID3D12PipelineLibrary1Vtbl;
9375
9376 interface ID3D12PipelineLibrary1
9377 {
9378 CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl;
9379 };
9380
9381
9382
9383#ifdef COBJMACROS
9384
9385
9386#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \
9387 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9388
9389#define ID3D12PipelineLibrary1_AddRef(This) \
9390 ( (This)->lpVtbl -> AddRef(This) )
9391
9392#define ID3D12PipelineLibrary1_Release(This) \
9393 ( (This)->lpVtbl -> Release(This) )
9394
9395
9396#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \
9397 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9398
9399#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \
9400 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9401
9402#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \
9403 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9404
9405#define ID3D12PipelineLibrary1_SetName(This,Name) \
9406 ( (This)->lpVtbl -> SetName(This,Name) )
9407
9408
9409#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \
9410 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9411
9412
9413#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \
9414 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
9415
9416#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
9417 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
9418
9419#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
9420 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
9421
9422#define ID3D12PipelineLibrary1_GetSerializedSize(This) \
9423 ( (This)->lpVtbl -> GetSerializedSize(This) )
9424
9425#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \
9426 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
9427
9428
9429#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \
9430 ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) )
9431
9432#endif /* COBJMACROS */
9433
9434
9435#endif /* C style interface */
9436
9437
9438
9439
9440#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
9441
9442
9443/* interface __MIDL_itf_d3d12_0000_0023 */
9444/* [local] */
9445
9446typedef
9447enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
9448 {
9449 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
9450 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
9451 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
9452 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
9453
9454DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS );
9455typedef
9456enum D3D12_RESIDENCY_PRIORITY
9457 {
9458 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
9459 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
9460 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
9461 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
9462 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
9463 } D3D12_RESIDENCY_PRIORITY;
9464
9465
9466
9467extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec;
9468extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec;
9469
9470#ifndef __ID3D12Device1_INTERFACE_DEFINED__
9471#define __ID3D12Device1_INTERFACE_DEFINED__
9472
9473/* interface ID3D12Device1 */
9474/* [unique][local][object][uuid] */
9475
9476
9477EXTERN_C const IID IID_ID3D12Device1;
9478
9479#if defined(__cplusplus) && !defined(CINTERFACE)
9480
9481 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
9482 ID3D12Device1 : public ID3D12Device
9483 {
9484 public:
9485 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
9486 _In_reads_(BlobLength) const void *pLibraryBlob,
9487 SIZE_T BlobLength,
9488 REFIID riid,
9489 _COM_Outptr_ void **ppPipelineLibrary) = 0;
9490
9491 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
9492 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
9493 _In_reads_(NumFences) const UINT64 *pFenceValues,
9494 UINT NumFences,
9495 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
9496 HANDLE hEvent) = 0;
9497
9498 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
9499 UINT NumObjects,
9500 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
9501 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
9502
9503 };
9504
9505
9506#else /* C style interface */
9507
9508 typedef struct ID3D12Device1Vtbl
9509 {
9510 BEGIN_INTERFACE
9511
9512 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9513 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9514 ID3D12Device1 * This,
9515 REFIID riid,
9516 _COM_Outptr_ void **ppvObject);
9517
9518 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9519 ULONG ( STDMETHODCALLTYPE *AddRef )(
9520 ID3D12Device1 * This);
9521
9522 DECLSPEC_XFGVIRT(IUnknown, Release)
9523 ULONG ( STDMETHODCALLTYPE *Release )(
9524 ID3D12Device1 * This);
9525
9526 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9527 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9528 ID3D12Device1 * This,
9529 _In_ REFGUID guid,
9530 _Inout_ UINT *pDataSize,
9531 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9532
9533 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9534 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9535 ID3D12Device1 * This,
9536 _In_ REFGUID guid,
9537 _In_ UINT DataSize,
9538 _In_reads_bytes_opt_( DataSize ) const void *pData);
9539
9540 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9541 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9542 ID3D12Device1 * This,
9543 _In_ REFGUID guid,
9544 _In_opt_ const IUnknown *pData);
9545
9546 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9547 HRESULT ( STDMETHODCALLTYPE *SetName )(
9548 ID3D12Device1 * This,
9549 _In_z_ LPCWSTR Name);
9550
9551 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
9552 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
9553 ID3D12Device1 * This);
9554
9555 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
9556 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
9557 ID3D12Device1 * This,
9558 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9559 REFIID riid,
9560 _COM_Outptr_ void **ppCommandQueue);
9561
9562 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
9563 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
9564 ID3D12Device1 * This,
9565 _In_ D3D12_COMMAND_LIST_TYPE type,
9566 REFIID riid,
9567 _COM_Outptr_ void **ppCommandAllocator);
9568
9569 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
9570 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
9571 ID3D12Device1 * This,
9572 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9573 REFIID riid,
9574 _COM_Outptr_ void **ppPipelineState);
9575
9576 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
9577 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
9578 ID3D12Device1 * This,
9579 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9580 REFIID riid,
9581 _COM_Outptr_ void **ppPipelineState);
9582
9583 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
9584 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
9585 ID3D12Device1 * This,
9586 _In_ UINT nodeMask,
9587 _In_ D3D12_COMMAND_LIST_TYPE type,
9588 _In_ ID3D12CommandAllocator *pCommandAllocator,
9589 _In_opt_ ID3D12PipelineState *pInitialState,
9590 REFIID riid,
9591 _COM_Outptr_ void **ppCommandList);
9592
9593 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
9594 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9595 ID3D12Device1 * This,
9596 D3D12_FEATURE Feature,
9597 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9598 UINT FeatureSupportDataSize);
9599
9600 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
9601 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
9602 ID3D12Device1 * This,
9603 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9604 REFIID riid,
9605 _COM_Outptr_ void **ppvHeap);
9606
9607 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
9608 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
9609 ID3D12Device1 * This,
9610 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
9611
9612 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
9613 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
9614 ID3D12Device1 * This,
9615 _In_ UINT nodeMask,
9616 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9617 _In_ SIZE_T blobLengthInBytes,
9618 REFIID riid,
9619 _COM_Outptr_ void **ppvRootSignature);
9620
9621 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
9622 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
9623 ID3D12Device1 * This,
9624 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9625 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9626
9627 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
9628 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9629 ID3D12Device1 * This,
9630 _In_opt_ ID3D12Resource *pResource,
9631 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9632 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9633
9634 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
9635 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9636 ID3D12Device1 * This,
9637 _In_opt_ ID3D12Resource *pResource,
9638 _In_opt_ ID3D12Resource *pCounterResource,
9639 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9640 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9641
9642 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
9643 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9644 ID3D12Device1 * This,
9645 _In_opt_ ID3D12Resource *pResource,
9646 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9647 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9648
9649 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
9650 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9651 ID3D12Device1 * This,
9652 _In_opt_ ID3D12Resource *pResource,
9653 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9654 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9655
9656 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
9657 void ( STDMETHODCALLTYPE *CreateSampler )(
9658 ID3D12Device1 * This,
9659 _In_ const D3D12_SAMPLER_DESC *pDesc,
9660 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9661
9662 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
9663 void ( STDMETHODCALLTYPE *CopyDescriptors )(
9664 ID3D12Device1 * This,
9665 _In_ UINT NumDestDescriptorRanges,
9666 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9667 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9668 _In_ UINT NumSrcDescriptorRanges,
9669 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9670 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9671 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9672
9673 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
9674 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
9675 ID3D12Device1 * This,
9676 _In_ UINT NumDescriptors,
9677 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9678 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9679 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9680
9681 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
9682 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9683 ID3D12Device1 * This,
9684 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9685 _In_ UINT visibleMask,
9686 _In_ UINT numResourceDescs,
9687 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9688
9689 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
9690 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9691 ID3D12Device1 * This,
9692 D3D12_HEAP_PROPERTIES * RetVal,
9693 _In_ UINT nodeMask,
9694 D3D12_HEAP_TYPE heapType);
9695
9696 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
9697 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
9698 ID3D12Device1 * This,
9699 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9700 D3D12_HEAP_FLAGS HeapFlags,
9701 _In_ const D3D12_RESOURCE_DESC *pDesc,
9702 D3D12_RESOURCE_STATES InitialResourceState,
9703 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9704 REFIID riidResource,
9705 _COM_Outptr_opt_ void **ppvResource);
9706
9707 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
9708 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
9709 ID3D12Device1 * This,
9710 _In_ const D3D12_HEAP_DESC *pDesc,
9711 REFIID riid,
9712 _COM_Outptr_opt_ void **ppvHeap);
9713
9714 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
9715 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
9716 ID3D12Device1 * This,
9717 _In_ ID3D12Heap *pHeap,
9718 UINT64 HeapOffset,
9719 _In_ const D3D12_RESOURCE_DESC *pDesc,
9720 D3D12_RESOURCE_STATES InitialState,
9721 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9722 REFIID riid,
9723 _COM_Outptr_opt_ void **ppvResource);
9724
9725 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
9726 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
9727 ID3D12Device1 * This,
9728 _In_ const D3D12_RESOURCE_DESC *pDesc,
9729 D3D12_RESOURCE_STATES InitialState,
9730 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9731 REFIID riid,
9732 _COM_Outptr_opt_ void **ppvResource);
9733
9734 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
9735 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
9736 ID3D12Device1 * This,
9737 _In_ ID3D12DeviceChild *pObject,
9738 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
9739 DWORD Access,
9740 _In_opt_ LPCWSTR Name,
9741 _Out_ HANDLE *pHandle);
9742
9743 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
9744 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
9745 ID3D12Device1 * This,
9746 _In_ HANDLE NTHandle,
9747 REFIID riid,
9748 _COM_Outptr_opt_ void **ppvObj);
9749
9750 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
9751 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
9752 ID3D12Device1 * This,
9753 _In_ LPCWSTR Name,
9754 DWORD Access,
9755 /* [annotation][out] */
9756 _Out_ HANDLE *pNTHandle);
9757
9758 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
9759 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
9760 ID3D12Device1 * This,
9761 UINT NumObjects,
9762 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
9763
9764 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
9765 HRESULT ( STDMETHODCALLTYPE *Evict )(
9766 ID3D12Device1 * This,
9767 UINT NumObjects,
9768 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
9769
9770 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
9771 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
9772 ID3D12Device1 * This,
9773 UINT64 InitialValue,
9774 D3D12_FENCE_FLAGS Flags,
9775 REFIID riid,
9776 _COM_Outptr_ void **ppFence);
9777
9778 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
9779 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
9780 ID3D12Device1 * This);
9781
9782 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
9783 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
9784 ID3D12Device1 * This,
9785 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
9786 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
9787 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
9788 UINT64 BaseOffset,
9789 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
9790 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
9791 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
9792 _Out_opt_ UINT64 *pTotalBytes);
9793
9794 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
9795 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
9796 ID3D12Device1 * This,
9797 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
9798 REFIID riid,
9799 _COM_Outptr_opt_ void **ppvHeap);
9800
9801 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
9802 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
9803 ID3D12Device1 * This,
9804 BOOL Enable);
9805
9806 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
9807 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
9808 ID3D12Device1 * This,
9809 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
9810 _In_opt_ ID3D12RootSignature *pRootSignature,
9811 REFIID riid,
9812 _COM_Outptr_opt_ void **ppvCommandSignature);
9813
9814 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
9815 void ( STDMETHODCALLTYPE *GetResourceTiling )(
9816 ID3D12Device1 * This,
9817 _In_ ID3D12Resource *pTiledResource,
9818 _Out_opt_ UINT *pNumTilesForEntireResource,
9819 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
9820 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
9821 _Inout_opt_ UINT *pNumSubresourceTilings,
9822 _In_ UINT FirstSubresourceTilingToGet,
9823 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
9824
9825 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
9826 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
9827 ID3D12Device1 * This,
9828 LUID * RetVal);
9829
9830 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
9831 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
9832 ID3D12Device1 * This,
9833 _In_reads_(BlobLength) const void *pLibraryBlob,
9834 SIZE_T BlobLength,
9835 REFIID riid,
9836 _COM_Outptr_ void **ppPipelineLibrary);
9837
9838 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
9839 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
9840 ID3D12Device1 * This,
9841 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
9842 _In_reads_(NumFences) const UINT64 *pFenceValues,
9843 UINT NumFences,
9844 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
9845 HANDLE hEvent);
9846
9847 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
9848 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
9849 ID3D12Device1 * This,
9850 UINT NumObjects,
9851 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
9852 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
9853
9854 END_INTERFACE
9855 } ID3D12Device1Vtbl;
9856
9857 interface ID3D12Device1
9858 {
9859 CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
9860 };
9861
9862
9863
9864#ifdef COBJMACROS
9865
9866
9867#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
9868 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9869
9870#define ID3D12Device1_AddRef(This) \
9871 ( (This)->lpVtbl -> AddRef(This) )
9872
9873#define ID3D12Device1_Release(This) \
9874 ( (This)->lpVtbl -> Release(This) )
9875
9876
9877#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
9878 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9879
9880#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
9881 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9882
9883#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
9884 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9885
9886#define ID3D12Device1_SetName(This,Name) \
9887 ( (This)->lpVtbl -> SetName(This,Name) )
9888
9889
9890#define ID3D12Device1_GetNodeCount(This) \
9891 ( (This)->lpVtbl -> GetNodeCount(This) )
9892
9893#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
9894 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
9895
9896#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
9897 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
9898
9899#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
9900 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
9901
9902#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
9903 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
9904
9905#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
9906 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
9907
9908#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
9909 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
9910
9911#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
9912 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
9913
9914#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
9915 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
9916
9917#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
9918 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
9919
9920#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
9921 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
9922
9923#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
9924 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
9925
9926#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
9927 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
9928
9929#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
9930 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
9931
9932#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
9933 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
9934
9935#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
9936 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
9937
9938#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
9939 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
9940
9941#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
9942 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
9943
9944#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
9945 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
9946
9947#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
9948 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
9949
9950#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
9951 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
9952
9953#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
9954 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
9955
9956#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9957 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9958
9959#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9960 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9961
9962#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
9963 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
9964
9965#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
9966 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
9967
9968#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
9969 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
9970
9971#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
9972 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
9973
9974#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
9975 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
9976
9977#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
9978 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
9979
9980#define ID3D12Device1_GetDeviceRemovedReason(This) \
9981 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
9982
9983#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
9984 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
9985
9986#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
9987 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
9988
9989#define ID3D12Device1_SetStablePowerState(This,Enable) \
9990 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
9991
9992#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
9993 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
9994
9995#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
9996 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
9997
9998#define ID3D12Device1_GetAdapterLuid(This,RetVal) \
9999 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
10000
10001
10002#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
10003 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
10004
10005#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
10006 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
10007
10008#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
10009 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
10010
10011#endif /* COBJMACROS */
10012
10013
10014#endif /* C style interface */
10015
10016
10017
10018
10019#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
10020
10021
10022#ifndef __ID3D12Device2_INTERFACE_DEFINED__
10023#define __ID3D12Device2_INTERFACE_DEFINED__
10024
10025/* interface ID3D12Device2 */
10026/* [unique][local][object][uuid] */
10027
10028
10029EXTERN_C const IID IID_ID3D12Device2;
10030
10031#if defined(__cplusplus) && !defined(CINTERFACE)
10032
10033 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
10034 ID3D12Device2 : public ID3D12Device1
10035 {
10036 public:
10037 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
10038 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10039 REFIID riid,
10040 _COM_Outptr_ void **ppPipelineState) = 0;
10041
10042 };
10043
10044
10045#else /* C style interface */
10046
10047 typedef struct ID3D12Device2Vtbl
10048 {
10049 BEGIN_INTERFACE
10050
10051 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10052 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10053 ID3D12Device2 * This,
10054 REFIID riid,
10055 _COM_Outptr_ void **ppvObject);
10056
10057 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10058 ULONG ( STDMETHODCALLTYPE *AddRef )(
10059 ID3D12Device2 * This);
10060
10061 DECLSPEC_XFGVIRT(IUnknown, Release)
10062 ULONG ( STDMETHODCALLTYPE *Release )(
10063 ID3D12Device2 * This);
10064
10065 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10066 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10067 ID3D12Device2 * This,
10068 _In_ REFGUID guid,
10069 _Inout_ UINT *pDataSize,
10070 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10071
10072 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10073 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10074 ID3D12Device2 * This,
10075 _In_ REFGUID guid,
10076 _In_ UINT DataSize,
10077 _In_reads_bytes_opt_( DataSize ) const void *pData);
10078
10079 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10080 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10081 ID3D12Device2 * This,
10082 _In_ REFGUID guid,
10083 _In_opt_ const IUnknown *pData);
10084
10085 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10086 HRESULT ( STDMETHODCALLTYPE *SetName )(
10087 ID3D12Device2 * This,
10088 _In_z_ LPCWSTR Name);
10089
10090 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10091 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10092 ID3D12Device2 * This);
10093
10094 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10095 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10096 ID3D12Device2 * This,
10097 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10098 REFIID riid,
10099 _COM_Outptr_ void **ppCommandQueue);
10100
10101 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10102 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10103 ID3D12Device2 * This,
10104 _In_ D3D12_COMMAND_LIST_TYPE type,
10105 REFIID riid,
10106 _COM_Outptr_ void **ppCommandAllocator);
10107
10108 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10109 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10110 ID3D12Device2 * This,
10111 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10112 REFIID riid,
10113 _COM_Outptr_ void **ppPipelineState);
10114
10115 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10116 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10117 ID3D12Device2 * This,
10118 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10119 REFIID riid,
10120 _COM_Outptr_ void **ppPipelineState);
10121
10122 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10123 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10124 ID3D12Device2 * This,
10125 _In_ UINT nodeMask,
10126 _In_ D3D12_COMMAND_LIST_TYPE type,
10127 _In_ ID3D12CommandAllocator *pCommandAllocator,
10128 _In_opt_ ID3D12PipelineState *pInitialState,
10129 REFIID riid,
10130 _COM_Outptr_ void **ppCommandList);
10131
10132 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10133 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10134 ID3D12Device2 * This,
10135 D3D12_FEATURE Feature,
10136 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10137 UINT FeatureSupportDataSize);
10138
10139 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10140 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10141 ID3D12Device2 * This,
10142 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10143 REFIID riid,
10144 _COM_Outptr_ void **ppvHeap);
10145
10146 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10147 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10148 ID3D12Device2 * This,
10149 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10150
10151 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10152 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10153 ID3D12Device2 * This,
10154 _In_ UINT nodeMask,
10155 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10156 _In_ SIZE_T blobLengthInBytes,
10157 REFIID riid,
10158 _COM_Outptr_ void **ppvRootSignature);
10159
10160 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10161 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10162 ID3D12Device2 * This,
10163 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10164 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10165
10166 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10167 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10168 ID3D12Device2 * This,
10169 _In_opt_ ID3D12Resource *pResource,
10170 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10171 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10172
10173 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10174 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10175 ID3D12Device2 * This,
10176 _In_opt_ ID3D12Resource *pResource,
10177 _In_opt_ ID3D12Resource *pCounterResource,
10178 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10179 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10180
10181 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10182 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10183 ID3D12Device2 * This,
10184 _In_opt_ ID3D12Resource *pResource,
10185 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10186 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10187
10188 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10189 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10190 ID3D12Device2 * This,
10191 _In_opt_ ID3D12Resource *pResource,
10192 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10193 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10194
10195 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10196 void ( STDMETHODCALLTYPE *CreateSampler )(
10197 ID3D12Device2 * This,
10198 _In_ const D3D12_SAMPLER_DESC *pDesc,
10199 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10200
10201 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10202 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10203 ID3D12Device2 * This,
10204 _In_ UINT NumDestDescriptorRanges,
10205 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10206 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10207 _In_ UINT NumSrcDescriptorRanges,
10208 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10209 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10210 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10211
10212 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10213 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10214 ID3D12Device2 * This,
10215 _In_ UINT NumDescriptors,
10216 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10217 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10218 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10219
10220 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10221 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10222 ID3D12Device2 * This,
10223 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10224 _In_ UINT visibleMask,
10225 _In_ UINT numResourceDescs,
10226 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10227
10228 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10229 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10230 ID3D12Device2 * This,
10231 D3D12_HEAP_PROPERTIES * RetVal,
10232 _In_ UINT nodeMask,
10233 D3D12_HEAP_TYPE heapType);
10234
10235 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10236 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10237 ID3D12Device2 * This,
10238 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10239 D3D12_HEAP_FLAGS HeapFlags,
10240 _In_ const D3D12_RESOURCE_DESC *pDesc,
10241 D3D12_RESOURCE_STATES InitialResourceState,
10242 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10243 REFIID riidResource,
10244 _COM_Outptr_opt_ void **ppvResource);
10245
10246 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10247 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10248 ID3D12Device2 * This,
10249 _In_ const D3D12_HEAP_DESC *pDesc,
10250 REFIID riid,
10251 _COM_Outptr_opt_ void **ppvHeap);
10252
10253 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10254 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10255 ID3D12Device2 * This,
10256 _In_ ID3D12Heap *pHeap,
10257 UINT64 HeapOffset,
10258 _In_ const D3D12_RESOURCE_DESC *pDesc,
10259 D3D12_RESOURCE_STATES InitialState,
10260 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10261 REFIID riid,
10262 _COM_Outptr_opt_ void **ppvResource);
10263
10264 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10265 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10266 ID3D12Device2 * This,
10267 _In_ const D3D12_RESOURCE_DESC *pDesc,
10268 D3D12_RESOURCE_STATES InitialState,
10269 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10270 REFIID riid,
10271 _COM_Outptr_opt_ void **ppvResource);
10272
10273 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10274 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10275 ID3D12Device2 * This,
10276 _In_ ID3D12DeviceChild *pObject,
10277 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10278 DWORD Access,
10279 _In_opt_ LPCWSTR Name,
10280 _Out_ HANDLE *pHandle);
10281
10282 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10283 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10284 ID3D12Device2 * This,
10285 _In_ HANDLE NTHandle,
10286 REFIID riid,
10287 _COM_Outptr_opt_ void **ppvObj);
10288
10289 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10290 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10291 ID3D12Device2 * This,
10292 _In_ LPCWSTR Name,
10293 DWORD Access,
10294 /* [annotation][out] */
10295 _Out_ HANDLE *pNTHandle);
10296
10297 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10298 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10299 ID3D12Device2 * This,
10300 UINT NumObjects,
10301 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10302
10303 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10304 HRESULT ( STDMETHODCALLTYPE *Evict )(
10305 ID3D12Device2 * This,
10306 UINT NumObjects,
10307 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10308
10309 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10310 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10311 ID3D12Device2 * This,
10312 UINT64 InitialValue,
10313 D3D12_FENCE_FLAGS Flags,
10314 REFIID riid,
10315 _COM_Outptr_ void **ppFence);
10316
10317 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
10318 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
10319 ID3D12Device2 * This);
10320
10321 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
10322 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
10323 ID3D12Device2 * This,
10324 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
10325 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
10326 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
10327 UINT64 BaseOffset,
10328 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
10329 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
10330 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
10331 _Out_opt_ UINT64 *pTotalBytes);
10332
10333 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
10334 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
10335 ID3D12Device2 * This,
10336 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
10337 REFIID riid,
10338 _COM_Outptr_opt_ void **ppvHeap);
10339
10340 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
10341 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
10342 ID3D12Device2 * This,
10343 BOOL Enable);
10344
10345 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
10346 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
10347 ID3D12Device2 * This,
10348 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
10349 _In_opt_ ID3D12RootSignature *pRootSignature,
10350 REFIID riid,
10351 _COM_Outptr_opt_ void **ppvCommandSignature);
10352
10353 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
10354 void ( STDMETHODCALLTYPE *GetResourceTiling )(
10355 ID3D12Device2 * This,
10356 _In_ ID3D12Resource *pTiledResource,
10357 _Out_opt_ UINT *pNumTilesForEntireResource,
10358 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
10359 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
10360 _Inout_opt_ UINT *pNumSubresourceTilings,
10361 _In_ UINT FirstSubresourceTilingToGet,
10362 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
10363
10364 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
10365 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
10366 ID3D12Device2 * This,
10367 LUID * RetVal);
10368
10369 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
10370 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
10371 ID3D12Device2 * This,
10372 _In_reads_(BlobLength) const void *pLibraryBlob,
10373 SIZE_T BlobLength,
10374 REFIID riid,
10375 _COM_Outptr_ void **ppPipelineLibrary);
10376
10377 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
10378 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
10379 ID3D12Device2 * This,
10380 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10381 _In_reads_(NumFences) const UINT64 *pFenceValues,
10382 UINT NumFences,
10383 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10384 HANDLE hEvent);
10385
10386 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
10387 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
10388 ID3D12Device2 * This,
10389 UINT NumObjects,
10390 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10391 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
10392
10393 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
10394 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
10395 ID3D12Device2 * This,
10396 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10397 REFIID riid,
10398 _COM_Outptr_ void **ppPipelineState);
10399
10400 END_INTERFACE
10401 } ID3D12Device2Vtbl;
10402
10403 interface ID3D12Device2
10404 {
10405 CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl;
10406 };
10407
10408
10409
10410#ifdef COBJMACROS
10411
10412
10413#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \
10414 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10415
10416#define ID3D12Device2_AddRef(This) \
10417 ( (This)->lpVtbl -> AddRef(This) )
10418
10419#define ID3D12Device2_Release(This) \
10420 ( (This)->lpVtbl -> Release(This) )
10421
10422
10423#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \
10424 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10425
10426#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \
10427 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10428
10429#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \
10430 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10431
10432#define ID3D12Device2_SetName(This,Name) \
10433 ( (This)->lpVtbl -> SetName(This,Name) )
10434
10435
10436#define ID3D12Device2_GetNodeCount(This) \
10437 ( (This)->lpVtbl -> GetNodeCount(This) )
10438
10439#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
10440 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
10441
10442#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
10443 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
10444
10445#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
10446 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
10447
10448#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
10449 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
10450
10451#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
10452 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
10453
10454#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
10455 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
10456
10457#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
10458 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
10459
10460#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
10461 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
10462
10463#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
10464 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
10465
10466#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \
10467 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
10468
10469#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
10470 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
10471
10472#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
10473 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
10474
10475#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
10476 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
10477
10478#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
10479 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
10480
10481#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \
10482 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
10483
10484#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
10485 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
10486
10487#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
10488 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
10489
10490#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
10491 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
10492
10493#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
10494 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
10495
10496#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
10497 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
10498
10499#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \
10500 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
10501
10502#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10503 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10504
10505#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10506 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10507
10508#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
10509 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
10510
10511#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
10512 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
10513
10514#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
10515 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
10516
10517#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \
10518 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
10519
10520#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \
10521 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
10522
10523#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \
10524 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
10525
10526#define ID3D12Device2_GetDeviceRemovedReason(This) \
10527 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10528
10529#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
10530 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
10531
10532#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
10533 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
10534
10535#define ID3D12Device2_SetStablePowerState(This,Enable) \
10536 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
10537
10538#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
10539 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
10540
10541#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
10542 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
10543
10544#define ID3D12Device2_GetAdapterLuid(This,RetVal) \
10545 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
10546
10547
10548#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
10549 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
10550
10551#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
10552 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
10553
10554#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
10555 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
10556
10557
10558#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
10559 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
10560
10561#endif /* COBJMACROS */
10562
10563
10564#endif /* C style interface */
10565
10566
10567
10568
10569#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
10570
10571
10572/* interface __MIDL_itf_d3d12_0000_0025 */
10573/* [local] */
10574
10575typedef
10576enum D3D12_RESIDENCY_FLAGS
10577 {
10578 D3D12_RESIDENCY_FLAG_NONE = 0,
10579 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
10580 } D3D12_RESIDENCY_FLAGS;
10581
10582DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS );
10583
10584
10585extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec;
10586extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec;
10587
10588#ifndef __ID3D12Device3_INTERFACE_DEFINED__
10589#define __ID3D12Device3_INTERFACE_DEFINED__
10590
10591/* interface ID3D12Device3 */
10592/* [unique][local][object][uuid] */
10593
10594
10595EXTERN_C const IID IID_ID3D12Device3;
10596
10597#if defined(__cplusplus) && !defined(CINTERFACE)
10598
10599 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
10600 ID3D12Device3 : public ID3D12Device2
10601 {
10602 public:
10603 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
10604 _In_ const void *pAddress,
10605 REFIID riid,
10606 _COM_Outptr_ void **ppvHeap) = 0;
10607
10608 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
10609 _In_ HANDLE hFileMapping,
10610 REFIID riid,
10611 _COM_Outptr_ void **ppvHeap) = 0;
10612
10613 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
10614 D3D12_RESIDENCY_FLAGS Flags,
10615 UINT NumObjects,
10616 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10617 _In_ ID3D12Fence *pFenceToSignal,
10618 UINT64 FenceValueToSignal) = 0;
10619
10620 };
10621
10622
10623#else /* C style interface */
10624
10625 typedef struct ID3D12Device3Vtbl
10626 {
10627 BEGIN_INTERFACE
10628
10629 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10630 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10631 ID3D12Device3 * This,
10632 REFIID riid,
10633 _COM_Outptr_ void **ppvObject);
10634
10635 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10636 ULONG ( STDMETHODCALLTYPE *AddRef )(
10637 ID3D12Device3 * This);
10638
10639 DECLSPEC_XFGVIRT(IUnknown, Release)
10640 ULONG ( STDMETHODCALLTYPE *Release )(
10641 ID3D12Device3 * This);
10642
10643 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10644 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10645 ID3D12Device3 * This,
10646 _In_ REFGUID guid,
10647 _Inout_ UINT *pDataSize,
10648 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10649
10650 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10651 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10652 ID3D12Device3 * This,
10653 _In_ REFGUID guid,
10654 _In_ UINT DataSize,
10655 _In_reads_bytes_opt_( DataSize ) const void *pData);
10656
10657 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10658 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10659 ID3D12Device3 * This,
10660 _In_ REFGUID guid,
10661 _In_opt_ const IUnknown *pData);
10662
10663 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10664 HRESULT ( STDMETHODCALLTYPE *SetName )(
10665 ID3D12Device3 * This,
10666 _In_z_ LPCWSTR Name);
10667
10668 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10669 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10670 ID3D12Device3 * This);
10671
10672 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10673 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10674 ID3D12Device3 * This,
10675 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10676 REFIID riid,
10677 _COM_Outptr_ void **ppCommandQueue);
10678
10679 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10680 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10681 ID3D12Device3 * This,
10682 _In_ D3D12_COMMAND_LIST_TYPE type,
10683 REFIID riid,
10684 _COM_Outptr_ void **ppCommandAllocator);
10685
10686 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10687 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10688 ID3D12Device3 * This,
10689 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10690 REFIID riid,
10691 _COM_Outptr_ void **ppPipelineState);
10692
10693 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10694 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10695 ID3D12Device3 * This,
10696 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10697 REFIID riid,
10698 _COM_Outptr_ void **ppPipelineState);
10699
10700 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10701 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10702 ID3D12Device3 * This,
10703 _In_ UINT nodeMask,
10704 _In_ D3D12_COMMAND_LIST_TYPE type,
10705 _In_ ID3D12CommandAllocator *pCommandAllocator,
10706 _In_opt_ ID3D12PipelineState *pInitialState,
10707 REFIID riid,
10708 _COM_Outptr_ void **ppCommandList);
10709
10710 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10711 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10712 ID3D12Device3 * This,
10713 D3D12_FEATURE Feature,
10714 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10715 UINT FeatureSupportDataSize);
10716
10717 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10718 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10719 ID3D12Device3 * This,
10720 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10721 REFIID riid,
10722 _COM_Outptr_ void **ppvHeap);
10723
10724 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10725 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10726 ID3D12Device3 * This,
10727 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10728
10729 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10730 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10731 ID3D12Device3 * This,
10732 _In_ UINT nodeMask,
10733 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10734 _In_ SIZE_T blobLengthInBytes,
10735 REFIID riid,
10736 _COM_Outptr_ void **ppvRootSignature);
10737
10738 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10739 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10740 ID3D12Device3 * This,
10741 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10742 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10743
10744 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10745 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10746 ID3D12Device3 * This,
10747 _In_opt_ ID3D12Resource *pResource,
10748 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10749 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10750
10751 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10752 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10753 ID3D12Device3 * This,
10754 _In_opt_ ID3D12Resource *pResource,
10755 _In_opt_ ID3D12Resource *pCounterResource,
10756 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10757 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10758
10759 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10760 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10761 ID3D12Device3 * This,
10762 _In_opt_ ID3D12Resource *pResource,
10763 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10764 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10765
10766 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10767 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10768 ID3D12Device3 * This,
10769 _In_opt_ ID3D12Resource *pResource,
10770 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10771 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10772
10773 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10774 void ( STDMETHODCALLTYPE *CreateSampler )(
10775 ID3D12Device3 * This,
10776 _In_ const D3D12_SAMPLER_DESC *pDesc,
10777 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10778
10779 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10780 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10781 ID3D12Device3 * This,
10782 _In_ UINT NumDestDescriptorRanges,
10783 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10784 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10785 _In_ UINT NumSrcDescriptorRanges,
10786 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10787 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10788 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10789
10790 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10791 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10792 ID3D12Device3 * This,
10793 _In_ UINT NumDescriptors,
10794 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10795 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10796 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10797
10798 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10799 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10800 ID3D12Device3 * This,
10801 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10802 _In_ UINT visibleMask,
10803 _In_ UINT numResourceDescs,
10804 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10805
10806 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10807 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10808 ID3D12Device3 * This,
10809 D3D12_HEAP_PROPERTIES * RetVal,
10810 _In_ UINT nodeMask,
10811 D3D12_HEAP_TYPE heapType);
10812
10813 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10814 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10815 ID3D12Device3 * This,
10816 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10817 D3D12_HEAP_FLAGS HeapFlags,
10818 _In_ const D3D12_RESOURCE_DESC *pDesc,
10819 D3D12_RESOURCE_STATES InitialResourceState,
10820 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10821 REFIID riidResource,
10822 _COM_Outptr_opt_ void **ppvResource);
10823
10824 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10825 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10826 ID3D12Device3 * This,
10827 _In_ const D3D12_HEAP_DESC *pDesc,
10828 REFIID riid,
10829 _COM_Outptr_opt_ void **ppvHeap);
10830
10831 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10832 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10833 ID3D12Device3 * This,
10834 _In_ ID3D12Heap *pHeap,
10835 UINT64 HeapOffset,
10836 _In_ const D3D12_RESOURCE_DESC *pDesc,
10837 D3D12_RESOURCE_STATES InitialState,
10838 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10839 REFIID riid,
10840 _COM_Outptr_opt_ void **ppvResource);
10841
10842 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10843 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10844 ID3D12Device3 * This,
10845 _In_ const D3D12_RESOURCE_DESC *pDesc,
10846 D3D12_RESOURCE_STATES InitialState,
10847 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10848 REFIID riid,
10849 _COM_Outptr_opt_ void **ppvResource);
10850
10851 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10852 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10853 ID3D12Device3 * This,
10854 _In_ ID3D12DeviceChild *pObject,
10855 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10856 DWORD Access,
10857 _In_opt_ LPCWSTR Name,
10858 _Out_ HANDLE *pHandle);
10859
10860 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10861 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10862 ID3D12Device3 * This,
10863 _In_ HANDLE NTHandle,
10864 REFIID riid,
10865 _COM_Outptr_opt_ void **ppvObj);
10866
10867 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10868 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10869 ID3D12Device3 * This,
10870 _In_ LPCWSTR Name,
10871 DWORD Access,
10872 /* [annotation][out] */
10873 _Out_ HANDLE *pNTHandle);
10874
10875 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10876 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10877 ID3D12Device3 * This,
10878 UINT NumObjects,
10879 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10880
10881 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10882 HRESULT ( STDMETHODCALLTYPE *Evict )(
10883 ID3D12Device3 * This,
10884 UINT NumObjects,
10885 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10886
10887 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10888 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10889 ID3D12Device3 * This,
10890 UINT64 InitialValue,
10891 D3D12_FENCE_FLAGS Flags,
10892 REFIID riid,
10893 _COM_Outptr_ void **ppFence);
10894
10895 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
10896 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
10897 ID3D12Device3 * This);
10898
10899 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
10900 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
10901 ID3D12Device3 * This,
10902 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
10903 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
10904 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
10905 UINT64 BaseOffset,
10906 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
10907 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
10908 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
10909 _Out_opt_ UINT64 *pTotalBytes);
10910
10911 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
10912 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
10913 ID3D12Device3 * This,
10914 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
10915 REFIID riid,
10916 _COM_Outptr_opt_ void **ppvHeap);
10917
10918 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
10919 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
10920 ID3D12Device3 * This,
10921 BOOL Enable);
10922
10923 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
10924 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
10925 ID3D12Device3 * This,
10926 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
10927 _In_opt_ ID3D12RootSignature *pRootSignature,
10928 REFIID riid,
10929 _COM_Outptr_opt_ void **ppvCommandSignature);
10930
10931 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
10932 void ( STDMETHODCALLTYPE *GetResourceTiling )(
10933 ID3D12Device3 * This,
10934 _In_ ID3D12Resource *pTiledResource,
10935 _Out_opt_ UINT *pNumTilesForEntireResource,
10936 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
10937 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
10938 _Inout_opt_ UINT *pNumSubresourceTilings,
10939 _In_ UINT FirstSubresourceTilingToGet,
10940 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
10941
10942 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
10943 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
10944 ID3D12Device3 * This,
10945 LUID * RetVal);
10946
10947 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
10948 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
10949 ID3D12Device3 * This,
10950 _In_reads_(BlobLength) const void *pLibraryBlob,
10951 SIZE_T BlobLength,
10952 REFIID riid,
10953 _COM_Outptr_ void **ppPipelineLibrary);
10954
10955 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
10956 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
10957 ID3D12Device3 * This,
10958 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10959 _In_reads_(NumFences) const UINT64 *pFenceValues,
10960 UINT NumFences,
10961 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10962 HANDLE hEvent);
10963
10964 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
10965 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
10966 ID3D12Device3 * This,
10967 UINT NumObjects,
10968 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10969 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
10970
10971 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
10972 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
10973 ID3D12Device3 * This,
10974 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10975 REFIID riid,
10976 _COM_Outptr_ void **ppPipelineState);
10977
10978 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
10979 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
10980 ID3D12Device3 * This,
10981 _In_ const void *pAddress,
10982 REFIID riid,
10983 _COM_Outptr_ void **ppvHeap);
10984
10985 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
10986 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
10987 ID3D12Device3 * This,
10988 _In_ HANDLE hFileMapping,
10989 REFIID riid,
10990 _COM_Outptr_ void **ppvHeap);
10991
10992 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
10993 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
10994 ID3D12Device3 * This,
10995 D3D12_RESIDENCY_FLAGS Flags,
10996 UINT NumObjects,
10997 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10998 _In_ ID3D12Fence *pFenceToSignal,
10999 UINT64 FenceValueToSignal);
11000
11001 END_INTERFACE
11002 } ID3D12Device3Vtbl;
11003
11004 interface ID3D12Device3
11005 {
11006 CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl;
11007 };
11008
11009
11010
11011#ifdef COBJMACROS
11012
11013
11014#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \
11015 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11016
11017#define ID3D12Device3_AddRef(This) \
11018 ( (This)->lpVtbl -> AddRef(This) )
11019
11020#define ID3D12Device3_Release(This) \
11021 ( (This)->lpVtbl -> Release(This) )
11022
11023
11024#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \
11025 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11026
11027#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \
11028 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11029
11030#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \
11031 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11032
11033#define ID3D12Device3_SetName(This,Name) \
11034 ( (This)->lpVtbl -> SetName(This,Name) )
11035
11036
11037#define ID3D12Device3_GetNodeCount(This) \
11038 ( (This)->lpVtbl -> GetNodeCount(This) )
11039
11040#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11041 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11042
11043#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11044 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11045
11046#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11047 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11048
11049#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11050 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11051
11052#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11053 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11054
11055#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11056 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11057
11058#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11059 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11060
11061#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11062 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11063
11064#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11065 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11066
11067#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11068 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11069
11070#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11071 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11072
11073#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11074 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11075
11076#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11077 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11078
11079#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11080 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11081
11082#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \
11083 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11084
11085#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11086 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11087
11088#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11089 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11090
11091#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11092 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11093
11094#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11095 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11096
11097#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11098 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11099
11100#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \
11101 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11102
11103#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11104 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11105
11106#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11107 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11108
11109#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11110 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11111
11112#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11113 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11114
11115#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11116 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11117
11118#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \
11119 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11120
11121#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \
11122 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11123
11124#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11125 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11126
11127#define ID3D12Device3_GetDeviceRemovedReason(This) \
11128 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11129
11130#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11131 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11132
11133#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11134 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11135
11136#define ID3D12Device3_SetStablePowerState(This,Enable) \
11137 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11138
11139#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11140 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11141
11142#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11143 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11144
11145#define ID3D12Device3_GetAdapterLuid(This,RetVal) \
11146 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11147
11148
11149#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11150 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11151
11152#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11153 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11154
11155#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11156 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11157
11158
11159#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
11160 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
11161
11162
11163#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
11164 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
11165
11166#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
11167 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
11168
11169#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
11170 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
11171
11172#endif /* COBJMACROS */
11173
11174
11175#endif /* C style interface */
11176
11177
11178
11179
11180#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
11181
11182
11183/* interface __MIDL_itf_d3d12_0000_0026 */
11184/* [local] */
11185
11186typedef
11187enum D3D12_COMMAND_LIST_FLAGS
11188 {
11189 D3D12_COMMAND_LIST_FLAG_NONE = 0
11190 } D3D12_COMMAND_LIST_FLAGS;
11191
11192DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS );
11193typedef
11194enum D3D12_COMMAND_POOL_FLAGS
11195 {
11196 D3D12_COMMAND_POOL_FLAG_NONE = 0
11197 } D3D12_COMMAND_POOL_FLAGS;
11198
11199DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS );
11200typedef
11201enum D3D12_COMMAND_RECORDER_FLAGS
11202 {
11203 D3D12_COMMAND_RECORDER_FLAG_NONE = 0
11204 } D3D12_COMMAND_RECORDER_FLAGS;
11205
11206DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS );
11207typedef
11208enum D3D12_PROTECTED_SESSION_STATUS
11209 {
11210 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
11211 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
11212 } D3D12_PROTECTED_SESSION_STATUS;
11213
11214
11215
11216extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec;
11217extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec;
11218
11219#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
11220#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
11221
11222/* interface ID3D12ProtectedSession */
11223/* [unique][local][object][uuid] */
11224
11225
11226EXTERN_C const IID IID_ID3D12ProtectedSession;
11227
11228#if defined(__cplusplus) && !defined(CINTERFACE)
11229
11230 MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
11231 ID3D12ProtectedSession : public ID3D12DeviceChild
11232 {
11233 public:
11234 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
11235 REFIID riid,
11236 _COM_Outptr_opt_ void **ppFence) = 0;
11237
11238 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
11239
11240 };
11241
11242
11243#else /* C style interface */
11244
11245 typedef struct ID3D12ProtectedSessionVtbl
11246 {
11247 BEGIN_INTERFACE
11248
11249 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11250 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11251 ID3D12ProtectedSession * This,
11252 REFIID riid,
11253 _COM_Outptr_ void **ppvObject);
11254
11255 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11256 ULONG ( STDMETHODCALLTYPE *AddRef )(
11257 ID3D12ProtectedSession * This);
11258
11259 DECLSPEC_XFGVIRT(IUnknown, Release)
11260 ULONG ( STDMETHODCALLTYPE *Release )(
11261 ID3D12ProtectedSession * This);
11262
11263 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11264 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11265 ID3D12ProtectedSession * This,
11266 _In_ REFGUID guid,
11267 _Inout_ UINT *pDataSize,
11268 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11269
11270 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11271 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11272 ID3D12ProtectedSession * This,
11273 _In_ REFGUID guid,
11274 _In_ UINT DataSize,
11275 _In_reads_bytes_opt_( DataSize ) const void *pData);
11276
11277 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11278 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11279 ID3D12ProtectedSession * This,
11280 _In_ REFGUID guid,
11281 _In_opt_ const IUnknown *pData);
11282
11283 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11284 HRESULT ( STDMETHODCALLTYPE *SetName )(
11285 ID3D12ProtectedSession * This,
11286 _In_z_ LPCWSTR Name);
11287
11288 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
11289 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
11290 ID3D12ProtectedSession * This,
11291 REFIID riid,
11292 _COM_Outptr_opt_ void **ppvDevice);
11293
11294 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
11295 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
11296 ID3D12ProtectedSession * This,
11297 REFIID riid,
11298 _COM_Outptr_opt_ void **ppFence);
11299
11300 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
11301 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
11302 ID3D12ProtectedSession * This);
11303
11304 END_INTERFACE
11305 } ID3D12ProtectedSessionVtbl;
11306
11307 interface ID3D12ProtectedSession
11308 {
11309 CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
11310 };
11311
11312
11313
11314#ifdef COBJMACROS
11315
11316
11317#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
11318 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11319
11320#define ID3D12ProtectedSession_AddRef(This) \
11321 ( (This)->lpVtbl -> AddRef(This) )
11322
11323#define ID3D12ProtectedSession_Release(This) \
11324 ( (This)->lpVtbl -> Release(This) )
11325
11326
11327#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
11328 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11329
11330#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
11331 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11332
11333#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
11334 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11335
11336#define ID3D12ProtectedSession_SetName(This,Name) \
11337 ( (This)->lpVtbl -> SetName(This,Name) )
11338
11339
11340#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
11341 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
11342
11343
11344#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
11345 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
11346
11347#define ID3D12ProtectedSession_GetSessionStatus(This) \
11348 ( (This)->lpVtbl -> GetSessionStatus(This) )
11349
11350#endif /* COBJMACROS */
11351
11352
11353#endif /* C style interface */
11354
11355
11356
11357
11358#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
11359
11360
11361/* interface __MIDL_itf_d3d12_0000_0027 */
11362/* [local] */
11363
11364typedef
11365enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
11366 {
11367 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
11368 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
11369 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
11370
11371DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS );
11372typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
11373 {
11374 UINT NodeIndex;
11375 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
11376 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
11377
11378typedef
11379enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
11380 {
11381 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
11382 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
11383
11384DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS );
11385typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
11386 {
11387 UINT NodeMask;
11388 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
11389 } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
11390
11391
11392
11393extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
11394extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
11395
11396#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
11397#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
11398
11399/* interface ID3D12ProtectedResourceSession */
11400/* [unique][local][object][uuid] */
11401
11402
11403EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
11404
11405#if defined(__cplusplus) && !defined(CINTERFACE)
11406
11407 MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
11408 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
11409 {
11410 public:
11411 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
11412
11413 };
11414
11415
11416#else /* C style interface */
11417
11418 typedef struct ID3D12ProtectedResourceSessionVtbl
11419 {
11420 BEGIN_INTERFACE
11421
11422 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11423 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11424 ID3D12ProtectedResourceSession * This,
11425 REFIID riid,
11426 _COM_Outptr_ void **ppvObject);
11427
11428 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11429 ULONG ( STDMETHODCALLTYPE *AddRef )(
11430 ID3D12ProtectedResourceSession * This);
11431
11432 DECLSPEC_XFGVIRT(IUnknown, Release)
11433 ULONG ( STDMETHODCALLTYPE *Release )(
11434 ID3D12ProtectedResourceSession * This);
11435
11436 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11437 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11438 ID3D12ProtectedResourceSession * This,
11439 _In_ REFGUID guid,
11440 _Inout_ UINT *pDataSize,
11441 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11442
11443 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11444 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11445 ID3D12ProtectedResourceSession * This,
11446 _In_ REFGUID guid,
11447 _In_ UINT DataSize,
11448 _In_reads_bytes_opt_( DataSize ) const void *pData);
11449
11450 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11451 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11452 ID3D12ProtectedResourceSession * This,
11453 _In_ REFGUID guid,
11454 _In_opt_ const IUnknown *pData);
11455
11456 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11457 HRESULT ( STDMETHODCALLTYPE *SetName )(
11458 ID3D12ProtectedResourceSession * This,
11459 _In_z_ LPCWSTR Name);
11460
11461 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
11462 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
11463 ID3D12ProtectedResourceSession * This,
11464 REFIID riid,
11465 _COM_Outptr_opt_ void **ppvDevice);
11466
11467 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
11468 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
11469 ID3D12ProtectedResourceSession * This,
11470 REFIID riid,
11471 _COM_Outptr_opt_ void **ppFence);
11472
11473 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
11474 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
11475 ID3D12ProtectedResourceSession * This);
11476
11477 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
11478 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
11479 ID3D12ProtectedResourceSession * This,
11480 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
11481
11482 END_INTERFACE
11483 } ID3D12ProtectedResourceSessionVtbl;
11484
11485 interface ID3D12ProtectedResourceSession
11486 {
11487 CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
11488 };
11489
11490
11491
11492#ifdef COBJMACROS
11493
11494
11495#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
11496 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11497
11498#define ID3D12ProtectedResourceSession_AddRef(This) \
11499 ( (This)->lpVtbl -> AddRef(This) )
11500
11501#define ID3D12ProtectedResourceSession_Release(This) \
11502 ( (This)->lpVtbl -> Release(This) )
11503
11504
11505#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
11506 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11507
11508#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
11509 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11510
11511#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
11512 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11513
11514#define ID3D12ProtectedResourceSession_SetName(This,Name) \
11515 ( (This)->lpVtbl -> SetName(This,Name) )
11516
11517
11518#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
11519 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
11520
11521
11522#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
11523 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
11524
11525#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
11526 ( (This)->lpVtbl -> GetSessionStatus(This) )
11527
11528
11529#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \
11530 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
11531
11532#endif /* COBJMACROS */
11533
11534
11535#endif /* C style interface */
11536
11537
11538
11539
11540#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
11541
11542
11543#ifndef __ID3D12Device4_INTERFACE_DEFINED__
11544#define __ID3D12Device4_INTERFACE_DEFINED__
11545
11546/* interface ID3D12Device4 */
11547/* [unique][local][object][uuid] */
11548
11549
11550EXTERN_C const IID IID_ID3D12Device4;
11551
11552#if defined(__cplusplus) && !defined(CINTERFACE)
11553
11554 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
11555 ID3D12Device4 : public ID3D12Device3
11556 {
11557 public:
11558 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
11559 _In_ UINT nodeMask,
11560 _In_ D3D12_COMMAND_LIST_TYPE type,
11561 _In_ D3D12_COMMAND_LIST_FLAGS flags,
11562 REFIID riid,
11563 _COM_Outptr_ void **ppCommandList) = 0;
11564
11565 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
11566 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
11567 _In_ REFIID riid,
11568 _COM_Outptr_ void **ppSession) = 0;
11569
11570 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
11571 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
11572 D3D12_HEAP_FLAGS HeapFlags,
11573 _In_ const D3D12_RESOURCE_DESC *pDesc,
11574 D3D12_RESOURCE_STATES InitialResourceState,
11575 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11576 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
11577 REFIID riidResource,
11578 _COM_Outptr_opt_ void **ppvResource) = 0;
11579
11580 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
11581 _In_ const D3D12_HEAP_DESC *pDesc,
11582 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
11583 REFIID riid,
11584 _COM_Outptr_opt_ void **ppvHeap) = 0;
11585
11586 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
11587 _In_ const D3D12_RESOURCE_DESC *pDesc,
11588 D3D12_RESOURCE_STATES InitialState,
11589 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11590 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
11591 REFIID riid,
11592 _COM_Outptr_opt_ void **ppvResource) = 0;
11593
11594 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
11595 UINT visibleMask,
11596 UINT numResourceDescs,
11597 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
11598 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
11599
11600 };
11601
11602
11603#else /* C style interface */
11604
11605 typedef struct ID3D12Device4Vtbl
11606 {
11607 BEGIN_INTERFACE
11608
11609 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11610 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11611 ID3D12Device4 * This,
11612 REFIID riid,
11613 _COM_Outptr_ void **ppvObject);
11614
11615 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11616 ULONG ( STDMETHODCALLTYPE *AddRef )(
11617 ID3D12Device4 * This);
11618
11619 DECLSPEC_XFGVIRT(IUnknown, Release)
11620 ULONG ( STDMETHODCALLTYPE *Release )(
11621 ID3D12Device4 * This);
11622
11623 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11624 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11625 ID3D12Device4 * This,
11626 _In_ REFGUID guid,
11627 _Inout_ UINT *pDataSize,
11628 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11629
11630 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11631 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11632 ID3D12Device4 * This,
11633 _In_ REFGUID guid,
11634 _In_ UINT DataSize,
11635 _In_reads_bytes_opt_( DataSize ) const void *pData);
11636
11637 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11638 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11639 ID3D12Device4 * This,
11640 _In_ REFGUID guid,
11641 _In_opt_ const IUnknown *pData);
11642
11643 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11644 HRESULT ( STDMETHODCALLTYPE *SetName )(
11645 ID3D12Device4 * This,
11646 _In_z_ LPCWSTR Name);
11647
11648 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11649 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11650 ID3D12Device4 * This);
11651
11652 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11653 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11654 ID3D12Device4 * This,
11655 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11656 REFIID riid,
11657 _COM_Outptr_ void **ppCommandQueue);
11658
11659 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11660 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11661 ID3D12Device4 * This,
11662 _In_ D3D12_COMMAND_LIST_TYPE type,
11663 REFIID riid,
11664 _COM_Outptr_ void **ppCommandAllocator);
11665
11666 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
11667 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
11668 ID3D12Device4 * This,
11669 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
11670 REFIID riid,
11671 _COM_Outptr_ void **ppPipelineState);
11672
11673 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
11674 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
11675 ID3D12Device4 * This,
11676 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
11677 REFIID riid,
11678 _COM_Outptr_ void **ppPipelineState);
11679
11680 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
11681 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
11682 ID3D12Device4 * This,
11683 _In_ UINT nodeMask,
11684 _In_ D3D12_COMMAND_LIST_TYPE type,
11685 _In_ ID3D12CommandAllocator *pCommandAllocator,
11686 _In_opt_ ID3D12PipelineState *pInitialState,
11687 REFIID riid,
11688 _COM_Outptr_ void **ppCommandList);
11689
11690 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
11691 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
11692 ID3D12Device4 * This,
11693 D3D12_FEATURE Feature,
11694 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
11695 UINT FeatureSupportDataSize);
11696
11697 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
11698 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
11699 ID3D12Device4 * This,
11700 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
11701 REFIID riid,
11702 _COM_Outptr_ void **ppvHeap);
11703
11704 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
11705 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
11706 ID3D12Device4 * This,
11707 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
11708
11709 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
11710 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
11711 ID3D12Device4 * This,
11712 _In_ UINT nodeMask,
11713 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
11714 _In_ SIZE_T blobLengthInBytes,
11715 REFIID riid,
11716 _COM_Outptr_ void **ppvRootSignature);
11717
11718 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
11719 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
11720 ID3D12Device4 * This,
11721 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
11722 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11723
11724 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
11725 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
11726 ID3D12Device4 * This,
11727 _In_opt_ ID3D12Resource *pResource,
11728 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
11729 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11730
11731 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
11732 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
11733 ID3D12Device4 * This,
11734 _In_opt_ ID3D12Resource *pResource,
11735 _In_opt_ ID3D12Resource *pCounterResource,
11736 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
11737 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11738
11739 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
11740 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
11741 ID3D12Device4 * This,
11742 _In_opt_ ID3D12Resource *pResource,
11743 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
11744 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11745
11746 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
11747 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
11748 ID3D12Device4 * This,
11749 _In_opt_ ID3D12Resource *pResource,
11750 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
11751 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11752
11753 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
11754 void ( STDMETHODCALLTYPE *CreateSampler )(
11755 ID3D12Device4 * This,
11756 _In_ const D3D12_SAMPLER_DESC *pDesc,
11757 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11758
11759 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
11760 void ( STDMETHODCALLTYPE *CopyDescriptors )(
11761 ID3D12Device4 * This,
11762 _In_ UINT NumDestDescriptorRanges,
11763 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
11764 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
11765 _In_ UINT NumSrcDescriptorRanges,
11766 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
11767 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
11768 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11769
11770 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
11771 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
11772 ID3D12Device4 * This,
11773 _In_ UINT NumDescriptors,
11774 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
11775 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
11776 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11777
11778 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
11779 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11780 ID3D12Device4 * This,
11781 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
11782 _In_ UINT visibleMask,
11783 _In_ UINT numResourceDescs,
11784 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11785
11786 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
11787 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11788 ID3D12Device4 * This,
11789 D3D12_HEAP_PROPERTIES * RetVal,
11790 _In_ UINT nodeMask,
11791 D3D12_HEAP_TYPE heapType);
11792
11793 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
11794 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
11795 ID3D12Device4 * This,
11796 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
11797 D3D12_HEAP_FLAGS HeapFlags,
11798 _In_ const D3D12_RESOURCE_DESC *pDesc,
11799 D3D12_RESOURCE_STATES InitialResourceState,
11800 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11801 REFIID riidResource,
11802 _COM_Outptr_opt_ void **ppvResource);
11803
11804 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
11805 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
11806 ID3D12Device4 * This,
11807 _In_ const D3D12_HEAP_DESC *pDesc,
11808 REFIID riid,
11809 _COM_Outptr_opt_ void **ppvHeap);
11810
11811 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
11812 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
11813 ID3D12Device4 * This,
11814 _In_ ID3D12Heap *pHeap,
11815 UINT64 HeapOffset,
11816 _In_ const D3D12_RESOURCE_DESC *pDesc,
11817 D3D12_RESOURCE_STATES InitialState,
11818 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11819 REFIID riid,
11820 _COM_Outptr_opt_ void **ppvResource);
11821
11822 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
11823 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
11824 ID3D12Device4 * This,
11825 _In_ const D3D12_RESOURCE_DESC *pDesc,
11826 D3D12_RESOURCE_STATES InitialState,
11827 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11828 REFIID riid,
11829 _COM_Outptr_opt_ void **ppvResource);
11830
11831 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
11832 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
11833 ID3D12Device4 * This,
11834 _In_ ID3D12DeviceChild *pObject,
11835 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
11836 DWORD Access,
11837 _In_opt_ LPCWSTR Name,
11838 _Out_ HANDLE *pHandle);
11839
11840 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
11841 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
11842 ID3D12Device4 * This,
11843 _In_ HANDLE NTHandle,
11844 REFIID riid,
11845 _COM_Outptr_opt_ void **ppvObj);
11846
11847 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
11848 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
11849 ID3D12Device4 * This,
11850 _In_ LPCWSTR Name,
11851 DWORD Access,
11852 /* [annotation][out] */
11853 _Out_ HANDLE *pNTHandle);
11854
11855 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11856 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11857 ID3D12Device4 * This,
11858 UINT NumObjects,
11859 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11860
11861 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11862 HRESULT ( STDMETHODCALLTYPE *Evict )(
11863 ID3D12Device4 * This,
11864 UINT NumObjects,
11865 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11866
11867 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11868 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11869 ID3D12Device4 * This,
11870 UINT64 InitialValue,
11871 D3D12_FENCE_FLAGS Flags,
11872 REFIID riid,
11873 _COM_Outptr_ void **ppFence);
11874
11875 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11876 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11877 ID3D12Device4 * This);
11878
11879 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11880 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11881 ID3D12Device4 * This,
11882 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11883 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11884 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11885 UINT64 BaseOffset,
11886 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11887 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11888 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11889 _Out_opt_ UINT64 *pTotalBytes);
11890
11891 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11892 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11893 ID3D12Device4 * This,
11894 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11895 REFIID riid,
11896 _COM_Outptr_opt_ void **ppvHeap);
11897
11898 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11899 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11900 ID3D12Device4 * This,
11901 BOOL Enable);
11902
11903 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11904 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11905 ID3D12Device4 * This,
11906 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11907 _In_opt_ ID3D12RootSignature *pRootSignature,
11908 REFIID riid,
11909 _COM_Outptr_opt_ void **ppvCommandSignature);
11910
11911 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11912 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11913 ID3D12Device4 * This,
11914 _In_ ID3D12Resource *pTiledResource,
11915 _Out_opt_ UINT *pNumTilesForEntireResource,
11916 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11917 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11918 _Inout_opt_ UINT *pNumSubresourceTilings,
11919 _In_ UINT FirstSubresourceTilingToGet,
11920 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11921
11922 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11923 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11924 ID3D12Device4 * This,
11925 LUID * RetVal);
11926
11927 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11928 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11929 ID3D12Device4 * This,
11930 _In_reads_(BlobLength) const void *pLibraryBlob,
11931 SIZE_T BlobLength,
11932 REFIID riid,
11933 _COM_Outptr_ void **ppPipelineLibrary);
11934
11935 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11936 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11937 ID3D12Device4 * This,
11938 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11939 _In_reads_(NumFences) const UINT64 *pFenceValues,
11940 UINT NumFences,
11941 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11942 HANDLE hEvent);
11943
11944 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11945 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11946 ID3D12Device4 * This,
11947 UINT NumObjects,
11948 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11949 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11950
11951 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
11952 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
11953 ID3D12Device4 * This,
11954 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11955 REFIID riid,
11956 _COM_Outptr_ void **ppPipelineState);
11957
11958 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
11959 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
11960 ID3D12Device4 * This,
11961 _In_ const void *pAddress,
11962 REFIID riid,
11963 _COM_Outptr_ void **ppvHeap);
11964
11965 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
11966 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
11967 ID3D12Device4 * This,
11968 _In_ HANDLE hFileMapping,
11969 REFIID riid,
11970 _COM_Outptr_ void **ppvHeap);
11971
11972 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
11973 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
11974 ID3D12Device4 * This,
11975 D3D12_RESIDENCY_FLAGS Flags,
11976 UINT NumObjects,
11977 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11978 _In_ ID3D12Fence *pFenceToSignal,
11979 UINT64 FenceValueToSignal);
11980
11981 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
11982 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
11983 ID3D12Device4 * This,
11984 _In_ UINT nodeMask,
11985 _In_ D3D12_COMMAND_LIST_TYPE type,
11986 _In_ D3D12_COMMAND_LIST_FLAGS flags,
11987 REFIID riid,
11988 _COM_Outptr_ void **ppCommandList);
11989
11990 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
11991 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
11992 ID3D12Device4 * This,
11993 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
11994 _In_ REFIID riid,
11995 _COM_Outptr_ void **ppSession);
11996
11997 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
11998 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
11999 ID3D12Device4 * This,
12000 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12001 D3D12_HEAP_FLAGS HeapFlags,
12002 _In_ const D3D12_RESOURCE_DESC *pDesc,
12003 D3D12_RESOURCE_STATES InitialResourceState,
12004 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12005 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12006 REFIID riidResource,
12007 _COM_Outptr_opt_ void **ppvResource);
12008
12009 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
12010 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
12011 ID3D12Device4 * This,
12012 _In_ const D3D12_HEAP_DESC *pDesc,
12013 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12014 REFIID riid,
12015 _COM_Outptr_opt_ void **ppvHeap);
12016
12017 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
12018 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
12019 ID3D12Device4 * This,
12020 _In_ const D3D12_RESOURCE_DESC *pDesc,
12021 D3D12_RESOURCE_STATES InitialState,
12022 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12023 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12024 REFIID riid,
12025 _COM_Outptr_opt_ void **ppvResource);
12026
12027 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
12028 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
12029 ID3D12Device4 * This,
12030 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12031 UINT visibleMask,
12032 UINT numResourceDescs,
12033 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12034 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
12035
12036 END_INTERFACE
12037 } ID3D12Device4Vtbl;
12038
12039 interface ID3D12Device4
12040 {
12041 CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
12042 };
12043
12044
12045
12046#ifdef COBJMACROS
12047
12048
12049#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
12050 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12051
12052#define ID3D12Device4_AddRef(This) \
12053 ( (This)->lpVtbl -> AddRef(This) )
12054
12055#define ID3D12Device4_Release(This) \
12056 ( (This)->lpVtbl -> Release(This) )
12057
12058
12059#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
12060 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12061
12062#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
12063 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12064
12065#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
12066 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12067
12068#define ID3D12Device4_SetName(This,Name) \
12069 ( (This)->lpVtbl -> SetName(This,Name) )
12070
12071
12072#define ID3D12Device4_GetNodeCount(This) \
12073 ( (This)->lpVtbl -> GetNodeCount(This) )
12074
12075#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
12076 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
12077
12078#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
12079 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
12080
12081#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
12082 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
12083
12084#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
12085 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
12086
12087#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
12088 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
12089
12090#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
12091 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
12092
12093#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
12094 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
12095
12096#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
12097 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
12098
12099#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
12100 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
12101
12102#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
12103 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
12104
12105#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
12106 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
12107
12108#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
12109 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
12110
12111#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
12112 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
12113
12114#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
12115 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
12116
12117#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
12118 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
12119
12120#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
12121 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
12122
12123#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
12124 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
12125
12126#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
12127 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
12128
12129#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
12130 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
12131
12132#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
12133 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
12134
12135#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
12136 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
12137
12138#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12139 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12140
12141#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12142 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12143
12144#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
12145 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
12146
12147#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
12148 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
12149
12150#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
12151 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
12152
12153#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
12154 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
12155
12156#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
12157 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
12158
12159#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
12160 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
12161
12162#define ID3D12Device4_GetDeviceRemovedReason(This) \
12163 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
12164
12165#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
12166 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
12167
12168#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
12169 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
12170
12171#define ID3D12Device4_SetStablePowerState(This,Enable) \
12172 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
12173
12174#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
12175 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
12176
12177#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
12178 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
12179
12180#define ID3D12Device4_GetAdapterLuid(This,RetVal) \
12181 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
12182
12183
12184#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
12185 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
12186
12187#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
12188 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
12189
12190#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
12191 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
12192
12193
12194#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
12195 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
12196
12197
12198#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
12199 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
12200
12201#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
12202 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
12203
12204#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
12205 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
12206
12207
12208#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
12209 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
12210
12211#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
12212 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
12213
12214#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
12215 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
12216
12217#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
12218 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
12219
12220#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
12221 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
12222
12223#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
12224 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
12225
12226#endif /* COBJMACROS */
12227
12228
12229#endif /* C style interface */
12230
12231
12232
12233
12234#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
12235
12236
12237/* interface __MIDL_itf_d3d12_0000_0029 */
12238/* [local] */
12239
12240typedef
12241enum D3D12_LIFETIME_STATE
12242 {
12243 D3D12_LIFETIME_STATE_IN_USE = 0,
12244 D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
12245 } D3D12_LIFETIME_STATE;
12246
12247
12248
12249
12250extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
12251extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
12252
12253#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12254#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
12255
12256/* interface ID3D12LifetimeOwner */
12257/* [unique][local][object][uuid] */
12258
12259
12260EXTERN_C const IID IID_ID3D12LifetimeOwner;
12261
12262#if defined(__cplusplus) && !defined(CINTERFACE)
12263
12264 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
12265 ID3D12LifetimeOwner : public IUnknown
12266 {
12267 public:
12268 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
12269 D3D12_LIFETIME_STATE NewState) = 0;
12270
12271 };
12272
12273
12274#else /* C style interface */
12275
12276 typedef struct ID3D12LifetimeOwnerVtbl
12277 {
12278 BEGIN_INTERFACE
12279
12280 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12281 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12282 ID3D12LifetimeOwner * This,
12283 REFIID riid,
12284 _COM_Outptr_ void **ppvObject);
12285
12286 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12287 ULONG ( STDMETHODCALLTYPE *AddRef )(
12288 ID3D12LifetimeOwner * This);
12289
12290 DECLSPEC_XFGVIRT(IUnknown, Release)
12291 ULONG ( STDMETHODCALLTYPE *Release )(
12292 ID3D12LifetimeOwner * This);
12293
12294 DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated)
12295 void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
12296 ID3D12LifetimeOwner * This,
12297 D3D12_LIFETIME_STATE NewState);
12298
12299 END_INTERFACE
12300 } ID3D12LifetimeOwnerVtbl;
12301
12302 interface ID3D12LifetimeOwner
12303 {
12304 CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
12305 };
12306
12307
12308
12309#ifdef COBJMACROS
12310
12311
12312#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
12313 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12314
12315#define ID3D12LifetimeOwner_AddRef(This) \
12316 ( (This)->lpVtbl -> AddRef(This) )
12317
12318#define ID3D12LifetimeOwner_Release(This) \
12319 ( (This)->lpVtbl -> Release(This) )
12320
12321
12322#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
12323 ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
12324
12325#endif /* COBJMACROS */
12326
12327
12328#endif /* C style interface */
12329
12330
12331
12332
12333#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
12334
12335
12336#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12337#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
12338
12339/* interface ID3D12SwapChainAssistant */
12340/* [unique][local][object][uuid] */
12341
12342
12343EXTERN_C const IID IID_ID3D12SwapChainAssistant;
12344
12345#if defined(__cplusplus) && !defined(CINTERFACE)
12346
12347 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
12348 ID3D12SwapChainAssistant : public IUnknown
12349 {
12350 public:
12351 virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
12352
12353 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
12354 REFIID riid,
12355 _COM_Outptr_ void **ppv) = 0;
12356
12357 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
12358 REFIID riidResource,
12359 _COM_Outptr_ void **ppvResource,
12360 REFIID riidQueue,
12361 _COM_Outptr_ void **ppvQueue) = 0;
12362
12363 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
12364
12365 };
12366
12367
12368#else /* C style interface */
12369
12370 typedef struct ID3D12SwapChainAssistantVtbl
12371 {
12372 BEGIN_INTERFACE
12373
12374 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12375 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12376 ID3D12SwapChainAssistant * This,
12377 REFIID riid,
12378 _COM_Outptr_ void **ppvObject);
12379
12380 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12381 ULONG ( STDMETHODCALLTYPE *AddRef )(
12382 ID3D12SwapChainAssistant * This);
12383
12384 DECLSPEC_XFGVIRT(IUnknown, Release)
12385 ULONG ( STDMETHODCALLTYPE *Release )(
12386 ID3D12SwapChainAssistant * This);
12387
12388 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID)
12389 LUID *( STDMETHODCALLTYPE *GetLUID )(
12390 ID3D12SwapChainAssistant * This,
12391 LUID * RetVal);
12392
12393 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject)
12394 HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
12395 ID3D12SwapChainAssistant * This,
12396 REFIID riid,
12397 _COM_Outptr_ void **ppv);
12398
12399 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue)
12400 HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
12401 ID3D12SwapChainAssistant * This,
12402 REFIID riidResource,
12403 _COM_Outptr_ void **ppvResource,
12404 REFIID riidQueue,
12405 _COM_Outptr_ void **ppvQueue);
12406
12407 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync)
12408 HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
12409 ID3D12SwapChainAssistant * This);
12410
12411 END_INTERFACE
12412 } ID3D12SwapChainAssistantVtbl;
12413
12414 interface ID3D12SwapChainAssistant
12415 {
12416 CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
12417 };
12418
12419
12420
12421#ifdef COBJMACROS
12422
12423
12424#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
12425 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12426
12427#define ID3D12SwapChainAssistant_AddRef(This) \
12428 ( (This)->lpVtbl -> AddRef(This) )
12429
12430#define ID3D12SwapChainAssistant_Release(This) \
12431 ( (This)->lpVtbl -> Release(This) )
12432
12433
12434#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \
12435 ( (This)->lpVtbl -> GetLUID(This,RetVal) )
12436
12437#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
12438 ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
12439
12440#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
12441 ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
12442
12443#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
12444 ( (This)->lpVtbl -> InsertImplicitSync(This) )
12445
12446#endif /* COBJMACROS */
12447
12448
12449#endif /* C style interface */
12450
12451
12452
12453
12454#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
12455
12456
12457#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12458#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
12459
12460/* interface ID3D12LifetimeTracker */
12461/* [unique][local][object][uuid] */
12462
12463
12464EXTERN_C const IID IID_ID3D12LifetimeTracker;
12465
12466#if defined(__cplusplus) && !defined(CINTERFACE)
12467
12468 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
12469 ID3D12LifetimeTracker : public ID3D12DeviceChild
12470 {
12471 public:
12472 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
12473 _In_ ID3D12DeviceChild *pObject) = 0;
12474
12475 };
12476
12477
12478#else /* C style interface */
12479
12480 typedef struct ID3D12LifetimeTrackerVtbl
12481 {
12482 BEGIN_INTERFACE
12483
12484 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12485 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12486 ID3D12LifetimeTracker * This,
12487 REFIID riid,
12488 _COM_Outptr_ void **ppvObject);
12489
12490 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12491 ULONG ( STDMETHODCALLTYPE *AddRef )(
12492 ID3D12LifetimeTracker * This);
12493
12494 DECLSPEC_XFGVIRT(IUnknown, Release)
12495 ULONG ( STDMETHODCALLTYPE *Release )(
12496 ID3D12LifetimeTracker * This);
12497
12498 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12499 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12500 ID3D12LifetimeTracker * This,
12501 _In_ REFGUID guid,
12502 _Inout_ UINT *pDataSize,
12503 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12504
12505 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12506 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12507 ID3D12LifetimeTracker * This,
12508 _In_ REFGUID guid,
12509 _In_ UINT DataSize,
12510 _In_reads_bytes_opt_( DataSize ) const void *pData);
12511
12512 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12513 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12514 ID3D12LifetimeTracker * This,
12515 _In_ REFGUID guid,
12516 _In_opt_ const IUnknown *pData);
12517
12518 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12519 HRESULT ( STDMETHODCALLTYPE *SetName )(
12520 ID3D12LifetimeTracker * This,
12521 _In_z_ LPCWSTR Name);
12522
12523 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12524 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12525 ID3D12LifetimeTracker * This,
12526 REFIID riid,
12527 _COM_Outptr_opt_ void **ppvDevice);
12528
12529 DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject)
12530 HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
12531 ID3D12LifetimeTracker * This,
12532 _In_ ID3D12DeviceChild *pObject);
12533
12534 END_INTERFACE
12535 } ID3D12LifetimeTrackerVtbl;
12536
12537 interface ID3D12LifetimeTracker
12538 {
12539 CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
12540 };
12541
12542
12543
12544#ifdef COBJMACROS
12545
12546
12547#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
12548 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12549
12550#define ID3D12LifetimeTracker_AddRef(This) \
12551 ( (This)->lpVtbl -> AddRef(This) )
12552
12553#define ID3D12LifetimeTracker_Release(This) \
12554 ( (This)->lpVtbl -> Release(This) )
12555
12556
12557#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
12558 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12559
12560#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
12561 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12562
12563#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
12564 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12565
12566#define ID3D12LifetimeTracker_SetName(This,Name) \
12567 ( (This)->lpVtbl -> SetName(This,Name) )
12568
12569
12570#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
12571 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12572
12573
12574#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
12575 ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
12576
12577#endif /* COBJMACROS */
12578
12579
12580#endif /* C style interface */
12581
12582
12583
12584
12585#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
12586
12587
12588/* interface __MIDL_itf_d3d12_0000_0032 */
12589/* [local] */
12590
12591typedef
12592enum D3D12_META_COMMAND_PARAMETER_TYPE
12593 {
12594 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
12595 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
12596 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
12597 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
12598 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
12599 } D3D12_META_COMMAND_PARAMETER_TYPE;
12600
12601typedef
12602enum D3D12_META_COMMAND_PARAMETER_FLAGS
12603 {
12604 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
12605 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
12606 } D3D12_META_COMMAND_PARAMETER_FLAGS;
12607
12608DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS );
12609typedef
12610enum D3D12_META_COMMAND_PARAMETER_STAGE
12611 {
12612 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
12613 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
12614 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
12615 } D3D12_META_COMMAND_PARAMETER_STAGE;
12616
12617typedef struct D3D12_META_COMMAND_PARAMETER_DESC
12618 {
12619 LPCWSTR Name;
12620 D3D12_META_COMMAND_PARAMETER_TYPE Type;
12621 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
12622 D3D12_RESOURCE_STATES RequiredResourceState;
12623 UINT StructureOffset;
12624 } D3D12_META_COMMAND_PARAMETER_DESC;
12625
12626typedef
12627enum D3D12_GRAPHICS_STATES
12628 {
12629 D3D12_GRAPHICS_STATE_NONE = 0,
12630 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
12631 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
12632 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
12633 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
12634 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
12635 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
12636 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
12637 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
12638 D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
12639 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
12640 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
12641 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
12642 D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
12643 D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
12644 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
12645 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
12646 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
12647 } D3D12_GRAPHICS_STATES;
12648
12649DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES );
12650typedef struct D3D12_META_COMMAND_DESC
12651 {
12652 GUID Id;
12653 LPCWSTR Name;
12654 D3D12_GRAPHICS_STATES InitializationDirtyState;
12655 D3D12_GRAPHICS_STATES ExecutionDirtyState;
12656 } D3D12_META_COMMAND_DESC;
12657
12658
12659
12660extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec;
12661extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec;
12662
12663#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
12664#define __ID3D12StateObject_INTERFACE_DEFINED__
12665
12666/* interface ID3D12StateObject */
12667/* [unique][local][object][uuid] */
12668
12669
12670EXTERN_C const IID IID_ID3D12StateObject;
12671
12672#if defined(__cplusplus) && !defined(CINTERFACE)
12673
12674 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
12675 ID3D12StateObject : public ID3D12Pageable
12676 {
12677 public:
12678 };
12679
12680
12681#else /* C style interface */
12682
12683 typedef struct ID3D12StateObjectVtbl
12684 {
12685 BEGIN_INTERFACE
12686
12687 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12688 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12689 ID3D12StateObject * This,
12690 REFIID riid,
12691 _COM_Outptr_ void **ppvObject);
12692
12693 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12694 ULONG ( STDMETHODCALLTYPE *AddRef )(
12695 ID3D12StateObject * This);
12696
12697 DECLSPEC_XFGVIRT(IUnknown, Release)
12698 ULONG ( STDMETHODCALLTYPE *Release )(
12699 ID3D12StateObject * This);
12700
12701 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12702 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12703 ID3D12StateObject * This,
12704 _In_ REFGUID guid,
12705 _Inout_ UINT *pDataSize,
12706 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12707
12708 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12709 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12710 ID3D12StateObject * This,
12711 _In_ REFGUID guid,
12712 _In_ UINT DataSize,
12713 _In_reads_bytes_opt_( DataSize ) const void *pData);
12714
12715 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12716 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12717 ID3D12StateObject * This,
12718 _In_ REFGUID guid,
12719 _In_opt_ const IUnknown *pData);
12720
12721 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12722 HRESULT ( STDMETHODCALLTYPE *SetName )(
12723 ID3D12StateObject * This,
12724 _In_z_ LPCWSTR Name);
12725
12726 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12727 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12728 ID3D12StateObject * This,
12729 REFIID riid,
12730 _COM_Outptr_opt_ void **ppvDevice);
12731
12732 END_INTERFACE
12733 } ID3D12StateObjectVtbl;
12734
12735 interface ID3D12StateObject
12736 {
12737 CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
12738 };
12739
12740
12741
12742#ifdef COBJMACROS
12743
12744
12745#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
12746 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12747
12748#define ID3D12StateObject_AddRef(This) \
12749 ( (This)->lpVtbl -> AddRef(This) )
12750
12751#define ID3D12StateObject_Release(This) \
12752 ( (This)->lpVtbl -> Release(This) )
12753
12754
12755#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
12756 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12757
12758#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
12759 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12760
12761#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
12762 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12763
12764#define ID3D12StateObject_SetName(This,Name) \
12765 ( (This)->lpVtbl -> SetName(This,Name) )
12766
12767
12768#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
12769 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12770
12771
12772
12773#endif /* COBJMACROS */
12774
12775
12776#endif /* C style interface */
12777
12778
12779
12780
12781#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
12782
12783
12784#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
12785#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
12786
12787/* interface ID3D12StateObjectProperties */
12788/* [unique][local][object][uuid] */
12789
12790
12791EXTERN_C const IID IID_ID3D12StateObjectProperties;
12792
12793#if defined(__cplusplus) && !defined(CINTERFACE)
12794
12795 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
12796 ID3D12StateObjectProperties : public IUnknown
12797 {
12798 public:
12799 virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
12800 _In_ LPCWSTR pExportName) = 0;
12801
12802 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
12803 _In_ LPCWSTR pExportName) = 0;
12804
12805 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
12806
12807 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
12808 UINT64 PipelineStackSizeInBytes) = 0;
12809
12810 };
12811
12812
12813#else /* C style interface */
12814
12815 typedef struct ID3D12StateObjectPropertiesVtbl
12816 {
12817 BEGIN_INTERFACE
12818
12819 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12820 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12821 ID3D12StateObjectProperties * This,
12822 REFIID riid,
12823 _COM_Outptr_ void **ppvObject);
12824
12825 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12826 ULONG ( STDMETHODCALLTYPE *AddRef )(
12827 ID3D12StateObjectProperties * This);
12828
12829 DECLSPEC_XFGVIRT(IUnknown, Release)
12830 ULONG ( STDMETHODCALLTYPE *Release )(
12831 ID3D12StateObjectProperties * This);
12832
12833 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
12834 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
12835 ID3D12StateObjectProperties * This,
12836 _In_ LPCWSTR pExportName);
12837
12838 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
12839 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
12840 ID3D12StateObjectProperties * This,
12841 _In_ LPCWSTR pExportName);
12842
12843 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
12844 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
12845 ID3D12StateObjectProperties * This);
12846
12847 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
12848 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
12849 ID3D12StateObjectProperties * This,
12850 UINT64 PipelineStackSizeInBytes);
12851
12852 END_INTERFACE
12853 } ID3D12StateObjectPropertiesVtbl;
12854
12855 interface ID3D12StateObjectProperties
12856 {
12857 CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
12858 };
12859
12860
12861
12862#ifdef COBJMACROS
12863
12864
12865#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
12866 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12867
12868#define ID3D12StateObjectProperties_AddRef(This) \
12869 ( (This)->lpVtbl -> AddRef(This) )
12870
12871#define ID3D12StateObjectProperties_Release(This) \
12872 ( (This)->lpVtbl -> Release(This) )
12873
12874
12875#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
12876 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
12877
12878#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
12879 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
12880
12881#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
12882 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
12883
12884#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
12885 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
12886
12887#endif /* COBJMACROS */
12888
12889
12890#endif /* C style interface */
12891
12892
12893
12894
12895#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
12896
12897
12898/* interface __MIDL_itf_d3d12_0000_0034 */
12899/* [local] */
12900
12901typedef
12902enum D3D12_STATE_SUBOBJECT_TYPE
12903 {
12904 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
12905 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
12906 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
12907 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
12908 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
12909 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
12910 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
12911 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
12912 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
12913 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
12914 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
12915 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12,
12916 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 + 1 )
12917 } D3D12_STATE_SUBOBJECT_TYPE;
12918
12919typedef struct D3D12_STATE_SUBOBJECT
12920 {
12921 D3D12_STATE_SUBOBJECT_TYPE Type;
12922 const void *pDesc;
12923 } D3D12_STATE_SUBOBJECT;
12924
12925typedef
12926enum D3D12_STATE_OBJECT_FLAGS
12927 {
12928 D3D12_STATE_OBJECT_FLAG_NONE = 0,
12929 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
12930 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
12931 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
12932 } D3D12_STATE_OBJECT_FLAGS;
12933
12934DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS );
12935typedef struct D3D12_STATE_OBJECT_CONFIG
12936 {
12937 D3D12_STATE_OBJECT_FLAGS Flags;
12938 } D3D12_STATE_OBJECT_CONFIG;
12939
12940typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
12941 {
12942 ID3D12RootSignature *pGlobalRootSignature;
12943 } D3D12_GLOBAL_ROOT_SIGNATURE;
12944
12945typedef struct D3D12_LOCAL_ROOT_SIGNATURE
12946 {
12947 ID3D12RootSignature *pLocalRootSignature;
12948 } D3D12_LOCAL_ROOT_SIGNATURE;
12949
12950typedef struct D3D12_NODE_MASK
12951 {
12952 UINT NodeMask;
12953 } D3D12_NODE_MASK;
12954
12955typedef
12956enum D3D12_EXPORT_FLAGS
12957 {
12958 D3D12_EXPORT_FLAG_NONE = 0
12959 } D3D12_EXPORT_FLAGS;
12960
12961DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS );
12962typedef struct D3D12_EXPORT_DESC
12963 {
12964 LPCWSTR Name;
12965 _In_opt_ LPCWSTR ExportToRename;
12966 D3D12_EXPORT_FLAGS Flags;
12967 } D3D12_EXPORT_DESC;
12968
12969typedef struct D3D12_DXIL_LIBRARY_DESC
12970 {
12971 D3D12_SHADER_BYTECODE DXILLibrary;
12972 UINT NumExports;
12973 _In_reads_(NumExports) D3D12_EXPORT_DESC *pExports;
12974 } D3D12_DXIL_LIBRARY_DESC;
12975
12976typedef struct D3D12_EXISTING_COLLECTION_DESC
12977 {
12978 ID3D12StateObject *pExistingCollection;
12979 UINT NumExports;
12980 _In_reads_(NumExports) D3D12_EXPORT_DESC *pExports;
12981 } D3D12_EXISTING_COLLECTION_DESC;
12982
12983typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
12984 {
12985 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
12986 UINT NumExports;
12987 _In_reads_(NumExports) LPCWSTR *pExports;
12988 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
12989
12990typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
12991 {
12992 LPCWSTR SubobjectToAssociate;
12993 UINT NumExports;
12994 _In_reads_(NumExports) LPCWSTR *pExports;
12995 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
12996
12997typedef
12998enum D3D12_HIT_GROUP_TYPE
12999 {
13000 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
13001 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
13002 } D3D12_HIT_GROUP_TYPE;
13003
13004typedef struct D3D12_HIT_GROUP_DESC
13005 {
13006 LPCWSTR HitGroupExport;
13007 D3D12_HIT_GROUP_TYPE Type;
13008 _In_opt_ LPCWSTR AnyHitShaderImport;
13009 _In_opt_ LPCWSTR ClosestHitShaderImport;
13010 _In_opt_ LPCWSTR IntersectionShaderImport;
13011 } D3D12_HIT_GROUP_DESC;
13012
13013typedef struct D3D12_RAYTRACING_SHADER_CONFIG
13014 {
13015 UINT MaxPayloadSizeInBytes;
13016 UINT MaxAttributeSizeInBytes;
13017 } D3D12_RAYTRACING_SHADER_CONFIG;
13018
13019typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
13020 {
13021 UINT MaxTraceRecursionDepth;
13022 } D3D12_RAYTRACING_PIPELINE_CONFIG;
13023
13024typedef
13025enum D3D12_RAYTRACING_PIPELINE_FLAGS
13026 {
13027 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0,
13028 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
13029 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13030 } D3D12_RAYTRACING_PIPELINE_FLAGS;
13031
13032DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS );
13033typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
13034 {
13035 UINT MaxTraceRecursionDepth;
13036 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
13037 } D3D12_RAYTRACING_PIPELINE_CONFIG1;
13038
13039typedef
13040enum D3D12_STATE_OBJECT_TYPE
13041 {
13042 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
13043 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3
13044 } D3D12_STATE_OBJECT_TYPE;
13045
13046typedef struct D3D12_STATE_OBJECT_DESC
13047 {
13048 D3D12_STATE_OBJECT_TYPE Type;
13049 UINT NumSubobjects;
13050 _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
13051 } D3D12_STATE_OBJECT_DESC;
13052
13053typedef
13054enum D3D12_RAYTRACING_GEOMETRY_FLAGS
13055 {
13056 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
13057 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
13058 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
13059 } D3D12_RAYTRACING_GEOMETRY_FLAGS;
13060
13061DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS );
13062typedef
13063enum D3D12_RAYTRACING_GEOMETRY_TYPE
13064 {
13065 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
13066 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 )
13067 } D3D12_RAYTRACING_GEOMETRY_TYPE;
13068
13069typedef
13070enum D3D12_RAYTRACING_INSTANCE_FLAGS
13071 {
13072 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
13073 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
13074 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
13075 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
13076 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
13077 } D3D12_RAYTRACING_INSTANCE_FLAGS;
13078
13079DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS );
13080typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
13081 {
13082 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13083 UINT64 StrideInBytes;
13084 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
13085
13086typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
13087 {
13088 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13089 UINT64 SizeInBytes;
13090 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
13091
13092typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
13093 {
13094 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
13095 UINT64 SizeInBytes;
13096 UINT64 StrideInBytes;
13097 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
13098
13099typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
13100 {
13101 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
13102 DXGI_FORMAT IndexFormat;
13103 DXGI_FORMAT VertexFormat;
13104 UINT IndexCount;
13105 UINT VertexCount;
13106 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
13107 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
13108 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
13109
13110typedef struct D3D12_RAYTRACING_AABB
13111 {
13112 FLOAT MinX;
13113 FLOAT MinY;
13114 FLOAT MinZ;
13115 FLOAT MaxX;
13116 FLOAT MaxY;
13117 FLOAT MaxZ;
13118 } D3D12_RAYTRACING_AABB;
13119
13120typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
13121 {
13122 UINT64 AABBCount;
13123 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
13124 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
13125
13126typedef
13127enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
13128 {
13129 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
13130 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
13131 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
13132 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
13133 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
13134 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
13135 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
13136 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
13137
13138DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS );
13139typedef
13140enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
13141 {
13142 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
13143 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
13144 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
13145 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
13146 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
13147 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
13148
13149typedef
13150enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
13151 {
13152 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
13153 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
13154 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
13155
13156typedef
13157enum D3D12_ELEMENTS_LAYOUT
13158 {
13159 D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
13160 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
13161 } D3D12_ELEMENTS_LAYOUT;
13162
13163typedef
13164enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
13165 {
13166 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
13167 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
13168 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
13169 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
13170 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
13171
13172typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
13173 {
13174 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
13175 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
13176 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
13177
13178typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
13179 {
13180 UINT64 CompactedSizeInBytes;
13181 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
13182
13183typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
13184 {
13185 UINT64 DecodedSizeInBytes;
13186 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
13187
13188typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
13189 {
13190 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13191 UINT NumDescs;
13192 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
13193
13194// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
13195// depending on Type field, NumDescs above is followed by either:
13196// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
13197// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
13198// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
13199
13200typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
13201 {
13202 UINT64 SerializedSizeInBytes;
13203 UINT64 NumBottomLevelAccelerationStructurePointers;
13204 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
13205
13206typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
13207 {
13208 GUID DriverOpaqueGUID;
13209 BYTE DriverOpaqueVersioningData[ 16 ];
13210 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
13211
13212typedef
13213enum D3D12_SERIALIZED_DATA_TYPE
13214 {
13215 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0
13216 } D3D12_SERIALIZED_DATA_TYPE;
13217
13218typedef
13219enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
13220 {
13221 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
13222 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
13223 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
13224 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
13225 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
13226 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
13227
13228typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
13229 {
13230 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
13231 UINT64 SerializedSizeInBytesIncludingHeader;
13232 UINT64 DeserializedSizeInBytes;
13233 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
13234 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
13235
13236typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
13237 {
13238 UINT64 CurrentSizeInBytes;
13239 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
13240
13241typedef struct D3D12_RAYTRACING_INSTANCE_DESC
13242 {
13243 FLOAT Transform[ 3 ][ 4 ];
13244 UINT InstanceID : 24;
13245 UINT InstanceMask : 8;
13246 UINT InstanceContributionToHitGroupIndex : 24;
13247 UINT Flags : 8;
13248 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
13249 } D3D12_RAYTRACING_INSTANCE_DESC;
13250
13251typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
13252 {
13253 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
13254 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
13255 union
13256 {
13257 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
13258 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
13259 } ;
13260 } D3D12_RAYTRACING_GEOMETRY_DESC;
13261
13262typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
13263 {
13264 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
13265 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
13266 UINT NumDescs;
13267 D3D12_ELEMENTS_LAYOUT DescsLayout;
13268 union
13269 {
13270 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
13271 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
13272 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
13273 } ;
13274 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
13275
13276typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
13277 {
13278 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
13279 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
13280 _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
13281 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
13282 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
13283
13284typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
13285 {
13286 UINT64 ResultDataMaxSizeInBytes;
13287 UINT64 ScratchDataSizeInBytes;
13288 UINT64 UpdateScratchDataSizeInBytes;
13289 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
13290
13291typedef
13292enum D3D12_RAY_FLAGS
13293 {
13294 D3D12_RAY_FLAG_NONE = 0,
13295 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
13296 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
13297 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
13298 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
13299 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
13300 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
13301 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
13302 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
13303 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
13304 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
13305 } D3D12_RAY_FLAGS;
13306
13307DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS );
13308typedef
13309enum D3D12_HIT_KIND
13310 {
13311 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
13312 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
13313 } D3D12_HIT_KIND;
13314
13315
13316
13317extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
13318extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
13319
13320#ifndef __ID3D12Device5_INTERFACE_DEFINED__
13321#define __ID3D12Device5_INTERFACE_DEFINED__
13322
13323/* interface ID3D12Device5 */
13324/* [unique][local][object][uuid] */
13325
13326
13327EXTERN_C const IID IID_ID3D12Device5;
13328
13329#if defined(__cplusplus) && !defined(CINTERFACE)
13330
13331 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
13332 ID3D12Device5 : public ID3D12Device4
13333 {
13334 public:
13335 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
13336 _In_ ID3D12LifetimeOwner *pOwner,
13337 REFIID riid,
13338 _COM_Outptr_ void **ppvTracker) = 0;
13339
13340 virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
13341
13342 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
13343 _Inout_ UINT *pNumMetaCommands,
13344 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
13345
13346 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
13347 _In_ REFGUID CommandId,
13348 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
13349 _Out_opt_ UINT *pTotalStructureSizeInBytes,
13350 _Inout_ UINT *pParameterCount,
13351 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
13352
13353 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
13354 _In_ REFGUID CommandId,
13355 _In_ UINT NodeMask,
13356 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
13357 _In_ SIZE_T CreationParametersDataSizeInBytes,
13358 REFIID riid,
13359 _COM_Outptr_ void **ppMetaCommand) = 0;
13360
13361 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
13362 const D3D12_STATE_OBJECT_DESC *pDesc,
13363 REFIID riid,
13364 _COM_Outptr_ void **ppStateObject) = 0;
13365
13366 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
13367 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
13368 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
13369
13370 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
13371 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
13372 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
13373
13374 };
13375
13376
13377#else /* C style interface */
13378
13379 typedef struct ID3D12Device5Vtbl
13380 {
13381 BEGIN_INTERFACE
13382
13383 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13384 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13385 ID3D12Device5 * This,
13386 REFIID riid,
13387 _COM_Outptr_ void **ppvObject);
13388
13389 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13390 ULONG ( STDMETHODCALLTYPE *AddRef )(
13391 ID3D12Device5 * This);
13392
13393 DECLSPEC_XFGVIRT(IUnknown, Release)
13394 ULONG ( STDMETHODCALLTYPE *Release )(
13395 ID3D12Device5 * This);
13396
13397 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13398 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13399 ID3D12Device5 * This,
13400 _In_ REFGUID guid,
13401 _Inout_ UINT *pDataSize,
13402 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13403
13404 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13405 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13406 ID3D12Device5 * This,
13407 _In_ REFGUID guid,
13408 _In_ UINT DataSize,
13409 _In_reads_bytes_opt_( DataSize ) const void *pData);
13410
13411 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13412 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13413 ID3D12Device5 * This,
13414 _In_ REFGUID guid,
13415 _In_opt_ const IUnknown *pData);
13416
13417 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13418 HRESULT ( STDMETHODCALLTYPE *SetName )(
13419 ID3D12Device5 * This,
13420 _In_z_ LPCWSTR Name);
13421
13422 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
13423 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
13424 ID3D12Device5 * This);
13425
13426 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
13427 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
13428 ID3D12Device5 * This,
13429 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
13430 REFIID riid,
13431 _COM_Outptr_ void **ppCommandQueue);
13432
13433 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
13434 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
13435 ID3D12Device5 * This,
13436 _In_ D3D12_COMMAND_LIST_TYPE type,
13437 REFIID riid,
13438 _COM_Outptr_ void **ppCommandAllocator);
13439
13440 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
13441 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
13442 ID3D12Device5 * This,
13443 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
13444 REFIID riid,
13445 _COM_Outptr_ void **ppPipelineState);
13446
13447 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
13448 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
13449 ID3D12Device5 * This,
13450 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
13451 REFIID riid,
13452 _COM_Outptr_ void **ppPipelineState);
13453
13454 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
13455 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
13456 ID3D12Device5 * This,
13457 _In_ UINT nodeMask,
13458 _In_ D3D12_COMMAND_LIST_TYPE type,
13459 _In_ ID3D12CommandAllocator *pCommandAllocator,
13460 _In_opt_ ID3D12PipelineState *pInitialState,
13461 REFIID riid,
13462 _COM_Outptr_ void **ppCommandList);
13463
13464 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
13465 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
13466 ID3D12Device5 * This,
13467 D3D12_FEATURE Feature,
13468 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
13469 UINT FeatureSupportDataSize);
13470
13471 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
13472 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
13473 ID3D12Device5 * This,
13474 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
13475 REFIID riid,
13476 _COM_Outptr_ void **ppvHeap);
13477
13478 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
13479 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
13480 ID3D12Device5 * This,
13481 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
13482
13483 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
13484 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
13485 ID3D12Device5 * This,
13486 _In_ UINT nodeMask,
13487 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
13488 _In_ SIZE_T blobLengthInBytes,
13489 REFIID riid,
13490 _COM_Outptr_ void **ppvRootSignature);
13491
13492 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
13493 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
13494 ID3D12Device5 * This,
13495 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
13496 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13497
13498 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
13499 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
13500 ID3D12Device5 * This,
13501 _In_opt_ ID3D12Resource *pResource,
13502 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
13503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13504
13505 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
13506 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
13507 ID3D12Device5 * This,
13508 _In_opt_ ID3D12Resource *pResource,
13509 _In_opt_ ID3D12Resource *pCounterResource,
13510 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
13511 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13512
13513 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
13514 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
13515 ID3D12Device5 * This,
13516 _In_opt_ ID3D12Resource *pResource,
13517 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
13518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13519
13520 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
13521 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
13522 ID3D12Device5 * This,
13523 _In_opt_ ID3D12Resource *pResource,
13524 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
13525 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13526
13527 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
13528 void ( STDMETHODCALLTYPE *CreateSampler )(
13529 ID3D12Device5 * This,
13530 _In_ const D3D12_SAMPLER_DESC *pDesc,
13531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13532
13533 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
13534 void ( STDMETHODCALLTYPE *CopyDescriptors )(
13535 ID3D12Device5 * This,
13536 _In_ UINT NumDestDescriptorRanges,
13537 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
13538 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
13539 _In_ UINT NumSrcDescriptorRanges,
13540 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
13541 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
13542 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13543
13544 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
13545 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
13546 ID3D12Device5 * This,
13547 _In_ UINT NumDescriptors,
13548 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
13549 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
13550 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13551
13552 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
13553 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
13554 ID3D12Device5 * This,
13555 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13556 _In_ UINT visibleMask,
13557 _In_ UINT numResourceDescs,
13558 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
13559
13560 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
13561 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
13562 ID3D12Device5 * This,
13563 D3D12_HEAP_PROPERTIES * RetVal,
13564 _In_ UINT nodeMask,
13565 D3D12_HEAP_TYPE heapType);
13566
13567 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
13568 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
13569 ID3D12Device5 * This,
13570 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13571 D3D12_HEAP_FLAGS HeapFlags,
13572 _In_ const D3D12_RESOURCE_DESC *pDesc,
13573 D3D12_RESOURCE_STATES InitialResourceState,
13574 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13575 REFIID riidResource,
13576 _COM_Outptr_opt_ void **ppvResource);
13577
13578 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
13579 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
13580 ID3D12Device5 * This,
13581 _In_ const D3D12_HEAP_DESC *pDesc,
13582 REFIID riid,
13583 _COM_Outptr_opt_ void **ppvHeap);
13584
13585 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
13586 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
13587 ID3D12Device5 * This,
13588 _In_ ID3D12Heap *pHeap,
13589 UINT64 HeapOffset,
13590 _In_ const D3D12_RESOURCE_DESC *pDesc,
13591 D3D12_RESOURCE_STATES InitialState,
13592 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13593 REFIID riid,
13594 _COM_Outptr_opt_ void **ppvResource);
13595
13596 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
13597 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
13598 ID3D12Device5 * This,
13599 _In_ const D3D12_RESOURCE_DESC *pDesc,
13600 D3D12_RESOURCE_STATES InitialState,
13601 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13602 REFIID riid,
13603 _COM_Outptr_opt_ void **ppvResource);
13604
13605 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
13606 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
13607 ID3D12Device5 * This,
13608 _In_ ID3D12DeviceChild *pObject,
13609 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
13610 DWORD Access,
13611 _In_opt_ LPCWSTR Name,
13612 _Out_ HANDLE *pHandle);
13613
13614 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
13615 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
13616 ID3D12Device5 * This,
13617 _In_ HANDLE NTHandle,
13618 REFIID riid,
13619 _COM_Outptr_opt_ void **ppvObj);
13620
13621 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
13622 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
13623 ID3D12Device5 * This,
13624 _In_ LPCWSTR Name,
13625 DWORD Access,
13626 /* [annotation][out] */
13627 _Out_ HANDLE *pNTHandle);
13628
13629 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
13630 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
13631 ID3D12Device5 * This,
13632 UINT NumObjects,
13633 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13634
13635 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
13636 HRESULT ( STDMETHODCALLTYPE *Evict )(
13637 ID3D12Device5 * This,
13638 UINT NumObjects,
13639 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13640
13641 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
13642 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
13643 ID3D12Device5 * This,
13644 UINT64 InitialValue,
13645 D3D12_FENCE_FLAGS Flags,
13646 REFIID riid,
13647 _COM_Outptr_ void **ppFence);
13648
13649 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
13650 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
13651 ID3D12Device5 * This);
13652
13653 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
13654 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
13655 ID3D12Device5 * This,
13656 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
13657 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
13658 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
13659 UINT64 BaseOffset,
13660 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
13661 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
13662 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
13663 _Out_opt_ UINT64 *pTotalBytes);
13664
13665 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
13666 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
13667 ID3D12Device5 * This,
13668 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
13669 REFIID riid,
13670 _COM_Outptr_opt_ void **ppvHeap);
13671
13672 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
13673 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
13674 ID3D12Device5 * This,
13675 BOOL Enable);
13676
13677 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
13678 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
13679 ID3D12Device5 * This,
13680 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
13681 _In_opt_ ID3D12RootSignature *pRootSignature,
13682 REFIID riid,
13683 _COM_Outptr_opt_ void **ppvCommandSignature);
13684
13685 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
13686 void ( STDMETHODCALLTYPE *GetResourceTiling )(
13687 ID3D12Device5 * This,
13688 _In_ ID3D12Resource *pTiledResource,
13689 _Out_opt_ UINT *pNumTilesForEntireResource,
13690 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
13691 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
13692 _Inout_opt_ UINT *pNumSubresourceTilings,
13693 _In_ UINT FirstSubresourceTilingToGet,
13694 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
13695
13696 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
13697 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
13698 ID3D12Device5 * This,
13699 LUID * RetVal);
13700
13701 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
13702 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
13703 ID3D12Device5 * This,
13704 _In_reads_(BlobLength) const void *pLibraryBlob,
13705 SIZE_T BlobLength,
13706 REFIID riid,
13707 _COM_Outptr_ void **ppPipelineLibrary);
13708
13709 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
13710 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
13711 ID3D12Device5 * This,
13712 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
13713 _In_reads_(NumFences) const UINT64 *pFenceValues,
13714 UINT NumFences,
13715 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
13716 HANDLE hEvent);
13717
13718 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
13719 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
13720 ID3D12Device5 * This,
13721 UINT NumObjects,
13722 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13723 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
13724
13725 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
13726 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
13727 ID3D12Device5 * This,
13728 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
13729 REFIID riid,
13730 _COM_Outptr_ void **ppPipelineState);
13731
13732 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
13733 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
13734 ID3D12Device5 * This,
13735 _In_ const void *pAddress,
13736 REFIID riid,
13737 _COM_Outptr_ void **ppvHeap);
13738
13739 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
13740 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
13741 ID3D12Device5 * This,
13742 _In_ HANDLE hFileMapping,
13743 REFIID riid,
13744 _COM_Outptr_ void **ppvHeap);
13745
13746 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
13747 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
13748 ID3D12Device5 * This,
13749 D3D12_RESIDENCY_FLAGS Flags,
13750 UINT NumObjects,
13751 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13752 _In_ ID3D12Fence *pFenceToSignal,
13753 UINT64 FenceValueToSignal);
13754
13755 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
13756 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
13757 ID3D12Device5 * This,
13758 _In_ UINT nodeMask,
13759 _In_ D3D12_COMMAND_LIST_TYPE type,
13760 _In_ D3D12_COMMAND_LIST_FLAGS flags,
13761 REFIID riid,
13762 _COM_Outptr_ void **ppCommandList);
13763
13764 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
13765 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
13766 ID3D12Device5 * This,
13767 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
13768 _In_ REFIID riid,
13769 _COM_Outptr_ void **ppSession);
13770
13771 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
13772 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
13773 ID3D12Device5 * This,
13774 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13775 D3D12_HEAP_FLAGS HeapFlags,
13776 _In_ const D3D12_RESOURCE_DESC *pDesc,
13777 D3D12_RESOURCE_STATES InitialResourceState,
13778 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13779 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13780 REFIID riidResource,
13781 _COM_Outptr_opt_ void **ppvResource);
13782
13783 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
13784 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
13785 ID3D12Device5 * This,
13786 _In_ const D3D12_HEAP_DESC *pDesc,
13787 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13788 REFIID riid,
13789 _COM_Outptr_opt_ void **ppvHeap);
13790
13791 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
13792 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
13793 ID3D12Device5 * This,
13794 _In_ const D3D12_RESOURCE_DESC *pDesc,
13795 D3D12_RESOURCE_STATES InitialState,
13796 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13797 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13798 REFIID riid,
13799 _COM_Outptr_opt_ void **ppvResource);
13800
13801 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
13802 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
13803 ID3D12Device5 * This,
13804 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13805 UINT visibleMask,
13806 UINT numResourceDescs,
13807 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
13808 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
13809
13810 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
13811 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
13812 ID3D12Device5 * This,
13813 _In_ ID3D12LifetimeOwner *pOwner,
13814 REFIID riid,
13815 _COM_Outptr_ void **ppvTracker);
13816
13817 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
13818 void ( STDMETHODCALLTYPE *RemoveDevice )(
13819 ID3D12Device5 * This);
13820
13821 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
13822 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
13823 ID3D12Device5 * This,
13824 _Inout_ UINT *pNumMetaCommands,
13825 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
13826
13827 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
13828 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
13829 ID3D12Device5 * This,
13830 _In_ REFGUID CommandId,
13831 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
13832 _Out_opt_ UINT *pTotalStructureSizeInBytes,
13833 _Inout_ UINT *pParameterCount,
13834 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
13835
13836 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
13837 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
13838 ID3D12Device5 * This,
13839 _In_ REFGUID CommandId,
13840 _In_ UINT NodeMask,
13841 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
13842 _In_ SIZE_T CreationParametersDataSizeInBytes,
13843 REFIID riid,
13844 _COM_Outptr_ void **ppMetaCommand);
13845
13846 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
13847 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
13848 ID3D12Device5 * This,
13849 const D3D12_STATE_OBJECT_DESC *pDesc,
13850 REFIID riid,
13851 _COM_Outptr_ void **ppStateObject);
13852
13853 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
13854 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
13855 ID3D12Device5 * This,
13856 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
13857 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
13858
13859 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
13860 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
13861 ID3D12Device5 * This,
13862 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
13863 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
13864
13865 END_INTERFACE
13866 } ID3D12Device5Vtbl;
13867
13868 interface ID3D12Device5
13869 {
13870 CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
13871 };
13872
13873
13874
13875#ifdef COBJMACROS
13876
13877
13878#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
13879 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13880
13881#define ID3D12Device5_AddRef(This) \
13882 ( (This)->lpVtbl -> AddRef(This) )
13883
13884#define ID3D12Device5_Release(This) \
13885 ( (This)->lpVtbl -> Release(This) )
13886
13887
13888#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
13889 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
13890
13891#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
13892 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
13893
13894#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
13895 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
13896
13897#define ID3D12Device5_SetName(This,Name) \
13898 ( (This)->lpVtbl -> SetName(This,Name) )
13899
13900
13901#define ID3D12Device5_GetNodeCount(This) \
13902 ( (This)->lpVtbl -> GetNodeCount(This) )
13903
13904#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
13905 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
13906
13907#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
13908 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
13909
13910#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
13911 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
13912
13913#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
13914 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
13915
13916#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
13917 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
13918
13919#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
13920 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
13921
13922#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
13923 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
13924
13925#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
13926 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
13927
13928#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
13929 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
13930
13931#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
13932 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
13933
13934#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
13935 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
13936
13937#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
13938 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
13939
13940#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
13941 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
13942
13943#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
13944 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
13945
13946#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
13947 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
13948
13949#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
13950 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
13951
13952#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
13953 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
13954
13955#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
13956 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
13957
13958#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
13959 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
13960
13961#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
13962 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
13963
13964#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
13965 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
13966
13967#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13968 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13969
13970#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13971 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13972
13973#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
13974 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
13975
13976#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
13977 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
13978
13979#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
13980 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
13981
13982#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
13983 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
13984
13985#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
13986 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
13987
13988#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
13989 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
13990
13991#define ID3D12Device5_GetDeviceRemovedReason(This) \
13992 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
13993
13994#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
13995 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
13996
13997#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
13998 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
13999
14000#define ID3D12Device5_SetStablePowerState(This,Enable) \
14001 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
14002
14003#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
14004 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
14005
14006#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
14007 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
14008
14009#define ID3D12Device5_GetAdapterLuid(This,RetVal) \
14010 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
14011
14012
14013#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
14014 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
14015
14016#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
14017 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
14018
14019#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
14020 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
14021
14022
14023#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
14024 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
14025
14026
14027#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
14028 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
14029
14030#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
14031 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
14032
14033#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
14034 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
14035
14036
14037#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
14038 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
14039
14040#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
14041 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
14042
14043#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
14044 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
14045
14046#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
14047 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
14048
14049#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
14050 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
14051
14052#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
14053 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
14054
14055
14056#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
14057 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
14058
14059#define ID3D12Device5_RemoveDevice(This) \
14060 ( (This)->lpVtbl -> RemoveDevice(This) )
14061
14062#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
14063 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
14064
14065#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
14066 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
14067
14068#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
14069 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
14070
14071#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
14072 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
14073
14074#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
14075 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
14076
14077#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
14078 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
14079
14080#endif /* COBJMACROS */
14081
14082
14083#endif /* C style interface */
14084
14085
14086
14087
14088#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
14089
14090
14091/* interface __MIDL_itf_d3d12_0000_0035 */
14092/* [local] */
14093
14094typedef
14095enum D3D12_AUTO_BREADCRUMB_OP
14096 {
14097 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0,
14098 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1,
14099 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2,
14100 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3,
14101 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4,
14102 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5,
14103 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6,
14104 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7,
14105 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8,
14106 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9,
14107 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10,
14108 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11,
14109 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12,
14110 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13,
14111 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14,
14112 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15,
14113 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16,
14114 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17,
14115 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18,
14116 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19,
14117 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20,
14118 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21,
14119 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22,
14120 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23,
14121 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24,
14122 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25,
14123 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26,
14124 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27,
14125 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28,
14126 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29,
14127 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30,
14128 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
14129 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
14130 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
14131 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34,
14132 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35,
14133 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36,
14134 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37,
14135 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38,
14136 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39,
14137 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40,
14138 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41,
14139 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42,
14140 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43,
14141 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44
14142 } D3D12_AUTO_BREADCRUMB_OP;
14143
14144typedef struct D3D12_AUTO_BREADCRUMB_NODE
14145 {
14146 const char *pCommandListDebugNameA;
14147 const wchar_t *pCommandListDebugNameW;
14148 const char *pCommandQueueDebugNameA;
14149 const wchar_t *pCommandQueueDebugNameW;
14150 ID3D12GraphicsCommandList *pCommandList;
14151 ID3D12CommandQueue *pCommandQueue;
14152 UINT32 BreadcrumbCount;
14153 const UINT32 *pLastBreadcrumbValue;
14154 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14155 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
14156 } D3D12_AUTO_BREADCRUMB_NODE;
14157
14158typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
14159 {
14160 UINT BreadcrumbIndex;
14161 const wchar_t *pContextString;
14162 } D3D12_DRED_BREADCRUMB_CONTEXT;
14163
14164typedef struct D3D12_AUTO_BREADCRUMB_NODE1
14165 {
14166 const char *pCommandListDebugNameA;
14167 const wchar_t *pCommandListDebugNameW;
14168 const char *pCommandQueueDebugNameA;
14169 const wchar_t *pCommandQueueDebugNameW;
14170 ID3D12GraphicsCommandList *pCommandList;
14171 ID3D12CommandQueue *pCommandQueue;
14172 UINT BreadcrumbCount;
14173 const UINT *pLastBreadcrumbValue;
14174 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
14175 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
14176 UINT BreadcrumbContextsCount;
14177 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
14178 } D3D12_AUTO_BREADCRUMB_NODE1;
14179
14180typedef
14181enum D3D12_DRED_VERSION
14182 {
14183 D3D12_DRED_VERSION_1_0 = 0x1,
14184 D3D12_DRED_VERSION_1_1 = 0x2,
14185 D3D12_DRED_VERSION_1_2 = 0x3,
14186 D3D12_DRED_VERSION_1_3 = 0x4
14187 } D3D12_DRED_VERSION;
14188
14189typedef
14190enum D3D12_DRED_FLAGS
14191 {
14192 D3D12_DRED_FLAG_NONE = 0,
14193 D3D12_DRED_FLAG_FORCE_ENABLE = 1,
14194 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
14195 } D3D12_DRED_FLAGS;
14196
14197DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS );
14198typedef
14199enum D3D12_DRED_ENABLEMENT
14200 {
14201 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
14202 D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
14203 D3D12_DRED_ENABLEMENT_FORCED_ON = 2
14204 } D3D12_DRED_ENABLEMENT;
14205
14206typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
14207 {
14208 _In_ D3D12_DRED_FLAGS Flags;
14209 _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14210 } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
14211
14212typedef
14213enum D3D12_DRED_ALLOCATION_TYPE
14214 {
14215 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
14216 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
14217 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
14218 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
14219 D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
14220 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
14221 D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
14222 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
14223 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
14224 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
14225 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
14226 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
14227 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
14228 D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
14229 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
14230 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
14231 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
14232 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
14233 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
14234 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
14235 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
14236 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
14237 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
14238 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
14239 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
14240 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
14241 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
14242 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
14243 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
14244 } D3D12_DRED_ALLOCATION_TYPE;
14245
14246typedef struct D3D12_DRED_ALLOCATION_NODE
14247 {
14248 const char *ObjectNameA;
14249 const wchar_t *ObjectNameW;
14250 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14251 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
14252 } D3D12_DRED_ALLOCATION_NODE;
14253
14254typedef struct D3D12_DRED_ALLOCATION_NODE1
14255 {
14256 const char *ObjectNameA;
14257 const wchar_t *ObjectNameW;
14258 D3D12_DRED_ALLOCATION_TYPE AllocationType;
14259 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
14260 const IUnknown *pObject;
14261 } D3D12_DRED_ALLOCATION_NODE1;
14262
14263typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
14264 {
14265 _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
14266 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
14267
14268typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
14269 {
14270 _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
14271 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
14272
14273typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
14274 {
14275 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14276 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
14277 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
14278 } D3D12_DRED_PAGE_FAULT_OUTPUT;
14279
14280typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
14281 {
14282 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14283 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14284 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14285 } D3D12_DRED_PAGE_FAULT_OUTPUT1;
14286
14287typedef
14288enum D3D12_DRED_PAGE_FAULT_FLAGS
14289 {
14290 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0
14291 } D3D12_DRED_PAGE_FAULT_FLAGS;
14292
14293DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS );
14294typedef
14295enum D3D12_DRED_DEVICE_STATE
14296 {
14297 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0,
14298 D3D12_DRED_DEVICE_STATE_HUNG = 3,
14299 D3D12_DRED_DEVICE_STATE_FAULT = 6,
14300 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7
14301 } D3D12_DRED_DEVICE_STATE;
14302
14303typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
14304 {
14305 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
14306 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
14307 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
14308 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
14309 } D3D12_DRED_PAGE_FAULT_OUTPUT2;
14310
14311typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
14312 {
14313 HRESULT DeviceRemovedReason;
14314 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
14315 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
14316 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
14317
14318typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
14319 {
14320 HRESULT DeviceRemovedReason;
14321 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14322 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
14323 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
14324
14325typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
14326 {
14327 HRESULT DeviceRemovedReason;
14328 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
14329 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
14330 D3D12_DRED_DEVICE_STATE DeviceState;
14331 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
14332
14333typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
14334 {
14335 D3D12_DRED_VERSION Version;
14336 union
14337 {
14338 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
14339 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
14340 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
14341 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
14342 } ;
14343 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
14344
14345
14346
14347extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec;
14348extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec;
14349
14350#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14351#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
14352
14353/* interface ID3D12DeviceRemovedExtendedDataSettings */
14354/* [unique][local][object][uuid] */
14355
14356
14357EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings;
14358
14359#if defined(__cplusplus) && !defined(CINTERFACE)
14360
14361 MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63")
14362 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
14363 {
14364 public:
14365 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
14366 D3D12_DRED_ENABLEMENT Enablement) = 0;
14367
14368 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
14369 D3D12_DRED_ENABLEMENT Enablement) = 0;
14370
14371 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
14372 D3D12_DRED_ENABLEMENT Enablement) = 0;
14373
14374 };
14375
14376
14377#else /* C style interface */
14378
14379 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl
14380 {
14381 BEGIN_INTERFACE
14382
14383 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14384 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14385 ID3D12DeviceRemovedExtendedDataSettings * This,
14386 REFIID riid,
14387 _COM_Outptr_ void **ppvObject);
14388
14389 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14390 ULONG ( STDMETHODCALLTYPE *AddRef )(
14391 ID3D12DeviceRemovedExtendedDataSettings * This);
14392
14393 DECLSPEC_XFGVIRT(IUnknown, Release)
14394 ULONG ( STDMETHODCALLTYPE *Release )(
14395 ID3D12DeviceRemovedExtendedDataSettings * This);
14396
14397 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
14398 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
14399 ID3D12DeviceRemovedExtendedDataSettings * This,
14400 D3D12_DRED_ENABLEMENT Enablement);
14401
14402 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
14403 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
14404 ID3D12DeviceRemovedExtendedDataSettings * This,
14405 D3D12_DRED_ENABLEMENT Enablement);
14406
14407 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
14408 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
14409 ID3D12DeviceRemovedExtendedDataSettings * This,
14410 D3D12_DRED_ENABLEMENT Enablement);
14411
14412 END_INTERFACE
14413 } ID3D12DeviceRemovedExtendedDataSettingsVtbl;
14414
14415 interface ID3D12DeviceRemovedExtendedDataSettings
14416 {
14417 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl;
14418 };
14419
14420
14421
14422#ifdef COBJMACROS
14423
14424
14425#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \
14426 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14427
14428#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \
14429 ( (This)->lpVtbl -> AddRef(This) )
14430
14431#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \
14432 ( (This)->lpVtbl -> Release(This) )
14433
14434
14435#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \
14436 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
14437
14438#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \
14439 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
14440
14441#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \
14442 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
14443
14444#endif /* COBJMACROS */
14445
14446
14447#endif /* C style interface */
14448
14449
14450
14451
14452#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
14453
14454
14455#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14456#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
14457
14458/* interface ID3D12DeviceRemovedExtendedDataSettings1 */
14459/* [unique][local][object][uuid] */
14460
14461
14462EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1;
14463
14464#if defined(__cplusplus) && !defined(CINTERFACE)
14465
14466 MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B")
14467 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
14468 {
14469 public:
14470 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
14471 D3D12_DRED_ENABLEMENT Enablement) = 0;
14472
14473 };
14474
14475
14476#else /* C style interface */
14477
14478 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl
14479 {
14480 BEGIN_INTERFACE
14481
14482 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14483 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14484 ID3D12DeviceRemovedExtendedDataSettings1 * This,
14485 REFIID riid,
14486 _COM_Outptr_ void **ppvObject);
14487
14488 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14489 ULONG ( STDMETHODCALLTYPE *AddRef )(
14490 ID3D12DeviceRemovedExtendedDataSettings1 * This);
14491
14492 DECLSPEC_XFGVIRT(IUnknown, Release)
14493 ULONG ( STDMETHODCALLTYPE *Release )(
14494 ID3D12DeviceRemovedExtendedDataSettings1 * This);
14495
14496 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
14497 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
14498 ID3D12DeviceRemovedExtendedDataSettings1 * This,
14499 D3D12_DRED_ENABLEMENT Enablement);
14500
14501 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
14502 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
14503 ID3D12DeviceRemovedExtendedDataSettings1 * This,
14504 D3D12_DRED_ENABLEMENT Enablement);
14505
14506 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
14507 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
14508 ID3D12DeviceRemovedExtendedDataSettings1 * This,
14509 D3D12_DRED_ENABLEMENT Enablement);
14510
14511 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
14512 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
14513 ID3D12DeviceRemovedExtendedDataSettings1 * This,
14514 D3D12_DRED_ENABLEMENT Enablement);
14515
14516 END_INTERFACE
14517 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
14518
14519 interface ID3D12DeviceRemovedExtendedDataSettings1
14520 {
14521 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl;
14522 };
14523
14524
14525
14526#ifdef COBJMACROS
14527
14528
14529#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \
14530 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14531
14532#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \
14533 ( (This)->lpVtbl -> AddRef(This) )
14534
14535#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \
14536 ( (This)->lpVtbl -> Release(This) )
14537
14538
14539#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \
14540 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
14541
14542#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \
14543 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
14544
14545#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \
14546 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
14547
14548
14549#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \
14550 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
14551
14552#endif /* COBJMACROS */
14553
14554
14555#endif /* C style interface */
14556
14557
14558
14559
14560#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
14561
14562
14563#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14564#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
14565
14566/* interface ID3D12DeviceRemovedExtendedData */
14567/* [unique][local][object][uuid] */
14568
14569
14570EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData;
14571
14572#if defined(__cplusplus) && !defined(CINTERFACE)
14573
14574 MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71")
14575 ID3D12DeviceRemovedExtendedData : public IUnknown
14576 {
14577 public:
14578 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
14579 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0;
14580
14581 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
14582 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0;
14583
14584 };
14585
14586
14587#else /* C style interface */
14588
14589 typedef struct ID3D12DeviceRemovedExtendedDataVtbl
14590 {
14591 BEGIN_INTERFACE
14592
14593 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14594 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14595 ID3D12DeviceRemovedExtendedData * This,
14596 REFIID riid,
14597 _COM_Outptr_ void **ppvObject);
14598
14599 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14600 ULONG ( STDMETHODCALLTYPE *AddRef )(
14601 ID3D12DeviceRemovedExtendedData * This);
14602
14603 DECLSPEC_XFGVIRT(IUnknown, Release)
14604 ULONG ( STDMETHODCALLTYPE *Release )(
14605 ID3D12DeviceRemovedExtendedData * This);
14606
14607 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
14608 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
14609 ID3D12DeviceRemovedExtendedData * This,
14610 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
14611
14612 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
14613 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
14614 ID3D12DeviceRemovedExtendedData * This,
14615 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
14616
14617 END_INTERFACE
14618 } ID3D12DeviceRemovedExtendedDataVtbl;
14619
14620 interface ID3D12DeviceRemovedExtendedData
14621 {
14622 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl;
14623 };
14624
14625
14626
14627#ifdef COBJMACROS
14628
14629
14630#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \
14631 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14632
14633#define ID3D12DeviceRemovedExtendedData_AddRef(This) \
14634 ( (This)->lpVtbl -> AddRef(This) )
14635
14636#define ID3D12DeviceRemovedExtendedData_Release(This) \
14637 ( (This)->lpVtbl -> Release(This) )
14638
14639
14640#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \
14641 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
14642
14643#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \
14644 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
14645
14646#endif /* COBJMACROS */
14647
14648
14649#endif /* C style interface */
14650
14651
14652
14653
14654#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
14655
14656
14657#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14658#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
14659
14660/* interface ID3D12DeviceRemovedExtendedData1 */
14661/* [unique][local][object][uuid] */
14662
14663
14664EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1;
14665
14666#if defined(__cplusplus) && !defined(CINTERFACE)
14667
14668 MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506")
14669 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
14670 {
14671 public:
14672 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
14673 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0;
14674
14675 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
14676 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0;
14677
14678 };
14679
14680
14681#else /* C style interface */
14682
14683 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl
14684 {
14685 BEGIN_INTERFACE
14686
14687 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14688 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14689 ID3D12DeviceRemovedExtendedData1 * This,
14690 REFIID riid,
14691 _COM_Outptr_ void **ppvObject);
14692
14693 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14694 ULONG ( STDMETHODCALLTYPE *AddRef )(
14695 ID3D12DeviceRemovedExtendedData1 * This);
14696
14697 DECLSPEC_XFGVIRT(IUnknown, Release)
14698 ULONG ( STDMETHODCALLTYPE *Release )(
14699 ID3D12DeviceRemovedExtendedData1 * This);
14700
14701 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
14702 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
14703 ID3D12DeviceRemovedExtendedData1 * This,
14704 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
14705
14706 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
14707 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
14708 ID3D12DeviceRemovedExtendedData1 * This,
14709 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
14710
14711 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
14712 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
14713 ID3D12DeviceRemovedExtendedData1 * This,
14714 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
14715
14716 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
14717 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
14718 ID3D12DeviceRemovedExtendedData1 * This,
14719 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
14720
14721 END_INTERFACE
14722 } ID3D12DeviceRemovedExtendedData1Vtbl;
14723
14724 interface ID3D12DeviceRemovedExtendedData1
14725 {
14726 CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl;
14727 };
14728
14729
14730
14731#ifdef COBJMACROS
14732
14733
14734#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \
14735 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14736
14737#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \
14738 ( (This)->lpVtbl -> AddRef(This) )
14739
14740#define ID3D12DeviceRemovedExtendedData1_Release(This) \
14741 ( (This)->lpVtbl -> Release(This) )
14742
14743
14744#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \
14745 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
14746
14747#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \
14748 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
14749
14750
14751#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \
14752 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
14753
14754#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \
14755 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
14756
14757#endif /* COBJMACROS */
14758
14759
14760#endif /* C style interface */
14761
14762
14763
14764
14765#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
14766
14767
14768#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14769#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
14770
14771/* interface ID3D12DeviceRemovedExtendedData2 */
14772/* [unique][local][object][uuid] */
14773
14774
14775EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2;
14776
14777#if defined(__cplusplus) && !defined(CINTERFACE)
14778
14779 MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54")
14780 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
14781 {
14782 public:
14783 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
14784 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0;
14785
14786 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0;
14787
14788 };
14789
14790
14791#else /* C style interface */
14792
14793 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl
14794 {
14795 BEGIN_INTERFACE
14796
14797 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14798 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14799 ID3D12DeviceRemovedExtendedData2 * This,
14800 REFIID riid,
14801 _COM_Outptr_ void **ppvObject);
14802
14803 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14804 ULONG ( STDMETHODCALLTYPE *AddRef )(
14805 ID3D12DeviceRemovedExtendedData2 * This);
14806
14807 DECLSPEC_XFGVIRT(IUnknown, Release)
14808 ULONG ( STDMETHODCALLTYPE *Release )(
14809 ID3D12DeviceRemovedExtendedData2 * This);
14810
14811 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
14812 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
14813 ID3D12DeviceRemovedExtendedData2 * This,
14814 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
14815
14816 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
14817 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
14818 ID3D12DeviceRemovedExtendedData2 * This,
14819 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
14820
14821 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
14822 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
14823 ID3D12DeviceRemovedExtendedData2 * This,
14824 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
14825
14826 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
14827 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
14828 ID3D12DeviceRemovedExtendedData2 * This,
14829 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
14830
14831 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2)
14832 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )(
14833 ID3D12DeviceRemovedExtendedData2 * This,
14834 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
14835
14836 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState)
14837 D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )(
14838 ID3D12DeviceRemovedExtendedData2 * This);
14839
14840 END_INTERFACE
14841 } ID3D12DeviceRemovedExtendedData2Vtbl;
14842
14843 interface ID3D12DeviceRemovedExtendedData2
14844 {
14845 CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl;
14846 };
14847
14848
14849
14850#ifdef COBJMACROS
14851
14852
14853#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \
14854 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14855
14856#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \
14857 ( (This)->lpVtbl -> AddRef(This) )
14858
14859#define ID3D12DeviceRemovedExtendedData2_Release(This) \
14860 ( (This)->lpVtbl -> Release(This) )
14861
14862
14863#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \
14864 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
14865
14866#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \
14867 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
14868
14869
14870#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \
14871 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
14872
14873#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \
14874 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
14875
14876
14877#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \
14878 ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) )
14879
14880#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \
14881 ( (This)->lpVtbl -> GetDeviceState(This) )
14882
14883#endif /* COBJMACROS */
14884
14885
14886#endif /* C style interface */
14887
14888
14889
14890
14891#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
14892
14893
14894/* interface __MIDL_itf_d3d12_0000_0040 */
14895/* [local] */
14896
14897typedef
14898enum D3D12_BACKGROUND_PROCESSING_MODE
14899 {
14900 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
14901 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) ,
14902 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) ,
14903 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 )
14904 } D3D12_BACKGROUND_PROCESSING_MODE;
14905
14906typedef
14907enum D3D12_MEASUREMENTS_ACTION
14908 {
14909 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
14910 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) ,
14911 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) ,
14912 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 )
14913 } D3D12_MEASUREMENTS_ACTION;
14914
14915
14916
14917extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec;
14918extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec;
14919
14920#ifndef __ID3D12Device6_INTERFACE_DEFINED__
14921#define __ID3D12Device6_INTERFACE_DEFINED__
14922
14923/* interface ID3D12Device6 */
14924/* [unique][local][object][uuid] */
14925
14926
14927EXTERN_C const IID IID_ID3D12Device6;
14928
14929#if defined(__cplusplus) && !defined(CINTERFACE)
14930
14931 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
14932 ID3D12Device6 : public ID3D12Device5
14933 {
14934 public:
14935 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
14936 D3D12_BACKGROUND_PROCESSING_MODE Mode,
14937 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
14938 _In_opt_ HANDLE hEventToSignalUponCompletion,
14939 _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0;
14940
14941 };
14942
14943
14944#else /* C style interface */
14945
14946 typedef struct ID3D12Device6Vtbl
14947 {
14948 BEGIN_INTERFACE
14949
14950 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14951 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14952 ID3D12Device6 * This,
14953 REFIID riid,
14954 _COM_Outptr_ void **ppvObject);
14955
14956 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14957 ULONG ( STDMETHODCALLTYPE *AddRef )(
14958 ID3D12Device6 * This);
14959
14960 DECLSPEC_XFGVIRT(IUnknown, Release)
14961 ULONG ( STDMETHODCALLTYPE *Release )(
14962 ID3D12Device6 * This);
14963
14964 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
14965 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
14966 ID3D12Device6 * This,
14967 _In_ REFGUID guid,
14968 _Inout_ UINT *pDataSize,
14969 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
14970
14971 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
14972 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
14973 ID3D12Device6 * This,
14974 _In_ REFGUID guid,
14975 _In_ UINT DataSize,
14976 _In_reads_bytes_opt_( DataSize ) const void *pData);
14977
14978 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
14979 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
14980 ID3D12Device6 * This,
14981 _In_ REFGUID guid,
14982 _In_opt_ const IUnknown *pData);
14983
14984 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
14985 HRESULT ( STDMETHODCALLTYPE *SetName )(
14986 ID3D12Device6 * This,
14987 _In_z_ LPCWSTR Name);
14988
14989 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
14990 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
14991 ID3D12Device6 * This);
14992
14993 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
14994 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
14995 ID3D12Device6 * This,
14996 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
14997 REFIID riid,
14998 _COM_Outptr_ void **ppCommandQueue);
14999
15000 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
15001 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
15002 ID3D12Device6 * This,
15003 _In_ D3D12_COMMAND_LIST_TYPE type,
15004 REFIID riid,
15005 _COM_Outptr_ void **ppCommandAllocator);
15006
15007 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
15008 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
15009 ID3D12Device6 * This,
15010 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
15011 REFIID riid,
15012 _COM_Outptr_ void **ppPipelineState);
15013
15014 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
15015 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
15016 ID3D12Device6 * This,
15017 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
15018 REFIID riid,
15019 _COM_Outptr_ void **ppPipelineState);
15020
15021 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
15022 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
15023 ID3D12Device6 * This,
15024 _In_ UINT nodeMask,
15025 _In_ D3D12_COMMAND_LIST_TYPE type,
15026 _In_ ID3D12CommandAllocator *pCommandAllocator,
15027 _In_opt_ ID3D12PipelineState *pInitialState,
15028 REFIID riid,
15029 _COM_Outptr_ void **ppCommandList);
15030
15031 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
15032 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
15033 ID3D12Device6 * This,
15034 D3D12_FEATURE Feature,
15035 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
15036 UINT FeatureSupportDataSize);
15037
15038 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
15039 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
15040 ID3D12Device6 * This,
15041 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
15042 REFIID riid,
15043 _COM_Outptr_ void **ppvHeap);
15044
15045 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
15046 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
15047 ID3D12Device6 * This,
15048 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
15049
15050 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
15051 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
15052 ID3D12Device6 * This,
15053 _In_ UINT nodeMask,
15054 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
15055 _In_ SIZE_T blobLengthInBytes,
15056 REFIID riid,
15057 _COM_Outptr_ void **ppvRootSignature);
15058
15059 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
15060 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
15061 ID3D12Device6 * This,
15062 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
15063 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15064
15065 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
15066 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
15067 ID3D12Device6 * This,
15068 _In_opt_ ID3D12Resource *pResource,
15069 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
15070 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15071
15072 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
15073 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
15074 ID3D12Device6 * This,
15075 _In_opt_ ID3D12Resource *pResource,
15076 _In_opt_ ID3D12Resource *pCounterResource,
15077 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
15078 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15079
15080 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
15081 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
15082 ID3D12Device6 * This,
15083 _In_opt_ ID3D12Resource *pResource,
15084 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
15085 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15086
15087 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
15088 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
15089 ID3D12Device6 * This,
15090 _In_opt_ ID3D12Resource *pResource,
15091 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
15092 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15093
15094 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
15095 void ( STDMETHODCALLTYPE *CreateSampler )(
15096 ID3D12Device6 * This,
15097 _In_ const D3D12_SAMPLER_DESC *pDesc,
15098 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15099
15100 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
15101 void ( STDMETHODCALLTYPE *CopyDescriptors )(
15102 ID3D12Device6 * This,
15103 _In_ UINT NumDestDescriptorRanges,
15104 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
15105 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
15106 _In_ UINT NumSrcDescriptorRanges,
15107 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
15108 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
15109 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15110
15111 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
15112 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
15113 ID3D12Device6 * This,
15114 _In_ UINT NumDescriptors,
15115 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
15116 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
15117 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15118
15119 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
15120 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15121 ID3D12Device6 * This,
15122 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15123 _In_ UINT visibleMask,
15124 _In_ UINT numResourceDescs,
15125 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15126
15127 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
15128 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15129 ID3D12Device6 * This,
15130 D3D12_HEAP_PROPERTIES * RetVal,
15131 _In_ UINT nodeMask,
15132 D3D12_HEAP_TYPE heapType);
15133
15134 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
15135 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
15136 ID3D12Device6 * This,
15137 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15138 D3D12_HEAP_FLAGS HeapFlags,
15139 _In_ const D3D12_RESOURCE_DESC *pDesc,
15140 D3D12_RESOURCE_STATES InitialResourceState,
15141 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15142 REFIID riidResource,
15143 _COM_Outptr_opt_ void **ppvResource);
15144
15145 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
15146 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
15147 ID3D12Device6 * This,
15148 _In_ const D3D12_HEAP_DESC *pDesc,
15149 REFIID riid,
15150 _COM_Outptr_opt_ void **ppvHeap);
15151
15152 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
15153 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
15154 ID3D12Device6 * This,
15155 _In_ ID3D12Heap *pHeap,
15156 UINT64 HeapOffset,
15157 _In_ const D3D12_RESOURCE_DESC *pDesc,
15158 D3D12_RESOURCE_STATES InitialState,
15159 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15160 REFIID riid,
15161 _COM_Outptr_opt_ void **ppvResource);
15162
15163 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
15164 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
15165 ID3D12Device6 * This,
15166 _In_ const D3D12_RESOURCE_DESC *pDesc,
15167 D3D12_RESOURCE_STATES InitialState,
15168 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15169 REFIID riid,
15170 _COM_Outptr_opt_ void **ppvResource);
15171
15172 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
15173 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
15174 ID3D12Device6 * This,
15175 _In_ ID3D12DeviceChild *pObject,
15176 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
15177 DWORD Access,
15178 _In_opt_ LPCWSTR Name,
15179 _Out_ HANDLE *pHandle);
15180
15181 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
15182 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
15183 ID3D12Device6 * This,
15184 _In_ HANDLE NTHandle,
15185 REFIID riid,
15186 _COM_Outptr_opt_ void **ppvObj);
15187
15188 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
15189 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
15190 ID3D12Device6 * This,
15191 _In_ LPCWSTR Name,
15192 DWORD Access,
15193 /* [annotation][out] */
15194 _Out_ HANDLE *pNTHandle);
15195
15196 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
15197 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
15198 ID3D12Device6 * This,
15199 UINT NumObjects,
15200 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15201
15202 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
15203 HRESULT ( STDMETHODCALLTYPE *Evict )(
15204 ID3D12Device6 * This,
15205 UINT NumObjects,
15206 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15207
15208 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
15209 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
15210 ID3D12Device6 * This,
15211 UINT64 InitialValue,
15212 D3D12_FENCE_FLAGS Flags,
15213 REFIID riid,
15214 _COM_Outptr_ void **ppFence);
15215
15216 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
15217 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
15218 ID3D12Device6 * This);
15219
15220 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
15221 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
15222 ID3D12Device6 * This,
15223 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
15224 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
15225 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
15226 UINT64 BaseOffset,
15227 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
15228 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
15229 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
15230 _Out_opt_ UINT64 *pTotalBytes);
15231
15232 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
15233 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
15234 ID3D12Device6 * This,
15235 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
15236 REFIID riid,
15237 _COM_Outptr_opt_ void **ppvHeap);
15238
15239 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
15240 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
15241 ID3D12Device6 * This,
15242 BOOL Enable);
15243
15244 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
15245 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
15246 ID3D12Device6 * This,
15247 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
15248 _In_opt_ ID3D12RootSignature *pRootSignature,
15249 REFIID riid,
15250 _COM_Outptr_opt_ void **ppvCommandSignature);
15251
15252 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
15253 void ( STDMETHODCALLTYPE *GetResourceTiling )(
15254 ID3D12Device6 * This,
15255 _In_ ID3D12Resource *pTiledResource,
15256 _Out_opt_ UINT *pNumTilesForEntireResource,
15257 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
15258 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
15259 _Inout_opt_ UINT *pNumSubresourceTilings,
15260 _In_ UINT FirstSubresourceTilingToGet,
15261 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
15262
15263 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
15264 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
15265 ID3D12Device6 * This,
15266 LUID * RetVal);
15267
15268 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
15269 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
15270 ID3D12Device6 * This,
15271 _In_reads_(BlobLength) const void *pLibraryBlob,
15272 SIZE_T BlobLength,
15273 REFIID riid,
15274 _COM_Outptr_ void **ppPipelineLibrary);
15275
15276 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
15277 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
15278 ID3D12Device6 * This,
15279 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
15280 _In_reads_(NumFences) const UINT64 *pFenceValues,
15281 UINT NumFences,
15282 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
15283 HANDLE hEvent);
15284
15285 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
15286 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
15287 ID3D12Device6 * This,
15288 UINT NumObjects,
15289 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
15290 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
15291
15292 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
15293 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
15294 ID3D12Device6 * This,
15295 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
15296 REFIID riid,
15297 _COM_Outptr_ void **ppPipelineState);
15298
15299 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
15300 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
15301 ID3D12Device6 * This,
15302 _In_ const void *pAddress,
15303 REFIID riid,
15304 _COM_Outptr_ void **ppvHeap);
15305
15306 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
15307 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
15308 ID3D12Device6 * This,
15309 _In_ HANDLE hFileMapping,
15310 REFIID riid,
15311 _COM_Outptr_ void **ppvHeap);
15312
15313 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
15314 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
15315 ID3D12Device6 * This,
15316 D3D12_RESIDENCY_FLAGS Flags,
15317 UINT NumObjects,
15318 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
15319 _In_ ID3D12Fence *pFenceToSignal,
15320 UINT64 FenceValueToSignal);
15321
15322 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
15323 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
15324 ID3D12Device6 * This,
15325 _In_ UINT nodeMask,
15326 _In_ D3D12_COMMAND_LIST_TYPE type,
15327 _In_ D3D12_COMMAND_LIST_FLAGS flags,
15328 REFIID riid,
15329 _COM_Outptr_ void **ppCommandList);
15330
15331 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
15332 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
15333 ID3D12Device6 * This,
15334 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
15335 _In_ REFIID riid,
15336 _COM_Outptr_ void **ppSession);
15337
15338 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
15339 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
15340 ID3D12Device6 * This,
15341 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15342 D3D12_HEAP_FLAGS HeapFlags,
15343 _In_ const D3D12_RESOURCE_DESC *pDesc,
15344 D3D12_RESOURCE_STATES InitialResourceState,
15345 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15346 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15347 REFIID riidResource,
15348 _COM_Outptr_opt_ void **ppvResource);
15349
15350 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
15351 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
15352 ID3D12Device6 * This,
15353 _In_ const D3D12_HEAP_DESC *pDesc,
15354 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15355 REFIID riid,
15356 _COM_Outptr_opt_ void **ppvHeap);
15357
15358 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
15359 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
15360 ID3D12Device6 * This,
15361 _In_ const D3D12_RESOURCE_DESC *pDesc,
15362 D3D12_RESOURCE_STATES InitialState,
15363 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15364 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15365 REFIID riid,
15366 _COM_Outptr_opt_ void **ppvResource);
15367
15368 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
15369 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
15370 ID3D12Device6 * This,
15371 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15372 UINT visibleMask,
15373 UINT numResourceDescs,
15374 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
15375 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
15376
15377 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
15378 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
15379 ID3D12Device6 * This,
15380 _In_ ID3D12LifetimeOwner *pOwner,
15381 REFIID riid,
15382 _COM_Outptr_ void **ppvTracker);
15383
15384 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
15385 void ( STDMETHODCALLTYPE *RemoveDevice )(
15386 ID3D12Device6 * This);
15387
15388 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
15389 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
15390 ID3D12Device6 * This,
15391 _Inout_ UINT *pNumMetaCommands,
15392 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
15393
15394 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
15395 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
15396 ID3D12Device6 * This,
15397 _In_ REFGUID CommandId,
15398 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
15399 _Out_opt_ UINT *pTotalStructureSizeInBytes,
15400 _Inout_ UINT *pParameterCount,
15401 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
15402
15403 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
15404 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
15405 ID3D12Device6 * This,
15406 _In_ REFGUID CommandId,
15407 _In_ UINT NodeMask,
15408 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
15409 _In_ SIZE_T CreationParametersDataSizeInBytes,
15410 REFIID riid,
15411 _COM_Outptr_ void **ppMetaCommand);
15412
15413 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
15414 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
15415 ID3D12Device6 * This,
15416 const D3D12_STATE_OBJECT_DESC *pDesc,
15417 REFIID riid,
15418 _COM_Outptr_ void **ppStateObject);
15419
15420 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
15421 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
15422 ID3D12Device6 * This,
15423 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
15424 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
15425
15426 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
15427 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
15428 ID3D12Device6 * This,
15429 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
15430 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
15431
15432 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
15433 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
15434 ID3D12Device6 * This,
15435 D3D12_BACKGROUND_PROCESSING_MODE Mode,
15436 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
15437 _In_opt_ HANDLE hEventToSignalUponCompletion,
15438 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
15439
15440 END_INTERFACE
15441 } ID3D12Device6Vtbl;
15442
15443 interface ID3D12Device6
15444 {
15445 CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl;
15446 };
15447
15448
15449
15450#ifdef COBJMACROS
15451
15452
15453#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \
15454 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15455
15456#define ID3D12Device6_AddRef(This) \
15457 ( (This)->lpVtbl -> AddRef(This) )
15458
15459#define ID3D12Device6_Release(This) \
15460 ( (This)->lpVtbl -> Release(This) )
15461
15462
15463#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \
15464 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
15465
15466#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \
15467 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
15468
15469#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \
15470 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
15471
15472#define ID3D12Device6_SetName(This,Name) \
15473 ( (This)->lpVtbl -> SetName(This,Name) )
15474
15475
15476#define ID3D12Device6_GetNodeCount(This) \
15477 ( (This)->lpVtbl -> GetNodeCount(This) )
15478
15479#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
15480 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
15481
15482#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
15483 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
15484
15485#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
15486 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
15487
15488#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
15489 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
15490
15491#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
15492 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
15493
15494#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
15495 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
15496
15497#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
15498 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
15499
15500#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
15501 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
15502
15503#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
15504 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
15505
15506#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \
15507 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
15508
15509#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
15510 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
15511
15512#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
15513 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
15514
15515#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
15516 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
15517
15518#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
15519 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
15520
15521#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \
15522 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
15523
15524#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
15525 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
15526
15527#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
15528 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
15529
15530#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
15531 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
15532
15533#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
15534 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
15535
15536#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
15537 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
15538
15539#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \
15540 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
15541
15542#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
15543 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
15544
15545#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
15546 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
15547
15548#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
15549 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
15550
15551#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
15552 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
15553
15554#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
15555 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
15556
15557#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \
15558 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
15559
15560#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \
15561 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
15562
15563#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \
15564 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
15565
15566#define ID3D12Device6_GetDeviceRemovedReason(This) \
15567 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
15568
15569#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
15570 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
15571
15572#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
15573 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
15574
15575#define ID3D12Device6_SetStablePowerState(This,Enable) \
15576 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
15577
15578#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
15579 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
15580
15581#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
15582 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
15583
15584#define ID3D12Device6_GetAdapterLuid(This,RetVal) \
15585 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
15586
15587
15588#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
15589 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
15590
15591#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
15592 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
15593
15594#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
15595 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
15596
15597
15598#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
15599 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
15600
15601
15602#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
15603 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
15604
15605#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
15606 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
15607
15608#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
15609 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
15610
15611
15612#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
15613 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
15614
15615#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
15616 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
15617
15618#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
15619 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
15620
15621#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
15622 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
15623
15624#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
15625 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
15626
15627#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
15628 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
15629
15630
15631#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
15632 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
15633
15634#define ID3D12Device6_RemoveDevice(This) \
15635 ( (This)->lpVtbl -> RemoveDevice(This) )
15636
15637#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
15638 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
15639
15640#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
15641 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
15642
15643#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
15644 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
15645
15646#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \
15647 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
15648
15649#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
15650 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
15651
15652#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
15653 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
15654
15655
15656#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
15657 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
15658
15659#endif /* COBJMACROS */
15660
15661
15662#endif /* C style interface */
15663
15664
15665
15666
15667#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
15668
15669
15670/* interface __MIDL_itf_d3d12_0000_0041 */
15671/* [local] */
15672
15673DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82);
15674typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
15675 {
15676 UINT NodeIndex;
15677 UINT Count;
15678 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
15679
15680typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
15681 {
15682 UINT NodeIndex;
15683 UINT Count;
15684 GUID *pTypes;
15685 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
15686
15687typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
15688 {
15689 UINT NodeMask;
15690 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
15691 GUID ProtectionType;
15692 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
15693
15694
15695
15696extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0041_v0_0_c_ifspec;
15697extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0041_v0_0_s_ifspec;
15698
15699#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15700#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
15701
15702/* interface ID3D12ProtectedResourceSession1 */
15703/* [unique][local][object][uuid] */
15704
15705
15706EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
15707
15708#if defined(__cplusplus) && !defined(CINTERFACE)
15709
15710 MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409")
15711 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
15712 {
15713 public:
15714 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
15715
15716 };
15717
15718
15719#else /* C style interface */
15720
15721 typedef struct ID3D12ProtectedResourceSession1Vtbl
15722 {
15723 BEGIN_INTERFACE
15724
15725 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15726 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15727 ID3D12ProtectedResourceSession1 * This,
15728 REFIID riid,
15729 _COM_Outptr_ void **ppvObject);
15730
15731 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15732 ULONG ( STDMETHODCALLTYPE *AddRef )(
15733 ID3D12ProtectedResourceSession1 * This);
15734
15735 DECLSPEC_XFGVIRT(IUnknown, Release)
15736 ULONG ( STDMETHODCALLTYPE *Release )(
15737 ID3D12ProtectedResourceSession1 * This);
15738
15739 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
15740 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
15741 ID3D12ProtectedResourceSession1 * This,
15742 _In_ REFGUID guid,
15743 _Inout_ UINT *pDataSize,
15744 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
15745
15746 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
15747 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
15748 ID3D12ProtectedResourceSession1 * This,
15749 _In_ REFGUID guid,
15750 _In_ UINT DataSize,
15751 _In_reads_bytes_opt_( DataSize ) const void *pData);
15752
15753 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
15754 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
15755 ID3D12ProtectedResourceSession1 * This,
15756 _In_ REFGUID guid,
15757 _In_opt_ const IUnknown *pData);
15758
15759 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
15760 HRESULT ( STDMETHODCALLTYPE *SetName )(
15761 ID3D12ProtectedResourceSession1 * This,
15762 _In_z_ LPCWSTR Name);
15763
15764 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
15765 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
15766 ID3D12ProtectedResourceSession1 * This,
15767 REFIID riid,
15768 _COM_Outptr_opt_ void **ppvDevice);
15769
15770 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
15771 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
15772 ID3D12ProtectedResourceSession1 * This,
15773 REFIID riid,
15774 _COM_Outptr_opt_ void **ppFence);
15775
15776 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
15777 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
15778 ID3D12ProtectedResourceSession1 * This);
15779
15780 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
15781 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
15782 ID3D12ProtectedResourceSession1 * This,
15783 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
15784
15785 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1)
15786 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
15787 ID3D12ProtectedResourceSession1 * This,
15788 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal);
15789
15790 END_INTERFACE
15791 } ID3D12ProtectedResourceSession1Vtbl;
15792
15793 interface ID3D12ProtectedResourceSession1
15794 {
15795 CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl;
15796 };
15797
15798
15799
15800#ifdef COBJMACROS
15801
15802
15803#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \
15804 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15805
15806#define ID3D12ProtectedResourceSession1_AddRef(This) \
15807 ( (This)->lpVtbl -> AddRef(This) )
15808
15809#define ID3D12ProtectedResourceSession1_Release(This) \
15810 ( (This)->lpVtbl -> Release(This) )
15811
15812
15813#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \
15814 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
15815
15816#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \
15817 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
15818
15819#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \
15820 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
15821
15822#define ID3D12ProtectedResourceSession1_SetName(This,Name) \
15823 ( (This)->lpVtbl -> SetName(This,Name) )
15824
15825
15826#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \
15827 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
15828
15829
15830#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \
15831 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
15832
15833#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \
15834 ( (This)->lpVtbl -> GetSessionStatus(This) )
15835
15836
15837#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \
15838 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
15839
15840
15841#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \
15842 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
15843
15844#endif /* COBJMACROS */
15845
15846
15847#endif /* C style interface */
15848
15849
15850
15851
15852#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
15853
15854
15855#ifndef __ID3D12Device7_INTERFACE_DEFINED__
15856#define __ID3D12Device7_INTERFACE_DEFINED__
15857
15858/* interface ID3D12Device7 */
15859/* [unique][local][object][uuid] */
15860
15861
15862EXTERN_C const IID IID_ID3D12Device7;
15863
15864#if defined(__cplusplus) && !defined(CINTERFACE)
15865
15866 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
15867 ID3D12Device7 : public ID3D12Device6
15868 {
15869 public:
15870 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
15871 const D3D12_STATE_OBJECT_DESC *pAddition,
15872 ID3D12StateObject *pStateObjectToGrowFrom,
15873 REFIID riid,
15874 _COM_Outptr_ void **ppNewStateObject) = 0;
15875
15876 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
15877 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
15878 _In_ REFIID riid,
15879 _COM_Outptr_ void **ppSession) = 0;
15880
15881 };
15882
15883
15884#else /* C style interface */
15885
15886 typedef struct ID3D12Device7Vtbl
15887 {
15888 BEGIN_INTERFACE
15889
15890 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15891 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15892 ID3D12Device7 * This,
15893 REFIID riid,
15894 _COM_Outptr_ void **ppvObject);
15895
15896 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15897 ULONG ( STDMETHODCALLTYPE *AddRef )(
15898 ID3D12Device7 * This);
15899
15900 DECLSPEC_XFGVIRT(IUnknown, Release)
15901 ULONG ( STDMETHODCALLTYPE *Release )(
15902 ID3D12Device7 * This);
15903
15904 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
15905 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
15906 ID3D12Device7 * This,
15907 _In_ REFGUID guid,
15908 _Inout_ UINT *pDataSize,
15909 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
15910
15911 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
15912 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
15913 ID3D12Device7 * This,
15914 _In_ REFGUID guid,
15915 _In_ UINT DataSize,
15916 _In_reads_bytes_opt_( DataSize ) const void *pData);
15917
15918 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
15919 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
15920 ID3D12Device7 * This,
15921 _In_ REFGUID guid,
15922 _In_opt_ const IUnknown *pData);
15923
15924 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
15925 HRESULT ( STDMETHODCALLTYPE *SetName )(
15926 ID3D12Device7 * This,
15927 _In_z_ LPCWSTR Name);
15928
15929 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
15930 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
15931 ID3D12Device7 * This);
15932
15933 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
15934 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
15935 ID3D12Device7 * This,
15936 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
15937 REFIID riid,
15938 _COM_Outptr_ void **ppCommandQueue);
15939
15940 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
15941 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
15942 ID3D12Device7 * This,
15943 _In_ D3D12_COMMAND_LIST_TYPE type,
15944 REFIID riid,
15945 _COM_Outptr_ void **ppCommandAllocator);
15946
15947 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
15948 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
15949 ID3D12Device7 * This,
15950 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
15951 REFIID riid,
15952 _COM_Outptr_ void **ppPipelineState);
15953
15954 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
15955 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
15956 ID3D12Device7 * This,
15957 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
15958 REFIID riid,
15959 _COM_Outptr_ void **ppPipelineState);
15960
15961 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
15962 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
15963 ID3D12Device7 * This,
15964 _In_ UINT nodeMask,
15965 _In_ D3D12_COMMAND_LIST_TYPE type,
15966 _In_ ID3D12CommandAllocator *pCommandAllocator,
15967 _In_opt_ ID3D12PipelineState *pInitialState,
15968 REFIID riid,
15969 _COM_Outptr_ void **ppCommandList);
15970
15971 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
15972 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
15973 ID3D12Device7 * This,
15974 D3D12_FEATURE Feature,
15975 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
15976 UINT FeatureSupportDataSize);
15977
15978 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
15979 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
15980 ID3D12Device7 * This,
15981 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
15982 REFIID riid,
15983 _COM_Outptr_ void **ppvHeap);
15984
15985 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
15986 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
15987 ID3D12Device7 * This,
15988 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
15989
15990 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
15991 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
15992 ID3D12Device7 * This,
15993 _In_ UINT nodeMask,
15994 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
15995 _In_ SIZE_T blobLengthInBytes,
15996 REFIID riid,
15997 _COM_Outptr_ void **ppvRootSignature);
15998
15999 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
16000 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
16001 ID3D12Device7 * This,
16002 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
16003 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16004
16005 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
16006 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
16007 ID3D12Device7 * This,
16008 _In_opt_ ID3D12Resource *pResource,
16009 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
16010 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16011
16012 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
16013 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
16014 ID3D12Device7 * This,
16015 _In_opt_ ID3D12Resource *pResource,
16016 _In_opt_ ID3D12Resource *pCounterResource,
16017 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
16018 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16019
16020 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
16021 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
16022 ID3D12Device7 * This,
16023 _In_opt_ ID3D12Resource *pResource,
16024 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
16025 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16026
16027 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
16028 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
16029 ID3D12Device7 * This,
16030 _In_opt_ ID3D12Resource *pResource,
16031 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
16032 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16033
16034 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
16035 void ( STDMETHODCALLTYPE *CreateSampler )(
16036 ID3D12Device7 * This,
16037 _In_ const D3D12_SAMPLER_DESC *pDesc,
16038 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16039
16040 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
16041 void ( STDMETHODCALLTYPE *CopyDescriptors )(
16042 ID3D12Device7 * This,
16043 _In_ UINT NumDestDescriptorRanges,
16044 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
16045 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
16046 _In_ UINT NumSrcDescriptorRanges,
16047 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
16048 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
16049 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16050
16051 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
16052 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
16053 ID3D12Device7 * This,
16054 _In_ UINT NumDescriptors,
16055 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
16056 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
16057 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16058
16059 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
16060 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
16061 ID3D12Device7 * This,
16062 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16063 _In_ UINT visibleMask,
16064 _In_ UINT numResourceDescs,
16065 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
16066
16067 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
16068 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
16069 ID3D12Device7 * This,
16070 D3D12_HEAP_PROPERTIES * RetVal,
16071 _In_ UINT nodeMask,
16072 D3D12_HEAP_TYPE heapType);
16073
16074 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
16075 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
16076 ID3D12Device7 * This,
16077 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16078 D3D12_HEAP_FLAGS HeapFlags,
16079 _In_ const D3D12_RESOURCE_DESC *pDesc,
16080 D3D12_RESOURCE_STATES InitialResourceState,
16081 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16082 REFIID riidResource,
16083 _COM_Outptr_opt_ void **ppvResource);
16084
16085 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
16086 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
16087 ID3D12Device7 * This,
16088 _In_ const D3D12_HEAP_DESC *pDesc,
16089 REFIID riid,
16090 _COM_Outptr_opt_ void **ppvHeap);
16091
16092 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
16093 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
16094 ID3D12Device7 * This,
16095 _In_ ID3D12Heap *pHeap,
16096 UINT64 HeapOffset,
16097 _In_ const D3D12_RESOURCE_DESC *pDesc,
16098 D3D12_RESOURCE_STATES InitialState,
16099 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16100 REFIID riid,
16101 _COM_Outptr_opt_ void **ppvResource);
16102
16103 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
16104 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
16105 ID3D12Device7 * This,
16106 _In_ const D3D12_RESOURCE_DESC *pDesc,
16107 D3D12_RESOURCE_STATES InitialState,
16108 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16109 REFIID riid,
16110 _COM_Outptr_opt_ void **ppvResource);
16111
16112 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
16113 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
16114 ID3D12Device7 * This,
16115 _In_ ID3D12DeviceChild *pObject,
16116 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
16117 DWORD Access,
16118 _In_opt_ LPCWSTR Name,
16119 _Out_ HANDLE *pHandle);
16120
16121 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
16122 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
16123 ID3D12Device7 * This,
16124 _In_ HANDLE NTHandle,
16125 REFIID riid,
16126 _COM_Outptr_opt_ void **ppvObj);
16127
16128 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
16129 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
16130 ID3D12Device7 * This,
16131 _In_ LPCWSTR Name,
16132 DWORD Access,
16133 /* [annotation][out] */
16134 _Out_ HANDLE *pNTHandle);
16135
16136 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
16137 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
16138 ID3D12Device7 * This,
16139 UINT NumObjects,
16140 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16141
16142 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
16143 HRESULT ( STDMETHODCALLTYPE *Evict )(
16144 ID3D12Device7 * This,
16145 UINT NumObjects,
16146 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16147
16148 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
16149 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
16150 ID3D12Device7 * This,
16151 UINT64 InitialValue,
16152 D3D12_FENCE_FLAGS Flags,
16153 REFIID riid,
16154 _COM_Outptr_ void **ppFence);
16155
16156 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
16157 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
16158 ID3D12Device7 * This);
16159
16160 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
16161 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
16162 ID3D12Device7 * This,
16163 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
16164 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16165 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16166 UINT64 BaseOffset,
16167 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16168 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16169 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16170 _Out_opt_ UINT64 *pTotalBytes);
16171
16172 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
16173 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
16174 ID3D12Device7 * This,
16175 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
16176 REFIID riid,
16177 _COM_Outptr_opt_ void **ppvHeap);
16178
16179 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
16180 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
16181 ID3D12Device7 * This,
16182 BOOL Enable);
16183
16184 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
16185 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
16186 ID3D12Device7 * This,
16187 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
16188 _In_opt_ ID3D12RootSignature *pRootSignature,
16189 REFIID riid,
16190 _COM_Outptr_opt_ void **ppvCommandSignature);
16191
16192 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
16193 void ( STDMETHODCALLTYPE *GetResourceTiling )(
16194 ID3D12Device7 * This,
16195 _In_ ID3D12Resource *pTiledResource,
16196 _Out_opt_ UINT *pNumTilesForEntireResource,
16197 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
16198 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
16199 _Inout_opt_ UINT *pNumSubresourceTilings,
16200 _In_ UINT FirstSubresourceTilingToGet,
16201 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
16202
16203 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
16204 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
16205 ID3D12Device7 * This,
16206 LUID * RetVal);
16207
16208 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
16209 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
16210 ID3D12Device7 * This,
16211 _In_reads_(BlobLength) const void *pLibraryBlob,
16212 SIZE_T BlobLength,
16213 REFIID riid,
16214 _COM_Outptr_ void **ppPipelineLibrary);
16215
16216 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
16217 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
16218 ID3D12Device7 * This,
16219 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
16220 _In_reads_(NumFences) const UINT64 *pFenceValues,
16221 UINT NumFences,
16222 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
16223 HANDLE hEvent);
16224
16225 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
16226 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
16227 ID3D12Device7 * This,
16228 UINT NumObjects,
16229 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16230 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
16231
16232 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
16233 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
16234 ID3D12Device7 * This,
16235 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
16236 REFIID riid,
16237 _COM_Outptr_ void **ppPipelineState);
16238
16239 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
16240 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
16241 ID3D12Device7 * This,
16242 _In_ const void *pAddress,
16243 REFIID riid,
16244 _COM_Outptr_ void **ppvHeap);
16245
16246 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
16247 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
16248 ID3D12Device7 * This,
16249 _In_ HANDLE hFileMapping,
16250 REFIID riid,
16251 _COM_Outptr_ void **ppvHeap);
16252
16253 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
16254 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
16255 ID3D12Device7 * This,
16256 D3D12_RESIDENCY_FLAGS Flags,
16257 UINT NumObjects,
16258 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16259 _In_ ID3D12Fence *pFenceToSignal,
16260 UINT64 FenceValueToSignal);
16261
16262 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
16263 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
16264 ID3D12Device7 * This,
16265 _In_ UINT nodeMask,
16266 _In_ D3D12_COMMAND_LIST_TYPE type,
16267 _In_ D3D12_COMMAND_LIST_FLAGS flags,
16268 REFIID riid,
16269 _COM_Outptr_ void **ppCommandList);
16270
16271 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
16272 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
16273 ID3D12Device7 * This,
16274 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
16275 _In_ REFIID riid,
16276 _COM_Outptr_ void **ppSession);
16277
16278 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
16279 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
16280 ID3D12Device7 * This,
16281 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16282 D3D12_HEAP_FLAGS HeapFlags,
16283 _In_ const D3D12_RESOURCE_DESC *pDesc,
16284 D3D12_RESOURCE_STATES InitialResourceState,
16285 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16286 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16287 REFIID riidResource,
16288 _COM_Outptr_opt_ void **ppvResource);
16289
16290 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
16291 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
16292 ID3D12Device7 * This,
16293 _In_ const D3D12_HEAP_DESC *pDesc,
16294 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16295 REFIID riid,
16296 _COM_Outptr_opt_ void **ppvHeap);
16297
16298 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
16299 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
16300 ID3D12Device7 * This,
16301 _In_ const D3D12_RESOURCE_DESC *pDesc,
16302 D3D12_RESOURCE_STATES InitialState,
16303 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16304 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16305 REFIID riid,
16306 _COM_Outptr_opt_ void **ppvResource);
16307
16308 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
16309 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
16310 ID3D12Device7 * This,
16311 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16312 UINT visibleMask,
16313 UINT numResourceDescs,
16314 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
16315 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
16316
16317 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
16318 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
16319 ID3D12Device7 * This,
16320 _In_ ID3D12LifetimeOwner *pOwner,
16321 REFIID riid,
16322 _COM_Outptr_ void **ppvTracker);
16323
16324 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
16325 void ( STDMETHODCALLTYPE *RemoveDevice )(
16326 ID3D12Device7 * This);
16327
16328 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
16329 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
16330 ID3D12Device7 * This,
16331 _Inout_ UINT *pNumMetaCommands,
16332 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
16333
16334 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
16335 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
16336 ID3D12Device7 * This,
16337 _In_ REFGUID CommandId,
16338 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
16339 _Out_opt_ UINT *pTotalStructureSizeInBytes,
16340 _Inout_ UINT *pParameterCount,
16341 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
16342
16343 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
16344 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
16345 ID3D12Device7 * This,
16346 _In_ REFGUID CommandId,
16347 _In_ UINT NodeMask,
16348 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
16349 _In_ SIZE_T CreationParametersDataSizeInBytes,
16350 REFIID riid,
16351 _COM_Outptr_ void **ppMetaCommand);
16352
16353 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
16354 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
16355 ID3D12Device7 * This,
16356 const D3D12_STATE_OBJECT_DESC *pDesc,
16357 REFIID riid,
16358 _COM_Outptr_ void **ppStateObject);
16359
16360 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
16361 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
16362 ID3D12Device7 * This,
16363 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
16364 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
16365
16366 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
16367 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
16368 ID3D12Device7 * This,
16369 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
16370 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
16371
16372 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
16373 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
16374 ID3D12Device7 * This,
16375 D3D12_BACKGROUND_PROCESSING_MODE Mode,
16376 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
16377 _In_opt_ HANDLE hEventToSignalUponCompletion,
16378 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
16379
16380 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
16381 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
16382 ID3D12Device7 * This,
16383 const D3D12_STATE_OBJECT_DESC *pAddition,
16384 ID3D12StateObject *pStateObjectToGrowFrom,
16385 REFIID riid,
16386 _COM_Outptr_ void **ppNewStateObject);
16387
16388 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
16389 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
16390 ID3D12Device7 * This,
16391 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
16392 _In_ REFIID riid,
16393 _COM_Outptr_ void **ppSession);
16394
16395 END_INTERFACE
16396 } ID3D12Device7Vtbl;
16397
16398 interface ID3D12Device7
16399 {
16400 CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl;
16401 };
16402
16403
16404
16405#ifdef COBJMACROS
16406
16407
16408#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \
16409 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16410
16411#define ID3D12Device7_AddRef(This) \
16412 ( (This)->lpVtbl -> AddRef(This) )
16413
16414#define ID3D12Device7_Release(This) \
16415 ( (This)->lpVtbl -> Release(This) )
16416
16417
16418#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \
16419 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
16420
16421#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \
16422 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
16423
16424#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \
16425 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
16426
16427#define ID3D12Device7_SetName(This,Name) \
16428 ( (This)->lpVtbl -> SetName(This,Name) )
16429
16430
16431#define ID3D12Device7_GetNodeCount(This) \
16432 ( (This)->lpVtbl -> GetNodeCount(This) )
16433
16434#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
16435 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
16436
16437#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
16438 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
16439
16440#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
16441 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
16442
16443#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
16444 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
16445
16446#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
16447 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
16448
16449#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
16450 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
16451
16452#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
16453 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
16454
16455#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
16456 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
16457
16458#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
16459 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
16460
16461#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \
16462 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
16463
16464#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
16465 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
16466
16467#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
16468 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
16469
16470#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
16471 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
16472
16473#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
16474 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
16475
16476#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \
16477 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
16478
16479#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
16480 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
16481
16482#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
16483 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
16484
16485#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
16486 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
16487
16488#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
16489 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
16490
16491#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
16492 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
16493
16494#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \
16495 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
16496
16497#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16498 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16499
16500#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16501 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16502
16503#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
16504 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
16505
16506#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
16507 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
16508
16509#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
16510 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
16511
16512#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \
16513 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
16514
16515#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \
16516 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
16517
16518#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \
16519 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
16520
16521#define ID3D12Device7_GetDeviceRemovedReason(This) \
16522 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
16523
16524#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
16525 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
16526
16527#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
16528 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
16529
16530#define ID3D12Device7_SetStablePowerState(This,Enable) \
16531 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
16532
16533#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
16534 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
16535
16536#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
16537 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
16538
16539#define ID3D12Device7_GetAdapterLuid(This,RetVal) \
16540 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
16541
16542
16543#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
16544 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
16545
16546#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
16547 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
16548
16549#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
16550 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
16551
16552
16553#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
16554 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
16555
16556
16557#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
16558 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
16559
16560#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
16561 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
16562
16563#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
16564 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
16565
16566
16567#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
16568 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
16569
16570#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
16571 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
16572
16573#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
16574 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
16575
16576#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
16577 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
16578
16579#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
16580 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
16581
16582#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
16583 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
16584
16585
16586#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
16587 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
16588
16589#define ID3D12Device7_RemoveDevice(This) \
16590 ( (This)->lpVtbl -> RemoveDevice(This) )
16591
16592#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
16593 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
16594
16595#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
16596 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
16597
16598#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
16599 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
16600
16601#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \
16602 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
16603
16604#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
16605 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
16606
16607#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
16608 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
16609
16610
16611#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
16612 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
16613
16614
16615#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
16616 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
16617
16618#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
16619 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
16620
16621#endif /* COBJMACROS */
16622
16623
16624#endif /* C style interface */
16625
16626
16627
16628
16629#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
16630
16631
16632#ifndef __ID3D12Device8_INTERFACE_DEFINED__
16633#define __ID3D12Device8_INTERFACE_DEFINED__
16634
16635/* interface ID3D12Device8 */
16636/* [unique][local][object][uuid] */
16637
16638
16639EXTERN_C const IID IID_ID3D12Device8;
16640
16641#if defined(__cplusplus) && !defined(CINTERFACE)
16642
16643 MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3")
16644 ID3D12Device8 : public ID3D12Device7
16645 {
16646 public:
16647 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
16648 UINT visibleMask,
16649 UINT numResourceDescs,
16650 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
16651 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
16652
16653 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
16654 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16655 D3D12_HEAP_FLAGS HeapFlags,
16656 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
16657 D3D12_RESOURCE_STATES InitialResourceState,
16658 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16659 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16660 REFIID riidResource,
16661 _COM_Outptr_opt_ void **ppvResource) = 0;
16662
16663 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
16664 _In_ ID3D12Heap *pHeap,
16665 UINT64 HeapOffset,
16666 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
16667 D3D12_RESOURCE_STATES InitialState,
16668 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16669 REFIID riid,
16670 _COM_Outptr_opt_ void **ppvResource) = 0;
16671
16672 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
16673 _In_opt_ ID3D12Resource *pTargetedResource,
16674 _In_opt_ ID3D12Resource *pFeedbackResource,
16675 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
16676
16677 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
16678 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
16679 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16680 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16681 UINT64 BaseOffset,
16682 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16683 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16684 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16685 _Out_opt_ UINT64 *pTotalBytes) = 0;
16686
16687 };
16688
16689
16690#else /* C style interface */
16691
16692 typedef struct ID3D12Device8Vtbl
16693 {
16694 BEGIN_INTERFACE
16695
16696 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16697 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16698 ID3D12Device8 * This,
16699 REFIID riid,
16700 _COM_Outptr_ void **ppvObject);
16701
16702 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16703 ULONG ( STDMETHODCALLTYPE *AddRef )(
16704 ID3D12Device8 * This);
16705
16706 DECLSPEC_XFGVIRT(IUnknown, Release)
16707 ULONG ( STDMETHODCALLTYPE *Release )(
16708 ID3D12Device8 * This);
16709
16710 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
16711 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
16712 ID3D12Device8 * This,
16713 _In_ REFGUID guid,
16714 _Inout_ UINT *pDataSize,
16715 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
16716
16717 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
16718 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
16719 ID3D12Device8 * This,
16720 _In_ REFGUID guid,
16721 _In_ UINT DataSize,
16722 _In_reads_bytes_opt_( DataSize ) const void *pData);
16723
16724 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
16725 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
16726 ID3D12Device8 * This,
16727 _In_ REFGUID guid,
16728 _In_opt_ const IUnknown *pData);
16729
16730 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
16731 HRESULT ( STDMETHODCALLTYPE *SetName )(
16732 ID3D12Device8 * This,
16733 _In_z_ LPCWSTR Name);
16734
16735 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
16736 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
16737 ID3D12Device8 * This);
16738
16739 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
16740 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
16741 ID3D12Device8 * This,
16742 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
16743 REFIID riid,
16744 _COM_Outptr_ void **ppCommandQueue);
16745
16746 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
16747 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
16748 ID3D12Device8 * This,
16749 _In_ D3D12_COMMAND_LIST_TYPE type,
16750 REFIID riid,
16751 _COM_Outptr_ void **ppCommandAllocator);
16752
16753 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
16754 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
16755 ID3D12Device8 * This,
16756 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
16757 REFIID riid,
16758 _COM_Outptr_ void **ppPipelineState);
16759
16760 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
16761 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
16762 ID3D12Device8 * This,
16763 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
16764 REFIID riid,
16765 _COM_Outptr_ void **ppPipelineState);
16766
16767 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
16768 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
16769 ID3D12Device8 * This,
16770 _In_ UINT nodeMask,
16771 _In_ D3D12_COMMAND_LIST_TYPE type,
16772 _In_ ID3D12CommandAllocator *pCommandAllocator,
16773 _In_opt_ ID3D12PipelineState *pInitialState,
16774 REFIID riid,
16775 _COM_Outptr_ void **ppCommandList);
16776
16777 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
16778 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
16779 ID3D12Device8 * This,
16780 D3D12_FEATURE Feature,
16781 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
16782 UINT FeatureSupportDataSize);
16783
16784 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
16785 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
16786 ID3D12Device8 * This,
16787 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
16788 REFIID riid,
16789 _COM_Outptr_ void **ppvHeap);
16790
16791 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
16792 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
16793 ID3D12Device8 * This,
16794 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
16795
16796 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
16797 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
16798 ID3D12Device8 * This,
16799 _In_ UINT nodeMask,
16800 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
16801 _In_ SIZE_T blobLengthInBytes,
16802 REFIID riid,
16803 _COM_Outptr_ void **ppvRootSignature);
16804
16805 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
16806 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
16807 ID3D12Device8 * This,
16808 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
16809 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16810
16811 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
16812 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
16813 ID3D12Device8 * This,
16814 _In_opt_ ID3D12Resource *pResource,
16815 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
16816 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16817
16818 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
16819 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
16820 ID3D12Device8 * This,
16821 _In_opt_ ID3D12Resource *pResource,
16822 _In_opt_ ID3D12Resource *pCounterResource,
16823 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
16824 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16825
16826 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
16827 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
16828 ID3D12Device8 * This,
16829 _In_opt_ ID3D12Resource *pResource,
16830 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
16831 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16832
16833 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
16834 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
16835 ID3D12Device8 * This,
16836 _In_opt_ ID3D12Resource *pResource,
16837 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
16838 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16839
16840 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
16841 void ( STDMETHODCALLTYPE *CreateSampler )(
16842 ID3D12Device8 * This,
16843 _In_ const D3D12_SAMPLER_DESC *pDesc,
16844 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16845
16846 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
16847 void ( STDMETHODCALLTYPE *CopyDescriptors )(
16848 ID3D12Device8 * This,
16849 _In_ UINT NumDestDescriptorRanges,
16850 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
16851 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
16852 _In_ UINT NumSrcDescriptorRanges,
16853 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
16854 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
16855 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16856
16857 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
16858 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
16859 ID3D12Device8 * This,
16860 _In_ UINT NumDescriptors,
16861 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
16862 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
16863 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16864
16865 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
16866 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
16867 ID3D12Device8 * This,
16868 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16869 _In_ UINT visibleMask,
16870 _In_ UINT numResourceDescs,
16871 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
16872
16873 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
16874 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
16875 ID3D12Device8 * This,
16876 D3D12_HEAP_PROPERTIES * RetVal,
16877 _In_ UINT nodeMask,
16878 D3D12_HEAP_TYPE heapType);
16879
16880 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
16881 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
16882 ID3D12Device8 * This,
16883 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16884 D3D12_HEAP_FLAGS HeapFlags,
16885 _In_ const D3D12_RESOURCE_DESC *pDesc,
16886 D3D12_RESOURCE_STATES InitialResourceState,
16887 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16888 REFIID riidResource,
16889 _COM_Outptr_opt_ void **ppvResource);
16890
16891 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
16892 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
16893 ID3D12Device8 * This,
16894 _In_ const D3D12_HEAP_DESC *pDesc,
16895 REFIID riid,
16896 _COM_Outptr_opt_ void **ppvHeap);
16897
16898 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
16899 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
16900 ID3D12Device8 * This,
16901 _In_ ID3D12Heap *pHeap,
16902 UINT64 HeapOffset,
16903 _In_ const D3D12_RESOURCE_DESC *pDesc,
16904 D3D12_RESOURCE_STATES InitialState,
16905 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16906 REFIID riid,
16907 _COM_Outptr_opt_ void **ppvResource);
16908
16909 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
16910 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
16911 ID3D12Device8 * This,
16912 _In_ const D3D12_RESOURCE_DESC *pDesc,
16913 D3D12_RESOURCE_STATES InitialState,
16914 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16915 REFIID riid,
16916 _COM_Outptr_opt_ void **ppvResource);
16917
16918 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
16919 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
16920 ID3D12Device8 * This,
16921 _In_ ID3D12DeviceChild *pObject,
16922 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
16923 DWORD Access,
16924 _In_opt_ LPCWSTR Name,
16925 _Out_ HANDLE *pHandle);
16926
16927 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
16928 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
16929 ID3D12Device8 * This,
16930 _In_ HANDLE NTHandle,
16931 REFIID riid,
16932 _COM_Outptr_opt_ void **ppvObj);
16933
16934 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
16935 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
16936 ID3D12Device8 * This,
16937 _In_ LPCWSTR Name,
16938 DWORD Access,
16939 /* [annotation][out] */
16940 _Out_ HANDLE *pNTHandle);
16941
16942 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
16943 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
16944 ID3D12Device8 * This,
16945 UINT NumObjects,
16946 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16947
16948 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
16949 HRESULT ( STDMETHODCALLTYPE *Evict )(
16950 ID3D12Device8 * This,
16951 UINT NumObjects,
16952 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16953
16954 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
16955 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
16956 ID3D12Device8 * This,
16957 UINT64 InitialValue,
16958 D3D12_FENCE_FLAGS Flags,
16959 REFIID riid,
16960 _COM_Outptr_ void **ppFence);
16961
16962 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
16963 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
16964 ID3D12Device8 * This);
16965
16966 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
16967 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
16968 ID3D12Device8 * This,
16969 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
16970 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16971 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16972 UINT64 BaseOffset,
16973 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16974 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16975 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16976 _Out_opt_ UINT64 *pTotalBytes);
16977
16978 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
16979 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
16980 ID3D12Device8 * This,
16981 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
16982 REFIID riid,
16983 _COM_Outptr_opt_ void **ppvHeap);
16984
16985 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
16986 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
16987 ID3D12Device8 * This,
16988 BOOL Enable);
16989
16990 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
16991 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
16992 ID3D12Device8 * This,
16993 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
16994 _In_opt_ ID3D12RootSignature *pRootSignature,
16995 REFIID riid,
16996 _COM_Outptr_opt_ void **ppvCommandSignature);
16997
16998 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
16999 void ( STDMETHODCALLTYPE *GetResourceTiling )(
17000 ID3D12Device8 * This,
17001 _In_ ID3D12Resource *pTiledResource,
17002 _Out_opt_ UINT *pNumTilesForEntireResource,
17003 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
17004 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
17005 _Inout_opt_ UINT *pNumSubresourceTilings,
17006 _In_ UINT FirstSubresourceTilingToGet,
17007 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
17008
17009 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
17010 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
17011 ID3D12Device8 * This,
17012 LUID * RetVal);
17013
17014 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
17015 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
17016 ID3D12Device8 * This,
17017 _In_reads_(BlobLength) const void *pLibraryBlob,
17018 SIZE_T BlobLength,
17019 REFIID riid,
17020 _COM_Outptr_ void **ppPipelineLibrary);
17021
17022 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
17023 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
17024 ID3D12Device8 * This,
17025 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
17026 _In_reads_(NumFences) const UINT64 *pFenceValues,
17027 UINT NumFences,
17028 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
17029 HANDLE hEvent);
17030
17031 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
17032 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
17033 ID3D12Device8 * This,
17034 UINT NumObjects,
17035 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17036 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
17037
17038 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
17039 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
17040 ID3D12Device8 * This,
17041 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
17042 REFIID riid,
17043 _COM_Outptr_ void **ppPipelineState);
17044
17045 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
17046 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
17047 ID3D12Device8 * This,
17048 _In_ const void *pAddress,
17049 REFIID riid,
17050 _COM_Outptr_ void **ppvHeap);
17051
17052 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
17053 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
17054 ID3D12Device8 * This,
17055 _In_ HANDLE hFileMapping,
17056 REFIID riid,
17057 _COM_Outptr_ void **ppvHeap);
17058
17059 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
17060 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
17061 ID3D12Device8 * This,
17062 D3D12_RESIDENCY_FLAGS Flags,
17063 UINT NumObjects,
17064 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17065 _In_ ID3D12Fence *pFenceToSignal,
17066 UINT64 FenceValueToSignal);
17067
17068 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
17069 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
17070 ID3D12Device8 * This,
17071 _In_ UINT nodeMask,
17072 _In_ D3D12_COMMAND_LIST_TYPE type,
17073 _In_ D3D12_COMMAND_LIST_FLAGS flags,
17074 REFIID riid,
17075 _COM_Outptr_ void **ppCommandList);
17076
17077 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
17078 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
17079 ID3D12Device8 * This,
17080 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
17081 _In_ REFIID riid,
17082 _COM_Outptr_ void **ppSession);
17083
17084 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
17085 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
17086 ID3D12Device8 * This,
17087 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17088 D3D12_HEAP_FLAGS HeapFlags,
17089 _In_ const D3D12_RESOURCE_DESC *pDesc,
17090 D3D12_RESOURCE_STATES InitialResourceState,
17091 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17092 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17093 REFIID riidResource,
17094 _COM_Outptr_opt_ void **ppvResource);
17095
17096 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
17097 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
17098 ID3D12Device8 * This,
17099 _In_ const D3D12_HEAP_DESC *pDesc,
17100 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17101 REFIID riid,
17102 _COM_Outptr_opt_ void **ppvHeap);
17103
17104 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
17105 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
17106 ID3D12Device8 * This,
17107 _In_ const D3D12_RESOURCE_DESC *pDesc,
17108 D3D12_RESOURCE_STATES InitialState,
17109 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17110 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17111 REFIID riid,
17112 _COM_Outptr_opt_ void **ppvResource);
17113
17114 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
17115 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17116 ID3D12Device8 * This,
17117 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17118 UINT visibleMask,
17119 UINT numResourceDescs,
17120 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17121 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17122
17123 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
17124 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
17125 ID3D12Device8 * This,
17126 _In_ ID3D12LifetimeOwner *pOwner,
17127 REFIID riid,
17128 _COM_Outptr_ void **ppvTracker);
17129
17130 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
17131 void ( STDMETHODCALLTYPE *RemoveDevice )(
17132 ID3D12Device8 * This);
17133
17134 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
17135 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
17136 ID3D12Device8 * This,
17137 _Inout_ UINT *pNumMetaCommands,
17138 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
17139
17140 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
17141 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
17142 ID3D12Device8 * This,
17143 _In_ REFGUID CommandId,
17144 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
17145 _Out_opt_ UINT *pTotalStructureSizeInBytes,
17146 _Inout_ UINT *pParameterCount,
17147 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
17148
17149 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
17150 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
17151 ID3D12Device8 * This,
17152 _In_ REFGUID CommandId,
17153 _In_ UINT NodeMask,
17154 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
17155 _In_ SIZE_T CreationParametersDataSizeInBytes,
17156 REFIID riid,
17157 _COM_Outptr_ void **ppMetaCommand);
17158
17159 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
17160 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
17161 ID3D12Device8 * This,
17162 const D3D12_STATE_OBJECT_DESC *pDesc,
17163 REFIID riid,
17164 _COM_Outptr_ void **ppStateObject);
17165
17166 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
17167 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
17168 ID3D12Device8 * This,
17169 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
17170 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
17171
17172 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
17173 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
17174 ID3D12Device8 * This,
17175 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
17176 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
17177
17178 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
17179 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
17180 ID3D12Device8 * This,
17181 D3D12_BACKGROUND_PROCESSING_MODE Mode,
17182 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
17183 _In_opt_ HANDLE hEventToSignalUponCompletion,
17184 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
17185
17186 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
17187 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
17188 ID3D12Device8 * This,
17189 const D3D12_STATE_OBJECT_DESC *pAddition,
17190 ID3D12StateObject *pStateObjectToGrowFrom,
17191 REFIID riid,
17192 _COM_Outptr_ void **ppNewStateObject);
17193
17194 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
17195 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
17196 ID3D12Device8 * This,
17197 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
17198 _In_ REFIID riid,
17199 _COM_Outptr_ void **ppSession);
17200
17201 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
17202 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
17203 ID3D12Device8 * This,
17204 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17205 UINT visibleMask,
17206 UINT numResourceDescs,
17207 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
17208 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17209
17210 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
17211 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
17212 ID3D12Device8 * This,
17213 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17214 D3D12_HEAP_FLAGS HeapFlags,
17215 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
17216 D3D12_RESOURCE_STATES InitialResourceState,
17217 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17218 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17219 REFIID riidResource,
17220 _COM_Outptr_opt_ void **ppvResource);
17221
17222 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
17223 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
17224 ID3D12Device8 * This,
17225 _In_ ID3D12Heap *pHeap,
17226 UINT64 HeapOffset,
17227 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
17228 D3D12_RESOURCE_STATES InitialState,
17229 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17230 REFIID riid,
17231 _COM_Outptr_opt_ void **ppvResource);
17232
17233 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
17234 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
17235 ID3D12Device8 * This,
17236 _In_opt_ ID3D12Resource *pTargetedResource,
17237 _In_opt_ ID3D12Resource *pFeedbackResource,
17238 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17239
17240 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
17241 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
17242 ID3D12Device8 * This,
17243 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
17244 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
17245 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
17246 UINT64 BaseOffset,
17247 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
17248 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
17249 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
17250 _Out_opt_ UINT64 *pTotalBytes);
17251
17252 END_INTERFACE
17253 } ID3D12Device8Vtbl;
17254
17255 interface ID3D12Device8
17256 {
17257 CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl;
17258 };
17259
17260
17261
17262#ifdef COBJMACROS
17263
17264
17265#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \
17266 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17267
17268#define ID3D12Device8_AddRef(This) \
17269 ( (This)->lpVtbl -> AddRef(This) )
17270
17271#define ID3D12Device8_Release(This) \
17272 ( (This)->lpVtbl -> Release(This) )
17273
17274
17275#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \
17276 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
17277
17278#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \
17279 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
17280
17281#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \
17282 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
17283
17284#define ID3D12Device8_SetName(This,Name) \
17285 ( (This)->lpVtbl -> SetName(This,Name) )
17286
17287
17288#define ID3D12Device8_GetNodeCount(This) \
17289 ( (This)->lpVtbl -> GetNodeCount(This) )
17290
17291#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
17292 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
17293
17294#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
17295 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
17296
17297#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
17298 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
17299
17300#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
17301 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
17302
17303#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
17304 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
17305
17306#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
17307 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
17308
17309#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
17310 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
17311
17312#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
17313 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
17314
17315#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
17316 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
17317
17318#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \
17319 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
17320
17321#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
17322 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
17323
17324#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
17325 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
17326
17327#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
17328 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
17329
17330#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
17331 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
17332
17333#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \
17334 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
17335
17336#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
17337 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
17338
17339#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
17340 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
17341
17342#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
17343 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
17344
17345#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
17346 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
17347
17348#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
17349 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
17350
17351#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \
17352 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
17353
17354#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
17355 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
17356
17357#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
17358 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
17359
17360#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
17361 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
17362
17363#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
17364 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
17365
17366#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
17367 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
17368
17369#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \
17370 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
17371
17372#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \
17373 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
17374
17375#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \
17376 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
17377
17378#define ID3D12Device8_GetDeviceRemovedReason(This) \
17379 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
17380
17381#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
17382 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
17383
17384#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
17385 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
17386
17387#define ID3D12Device8_SetStablePowerState(This,Enable) \
17388 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
17389
17390#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
17391 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
17392
17393#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
17394 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
17395
17396#define ID3D12Device8_GetAdapterLuid(This,RetVal) \
17397 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
17398
17399
17400#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
17401 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
17402
17403#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
17404 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
17405
17406#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
17407 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
17408
17409
17410#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
17411 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
17412
17413
17414#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
17415 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
17416
17417#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
17418 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
17419
17420#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
17421 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
17422
17423
17424#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
17425 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
17426
17427#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
17428 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
17429
17430#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
17431 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
17432
17433#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
17434 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
17435
17436#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
17437 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
17438
17439#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
17440 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
17441
17442
17443#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
17444 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
17445
17446#define ID3D12Device8_RemoveDevice(This) \
17447 ( (This)->lpVtbl -> RemoveDevice(This) )
17448
17449#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
17450 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
17451
17452#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
17453 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
17454
17455#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
17456 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
17457
17458#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \
17459 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
17460
17461#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
17462 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
17463
17464#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
17465 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
17466
17467
17468#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
17469 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
17470
17471
17472#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
17473 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
17474
17475#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
17476 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
17477
17478
17479#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
17480 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
17481
17482#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
17483 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
17484
17485#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
17486 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
17487
17488#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
17489 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
17490
17491#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
17492 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
17493
17494#endif /* COBJMACROS */
17495
17496
17497#endif /* C style interface */
17498
17499
17500
17501
17502#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
17503
17504
17505#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
17506#define __ID3D12Resource1_INTERFACE_DEFINED__
17507
17508/* interface ID3D12Resource1 */
17509/* [unique][local][object][uuid] */
17510
17511
17512EXTERN_C const IID IID_ID3D12Resource1;
17513
17514#if defined(__cplusplus) && !defined(CINTERFACE)
17515
17516 MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
17517 ID3D12Resource1 : public ID3D12Resource
17518 {
17519 public:
17520 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
17521 REFIID riid,
17522 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
17523
17524 };
17525
17526
17527#else /* C style interface */
17528
17529 typedef struct ID3D12Resource1Vtbl
17530 {
17531 BEGIN_INTERFACE
17532
17533 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17534 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17535 ID3D12Resource1 * This,
17536 REFIID riid,
17537 _COM_Outptr_ void **ppvObject);
17538
17539 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17540 ULONG ( STDMETHODCALLTYPE *AddRef )(
17541 ID3D12Resource1 * This);
17542
17543 DECLSPEC_XFGVIRT(IUnknown, Release)
17544 ULONG ( STDMETHODCALLTYPE *Release )(
17545 ID3D12Resource1 * This);
17546
17547 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17548 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17549 ID3D12Resource1 * This,
17550 _In_ REFGUID guid,
17551 _Inout_ UINT *pDataSize,
17552 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17553
17554 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17555 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17556 ID3D12Resource1 * This,
17557 _In_ REFGUID guid,
17558 _In_ UINT DataSize,
17559 _In_reads_bytes_opt_( DataSize ) const void *pData);
17560
17561 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17562 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17563 ID3D12Resource1 * This,
17564 _In_ REFGUID guid,
17565 _In_opt_ const IUnknown *pData);
17566
17567 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17568 HRESULT ( STDMETHODCALLTYPE *SetName )(
17569 ID3D12Resource1 * This,
17570 _In_z_ LPCWSTR Name);
17571
17572 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
17573 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
17574 ID3D12Resource1 * This,
17575 REFIID riid,
17576 _COM_Outptr_opt_ void **ppvDevice);
17577
17578 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
17579 HRESULT ( STDMETHODCALLTYPE *Map )(
17580 ID3D12Resource1 * This,
17581 UINT Subresource,
17582 _In_opt_ const D3D12_RANGE *pReadRange,
17583 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
17584
17585 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
17586 void ( STDMETHODCALLTYPE *Unmap )(
17587 ID3D12Resource1 * This,
17588 UINT Subresource,
17589 _In_opt_ const D3D12_RANGE *pWrittenRange);
17590
17591 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
17592 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
17593 ID3D12Resource1 * This,
17594 D3D12_RESOURCE_DESC * RetVal);
17595
17596 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
17597 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
17598 ID3D12Resource1 * This);
17599
17600 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
17601 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
17602 ID3D12Resource1 * This,
17603 UINT DstSubresource,
17604 _In_opt_ const D3D12_BOX *pDstBox,
17605 _In_ const void *pSrcData,
17606 UINT SrcRowPitch,
17607 UINT SrcDepthPitch);
17608
17609 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
17610 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
17611 ID3D12Resource1 * This,
17612 _Out_ void *pDstData,
17613 UINT DstRowPitch,
17614 UINT DstDepthPitch,
17615 UINT SrcSubresource,
17616 _In_opt_ const D3D12_BOX *pSrcBox);
17617
17618 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
17619 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
17620 ID3D12Resource1 * This,
17621 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
17622 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
17623
17624 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
17625 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
17626 ID3D12Resource1 * This,
17627 REFIID riid,
17628 _COM_Outptr_opt_ void **ppProtectedSession);
17629
17630 END_INTERFACE
17631 } ID3D12Resource1Vtbl;
17632
17633 interface ID3D12Resource1
17634 {
17635 CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
17636 };
17637
17638
17639
17640#ifdef COBJMACROS
17641
17642
17643#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
17644 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17645
17646#define ID3D12Resource1_AddRef(This) \
17647 ( (This)->lpVtbl -> AddRef(This) )
17648
17649#define ID3D12Resource1_Release(This) \
17650 ( (This)->lpVtbl -> Release(This) )
17651
17652
17653#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
17654 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
17655
17656#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
17657 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
17658
17659#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
17660 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
17661
17662#define ID3D12Resource1_SetName(This,Name) \
17663 ( (This)->lpVtbl -> SetName(This,Name) )
17664
17665
17666#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
17667 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
17668
17669
17670
17671#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
17672 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
17673
17674#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
17675 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
17676
17677#define ID3D12Resource1_GetDesc(This,RetVal) \
17678 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
17679
17680#define ID3D12Resource1_GetGPUVirtualAddress(This) \
17681 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
17682
17683#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
17684 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
17685
17686#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
17687 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
17688
17689#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
17690 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
17691
17692
17693#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
17694 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
17695
17696#endif /* COBJMACROS */
17697
17698
17699#endif /* C style interface */
17700
17701
17702
17703
17704#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
17705
17706
17707#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
17708#define __ID3D12Resource2_INTERFACE_DEFINED__
17709
17710/* interface ID3D12Resource2 */
17711/* [unique][local][object][uuid] */
17712
17713
17714EXTERN_C const IID IID_ID3D12Resource2;
17715
17716#if defined(__cplusplus) && !defined(CINTERFACE)
17717
17718 MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495")
17719 ID3D12Resource2 : public ID3D12Resource1
17720 {
17721 public:
17722 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
17723
17724 };
17725
17726
17727#else /* C style interface */
17728
17729 typedef struct ID3D12Resource2Vtbl
17730 {
17731 BEGIN_INTERFACE
17732
17733 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17734 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17735 ID3D12Resource2 * This,
17736 REFIID riid,
17737 _COM_Outptr_ void **ppvObject);
17738
17739 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17740 ULONG ( STDMETHODCALLTYPE *AddRef )(
17741 ID3D12Resource2 * This);
17742
17743 DECLSPEC_XFGVIRT(IUnknown, Release)
17744 ULONG ( STDMETHODCALLTYPE *Release )(
17745 ID3D12Resource2 * This);
17746
17747 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17748 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17749 ID3D12Resource2 * This,
17750 _In_ REFGUID guid,
17751 _Inout_ UINT *pDataSize,
17752 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17753
17754 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17755 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17756 ID3D12Resource2 * This,
17757 _In_ REFGUID guid,
17758 _In_ UINT DataSize,
17759 _In_reads_bytes_opt_( DataSize ) const void *pData);
17760
17761 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17762 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17763 ID3D12Resource2 * This,
17764 _In_ REFGUID guid,
17765 _In_opt_ const IUnknown *pData);
17766
17767 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17768 HRESULT ( STDMETHODCALLTYPE *SetName )(
17769 ID3D12Resource2 * This,
17770 _In_z_ LPCWSTR Name);
17771
17772 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
17773 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
17774 ID3D12Resource2 * This,
17775 REFIID riid,
17776 _COM_Outptr_opt_ void **ppvDevice);
17777
17778 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
17779 HRESULT ( STDMETHODCALLTYPE *Map )(
17780 ID3D12Resource2 * This,
17781 UINT Subresource,
17782 _In_opt_ const D3D12_RANGE *pReadRange,
17783 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
17784
17785 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
17786 void ( STDMETHODCALLTYPE *Unmap )(
17787 ID3D12Resource2 * This,
17788 UINT Subresource,
17789 _In_opt_ const D3D12_RANGE *pWrittenRange);
17790
17791 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
17792 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
17793 ID3D12Resource2 * This,
17794 D3D12_RESOURCE_DESC * RetVal);
17795
17796 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
17797 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
17798 ID3D12Resource2 * This);
17799
17800 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
17801 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
17802 ID3D12Resource2 * This,
17803 UINT DstSubresource,
17804 _In_opt_ const D3D12_BOX *pDstBox,
17805 _In_ const void *pSrcData,
17806 UINT SrcRowPitch,
17807 UINT SrcDepthPitch);
17808
17809 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
17810 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
17811 ID3D12Resource2 * This,
17812 _Out_ void *pDstData,
17813 UINT DstRowPitch,
17814 UINT DstDepthPitch,
17815 UINT SrcSubresource,
17816 _In_opt_ const D3D12_BOX *pSrcBox);
17817
17818 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
17819 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
17820 ID3D12Resource2 * This,
17821 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
17822 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
17823
17824 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
17825 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
17826 ID3D12Resource2 * This,
17827 REFIID riid,
17828 _COM_Outptr_opt_ void **ppProtectedSession);
17829
17830 DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1)
17831 D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
17832 ID3D12Resource2 * This,
17833 D3D12_RESOURCE_DESC1 * RetVal);
17834
17835 END_INTERFACE
17836 } ID3D12Resource2Vtbl;
17837
17838 interface ID3D12Resource2
17839 {
17840 CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl;
17841 };
17842
17843
17844
17845#ifdef COBJMACROS
17846
17847
17848#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \
17849 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17850
17851#define ID3D12Resource2_AddRef(This) \
17852 ( (This)->lpVtbl -> AddRef(This) )
17853
17854#define ID3D12Resource2_Release(This) \
17855 ( (This)->lpVtbl -> Release(This) )
17856
17857
17858#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \
17859 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
17860
17861#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \
17862 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
17863
17864#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \
17865 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
17866
17867#define ID3D12Resource2_SetName(This,Name) \
17868 ( (This)->lpVtbl -> SetName(This,Name) )
17869
17870
17871#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \
17872 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
17873
17874
17875
17876#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \
17877 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
17878
17879#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \
17880 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
17881
17882#define ID3D12Resource2_GetDesc(This,RetVal) \
17883 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
17884
17885#define ID3D12Resource2_GetGPUVirtualAddress(This) \
17886 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
17887
17888#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
17889 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
17890
17891#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
17892 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
17893
17894#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
17895 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
17896
17897
17898#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \
17899 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
17900
17901
17902#define ID3D12Resource2_GetDesc1(This,RetVal) \
17903 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
17904
17905#endif /* COBJMACROS */
17906
17907
17908#endif /* C style interface */
17909
17910
17911
17912
17913#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
17914
17915
17916#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
17917#define __ID3D12Heap1_INTERFACE_DEFINED__
17918
17919/* interface ID3D12Heap1 */
17920/* [unique][local][object][uuid] */
17921
17922
17923EXTERN_C const IID IID_ID3D12Heap1;
17924
17925#if defined(__cplusplus) && !defined(CINTERFACE)
17926
17927 MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
17928 ID3D12Heap1 : public ID3D12Heap
17929 {
17930 public:
17931 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
17932 REFIID riid,
17933 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
17934
17935 };
17936
17937
17938#else /* C style interface */
17939
17940 typedef struct ID3D12Heap1Vtbl
17941 {
17942 BEGIN_INTERFACE
17943
17944 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17945 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17946 ID3D12Heap1 * This,
17947 REFIID riid,
17948 _COM_Outptr_ void **ppvObject);
17949
17950 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17951 ULONG ( STDMETHODCALLTYPE *AddRef )(
17952 ID3D12Heap1 * This);
17953
17954 DECLSPEC_XFGVIRT(IUnknown, Release)
17955 ULONG ( STDMETHODCALLTYPE *Release )(
17956 ID3D12Heap1 * This);
17957
17958 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17959 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17960 ID3D12Heap1 * This,
17961 _In_ REFGUID guid,
17962 _Inout_ UINT *pDataSize,
17963 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17964
17965 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17966 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17967 ID3D12Heap1 * This,
17968 _In_ REFGUID guid,
17969 _In_ UINT DataSize,
17970 _In_reads_bytes_opt_( DataSize ) const void *pData);
17971
17972 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17973 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17974 ID3D12Heap1 * This,
17975 _In_ REFGUID guid,
17976 _In_opt_ const IUnknown *pData);
17977
17978 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17979 HRESULT ( STDMETHODCALLTYPE *SetName )(
17980 ID3D12Heap1 * This,
17981 _In_z_ LPCWSTR Name);
17982
17983 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
17984 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
17985 ID3D12Heap1 * This,
17986 REFIID riid,
17987 _COM_Outptr_opt_ void **ppvDevice);
17988
17989 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
17990 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
17991 ID3D12Heap1 * This,
17992 D3D12_HEAP_DESC * RetVal);
17993
17994 DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession)
17995 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
17996 ID3D12Heap1 * This,
17997 REFIID riid,
17998 _COM_Outptr_opt_ void **ppProtectedSession);
17999
18000 END_INTERFACE
18001 } ID3D12Heap1Vtbl;
18002
18003 interface ID3D12Heap1
18004 {
18005 CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
18006 };
18007
18008
18009
18010#ifdef COBJMACROS
18011
18012
18013#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
18014 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18015
18016#define ID3D12Heap1_AddRef(This) \
18017 ( (This)->lpVtbl -> AddRef(This) )
18018
18019#define ID3D12Heap1_Release(This) \
18020 ( (This)->lpVtbl -> Release(This) )
18021
18022
18023#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
18024 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18025
18026#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
18027 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18028
18029#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
18030 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18031
18032#define ID3D12Heap1_SetName(This,Name) \
18033 ( (This)->lpVtbl -> SetName(This,Name) )
18034
18035
18036#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
18037 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
18038
18039
18040
18041#define ID3D12Heap1_GetDesc(This,RetVal) \
18042 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
18043
18044
18045#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
18046 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
18047
18048#endif /* COBJMACROS */
18049
18050
18051#endif /* C style interface */
18052
18053
18054
18055
18056#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
18057
18058
18059#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
18060#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
18061
18062/* interface ID3D12GraphicsCommandList3 */
18063/* [unique][local][object][uuid] */
18064
18065
18066EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
18067
18068#if defined(__cplusplus) && !defined(CINTERFACE)
18069
18070 MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
18071 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
18072 {
18073 public:
18074 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
18075 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
18076
18077 };
18078
18079
18080#else /* C style interface */
18081
18082 typedef struct ID3D12GraphicsCommandList3Vtbl
18083 {
18084 BEGIN_INTERFACE
18085
18086 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18087 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18088 ID3D12GraphicsCommandList3 * This,
18089 REFIID riid,
18090 _COM_Outptr_ void **ppvObject);
18091
18092 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18093 ULONG ( STDMETHODCALLTYPE *AddRef )(
18094 ID3D12GraphicsCommandList3 * This);
18095
18096 DECLSPEC_XFGVIRT(IUnknown, Release)
18097 ULONG ( STDMETHODCALLTYPE *Release )(
18098 ID3D12GraphicsCommandList3 * This);
18099
18100 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18101 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18102 ID3D12GraphicsCommandList3 * This,
18103 _In_ REFGUID guid,
18104 _Inout_ UINT *pDataSize,
18105 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18106
18107 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18108 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18109 ID3D12GraphicsCommandList3 * This,
18110 _In_ REFGUID guid,
18111 _In_ UINT DataSize,
18112 _In_reads_bytes_opt_( DataSize ) const void *pData);
18113
18114 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18115 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18116 ID3D12GraphicsCommandList3 * This,
18117 _In_ REFGUID guid,
18118 _In_opt_ const IUnknown *pData);
18119
18120 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18121 HRESULT ( STDMETHODCALLTYPE *SetName )(
18122 ID3D12GraphicsCommandList3 * This,
18123 _In_z_ LPCWSTR Name);
18124
18125 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
18126 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
18127 ID3D12GraphicsCommandList3 * This,
18128 REFIID riid,
18129 _COM_Outptr_opt_ void **ppvDevice);
18130
18131 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
18132 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
18133 ID3D12GraphicsCommandList3 * This);
18134
18135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
18136 HRESULT ( STDMETHODCALLTYPE *Close )(
18137 ID3D12GraphicsCommandList3 * This);
18138
18139 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
18140 HRESULT ( STDMETHODCALLTYPE *Reset )(
18141 ID3D12GraphicsCommandList3 * This,
18142 _In_ ID3D12CommandAllocator *pAllocator,
18143 _In_opt_ ID3D12PipelineState *pInitialState);
18144
18145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
18146 void ( STDMETHODCALLTYPE *ClearState )(
18147 ID3D12GraphicsCommandList3 * This,
18148 _In_opt_ ID3D12PipelineState *pPipelineState);
18149
18150 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
18151 void ( STDMETHODCALLTYPE *DrawInstanced )(
18152 ID3D12GraphicsCommandList3 * This,
18153 _In_ UINT VertexCountPerInstance,
18154 _In_ UINT InstanceCount,
18155 _In_ UINT StartVertexLocation,
18156 _In_ UINT StartInstanceLocation);
18157
18158 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
18159 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
18160 ID3D12GraphicsCommandList3 * This,
18161 _In_ UINT IndexCountPerInstance,
18162 _In_ UINT InstanceCount,
18163 _In_ UINT StartIndexLocation,
18164 _In_ INT BaseVertexLocation,
18165 _In_ UINT StartInstanceLocation);
18166
18167 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
18168 void ( STDMETHODCALLTYPE *Dispatch )(
18169 ID3D12GraphicsCommandList3 * This,
18170 _In_ UINT ThreadGroupCountX,
18171 _In_ UINT ThreadGroupCountY,
18172 _In_ UINT ThreadGroupCountZ);
18173
18174 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
18175 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
18176 ID3D12GraphicsCommandList3 * This,
18177 _In_ ID3D12Resource *pDstBuffer,
18178 UINT64 DstOffset,
18179 _In_ ID3D12Resource *pSrcBuffer,
18180 UINT64 SrcOffset,
18181 UINT64 NumBytes);
18182
18183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
18184 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
18185 ID3D12GraphicsCommandList3 * This,
18186 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
18187 UINT DstX,
18188 UINT DstY,
18189 UINT DstZ,
18190 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
18191 _In_opt_ const D3D12_BOX *pSrcBox);
18192
18193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
18194 void ( STDMETHODCALLTYPE *CopyResource )(
18195 ID3D12GraphicsCommandList3 * This,
18196 _In_ ID3D12Resource *pDstResource,
18197 _In_ ID3D12Resource *pSrcResource);
18198
18199 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
18200 void ( STDMETHODCALLTYPE *CopyTiles )(
18201 ID3D12GraphicsCommandList3 * This,
18202 _In_ ID3D12Resource *pTiledResource,
18203 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
18204 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
18205 _In_ ID3D12Resource *pBuffer,
18206 UINT64 BufferStartOffsetInBytes,
18207 D3D12_TILE_COPY_FLAGS Flags);
18208
18209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
18210 void ( STDMETHODCALLTYPE *ResolveSubresource )(
18211 ID3D12GraphicsCommandList3 * This,
18212 _In_ ID3D12Resource *pDstResource,
18213 _In_ UINT DstSubresource,
18214 _In_ ID3D12Resource *pSrcResource,
18215 _In_ UINT SrcSubresource,
18216 _In_ DXGI_FORMAT Format);
18217
18218 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
18219 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
18220 ID3D12GraphicsCommandList3 * This,
18221 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
18222
18223 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
18224 void ( STDMETHODCALLTYPE *RSSetViewports )(
18225 ID3D12GraphicsCommandList3 * This,
18226 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
18227 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
18228
18229 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
18230 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
18231 ID3D12GraphicsCommandList3 * This,
18232 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
18233 _In_reads_( NumRects) const D3D12_RECT *pRects);
18234
18235 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
18236 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
18237 ID3D12GraphicsCommandList3 * This,
18238 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
18239
18240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
18241 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
18242 ID3D12GraphicsCommandList3 * This,
18243 _In_ UINT StencilRef);
18244
18245 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
18246 void ( STDMETHODCALLTYPE *SetPipelineState )(
18247 ID3D12GraphicsCommandList3 * This,
18248 _In_ ID3D12PipelineState *pPipelineState);
18249
18250 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
18251 void ( STDMETHODCALLTYPE *ResourceBarrier )(
18252 ID3D12GraphicsCommandList3 * This,
18253 _In_ UINT NumBarriers,
18254 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
18255
18256 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
18257 void ( STDMETHODCALLTYPE *ExecuteBundle )(
18258 ID3D12GraphicsCommandList3 * This,
18259 _In_ ID3D12GraphicsCommandList *pCommandList);
18260
18261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
18262 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
18263 ID3D12GraphicsCommandList3 * This,
18264 _In_ UINT NumDescriptorHeaps,
18265 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
18266
18267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
18268 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
18269 ID3D12GraphicsCommandList3 * This,
18270 _In_opt_ ID3D12RootSignature *pRootSignature);
18271
18272 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
18273 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
18274 ID3D12GraphicsCommandList3 * This,
18275 _In_opt_ ID3D12RootSignature *pRootSignature);
18276
18277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
18278 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
18279 ID3D12GraphicsCommandList3 * This,
18280 _In_ UINT RootParameterIndex,
18281 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
18282
18283 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
18284 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
18285 ID3D12GraphicsCommandList3 * This,
18286 _In_ UINT RootParameterIndex,
18287 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
18288
18289 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
18290 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
18291 ID3D12GraphicsCommandList3 * This,
18292 _In_ UINT RootParameterIndex,
18293 _In_ UINT SrcData,
18294 _In_ UINT DestOffsetIn32BitValues);
18295
18296 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
18297 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
18298 ID3D12GraphicsCommandList3 * This,
18299 _In_ UINT RootParameterIndex,
18300 _In_ UINT SrcData,
18301 _In_ UINT DestOffsetIn32BitValues);
18302
18303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
18304 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
18305 ID3D12GraphicsCommandList3 * This,
18306 _In_ UINT RootParameterIndex,
18307 _In_ UINT Num32BitValuesToSet,
18308 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
18309 _In_ UINT DestOffsetIn32BitValues);
18310
18311 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
18312 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
18313 ID3D12GraphicsCommandList3 * This,
18314 _In_ UINT RootParameterIndex,
18315 _In_ UINT Num32BitValuesToSet,
18316 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
18317 _In_ UINT DestOffsetIn32BitValues);
18318
18319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
18320 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
18321 ID3D12GraphicsCommandList3 * This,
18322 _In_ UINT RootParameterIndex,
18323 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18324
18325 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
18326 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
18327 ID3D12GraphicsCommandList3 * This,
18328 _In_ UINT RootParameterIndex,
18329 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18330
18331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
18332 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
18333 ID3D12GraphicsCommandList3 * This,
18334 _In_ UINT RootParameterIndex,
18335 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18336
18337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
18338 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
18339 ID3D12GraphicsCommandList3 * This,
18340 _In_ UINT RootParameterIndex,
18341 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18342
18343 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
18344 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
18345 ID3D12GraphicsCommandList3 * This,
18346 _In_ UINT RootParameterIndex,
18347 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18348
18349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
18350 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
18351 ID3D12GraphicsCommandList3 * This,
18352 _In_ UINT RootParameterIndex,
18353 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
18354
18355 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
18356 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
18357 ID3D12GraphicsCommandList3 * This,
18358 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
18359
18360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
18361 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
18362 ID3D12GraphicsCommandList3 * This,
18363 _In_ UINT StartSlot,
18364 _In_ UINT NumViews,
18365 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
18366
18367 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
18368 void ( STDMETHODCALLTYPE *SOSetTargets )(
18369 ID3D12GraphicsCommandList3 * This,
18370 _In_ UINT StartSlot,
18371 _In_ UINT NumViews,
18372 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
18373
18374 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
18375 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
18376 ID3D12GraphicsCommandList3 * This,
18377 _In_ UINT NumRenderTargetDescriptors,
18378 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
18379 _In_ BOOL RTsSingleHandleToDescriptorRange,
18380 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
18381
18382 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
18383 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
18384 ID3D12GraphicsCommandList3 * This,
18385 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
18386 _In_ D3D12_CLEAR_FLAGS ClearFlags,
18387 _In_ FLOAT Depth,
18388 _In_ UINT8 Stencil,
18389 _In_ UINT NumRects,
18390 _In_reads_(NumRects) const D3D12_RECT *pRects);
18391
18392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
18393 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
18394 ID3D12GraphicsCommandList3 * This,
18395 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
18396 _In_ const FLOAT ColorRGBA[ 4 ],
18397 _In_ UINT NumRects,
18398 _In_reads_(NumRects) const D3D12_RECT *pRects);
18399
18400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
18401 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
18402 ID3D12GraphicsCommandList3 * This,
18403 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
18404 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
18405 _In_ ID3D12Resource *pResource,
18406 _In_ const UINT Values[ 4 ],
18407 _In_ UINT NumRects,
18408 _In_reads_(NumRects) const D3D12_RECT *pRects);
18409
18410 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
18411 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
18412 ID3D12GraphicsCommandList3 * This,
18413 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
18414 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
18415 _In_ ID3D12Resource *pResource,
18416 _In_ const FLOAT Values[ 4 ],
18417 _In_ UINT NumRects,
18418 _In_reads_(NumRects) const D3D12_RECT *pRects);
18419
18420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
18421 void ( STDMETHODCALLTYPE *DiscardResource )(
18422 ID3D12GraphicsCommandList3 * This,
18423 _In_ ID3D12Resource *pResource,
18424 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
18425
18426 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
18427 void ( STDMETHODCALLTYPE *BeginQuery )(
18428 ID3D12GraphicsCommandList3 * This,
18429 _In_ ID3D12QueryHeap *pQueryHeap,
18430 _In_ D3D12_QUERY_TYPE Type,
18431 _In_ UINT Index);
18432
18433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
18434 void ( STDMETHODCALLTYPE *EndQuery )(
18435 ID3D12GraphicsCommandList3 * This,
18436 _In_ ID3D12QueryHeap *pQueryHeap,
18437 _In_ D3D12_QUERY_TYPE Type,
18438 _In_ UINT Index);
18439
18440 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
18441 void ( STDMETHODCALLTYPE *ResolveQueryData )(
18442 ID3D12GraphicsCommandList3 * This,
18443 _In_ ID3D12QueryHeap *pQueryHeap,
18444 _In_ D3D12_QUERY_TYPE Type,
18445 _In_ UINT StartIndex,
18446 _In_ UINT NumQueries,
18447 _In_ ID3D12Resource *pDestinationBuffer,
18448 _In_ UINT64 AlignedDestinationBufferOffset);
18449
18450 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
18451 void ( STDMETHODCALLTYPE *SetPredication )(
18452 ID3D12GraphicsCommandList3 * This,
18453 _In_opt_ ID3D12Resource *pBuffer,
18454 _In_ UINT64 AlignedBufferOffset,
18455 _In_ D3D12_PREDICATION_OP Operation);
18456
18457 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
18458 void ( STDMETHODCALLTYPE *SetMarker )(
18459 ID3D12GraphicsCommandList3 * This,
18460 UINT Metadata,
18461 _In_reads_bytes_opt_(Size) const void *pData,
18462 UINT Size);
18463
18464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
18465 void ( STDMETHODCALLTYPE *BeginEvent )(
18466 ID3D12GraphicsCommandList3 * This,
18467 UINT Metadata,
18468 _In_reads_bytes_opt_(Size) const void *pData,
18469 UINT Size);
18470
18471 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
18472 void ( STDMETHODCALLTYPE *EndEvent )(
18473 ID3D12GraphicsCommandList3 * This);
18474
18475 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
18476 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
18477 ID3D12GraphicsCommandList3 * This,
18478 _In_ ID3D12CommandSignature *pCommandSignature,
18479 _In_ UINT MaxCommandCount,
18480 _In_ ID3D12Resource *pArgumentBuffer,
18481 _In_ UINT64 ArgumentBufferOffset,
18482 _In_opt_ ID3D12Resource *pCountBuffer,
18483 _In_ UINT64 CountBufferOffset);
18484
18485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
18486 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
18487 ID3D12GraphicsCommandList3 * This,
18488 _In_ ID3D12Resource *pDstBuffer,
18489 UINT64 DstOffset,
18490 _In_ ID3D12Resource *pSrcBuffer,
18491 UINT64 SrcOffset,
18492 UINT Dependencies,
18493 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
18494 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
18495
18496 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
18497 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
18498 ID3D12GraphicsCommandList3 * This,
18499 _In_ ID3D12Resource *pDstBuffer,
18500 UINT64 DstOffset,
18501 _In_ ID3D12Resource *pSrcBuffer,
18502 UINT64 SrcOffset,
18503 UINT Dependencies,
18504 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
18505 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
18506
18507 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
18508 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
18509 ID3D12GraphicsCommandList3 * This,
18510 _In_ FLOAT Min,
18511 _In_ FLOAT Max);
18512
18513 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
18514 void ( STDMETHODCALLTYPE *SetSamplePositions )(
18515 ID3D12GraphicsCommandList3 * This,
18516 _In_ UINT NumSamplesPerPixel,
18517 _In_ UINT NumPixels,
18518 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
18519
18520 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
18521 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
18522 ID3D12GraphicsCommandList3 * This,
18523 _In_ ID3D12Resource *pDstResource,
18524 _In_ UINT DstSubresource,
18525 _In_ UINT DstX,
18526 _In_ UINT DstY,
18527 _In_ ID3D12Resource *pSrcResource,
18528 _In_ UINT SrcSubresource,
18529 _In_opt_ D3D12_RECT *pSrcRect,
18530 _In_ DXGI_FORMAT Format,
18531 _In_ D3D12_RESOLVE_MODE ResolveMode);
18532
18533 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
18534 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
18535 ID3D12GraphicsCommandList3 * This,
18536 _In_ UINT Mask);
18537
18538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
18539 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
18540 ID3D12GraphicsCommandList3 * This,
18541 UINT Count,
18542 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
18543 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
18544
18545 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
18546 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
18547 ID3D12GraphicsCommandList3 * This,
18548 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
18549
18550 END_INTERFACE
18551 } ID3D12GraphicsCommandList3Vtbl;
18552
18553 interface ID3D12GraphicsCommandList3
18554 {
18555 CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
18556 };
18557
18558
18559
18560#ifdef COBJMACROS
18561
18562
18563#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
18564 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18565
18566#define ID3D12GraphicsCommandList3_AddRef(This) \
18567 ( (This)->lpVtbl -> AddRef(This) )
18568
18569#define ID3D12GraphicsCommandList3_Release(This) \
18570 ( (This)->lpVtbl -> Release(This) )
18571
18572
18573#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
18574 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18575
18576#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
18577 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18578
18579#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
18580 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18581
18582#define ID3D12GraphicsCommandList3_SetName(This,Name) \
18583 ( (This)->lpVtbl -> SetName(This,Name) )
18584
18585
18586#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
18587 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
18588
18589
18590#define ID3D12GraphicsCommandList3_GetType(This) \
18591 ( (This)->lpVtbl -> GetType(This) )
18592
18593
18594#define ID3D12GraphicsCommandList3_Close(This) \
18595 ( (This)->lpVtbl -> Close(This) )
18596
18597#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
18598 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
18599
18600#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
18601 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
18602
18603#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
18604 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
18605
18606#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
18607 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
18608
18609#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
18610 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
18611
18612#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
18613 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
18614
18615#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
18616 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
18617
18618#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
18619 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
18620
18621#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
18622 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
18623
18624#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
18625 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
18626
18627#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
18628 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
18629
18630#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
18631 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
18632
18633#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
18634 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
18635
18636#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
18637 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
18638
18639#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
18640 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
18641
18642#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
18643 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
18644
18645#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
18646 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
18647
18648#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
18649 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
18650
18651#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
18652 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
18653
18654#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
18655 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
18656
18657#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
18658 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
18659
18660#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
18661 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
18662
18663#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
18664 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
18665
18666#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
18667 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
18668
18669#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
18670 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
18671
18672#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
18673 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
18674
18675#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
18676 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
18677
18678#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
18679 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
18680
18681#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
18682 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
18683
18684#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
18685 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
18686
18687#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
18688 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
18689
18690#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
18691 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
18692
18693#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
18694 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
18695
18696#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
18697 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
18698
18699#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
18700 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
18701
18702#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
18703 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
18704
18705#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
18706 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
18707
18708#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
18709 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
18710
18711#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
18712 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
18713
18714#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
18715 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
18716
18717#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
18718 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
18719
18720#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
18721 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
18722
18723#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
18724 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
18725
18726#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
18727 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
18728
18729#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
18730 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
18731
18732#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
18733 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
18734
18735#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
18736 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
18737
18738#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
18739 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
18740
18741#define ID3D12GraphicsCommandList3_EndEvent(This) \
18742 ( (This)->lpVtbl -> EndEvent(This) )
18743
18744#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
18745 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
18746
18747
18748#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
18749 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
18750
18751#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
18752 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
18753
18754#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
18755 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
18756
18757#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
18758 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
18759
18760#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
18761 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
18762
18763#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
18764 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
18765
18766
18767#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
18768 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
18769
18770
18771#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
18772 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
18773
18774#endif /* COBJMACROS */
18775
18776
18777#endif /* C style interface */
18778
18779
18780
18781
18782#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
18783
18784
18785/* interface __MIDL_itf_d3d12_0000_0048 */
18786/* [local] */
18787
18788typedef
18789enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
18790 {
18791 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
18792 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
18793 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
18794 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 )
18795 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
18796
18797typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
18798 {
18799 D3D12_CLEAR_VALUE ClearValue;
18800 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
18801
18802typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
18803 {
18804 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
18805 union
18806 {
18807 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
18808 } ;
18809 } D3D12_RENDER_PASS_BEGINNING_ACCESS;
18810
18811typedef
18812enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
18813 {
18814 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
18815 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
18816 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
18817 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 )
18818 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
18819
18820typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
18821 {
18822 UINT SrcSubresource;
18823 UINT DstSubresource;
18824 UINT DstX;
18825 UINT DstY;
18826 D3D12_RECT SrcRect;
18827 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
18828
18829typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
18830 {
18831 ID3D12Resource *pSrcResource;
18832 ID3D12Resource *pDstResource;
18833 UINT SubresourceCount;
18834 _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
18835 DXGI_FORMAT Format;
18836 D3D12_RESOLVE_MODE ResolveMode;
18837 BOOL PreserveResolveSource;
18838 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
18839
18840typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
18841 {
18842 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
18843 union
18844 {
18845 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
18846 } ;
18847 } D3D12_RENDER_PASS_ENDING_ACCESS;
18848
18849typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
18850 {
18851 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18852 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
18853 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
18854 } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
18855
18856typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
18857 {
18858 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
18859 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
18860 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
18861 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
18862 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
18863 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
18864
18865typedef
18866enum D3D12_RENDER_PASS_FLAGS
18867 {
18868 D3D12_RENDER_PASS_FLAG_NONE = 0,
18869 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
18870 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
18871 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4
18872 } D3D12_RENDER_PASS_FLAGS;
18873
18874DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS );
18875
18876
18877extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0048_v0_0_c_ifspec;
18878extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0048_v0_0_s_ifspec;
18879
18880#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
18881#define __ID3D12MetaCommand_INTERFACE_DEFINED__
18882
18883/* interface ID3D12MetaCommand */
18884/* [unique][local][object][uuid] */
18885
18886
18887EXTERN_C const IID IID_ID3D12MetaCommand;
18888
18889#if defined(__cplusplus) && !defined(CINTERFACE)
18890
18891 MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
18892 ID3D12MetaCommand : public ID3D12Pageable
18893 {
18894 public:
18895 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
18896 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18897 _In_ UINT ParameterIndex) = 0;
18898
18899 };
18900
18901
18902#else /* C style interface */
18903
18904 typedef struct ID3D12MetaCommandVtbl
18905 {
18906 BEGIN_INTERFACE
18907
18908 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18909 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18910 ID3D12MetaCommand * This,
18911 REFIID riid,
18912 _COM_Outptr_ void **ppvObject);
18913
18914 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18915 ULONG ( STDMETHODCALLTYPE *AddRef )(
18916 ID3D12MetaCommand * This);
18917
18918 DECLSPEC_XFGVIRT(IUnknown, Release)
18919 ULONG ( STDMETHODCALLTYPE *Release )(
18920 ID3D12MetaCommand * This);
18921
18922 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18923 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18924 ID3D12MetaCommand * This,
18925 _In_ REFGUID guid,
18926 _Inout_ UINT *pDataSize,
18927 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18928
18929 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18930 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18931 ID3D12MetaCommand * This,
18932 _In_ REFGUID guid,
18933 _In_ UINT DataSize,
18934 _In_reads_bytes_opt_( DataSize ) const void *pData);
18935
18936 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18937 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18938 ID3D12MetaCommand * This,
18939 _In_ REFGUID guid,
18940 _In_opt_ const IUnknown *pData);
18941
18942 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18943 HRESULT ( STDMETHODCALLTYPE *SetName )(
18944 ID3D12MetaCommand * This,
18945 _In_z_ LPCWSTR Name);
18946
18947 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
18948 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
18949 ID3D12MetaCommand * This,
18950 REFIID riid,
18951 _COM_Outptr_opt_ void **ppvDevice);
18952
18953 DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize)
18954 UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
18955 ID3D12MetaCommand * This,
18956 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18957 _In_ UINT ParameterIndex);
18958
18959 END_INTERFACE
18960 } ID3D12MetaCommandVtbl;
18961
18962 interface ID3D12MetaCommand
18963 {
18964 CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
18965 };
18966
18967
18968
18969#ifdef COBJMACROS
18970
18971
18972#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
18973 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18974
18975#define ID3D12MetaCommand_AddRef(This) \
18976 ( (This)->lpVtbl -> AddRef(This) )
18977
18978#define ID3D12MetaCommand_Release(This) \
18979 ( (This)->lpVtbl -> Release(This) )
18980
18981
18982#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
18983 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18984
18985#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
18986 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18987
18988#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
18989 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18990
18991#define ID3D12MetaCommand_SetName(This,Name) \
18992 ( (This)->lpVtbl -> SetName(This,Name) )
18993
18994
18995#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
18996 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
18997
18998
18999
19000#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
19001 ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
19002
19003#endif /* COBJMACROS */
19004
19005
19006#endif /* C style interface */
19007
19008
19009
19010
19011#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
19012
19013
19014/* interface __MIDL_itf_d3d12_0000_0049 */
19015/* [local] */
19016
19017typedef struct D3D12_DISPATCH_RAYS_DESC
19018 {
19019 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
19020 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
19021 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
19022 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
19023 UINT Width;
19024 UINT Height;
19025 UINT Depth;
19026 } D3D12_DISPATCH_RAYS_DESC;
19027
19028
19029
19030extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0049_v0_0_c_ifspec;
19031extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0049_v0_0_s_ifspec;
19032
19033#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
19034#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
19035
19036/* interface ID3D12GraphicsCommandList4 */
19037/* [unique][local][object][uuid] */
19038
19039
19040EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
19041
19042#if defined(__cplusplus) && !defined(CINTERFACE)
19043
19044 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
19045 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
19046 {
19047 public:
19048 virtual void STDMETHODCALLTYPE BeginRenderPass(
19049 _In_ UINT NumRenderTargets,
19050 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
19051 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
19052 D3D12_RENDER_PASS_FLAGS Flags) = 0;
19053
19054 virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
19055
19056 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
19057 _In_ ID3D12MetaCommand *pMetaCommand,
19058 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
19059 _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
19060
19061 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
19062 _In_ ID3D12MetaCommand *pMetaCommand,
19063 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
19064 _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
19065
19066 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
19067 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
19068 _In_ UINT NumPostbuildInfoDescs,
19069 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
19070
19071 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
19072 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
19073 _In_ UINT NumSourceAccelerationStructures,
19074 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
19075
19076 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
19077 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
19078 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
19079 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
19080
19081 virtual void STDMETHODCALLTYPE SetPipelineState1(
19082 _In_ ID3D12StateObject *pStateObject) = 0;
19083
19084 virtual void STDMETHODCALLTYPE DispatchRays(
19085 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
19086
19087 };
19088
19089
19090#else /* C style interface */
19091
19092 typedef struct ID3D12GraphicsCommandList4Vtbl
19093 {
19094 BEGIN_INTERFACE
19095
19096 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19097 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19098 ID3D12GraphicsCommandList4 * This,
19099 REFIID riid,
19100 _COM_Outptr_ void **ppvObject);
19101
19102 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19103 ULONG ( STDMETHODCALLTYPE *AddRef )(
19104 ID3D12GraphicsCommandList4 * This);
19105
19106 DECLSPEC_XFGVIRT(IUnknown, Release)
19107 ULONG ( STDMETHODCALLTYPE *Release )(
19108 ID3D12GraphicsCommandList4 * This);
19109
19110 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19111 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19112 ID3D12GraphicsCommandList4 * This,
19113 _In_ REFGUID guid,
19114 _Inout_ UINT *pDataSize,
19115 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19116
19117 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19118 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19119 ID3D12GraphicsCommandList4 * This,
19120 _In_ REFGUID guid,
19121 _In_ UINT DataSize,
19122 _In_reads_bytes_opt_( DataSize ) const void *pData);
19123
19124 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19125 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19126 ID3D12GraphicsCommandList4 * This,
19127 _In_ REFGUID guid,
19128 _In_opt_ const IUnknown *pData);
19129
19130 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19131 HRESULT ( STDMETHODCALLTYPE *SetName )(
19132 ID3D12GraphicsCommandList4 * This,
19133 _In_z_ LPCWSTR Name);
19134
19135 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
19136 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
19137 ID3D12GraphicsCommandList4 * This,
19138 REFIID riid,
19139 _COM_Outptr_opt_ void **ppvDevice);
19140
19141 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
19142 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
19143 ID3D12GraphicsCommandList4 * This);
19144
19145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
19146 HRESULT ( STDMETHODCALLTYPE *Close )(
19147 ID3D12GraphicsCommandList4 * This);
19148
19149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
19150 HRESULT ( STDMETHODCALLTYPE *Reset )(
19151 ID3D12GraphicsCommandList4 * This,
19152 _In_ ID3D12CommandAllocator *pAllocator,
19153 _In_opt_ ID3D12PipelineState *pInitialState);
19154
19155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
19156 void ( STDMETHODCALLTYPE *ClearState )(
19157 ID3D12GraphicsCommandList4 * This,
19158 _In_opt_ ID3D12PipelineState *pPipelineState);
19159
19160 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
19161 void ( STDMETHODCALLTYPE *DrawInstanced )(
19162 ID3D12GraphicsCommandList4 * This,
19163 _In_ UINT VertexCountPerInstance,
19164 _In_ UINT InstanceCount,
19165 _In_ UINT StartVertexLocation,
19166 _In_ UINT StartInstanceLocation);
19167
19168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
19169 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
19170 ID3D12GraphicsCommandList4 * This,
19171 _In_ UINT IndexCountPerInstance,
19172 _In_ UINT InstanceCount,
19173 _In_ UINT StartIndexLocation,
19174 _In_ INT BaseVertexLocation,
19175 _In_ UINT StartInstanceLocation);
19176
19177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
19178 void ( STDMETHODCALLTYPE *Dispatch )(
19179 ID3D12GraphicsCommandList4 * This,
19180 _In_ UINT ThreadGroupCountX,
19181 _In_ UINT ThreadGroupCountY,
19182 _In_ UINT ThreadGroupCountZ);
19183
19184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
19185 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
19186 ID3D12GraphicsCommandList4 * This,
19187 _In_ ID3D12Resource *pDstBuffer,
19188 UINT64 DstOffset,
19189 _In_ ID3D12Resource *pSrcBuffer,
19190 UINT64 SrcOffset,
19191 UINT64 NumBytes);
19192
19193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
19194 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
19195 ID3D12GraphicsCommandList4 * This,
19196 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
19197 UINT DstX,
19198 UINT DstY,
19199 UINT DstZ,
19200 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
19201 _In_opt_ const D3D12_BOX *pSrcBox);
19202
19203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
19204 void ( STDMETHODCALLTYPE *CopyResource )(
19205 ID3D12GraphicsCommandList4 * This,
19206 _In_ ID3D12Resource *pDstResource,
19207 _In_ ID3D12Resource *pSrcResource);
19208
19209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
19210 void ( STDMETHODCALLTYPE *CopyTiles )(
19211 ID3D12GraphicsCommandList4 * This,
19212 _In_ ID3D12Resource *pTiledResource,
19213 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
19214 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
19215 _In_ ID3D12Resource *pBuffer,
19216 UINT64 BufferStartOffsetInBytes,
19217 D3D12_TILE_COPY_FLAGS Flags);
19218
19219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
19220 void ( STDMETHODCALLTYPE *ResolveSubresource )(
19221 ID3D12GraphicsCommandList4 * This,
19222 _In_ ID3D12Resource *pDstResource,
19223 _In_ UINT DstSubresource,
19224 _In_ ID3D12Resource *pSrcResource,
19225 _In_ UINT SrcSubresource,
19226 _In_ DXGI_FORMAT Format);
19227
19228 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
19229 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
19230 ID3D12GraphicsCommandList4 * This,
19231 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
19232
19233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
19234 void ( STDMETHODCALLTYPE *RSSetViewports )(
19235 ID3D12GraphicsCommandList4 * This,
19236 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
19237 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
19238
19239 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
19240 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
19241 ID3D12GraphicsCommandList4 * This,
19242 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
19243 _In_reads_( NumRects) const D3D12_RECT *pRects);
19244
19245 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
19246 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
19247 ID3D12GraphicsCommandList4 * This,
19248 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
19249
19250 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
19251 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
19252 ID3D12GraphicsCommandList4 * This,
19253 _In_ UINT StencilRef);
19254
19255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
19256 void ( STDMETHODCALLTYPE *SetPipelineState )(
19257 ID3D12GraphicsCommandList4 * This,
19258 _In_ ID3D12PipelineState *pPipelineState);
19259
19260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
19261 void ( STDMETHODCALLTYPE *ResourceBarrier )(
19262 ID3D12GraphicsCommandList4 * This,
19263 _In_ UINT NumBarriers,
19264 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
19265
19266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
19267 void ( STDMETHODCALLTYPE *ExecuteBundle )(
19268 ID3D12GraphicsCommandList4 * This,
19269 _In_ ID3D12GraphicsCommandList *pCommandList);
19270
19271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
19272 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
19273 ID3D12GraphicsCommandList4 * This,
19274 _In_ UINT NumDescriptorHeaps,
19275 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
19276
19277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
19278 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
19279 ID3D12GraphicsCommandList4 * This,
19280 _In_opt_ ID3D12RootSignature *pRootSignature);
19281
19282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
19283 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
19284 ID3D12GraphicsCommandList4 * This,
19285 _In_opt_ ID3D12RootSignature *pRootSignature);
19286
19287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
19288 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
19289 ID3D12GraphicsCommandList4 * This,
19290 _In_ UINT RootParameterIndex,
19291 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
19292
19293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
19294 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
19295 ID3D12GraphicsCommandList4 * This,
19296 _In_ UINT RootParameterIndex,
19297 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
19298
19299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
19300 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
19301 ID3D12GraphicsCommandList4 * This,
19302 _In_ UINT RootParameterIndex,
19303 _In_ UINT SrcData,
19304 _In_ UINT DestOffsetIn32BitValues);
19305
19306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
19307 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
19308 ID3D12GraphicsCommandList4 * This,
19309 _In_ UINT RootParameterIndex,
19310 _In_ UINT SrcData,
19311 _In_ UINT DestOffsetIn32BitValues);
19312
19313 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
19314 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
19315 ID3D12GraphicsCommandList4 * This,
19316 _In_ UINT RootParameterIndex,
19317 _In_ UINT Num32BitValuesToSet,
19318 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
19319 _In_ UINT DestOffsetIn32BitValues);
19320
19321 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
19322 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
19323 ID3D12GraphicsCommandList4 * This,
19324 _In_ UINT RootParameterIndex,
19325 _In_ UINT Num32BitValuesToSet,
19326 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
19327 _In_ UINT DestOffsetIn32BitValues);
19328
19329 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
19330 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
19331 ID3D12GraphicsCommandList4 * This,
19332 _In_ UINT RootParameterIndex,
19333 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19334
19335 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
19336 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
19337 ID3D12GraphicsCommandList4 * This,
19338 _In_ UINT RootParameterIndex,
19339 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19340
19341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
19342 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
19343 ID3D12GraphicsCommandList4 * This,
19344 _In_ UINT RootParameterIndex,
19345 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19346
19347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
19348 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
19349 ID3D12GraphicsCommandList4 * This,
19350 _In_ UINT RootParameterIndex,
19351 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19352
19353 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
19354 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
19355 ID3D12GraphicsCommandList4 * This,
19356 _In_ UINT RootParameterIndex,
19357 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19358
19359 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
19360 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
19361 ID3D12GraphicsCommandList4 * This,
19362 _In_ UINT RootParameterIndex,
19363 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
19364
19365 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
19366 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
19367 ID3D12GraphicsCommandList4 * This,
19368 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
19369
19370 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
19371 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
19372 ID3D12GraphicsCommandList4 * This,
19373 _In_ UINT StartSlot,
19374 _In_ UINT NumViews,
19375 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
19376
19377 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
19378 void ( STDMETHODCALLTYPE *SOSetTargets )(
19379 ID3D12GraphicsCommandList4 * This,
19380 _In_ UINT StartSlot,
19381 _In_ UINT NumViews,
19382 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
19383
19384 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
19385 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
19386 ID3D12GraphicsCommandList4 * This,
19387 _In_ UINT NumRenderTargetDescriptors,
19388 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
19389 _In_ BOOL RTsSingleHandleToDescriptorRange,
19390 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
19391
19392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
19393 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
19394 ID3D12GraphicsCommandList4 * This,
19395 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
19396 _In_ D3D12_CLEAR_FLAGS ClearFlags,
19397 _In_ FLOAT Depth,
19398 _In_ UINT8 Stencil,
19399 _In_ UINT NumRects,
19400 _In_reads_(NumRects) const D3D12_RECT *pRects);
19401
19402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
19403 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
19404 ID3D12GraphicsCommandList4 * This,
19405 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
19406 _In_ const FLOAT ColorRGBA[ 4 ],
19407 _In_ UINT NumRects,
19408 _In_reads_(NumRects) const D3D12_RECT *pRects);
19409
19410 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
19411 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
19412 ID3D12GraphicsCommandList4 * This,
19413 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
19414 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
19415 _In_ ID3D12Resource *pResource,
19416 _In_ const UINT Values[ 4 ],
19417 _In_ UINT NumRects,
19418 _In_reads_(NumRects) const D3D12_RECT *pRects);
19419
19420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
19421 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
19422 ID3D12GraphicsCommandList4 * This,
19423 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
19424 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
19425 _In_ ID3D12Resource *pResource,
19426 _In_ const FLOAT Values[ 4 ],
19427 _In_ UINT NumRects,
19428 _In_reads_(NumRects) const D3D12_RECT *pRects);
19429
19430 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
19431 void ( STDMETHODCALLTYPE *DiscardResource )(
19432 ID3D12GraphicsCommandList4 * This,
19433 _In_ ID3D12Resource *pResource,
19434 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
19435
19436 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
19437 void ( STDMETHODCALLTYPE *BeginQuery )(
19438 ID3D12GraphicsCommandList4 * This,
19439 _In_ ID3D12QueryHeap *pQueryHeap,
19440 _In_ D3D12_QUERY_TYPE Type,
19441 _In_ UINT Index);
19442
19443 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
19444 void ( STDMETHODCALLTYPE *EndQuery )(
19445 ID3D12GraphicsCommandList4 * This,
19446 _In_ ID3D12QueryHeap *pQueryHeap,
19447 _In_ D3D12_QUERY_TYPE Type,
19448 _In_ UINT Index);
19449
19450 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
19451 void ( STDMETHODCALLTYPE *ResolveQueryData )(
19452 ID3D12GraphicsCommandList4 * This,
19453 _In_ ID3D12QueryHeap *pQueryHeap,
19454 _In_ D3D12_QUERY_TYPE Type,
19455 _In_ UINT StartIndex,
19456 _In_ UINT NumQueries,
19457 _In_ ID3D12Resource *pDestinationBuffer,
19458 _In_ UINT64 AlignedDestinationBufferOffset);
19459
19460 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
19461 void ( STDMETHODCALLTYPE *SetPredication )(
19462 ID3D12GraphicsCommandList4 * This,
19463 _In_opt_ ID3D12Resource *pBuffer,
19464 _In_ UINT64 AlignedBufferOffset,
19465 _In_ D3D12_PREDICATION_OP Operation);
19466
19467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
19468 void ( STDMETHODCALLTYPE *SetMarker )(
19469 ID3D12GraphicsCommandList4 * This,
19470 UINT Metadata,
19471 _In_reads_bytes_opt_(Size) const void *pData,
19472 UINT Size);
19473
19474 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
19475 void ( STDMETHODCALLTYPE *BeginEvent )(
19476 ID3D12GraphicsCommandList4 * This,
19477 UINT Metadata,
19478 _In_reads_bytes_opt_(Size) const void *pData,
19479 UINT Size);
19480
19481 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
19482 void ( STDMETHODCALLTYPE *EndEvent )(
19483 ID3D12GraphicsCommandList4 * This);
19484
19485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
19486 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
19487 ID3D12GraphicsCommandList4 * This,
19488 _In_ ID3D12CommandSignature *pCommandSignature,
19489 _In_ UINT MaxCommandCount,
19490 _In_ ID3D12Resource *pArgumentBuffer,
19491 _In_ UINT64 ArgumentBufferOffset,
19492 _In_opt_ ID3D12Resource *pCountBuffer,
19493 _In_ UINT64 CountBufferOffset);
19494
19495 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
19496 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
19497 ID3D12GraphicsCommandList4 * This,
19498 _In_ ID3D12Resource *pDstBuffer,
19499 UINT64 DstOffset,
19500 _In_ ID3D12Resource *pSrcBuffer,
19501 UINT64 SrcOffset,
19502 UINT Dependencies,
19503 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
19504 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
19505
19506 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
19507 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
19508 ID3D12GraphicsCommandList4 * This,
19509 _In_ ID3D12Resource *pDstBuffer,
19510 UINT64 DstOffset,
19511 _In_ ID3D12Resource *pSrcBuffer,
19512 UINT64 SrcOffset,
19513 UINT Dependencies,
19514 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
19515 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
19516
19517 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
19518 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
19519 ID3D12GraphicsCommandList4 * This,
19520 _In_ FLOAT Min,
19521 _In_ FLOAT Max);
19522
19523 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
19524 void ( STDMETHODCALLTYPE *SetSamplePositions )(
19525 ID3D12GraphicsCommandList4 * This,
19526 _In_ UINT NumSamplesPerPixel,
19527 _In_ UINT NumPixels,
19528 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
19529
19530 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
19531 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
19532 ID3D12GraphicsCommandList4 * This,
19533 _In_ ID3D12Resource *pDstResource,
19534 _In_ UINT DstSubresource,
19535 _In_ UINT DstX,
19536 _In_ UINT DstY,
19537 _In_ ID3D12Resource *pSrcResource,
19538 _In_ UINT SrcSubresource,
19539 _In_opt_ D3D12_RECT *pSrcRect,
19540 _In_ DXGI_FORMAT Format,
19541 _In_ D3D12_RESOLVE_MODE ResolveMode);
19542
19543 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
19544 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
19545 ID3D12GraphicsCommandList4 * This,
19546 _In_ UINT Mask);
19547
19548 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
19549 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
19550 ID3D12GraphicsCommandList4 * This,
19551 UINT Count,
19552 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
19553 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
19554
19555 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
19556 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
19557 ID3D12GraphicsCommandList4 * This,
19558 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
19559
19560 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
19561 void ( STDMETHODCALLTYPE *BeginRenderPass )(
19562 ID3D12GraphicsCommandList4 * This,
19563 _In_ UINT NumRenderTargets,
19564 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
19565 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
19566 D3D12_RENDER_PASS_FLAGS Flags);
19567
19568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
19569 void ( STDMETHODCALLTYPE *EndRenderPass )(
19570 ID3D12GraphicsCommandList4 * This);
19571
19572 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
19573 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
19574 ID3D12GraphicsCommandList4 * This,
19575 _In_ ID3D12MetaCommand *pMetaCommand,
19576 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
19577 _In_ SIZE_T InitializationParametersDataSizeInBytes);
19578
19579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
19580 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
19581 ID3D12GraphicsCommandList4 * This,
19582 _In_ ID3D12MetaCommand *pMetaCommand,
19583 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
19584 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
19585
19586 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
19587 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
19588 ID3D12GraphicsCommandList4 * This,
19589 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
19590 _In_ UINT NumPostbuildInfoDescs,
19591 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
19592
19593 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
19594 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
19595 ID3D12GraphicsCommandList4 * This,
19596 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
19597 _In_ UINT NumSourceAccelerationStructures,
19598 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
19599
19600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
19601 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
19602 ID3D12GraphicsCommandList4 * This,
19603 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
19604 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
19605 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
19606
19607 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
19608 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
19609 ID3D12GraphicsCommandList4 * This,
19610 _In_ ID3D12StateObject *pStateObject);
19611
19612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
19613 void ( STDMETHODCALLTYPE *DispatchRays )(
19614 ID3D12GraphicsCommandList4 * This,
19615 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
19616
19617 END_INTERFACE
19618 } ID3D12GraphicsCommandList4Vtbl;
19619
19620 interface ID3D12GraphicsCommandList4
19621 {
19622 CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
19623 };
19624
19625
19626
19627#ifdef COBJMACROS
19628
19629
19630#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
19631 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19632
19633#define ID3D12GraphicsCommandList4_AddRef(This) \
19634 ( (This)->lpVtbl -> AddRef(This) )
19635
19636#define ID3D12GraphicsCommandList4_Release(This) \
19637 ( (This)->lpVtbl -> Release(This) )
19638
19639
19640#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
19641 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19642
19643#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
19644 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19645
19646#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
19647 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19648
19649#define ID3D12GraphicsCommandList4_SetName(This,Name) \
19650 ( (This)->lpVtbl -> SetName(This,Name) )
19651
19652
19653#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
19654 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
19655
19656
19657#define ID3D12GraphicsCommandList4_GetType(This) \
19658 ( (This)->lpVtbl -> GetType(This) )
19659
19660
19661#define ID3D12GraphicsCommandList4_Close(This) \
19662 ( (This)->lpVtbl -> Close(This) )
19663
19664#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
19665 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
19666
19667#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
19668 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
19669
19670#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
19671 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
19672
19673#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
19674 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
19675
19676#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
19677 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
19678
19679#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
19680 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
19681
19682#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
19683 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
19684
19685#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
19686 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
19687
19688#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
19689 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
19690
19691#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
19692 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
19693
19694#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
19695 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
19696
19697#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
19698 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
19699
19700#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
19701 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
19702
19703#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
19704 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
19705
19706#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
19707 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
19708
19709#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
19710 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
19711
19712#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
19713 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
19714
19715#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
19716 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
19717
19718#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
19719 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
19720
19721#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
19722 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
19723
19724#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
19725 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
19726
19727#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
19728 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
19729
19730#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
19731 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
19732
19733#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
19734 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
19735
19736#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
19737 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
19738
19739#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
19740 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
19741
19742#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
19743 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
19744
19745#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
19746 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
19747
19748#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
19749 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
19750
19751#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
19752 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
19753
19754#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
19755 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
19756
19757#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
19758 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
19759
19760#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
19761 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
19762
19763#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
19764 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
19765
19766#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
19767 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
19768
19769#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
19770 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
19771
19772#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
19773 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
19774
19775#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
19776 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
19777
19778#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
19779 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
19780
19781#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
19782 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
19783
19784#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
19785 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
19786
19787#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
19788 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
19789
19790#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
19791 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
19792
19793#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
19794 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
19795
19796#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
19797 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
19798
19799#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
19800 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
19801
19802#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
19803 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
19804
19805#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
19806 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
19807
19808#define ID3D12GraphicsCommandList4_EndEvent(This) \
19809 ( (This)->lpVtbl -> EndEvent(This) )
19810
19811#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
19812 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
19813
19814
19815#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
19816 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
19817
19818#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
19819 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
19820
19821#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
19822 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
19823
19824#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
19825 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
19826
19827#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
19828 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
19829
19830#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
19831 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
19832
19833
19834#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
19835 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
19836
19837
19838#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
19839 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
19840
19841
19842#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
19843 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
19844
19845#define ID3D12GraphicsCommandList4_EndRenderPass(This) \
19846 ( (This)->lpVtbl -> EndRenderPass(This) )
19847
19848#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
19849 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
19850
19851#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
19852 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
19853
19854#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
19855 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
19856
19857#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
19858 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
19859
19860#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
19861 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
19862
19863#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
19864 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
19865
19866#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
19867 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
19868
19869#endif /* COBJMACROS */
19870
19871
19872#endif /* C style interface */
19873
19874
19875
19876
19877#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
19878
19879
19880/* interface __MIDL_itf_d3d12_0000_0050 */
19881/* [local] */
19882
19883typedef
19884enum D3D12_SHADER_CACHE_MODE
19885 {
19886 D3D12_SHADER_CACHE_MODE_MEMORY = 0,
19887 D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 )
19888 } D3D12_SHADER_CACHE_MODE;
19889
19890typedef
19891enum D3D12_SHADER_CACHE_FLAGS
19892 {
19893 D3D12_SHADER_CACHE_FLAG_NONE = 0,
19894 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
19895 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
19896 } D3D12_SHADER_CACHE_FLAGS;
19897
19898DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS );
19899typedef struct D3D12_SHADER_CACHE_SESSION_DESC
19900 {
19901 GUID Identifier;
19902 D3D12_SHADER_CACHE_MODE Mode;
19903 D3D12_SHADER_CACHE_FLAGS Flags;
19904 UINT MaximumInMemoryCacheSizeBytes;
19905 UINT MaximumInMemoryCacheEntries;
19906 UINT MaximumValueFileSizeBytes;
19907 UINT64 Version;
19908 } D3D12_SHADER_CACHE_SESSION_DESC;
19909
19910
19911
19912extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0050_v0_0_c_ifspec;
19913extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0050_v0_0_s_ifspec;
19914
19915#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19916#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
19917
19918/* interface ID3D12ShaderCacheSession */
19919/* [unique][local][object][uuid] */
19920
19921
19922EXTERN_C const IID IID_ID3D12ShaderCacheSession;
19923
19924#if defined(__cplusplus) && !defined(CINTERFACE)
19925
19926 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
19927 ID3D12ShaderCacheSession : public ID3D12DeviceChild
19928 {
19929 public:
19930 virtual HRESULT STDMETHODCALLTYPE FindValue(
19931 /* [annotation][in] */
19932 _In_reads_bytes_(KeySize) const void *pKey,
19933 UINT KeySize,
19934 /* [annotation][out] */
19935 _Out_writes_bytes_(*pValueSize) void *pValue,
19936 _Inout_ UINT *pValueSize) = 0;
19937
19938 virtual HRESULT STDMETHODCALLTYPE StoreValue(
19939 /* [annotation][in] */
19940 _In_reads_bytes_(KeySize) const void *pKey,
19941 UINT KeySize,
19942 /* [annotation][in] */
19943 _In_reads_bytes_(ValueSize) const void *pValue,
19944 UINT ValueSize) = 0;
19945
19946 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0;
19947
19948 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
19949
19950 };
19951
19952
19953#else /* C style interface */
19954
19955 typedef struct ID3D12ShaderCacheSessionVtbl
19956 {
19957 BEGIN_INTERFACE
19958
19959 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19960 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19961 ID3D12ShaderCacheSession * This,
19962 REFIID riid,
19963 _COM_Outptr_ void **ppvObject);
19964
19965 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19966 ULONG ( STDMETHODCALLTYPE *AddRef )(
19967 ID3D12ShaderCacheSession * This);
19968
19969 DECLSPEC_XFGVIRT(IUnknown, Release)
19970 ULONG ( STDMETHODCALLTYPE *Release )(
19971 ID3D12ShaderCacheSession * This);
19972
19973 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19974 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19975 ID3D12ShaderCacheSession * This,
19976 _In_ REFGUID guid,
19977 _Inout_ UINT *pDataSize,
19978 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19979
19980 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19981 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19982 ID3D12ShaderCacheSession * This,
19983 _In_ REFGUID guid,
19984 _In_ UINT DataSize,
19985 _In_reads_bytes_opt_( DataSize ) const void *pData);
19986
19987 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19988 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19989 ID3D12ShaderCacheSession * This,
19990 _In_ REFGUID guid,
19991 _In_opt_ const IUnknown *pData);
19992
19993 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19994 HRESULT ( STDMETHODCALLTYPE *SetName )(
19995 ID3D12ShaderCacheSession * This,
19996 _In_z_ LPCWSTR Name);
19997
19998 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
19999 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20000 ID3D12ShaderCacheSession * This,
20001 REFIID riid,
20002 _COM_Outptr_opt_ void **ppvDevice);
20003
20004 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue)
20005 HRESULT ( STDMETHODCALLTYPE *FindValue )(
20006 ID3D12ShaderCacheSession * This,
20007 /* [annotation][in] */
20008 _In_reads_bytes_(KeySize) const void *pKey,
20009 UINT KeySize,
20010 /* [annotation][out] */
20011 _Out_writes_bytes_(*pValueSize) void *pValue,
20012 _Inout_ UINT *pValueSize);
20013
20014 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue)
20015 HRESULT ( STDMETHODCALLTYPE *StoreValue )(
20016 ID3D12ShaderCacheSession * This,
20017 /* [annotation][in] */
20018 _In_reads_bytes_(KeySize) const void *pKey,
20019 UINT KeySize,
20020 /* [annotation][in] */
20021 _In_reads_bytes_(ValueSize) const void *pValue,
20022 UINT ValueSize);
20023
20024 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy)
20025 void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )(
20026 ID3D12ShaderCacheSession * This);
20027
20028 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc)
20029 D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
20030 ID3D12ShaderCacheSession * This,
20031 D3D12_SHADER_CACHE_SESSION_DESC * RetVal);
20032
20033 END_INTERFACE
20034 } ID3D12ShaderCacheSessionVtbl;
20035
20036 interface ID3D12ShaderCacheSession
20037 {
20038 CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl;
20039 };
20040
20041
20042
20043#ifdef COBJMACROS
20044
20045
20046#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \
20047 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20048
20049#define ID3D12ShaderCacheSession_AddRef(This) \
20050 ( (This)->lpVtbl -> AddRef(This) )
20051
20052#define ID3D12ShaderCacheSession_Release(This) \
20053 ( (This)->lpVtbl -> Release(This) )
20054
20055
20056#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \
20057 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20058
20059#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \
20060 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20061
20062#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \
20063 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20064
20065#define ID3D12ShaderCacheSession_SetName(This,Name) \
20066 ( (This)->lpVtbl -> SetName(This,Name) )
20067
20068
20069#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \
20070 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20071
20072
20073#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \
20074 ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) )
20075
20076#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \
20077 ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) )
20078
20079#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \
20080 ( (This)->lpVtbl -> SetDeleteOnDestroy(This) )
20081
20082#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \
20083 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20084
20085#endif /* COBJMACROS */
20086
20087
20088#endif /* C style interface */
20089
20090
20091
20092
20093#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
20094
20095
20096/* interface __MIDL_itf_d3d12_0000_0051 */
20097/* [local] */
20098
20099typedef
20100enum D3D12_SHADER_CACHE_KIND_FLAGS
20101 {
20102 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
20103 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
20104 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
20105 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
20106 } D3D12_SHADER_CACHE_KIND_FLAGS;
20107
20108DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS );
20109typedef
20110enum D3D12_SHADER_CACHE_CONTROL_FLAGS
20111 {
20112 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
20113 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
20114 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
20115 } D3D12_SHADER_CACHE_CONTROL_FLAGS;
20116
20117DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS );
20118
20119
20120extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec;
20121extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec;
20122
20123#ifndef __ID3D12Device9_INTERFACE_DEFINED__
20124#define __ID3D12Device9_INTERFACE_DEFINED__
20125
20126/* interface ID3D12Device9 */
20127/* [unique][local][object][uuid] */
20128
20129
20130EXTERN_C const IID IID_ID3D12Device9;
20131
20132#if defined(__cplusplus) && !defined(CINTERFACE)
20133
20134 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
20135 ID3D12Device9 : public ID3D12Device8
20136 {
20137 public:
20138 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
20139 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
20140 REFIID riid,
20141 _COM_Outptr_opt_ void **ppvSession) = 0;
20142
20143 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
20144 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
20145 D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0;
20146
20147 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
20148 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
20149 REFIID CreatorID,
20150 REFIID riid,
20151 _COM_Outptr_ void **ppCommandQueue) = 0;
20152
20153 };
20154
20155
20156#else /* C style interface */
20157
20158 typedef struct ID3D12Device9Vtbl
20159 {
20160 BEGIN_INTERFACE
20161
20162 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20163 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20164 ID3D12Device9 * This,
20165 REFIID riid,
20166 _COM_Outptr_ void **ppvObject);
20167
20168 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20169 ULONG ( STDMETHODCALLTYPE *AddRef )(
20170 ID3D12Device9 * This);
20171
20172 DECLSPEC_XFGVIRT(IUnknown, Release)
20173 ULONG ( STDMETHODCALLTYPE *Release )(
20174 ID3D12Device9 * This);
20175
20176 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20177 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20178 ID3D12Device9 * This,
20179 _In_ REFGUID guid,
20180 _Inout_ UINT *pDataSize,
20181 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20182
20183 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20184 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20185 ID3D12Device9 * This,
20186 _In_ REFGUID guid,
20187 _In_ UINT DataSize,
20188 _In_reads_bytes_opt_( DataSize ) const void *pData);
20189
20190 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20191 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20192 ID3D12Device9 * This,
20193 _In_ REFGUID guid,
20194 _In_opt_ const IUnknown *pData);
20195
20196 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20197 HRESULT ( STDMETHODCALLTYPE *SetName )(
20198 ID3D12Device9 * This,
20199 _In_z_ LPCWSTR Name);
20200
20201 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
20202 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
20203 ID3D12Device9 * This);
20204
20205 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
20206 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
20207 ID3D12Device9 * This,
20208 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
20209 REFIID riid,
20210 _COM_Outptr_ void **ppCommandQueue);
20211
20212 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
20213 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
20214 ID3D12Device9 * This,
20215 _In_ D3D12_COMMAND_LIST_TYPE type,
20216 REFIID riid,
20217 _COM_Outptr_ void **ppCommandAllocator);
20218
20219 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
20220 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
20221 ID3D12Device9 * This,
20222 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
20223 REFIID riid,
20224 _COM_Outptr_ void **ppPipelineState);
20225
20226 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
20227 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
20228 ID3D12Device9 * This,
20229 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
20230 REFIID riid,
20231 _COM_Outptr_ void **ppPipelineState);
20232
20233 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
20234 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
20235 ID3D12Device9 * This,
20236 _In_ UINT nodeMask,
20237 _In_ D3D12_COMMAND_LIST_TYPE type,
20238 _In_ ID3D12CommandAllocator *pCommandAllocator,
20239 _In_opt_ ID3D12PipelineState *pInitialState,
20240 REFIID riid,
20241 _COM_Outptr_ void **ppCommandList);
20242
20243 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
20244 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
20245 ID3D12Device9 * This,
20246 D3D12_FEATURE Feature,
20247 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
20248 UINT FeatureSupportDataSize);
20249
20250 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
20251 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
20252 ID3D12Device9 * This,
20253 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
20254 REFIID riid,
20255 _COM_Outptr_ void **ppvHeap);
20256
20257 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
20258 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
20259 ID3D12Device9 * This,
20260 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
20261
20262 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
20263 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
20264 ID3D12Device9 * This,
20265 _In_ UINT nodeMask,
20266 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
20267 _In_ SIZE_T blobLengthInBytes,
20268 REFIID riid,
20269 _COM_Outptr_ void **ppvRootSignature);
20270
20271 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
20272 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
20273 ID3D12Device9 * This,
20274 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
20275 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20276
20277 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
20278 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
20279 ID3D12Device9 * This,
20280 _In_opt_ ID3D12Resource *pResource,
20281 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
20282 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20283
20284 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
20285 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
20286 ID3D12Device9 * This,
20287 _In_opt_ ID3D12Resource *pResource,
20288 _In_opt_ ID3D12Resource *pCounterResource,
20289 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
20290 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20291
20292 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
20293 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
20294 ID3D12Device9 * This,
20295 _In_opt_ ID3D12Resource *pResource,
20296 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
20297 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20298
20299 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
20300 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
20301 ID3D12Device9 * This,
20302 _In_opt_ ID3D12Resource *pResource,
20303 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
20304 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20305
20306 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
20307 void ( STDMETHODCALLTYPE *CreateSampler )(
20308 ID3D12Device9 * This,
20309 _In_ const D3D12_SAMPLER_DESC *pDesc,
20310 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20311
20312 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
20313 void ( STDMETHODCALLTYPE *CopyDescriptors )(
20314 ID3D12Device9 * This,
20315 _In_ UINT NumDestDescriptorRanges,
20316 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
20317 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
20318 _In_ UINT NumSrcDescriptorRanges,
20319 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
20320 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
20321 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
20322
20323 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
20324 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
20325 ID3D12Device9 * This,
20326 _In_ UINT NumDescriptors,
20327 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
20328 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
20329 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
20330
20331 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
20332 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
20333 ID3D12Device9 * This,
20334 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
20335 _In_ UINT visibleMask,
20336 _In_ UINT numResourceDescs,
20337 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
20338
20339 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
20340 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
20341 ID3D12Device9 * This,
20342 D3D12_HEAP_PROPERTIES * RetVal,
20343 _In_ UINT nodeMask,
20344 D3D12_HEAP_TYPE heapType);
20345
20346 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
20347 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
20348 ID3D12Device9 * This,
20349 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
20350 D3D12_HEAP_FLAGS HeapFlags,
20351 _In_ const D3D12_RESOURCE_DESC *pDesc,
20352 D3D12_RESOURCE_STATES InitialResourceState,
20353 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20354 REFIID riidResource,
20355 _COM_Outptr_opt_ void **ppvResource);
20356
20357 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
20358 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
20359 ID3D12Device9 * This,
20360 _In_ const D3D12_HEAP_DESC *pDesc,
20361 REFIID riid,
20362 _COM_Outptr_opt_ void **ppvHeap);
20363
20364 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
20365 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
20366 ID3D12Device9 * This,
20367 _In_ ID3D12Heap *pHeap,
20368 UINT64 HeapOffset,
20369 _In_ const D3D12_RESOURCE_DESC *pDesc,
20370 D3D12_RESOURCE_STATES InitialState,
20371 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20372 REFIID riid,
20373 _COM_Outptr_opt_ void **ppvResource);
20374
20375 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
20376 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
20377 ID3D12Device9 * This,
20378 _In_ const D3D12_RESOURCE_DESC *pDesc,
20379 D3D12_RESOURCE_STATES InitialState,
20380 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20381 REFIID riid,
20382 _COM_Outptr_opt_ void **ppvResource);
20383
20384 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
20385 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
20386 ID3D12Device9 * This,
20387 _In_ ID3D12DeviceChild *pObject,
20388 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
20389 DWORD Access,
20390 _In_opt_ LPCWSTR Name,
20391 _Out_ HANDLE *pHandle);
20392
20393 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
20394 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
20395 ID3D12Device9 * This,
20396 _In_ HANDLE NTHandle,
20397 REFIID riid,
20398 _COM_Outptr_opt_ void **ppvObj);
20399
20400 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
20401 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
20402 ID3D12Device9 * This,
20403 _In_ LPCWSTR Name,
20404 DWORD Access,
20405 /* [annotation][out] */
20406 _Out_ HANDLE *pNTHandle);
20407
20408 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
20409 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
20410 ID3D12Device9 * This,
20411 UINT NumObjects,
20412 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
20413
20414 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
20415 HRESULT ( STDMETHODCALLTYPE *Evict )(
20416 ID3D12Device9 * This,
20417 UINT NumObjects,
20418 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
20419
20420 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
20421 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
20422 ID3D12Device9 * This,
20423 UINT64 InitialValue,
20424 D3D12_FENCE_FLAGS Flags,
20425 REFIID riid,
20426 _COM_Outptr_ void **ppFence);
20427
20428 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
20429 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
20430 ID3D12Device9 * This);
20431
20432 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
20433 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
20434 ID3D12Device9 * This,
20435 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
20436 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
20437 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
20438 UINT64 BaseOffset,
20439 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
20440 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
20441 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
20442 _Out_opt_ UINT64 *pTotalBytes);
20443
20444 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
20445 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
20446 ID3D12Device9 * This,
20447 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
20448 REFIID riid,
20449 _COM_Outptr_opt_ void **ppvHeap);
20450
20451 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
20452 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
20453 ID3D12Device9 * This,
20454 BOOL Enable);
20455
20456 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
20457 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
20458 ID3D12Device9 * This,
20459 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
20460 _In_opt_ ID3D12RootSignature *pRootSignature,
20461 REFIID riid,
20462 _COM_Outptr_opt_ void **ppvCommandSignature);
20463
20464 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
20465 void ( STDMETHODCALLTYPE *GetResourceTiling )(
20466 ID3D12Device9 * This,
20467 _In_ ID3D12Resource *pTiledResource,
20468 _Out_opt_ UINT *pNumTilesForEntireResource,
20469 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
20470 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
20471 _Inout_opt_ UINT *pNumSubresourceTilings,
20472 _In_ UINT FirstSubresourceTilingToGet,
20473 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
20474
20475 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
20476 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
20477 ID3D12Device9 * This,
20478 LUID * RetVal);
20479
20480 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
20481 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
20482 ID3D12Device9 * This,
20483 _In_reads_(BlobLength) const void *pLibraryBlob,
20484 SIZE_T BlobLength,
20485 REFIID riid,
20486 _COM_Outptr_ void **ppPipelineLibrary);
20487
20488 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
20489 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
20490 ID3D12Device9 * This,
20491 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
20492 _In_reads_(NumFences) const UINT64 *pFenceValues,
20493 UINT NumFences,
20494 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
20495 HANDLE hEvent);
20496
20497 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
20498 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
20499 ID3D12Device9 * This,
20500 UINT NumObjects,
20501 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
20502 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
20503
20504 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
20505 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
20506 ID3D12Device9 * This,
20507 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
20508 REFIID riid,
20509 _COM_Outptr_ void **ppPipelineState);
20510
20511 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
20512 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
20513 ID3D12Device9 * This,
20514 _In_ const void *pAddress,
20515 REFIID riid,
20516 _COM_Outptr_ void **ppvHeap);
20517
20518 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
20519 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
20520 ID3D12Device9 * This,
20521 _In_ HANDLE hFileMapping,
20522 REFIID riid,
20523 _COM_Outptr_ void **ppvHeap);
20524
20525 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
20526 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
20527 ID3D12Device9 * This,
20528 D3D12_RESIDENCY_FLAGS Flags,
20529 UINT NumObjects,
20530 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
20531 _In_ ID3D12Fence *pFenceToSignal,
20532 UINT64 FenceValueToSignal);
20533
20534 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
20535 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
20536 ID3D12Device9 * This,
20537 _In_ UINT nodeMask,
20538 _In_ D3D12_COMMAND_LIST_TYPE type,
20539 _In_ D3D12_COMMAND_LIST_FLAGS flags,
20540 REFIID riid,
20541 _COM_Outptr_ void **ppCommandList);
20542
20543 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
20544 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
20545 ID3D12Device9 * This,
20546 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
20547 _In_ REFIID riid,
20548 _COM_Outptr_ void **ppSession);
20549
20550 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
20551 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
20552 ID3D12Device9 * This,
20553 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
20554 D3D12_HEAP_FLAGS HeapFlags,
20555 _In_ const D3D12_RESOURCE_DESC *pDesc,
20556 D3D12_RESOURCE_STATES InitialResourceState,
20557 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20558 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20559 REFIID riidResource,
20560 _COM_Outptr_opt_ void **ppvResource);
20561
20562 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
20563 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
20564 ID3D12Device9 * This,
20565 _In_ const D3D12_HEAP_DESC *pDesc,
20566 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20567 REFIID riid,
20568 _COM_Outptr_opt_ void **ppvHeap);
20569
20570 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
20571 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
20572 ID3D12Device9 * This,
20573 _In_ const D3D12_RESOURCE_DESC *pDesc,
20574 D3D12_RESOURCE_STATES InitialState,
20575 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20576 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20577 REFIID riid,
20578 _COM_Outptr_opt_ void **ppvResource);
20579
20580 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
20581 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
20582 ID3D12Device9 * This,
20583 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
20584 UINT visibleMask,
20585 UINT numResourceDescs,
20586 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
20587 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
20588
20589 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
20590 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
20591 ID3D12Device9 * This,
20592 _In_ ID3D12LifetimeOwner *pOwner,
20593 REFIID riid,
20594 _COM_Outptr_ void **ppvTracker);
20595
20596 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
20597 void ( STDMETHODCALLTYPE *RemoveDevice )(
20598 ID3D12Device9 * This);
20599
20600 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
20601 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
20602 ID3D12Device9 * This,
20603 _Inout_ UINT *pNumMetaCommands,
20604 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
20605
20606 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
20607 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
20608 ID3D12Device9 * This,
20609 _In_ REFGUID CommandId,
20610 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
20611 _Out_opt_ UINT *pTotalStructureSizeInBytes,
20612 _Inout_ UINT *pParameterCount,
20613 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
20614
20615 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
20616 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
20617 ID3D12Device9 * This,
20618 _In_ REFGUID CommandId,
20619 _In_ UINT NodeMask,
20620 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
20621 _In_ SIZE_T CreationParametersDataSizeInBytes,
20622 REFIID riid,
20623 _COM_Outptr_ void **ppMetaCommand);
20624
20625 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
20626 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
20627 ID3D12Device9 * This,
20628 const D3D12_STATE_OBJECT_DESC *pDesc,
20629 REFIID riid,
20630 _COM_Outptr_ void **ppStateObject);
20631
20632 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
20633 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
20634 ID3D12Device9 * This,
20635 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
20636 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
20637
20638 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
20639 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
20640 ID3D12Device9 * This,
20641 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
20642 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
20643
20644 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
20645 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
20646 ID3D12Device9 * This,
20647 D3D12_BACKGROUND_PROCESSING_MODE Mode,
20648 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
20649 _In_opt_ HANDLE hEventToSignalUponCompletion,
20650 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
20651
20652 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
20653 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
20654 ID3D12Device9 * This,
20655 const D3D12_STATE_OBJECT_DESC *pAddition,
20656 ID3D12StateObject *pStateObjectToGrowFrom,
20657 REFIID riid,
20658 _COM_Outptr_ void **ppNewStateObject);
20659
20660 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
20661 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
20662 ID3D12Device9 * This,
20663 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
20664 _In_ REFIID riid,
20665 _COM_Outptr_ void **ppSession);
20666
20667 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
20668 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
20669 ID3D12Device9 * This,
20670 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
20671 UINT visibleMask,
20672 UINT numResourceDescs,
20673 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
20674 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
20675
20676 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
20677 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
20678 ID3D12Device9 * This,
20679 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
20680 D3D12_HEAP_FLAGS HeapFlags,
20681 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20682 D3D12_RESOURCE_STATES InitialResourceState,
20683 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20684 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20685 REFIID riidResource,
20686 _COM_Outptr_opt_ void **ppvResource);
20687
20688 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
20689 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
20690 ID3D12Device9 * This,
20691 _In_ ID3D12Heap *pHeap,
20692 UINT64 HeapOffset,
20693 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20694 D3D12_RESOURCE_STATES InitialState,
20695 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20696 REFIID riid,
20697 _COM_Outptr_opt_ void **ppvResource);
20698
20699 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
20700 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
20701 ID3D12Device9 * This,
20702 _In_opt_ ID3D12Resource *pTargetedResource,
20703 _In_opt_ ID3D12Resource *pFeedbackResource,
20704 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20705
20706 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
20707 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
20708 ID3D12Device9 * This,
20709 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
20710 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
20711 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
20712 UINT64 BaseOffset,
20713 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
20714 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
20715 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
20716 _Out_opt_ UINT64 *pTotalBytes);
20717
20718 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
20719 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
20720 ID3D12Device9 * This,
20721 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
20722 REFIID riid,
20723 _COM_Outptr_opt_ void **ppvSession);
20724
20725 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
20726 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
20727 ID3D12Device9 * This,
20728 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
20729 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
20730
20731 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
20732 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
20733 ID3D12Device9 * This,
20734 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
20735 REFIID CreatorID,
20736 REFIID riid,
20737 _COM_Outptr_ void **ppCommandQueue);
20738
20739 END_INTERFACE
20740 } ID3D12Device9Vtbl;
20741
20742 interface ID3D12Device9
20743 {
20744 CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl;
20745 };
20746
20747
20748
20749#ifdef COBJMACROS
20750
20751
20752#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \
20753 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20754
20755#define ID3D12Device9_AddRef(This) \
20756 ( (This)->lpVtbl -> AddRef(This) )
20757
20758#define ID3D12Device9_Release(This) \
20759 ( (This)->lpVtbl -> Release(This) )
20760
20761
20762#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \
20763 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20764
20765#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \
20766 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20767
20768#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \
20769 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20770
20771#define ID3D12Device9_SetName(This,Name) \
20772 ( (This)->lpVtbl -> SetName(This,Name) )
20773
20774
20775#define ID3D12Device9_GetNodeCount(This) \
20776 ( (This)->lpVtbl -> GetNodeCount(This) )
20777
20778#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
20779 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
20780
20781#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
20782 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
20783
20784#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
20785 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
20786
20787#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
20788 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
20789
20790#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
20791 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
20792
20793#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
20794 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
20795
20796#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
20797 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
20798
20799#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
20800 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
20801
20802#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
20803 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
20804
20805#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \
20806 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
20807
20808#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
20809 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
20810
20811#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
20812 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
20813
20814#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
20815 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
20816
20817#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
20818 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
20819
20820#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \
20821 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
20822
20823#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
20824 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
20825
20826#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
20827 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
20828
20829#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
20830 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
20831
20832#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
20833 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
20834
20835#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
20836 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
20837
20838#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \
20839 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
20840
20841#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20842 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20843
20844#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20845 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20846
20847#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
20848 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
20849
20850#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
20851 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
20852
20853#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
20854 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
20855
20856#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \
20857 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
20858
20859#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \
20860 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
20861
20862#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \
20863 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
20864
20865#define ID3D12Device9_GetDeviceRemovedReason(This) \
20866 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
20867
20868#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20869 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20870
20871#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
20872 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
20873
20874#define ID3D12Device9_SetStablePowerState(This,Enable) \
20875 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
20876
20877#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
20878 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
20879
20880#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
20881 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
20882
20883#define ID3D12Device9_GetAdapterLuid(This,RetVal) \
20884 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
20885
20886
20887#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
20888 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
20889
20890#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
20891 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
20892
20893#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
20894 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
20895
20896
20897#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
20898 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
20899
20900
20901#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
20902 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
20903
20904#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
20905 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
20906
20907#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
20908 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
20909
20910
20911#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
20912 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
20913
20914#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
20915 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
20916
20917#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20918 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20919
20920#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
20921 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
20922
20923#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
20924 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
20925
20926#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20927 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20928
20929
20930#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
20931 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
20932
20933#define ID3D12Device9_RemoveDevice(This) \
20934 ( (This)->lpVtbl -> RemoveDevice(This) )
20935
20936#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
20937 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
20938
20939#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
20940 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
20941
20942#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
20943 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
20944
20945#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \
20946 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
20947
20948#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
20949 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
20950
20951#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
20952 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
20953
20954
20955#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
20956 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
20957
20958
20959#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
20960 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
20961
20962#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
20963 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
20964
20965
20966#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20967 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20968
20969#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20970 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20971
20972#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20973 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20974
20975#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
20976 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
20977
20978#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20979 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20980
20981
20982#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
20983 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
20984
20985#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \
20986 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
20987
20988#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
20989 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
20990
20991#endif /* COBJMACROS */
20992
20993
20994#endif /* C style interface */
20995
20996
20997
20998
20999#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
21000
21001
21002#ifndef __ID3D12Tools_INTERFACE_DEFINED__
21003#define __ID3D12Tools_INTERFACE_DEFINED__
21004
21005/* interface ID3D12Tools */
21006/* [unique][local][object][uuid] */
21007
21008
21009EXTERN_C const IID IID_ID3D12Tools;
21010
21011#if defined(__cplusplus) && !defined(CINTERFACE)
21012
21013 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
21014 ID3D12Tools : public IUnknown
21015 {
21016 public:
21017 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
21018 BOOL bEnable) = 0;
21019
21020 virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0;
21021
21022 };
21023
21024
21025#else /* C style interface */
21026
21027 typedef struct ID3D12ToolsVtbl
21028 {
21029 BEGIN_INTERFACE
21030
21031 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21032 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21033 ID3D12Tools * This,
21034 REFIID riid,
21035 _COM_Outptr_ void **ppvObject);
21036
21037 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21038 ULONG ( STDMETHODCALLTYPE *AddRef )(
21039 ID3D12Tools * This);
21040
21041 DECLSPEC_XFGVIRT(IUnknown, Release)
21042 ULONG ( STDMETHODCALLTYPE *Release )(
21043 ID3D12Tools * This);
21044
21045 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
21046 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
21047 ID3D12Tools * This,
21048 BOOL bEnable);
21049
21050 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
21051 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
21052 ID3D12Tools * This);
21053
21054 END_INTERFACE
21055 } ID3D12ToolsVtbl;
21056
21057 interface ID3D12Tools
21058 {
21059 CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl;
21060 };
21061
21062
21063
21064#ifdef COBJMACROS
21065
21066
21067#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \
21068 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21069
21070#define ID3D12Tools_AddRef(This) \
21071 ( (This)->lpVtbl -> AddRef(This) )
21072
21073#define ID3D12Tools_Release(This) \
21074 ( (This)->lpVtbl -> Release(This) )
21075
21076
21077#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \
21078 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
21079
21080#define ID3D12Tools_ShaderInstrumentationEnabled(This) \
21081 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
21082
21083#endif /* COBJMACROS */
21084
21085
21086#endif /* C style interface */
21087
21088
21089
21090
21091#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
21092
21093
21094/* interface __MIDL_itf_d3d12_0000_0053 */
21095/* [local] */
21096
21097typedef struct D3D12_SUBRESOURCE_DATA
21098 {
21099 const void *pData;
21100 LONG_PTR RowPitch;
21101 LONG_PTR SlicePitch;
21102 } D3D12_SUBRESOURCE_DATA;
21103
21104typedef struct D3D12_MEMCPY_DEST
21105 {
21106 void *pData;
21107 SIZE_T RowPitch;
21108 SIZE_T SlicePitch;
21109 } D3D12_MEMCPY_DEST;
21110
21111#if !defined( D3D12_IGNORE_SDK_LAYERS )
21112#include "d3d12sdklayers.h"
21113#endif
21114
21115///////////////////////////////////////////////////////////////////////////
21116// D3D12CreateDevice
21117// ------------------
21118//
21119// pAdapter
21120// If NULL, D3D12CreateDevice will choose the primary adapter.
21121// If non-NULL, D3D12CreateDevice will use the provided adapter.
21122// MinimumFeatureLevel
21123// The minimum feature level required for successful device creation.
21124// riid
21125// The interface IID of the device to be returned. Expected: ID3D12Device.
21126// ppDevice
21127// Pointer to returned interface. May be NULL.
21128//
21129// Return Values
21130// Any of those documented for
21131// CreateDXGIFactory1
21132// IDXGIFactory::EnumAdapters
21133// D3D12CreateDevice
21134//
21135///////////////////////////////////////////////////////////////////////////
21136typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*,
21137 D3D_FEATURE_LEVEL,
21138 _In_ REFIID, _COM_Outptr_opt_ void** );
21139
21140HRESULT WINAPI D3D12CreateDevice(
21141 _In_opt_ IUnknown* pAdapter,
21142 D3D_FEATURE_LEVEL MinimumFeatureLevel,
21143 _In_ REFIID riid, // Expected: ID3D12Device
21144 _COM_Outptr_opt_ void** ppDevice );
21145
21146
21147typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );
21148
21149HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
21150
21151// --------------------------------------------------------------------------------------------------------------------------------
21152// D3D12EnableExperimentalFeatures
21153//
21154// Pass in a list of feature GUIDs to be enabled together.
21155//
21156// If a particular feature requires some configuration information on enablement, it will have
21157// a configuration struct that can be passed alongside the GUID.
21158//
21159// Some features might use an interface IID as the GUID. For these, once the feature is enabled via
21160// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface
21161// for manipulating the feature. This allows for control that might not cleanly be expressed by just
21162// the configuration struct that D3D12EnableExperimentalFeatures provides.
21163//
21164// If this method is called and a change to existing feature enablement is made,
21165// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one
21166// singleton device for a process. Removing the devices when configuration changes prevents
21167// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.
21168//
21169// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.
21170// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed
21171// in are known to be incompatible with each other, or other errors.
21172// Returns S_OK otherwise.
21173//
21174// --------------------------------------------------------------------------------------------------------------------------------
21175HRESULT WINAPI D3D12EnableExperimentalFeatures(
21176 UINT NumFeatures,
21177 _In_count_(NumFeatures) const IID* pIIDs,
21178 _In_opt_count_(NumFeatures) void* pConfigurationStructs,
21179 _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);
21180
21181// --------------------------------------------------------------------------------------------------------------------------------
21182// Experimental Feature: D3D12ExperimentalShaderModels
21183//
21184// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
21185// meaning shader models that haven't been finalized for use in retail.
21186//
21187// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
21188//
21189// --------------------------------------------------------------------------------------------------------------------------------
21190static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
21191 0x76f5573e,
21192 0xf13a,
21193 0x40f5,
21194 { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
21195};
21196// --------------------------------------------------------------------------------------------------------------------------------
21197// Experimental Feature: D3D12TiledResourceTier4
21198//
21199// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
21200// meaning texture tile data-inheritance is allowed.
21201//
21202// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
21203//
21204// --------------------------------------------------------------------------------------------------------------------------------
21205static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
21206 0xc9c4725f,
21207 0xa81a,
21208 0x4f56,
21209 { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
21210};
21211// --------------------------------------------------------------------------------------------------------------------------------
21212// Experimental Feature: D3D12MetaCommand
21213//
21214// Use with D3D12EnableExperimentalFeatures to enable the D3D12 Meta Command.
21215//
21216// Enabling D3D12MetaCommand needs no configuration struct, pass NULL in the pConfigurationStructs array.
21217//
21218// --------------------------------------------------------------------------------------------------------------------------------
21219static const UUID D3D12MetaCommand = { /* C734C97E-8077-48C8-9FDC-D9D1DD31DD77 */
21220 0xc734c97e,
21221 0x8077,
21222 0x48c8,
21223 { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 }
21224};
21225// --------------------------------------------------------------------------------------------------------------------------------
21226// D3D12GetInterface
21227//
21228// Retrieve Global D3D12 Interface.
21229//
21230
21231DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
21232DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
21233DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
21234DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
21235
21236typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );
21237
21238HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
21239
21240
21241
21242extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec;
21243extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec;
21244
21245#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21246#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
21247
21248/* interface ID3D12SDKConfiguration */
21249/* [unique][local][object][uuid] */
21250
21251
21252EXTERN_C const IID IID_ID3D12SDKConfiguration;
21253
21254#if defined(__cplusplus) && !defined(CINTERFACE)
21255
21256 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
21257 ID3D12SDKConfiguration : public IUnknown
21258 {
21259 public:
21260 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
21261 UINT SDKVersion,
21262 _In_z_ LPCSTR SDKPath) = 0;
21263
21264 };
21265
21266
21267#else /* C style interface */
21268
21269 typedef struct ID3D12SDKConfigurationVtbl
21270 {
21271 BEGIN_INTERFACE
21272
21273 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21274 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21275 ID3D12SDKConfiguration * This,
21276 REFIID riid,
21277 _COM_Outptr_ void **ppvObject);
21278
21279 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21280 ULONG ( STDMETHODCALLTYPE *AddRef )(
21281 ID3D12SDKConfiguration * This);
21282
21283 DECLSPEC_XFGVIRT(IUnknown, Release)
21284 ULONG ( STDMETHODCALLTYPE *Release )(
21285 ID3D12SDKConfiguration * This);
21286
21287 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
21288 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
21289 ID3D12SDKConfiguration * This,
21290 UINT SDKVersion,
21291 _In_z_ LPCSTR SDKPath);
21292
21293 END_INTERFACE
21294 } ID3D12SDKConfigurationVtbl;
21295
21296 interface ID3D12SDKConfiguration
21297 {
21298 CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl;
21299 };
21300
21301
21302
21303#ifdef COBJMACROS
21304
21305
21306#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \
21307 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21308
21309#define ID3D12SDKConfiguration_AddRef(This) \
21310 ( (This)->lpVtbl -> AddRef(This) )
21311
21312#define ID3D12SDKConfiguration_Release(This) \
21313 ( (This)->lpVtbl -> Release(This) )
21314
21315
21316#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \
21317 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
21318
21319#endif /* COBJMACROS */
21320
21321
21322#endif /* C style interface */
21323
21324
21325
21326
21327#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
21328
21329
21330/* interface __MIDL_itf_d3d12_0000_0054 */
21331/* [local] */
21332
21333typedef
21334enum D3D12_AXIS_SHADING_RATE
21335 {
21336 D3D12_AXIS_SHADING_RATE_1X = 0,
21337 D3D12_AXIS_SHADING_RATE_2X = 0x1,
21338 D3D12_AXIS_SHADING_RATE_4X = 0x2
21339 } D3D12_AXIS_SHADING_RATE;
21340
21341#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2
21342#define D3D12_SHADING_RATE_VALID_MASK 3
21343#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
21344#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
21345#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)
21346typedef
21347enum D3D12_SHADING_RATE
21348 {
21349 D3D12_SHADING_RATE_1X1 = 0,
21350 D3D12_SHADING_RATE_1X2 = 0x1,
21351 D3D12_SHADING_RATE_2X1 = 0x4,
21352 D3D12_SHADING_RATE_2X2 = 0x5,
21353 D3D12_SHADING_RATE_2X4 = 0x6,
21354 D3D12_SHADING_RATE_4X2 = 0x9,
21355 D3D12_SHADING_RATE_4X4 = 0xa
21356 } D3D12_SHADING_RATE;
21357
21358typedef
21359enum D3D12_SHADING_RATE_COMBINER
21360 {
21361 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
21362 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
21363 D3D12_SHADING_RATE_COMBINER_MIN = 2,
21364 D3D12_SHADING_RATE_COMBINER_MAX = 3,
21365 D3D12_SHADING_RATE_COMBINER_SUM = 4
21366 } D3D12_SHADING_RATE_COMBINER;
21367
21368
21369
21370extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec;
21371extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec;
21372
21373#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
21374#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
21375
21376/* interface ID3D12GraphicsCommandList5 */
21377/* [unique][local][object][uuid] */
21378
21379
21380EXTERN_C const IID IID_ID3D12GraphicsCommandList5;
21381
21382#if defined(__cplusplus) && !defined(CINTERFACE)
21383
21384 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
21385 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
21386 {
21387 public:
21388 virtual void STDMETHODCALLTYPE RSSetShadingRate(
21389 _In_ D3D12_SHADING_RATE baseShadingRate,
21390 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
21391
21392 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
21393 _In_opt_ ID3D12Resource *shadingRateImage) = 0;
21394
21395 };
21396
21397
21398#else /* C style interface */
21399
21400 typedef struct ID3D12GraphicsCommandList5Vtbl
21401 {
21402 BEGIN_INTERFACE
21403
21404 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21405 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21406 ID3D12GraphicsCommandList5 * This,
21407 REFIID riid,
21408 _COM_Outptr_ void **ppvObject);
21409
21410 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21411 ULONG ( STDMETHODCALLTYPE *AddRef )(
21412 ID3D12GraphicsCommandList5 * This);
21413
21414 DECLSPEC_XFGVIRT(IUnknown, Release)
21415 ULONG ( STDMETHODCALLTYPE *Release )(
21416 ID3D12GraphicsCommandList5 * This);
21417
21418 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
21419 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
21420 ID3D12GraphicsCommandList5 * This,
21421 _In_ REFGUID guid,
21422 _Inout_ UINT *pDataSize,
21423 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
21424
21425 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
21426 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
21427 ID3D12GraphicsCommandList5 * This,
21428 _In_ REFGUID guid,
21429 _In_ UINT DataSize,
21430 _In_reads_bytes_opt_( DataSize ) const void *pData);
21431
21432 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
21433 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
21434 ID3D12GraphicsCommandList5 * This,
21435 _In_ REFGUID guid,
21436 _In_opt_ const IUnknown *pData);
21437
21438 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
21439 HRESULT ( STDMETHODCALLTYPE *SetName )(
21440 ID3D12GraphicsCommandList5 * This,
21441 _In_z_ LPCWSTR Name);
21442
21443 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
21444 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
21445 ID3D12GraphicsCommandList5 * This,
21446 REFIID riid,
21447 _COM_Outptr_opt_ void **ppvDevice);
21448
21449 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
21450 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
21451 ID3D12GraphicsCommandList5 * This);
21452
21453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
21454 HRESULT ( STDMETHODCALLTYPE *Close )(
21455 ID3D12GraphicsCommandList5 * This);
21456
21457 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
21458 HRESULT ( STDMETHODCALLTYPE *Reset )(
21459 ID3D12GraphicsCommandList5 * This,
21460 _In_ ID3D12CommandAllocator *pAllocator,
21461 _In_opt_ ID3D12PipelineState *pInitialState);
21462
21463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
21464 void ( STDMETHODCALLTYPE *ClearState )(
21465 ID3D12GraphicsCommandList5 * This,
21466 _In_opt_ ID3D12PipelineState *pPipelineState);
21467
21468 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
21469 void ( STDMETHODCALLTYPE *DrawInstanced )(
21470 ID3D12GraphicsCommandList5 * This,
21471 _In_ UINT VertexCountPerInstance,
21472 _In_ UINT InstanceCount,
21473 _In_ UINT StartVertexLocation,
21474 _In_ UINT StartInstanceLocation);
21475
21476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
21477 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
21478 ID3D12GraphicsCommandList5 * This,
21479 _In_ UINT IndexCountPerInstance,
21480 _In_ UINT InstanceCount,
21481 _In_ UINT StartIndexLocation,
21482 _In_ INT BaseVertexLocation,
21483 _In_ UINT StartInstanceLocation);
21484
21485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
21486 void ( STDMETHODCALLTYPE *Dispatch )(
21487 ID3D12GraphicsCommandList5 * This,
21488 _In_ UINT ThreadGroupCountX,
21489 _In_ UINT ThreadGroupCountY,
21490 _In_ UINT ThreadGroupCountZ);
21491
21492 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
21493 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
21494 ID3D12GraphicsCommandList5 * This,
21495 _In_ ID3D12Resource *pDstBuffer,
21496 UINT64 DstOffset,
21497 _In_ ID3D12Resource *pSrcBuffer,
21498 UINT64 SrcOffset,
21499 UINT64 NumBytes);
21500
21501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
21502 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
21503 ID3D12GraphicsCommandList5 * This,
21504 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
21505 UINT DstX,
21506 UINT DstY,
21507 UINT DstZ,
21508 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
21509 _In_opt_ const D3D12_BOX *pSrcBox);
21510
21511 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
21512 void ( STDMETHODCALLTYPE *CopyResource )(
21513 ID3D12GraphicsCommandList5 * This,
21514 _In_ ID3D12Resource *pDstResource,
21515 _In_ ID3D12Resource *pSrcResource);
21516
21517 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
21518 void ( STDMETHODCALLTYPE *CopyTiles )(
21519 ID3D12GraphicsCommandList5 * This,
21520 _In_ ID3D12Resource *pTiledResource,
21521 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
21522 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
21523 _In_ ID3D12Resource *pBuffer,
21524 UINT64 BufferStartOffsetInBytes,
21525 D3D12_TILE_COPY_FLAGS Flags);
21526
21527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
21528 void ( STDMETHODCALLTYPE *ResolveSubresource )(
21529 ID3D12GraphicsCommandList5 * This,
21530 _In_ ID3D12Resource *pDstResource,
21531 _In_ UINT DstSubresource,
21532 _In_ ID3D12Resource *pSrcResource,
21533 _In_ UINT SrcSubresource,
21534 _In_ DXGI_FORMAT Format);
21535
21536 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
21537 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
21538 ID3D12GraphicsCommandList5 * This,
21539 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
21540
21541 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
21542 void ( STDMETHODCALLTYPE *RSSetViewports )(
21543 ID3D12GraphicsCommandList5 * This,
21544 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
21545 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
21546
21547 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
21548 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
21549 ID3D12GraphicsCommandList5 * This,
21550 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
21551 _In_reads_( NumRects) const D3D12_RECT *pRects);
21552
21553 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
21554 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
21555 ID3D12GraphicsCommandList5 * This,
21556 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
21557
21558 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
21559 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
21560 ID3D12GraphicsCommandList5 * This,
21561 _In_ UINT StencilRef);
21562
21563 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
21564 void ( STDMETHODCALLTYPE *SetPipelineState )(
21565 ID3D12GraphicsCommandList5 * This,
21566 _In_ ID3D12PipelineState *pPipelineState);
21567
21568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
21569 void ( STDMETHODCALLTYPE *ResourceBarrier )(
21570 ID3D12GraphicsCommandList5 * This,
21571 _In_ UINT NumBarriers,
21572 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
21573
21574 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
21575 void ( STDMETHODCALLTYPE *ExecuteBundle )(
21576 ID3D12GraphicsCommandList5 * This,
21577 _In_ ID3D12GraphicsCommandList *pCommandList);
21578
21579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
21580 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
21581 ID3D12GraphicsCommandList5 * This,
21582 _In_ UINT NumDescriptorHeaps,
21583 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
21584
21585 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
21586 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
21587 ID3D12GraphicsCommandList5 * This,
21588 _In_opt_ ID3D12RootSignature *pRootSignature);
21589
21590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
21591 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
21592 ID3D12GraphicsCommandList5 * This,
21593 _In_opt_ ID3D12RootSignature *pRootSignature);
21594
21595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
21596 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
21597 ID3D12GraphicsCommandList5 * This,
21598 _In_ UINT RootParameterIndex,
21599 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21600
21601 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
21602 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
21603 ID3D12GraphicsCommandList5 * This,
21604 _In_ UINT RootParameterIndex,
21605 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21606
21607 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
21608 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
21609 ID3D12GraphicsCommandList5 * This,
21610 _In_ UINT RootParameterIndex,
21611 _In_ UINT SrcData,
21612 _In_ UINT DestOffsetIn32BitValues);
21613
21614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
21615 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
21616 ID3D12GraphicsCommandList5 * This,
21617 _In_ UINT RootParameterIndex,
21618 _In_ UINT SrcData,
21619 _In_ UINT DestOffsetIn32BitValues);
21620
21621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
21622 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
21623 ID3D12GraphicsCommandList5 * This,
21624 _In_ UINT RootParameterIndex,
21625 _In_ UINT Num32BitValuesToSet,
21626 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21627 _In_ UINT DestOffsetIn32BitValues);
21628
21629 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
21630 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
21631 ID3D12GraphicsCommandList5 * This,
21632 _In_ UINT RootParameterIndex,
21633 _In_ UINT Num32BitValuesToSet,
21634 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21635 _In_ UINT DestOffsetIn32BitValues);
21636
21637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
21638 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
21639 ID3D12GraphicsCommandList5 * This,
21640 _In_ UINT RootParameterIndex,
21641 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21642
21643 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
21644 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
21645 ID3D12GraphicsCommandList5 * This,
21646 _In_ UINT RootParameterIndex,
21647 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21648
21649 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
21650 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
21651 ID3D12GraphicsCommandList5 * This,
21652 _In_ UINT RootParameterIndex,
21653 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21654
21655 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
21656 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
21657 ID3D12GraphicsCommandList5 * This,
21658 _In_ UINT RootParameterIndex,
21659 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21660
21661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
21662 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
21663 ID3D12GraphicsCommandList5 * This,
21664 _In_ UINT RootParameterIndex,
21665 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21666
21667 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
21668 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
21669 ID3D12GraphicsCommandList5 * This,
21670 _In_ UINT RootParameterIndex,
21671 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21672
21673 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
21674 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
21675 ID3D12GraphicsCommandList5 * This,
21676 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
21677
21678 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
21679 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
21680 ID3D12GraphicsCommandList5 * This,
21681 _In_ UINT StartSlot,
21682 _In_ UINT NumViews,
21683 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
21684
21685 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
21686 void ( STDMETHODCALLTYPE *SOSetTargets )(
21687 ID3D12GraphicsCommandList5 * This,
21688 _In_ UINT StartSlot,
21689 _In_ UINT NumViews,
21690 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
21691
21692 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
21693 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
21694 ID3D12GraphicsCommandList5 * This,
21695 _In_ UINT NumRenderTargetDescriptors,
21696 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
21697 _In_ BOOL RTsSingleHandleToDescriptorRange,
21698 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
21699
21700 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
21701 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
21702 ID3D12GraphicsCommandList5 * This,
21703 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
21704 _In_ D3D12_CLEAR_FLAGS ClearFlags,
21705 _In_ FLOAT Depth,
21706 _In_ UINT8 Stencil,
21707 _In_ UINT NumRects,
21708 _In_reads_(NumRects) const D3D12_RECT *pRects);
21709
21710 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
21711 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
21712 ID3D12GraphicsCommandList5 * This,
21713 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
21714 _In_ const FLOAT ColorRGBA[ 4 ],
21715 _In_ UINT NumRects,
21716 _In_reads_(NumRects) const D3D12_RECT *pRects);
21717
21718 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
21719 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
21720 ID3D12GraphicsCommandList5 * This,
21721 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21722 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21723 _In_ ID3D12Resource *pResource,
21724 _In_ const UINT Values[ 4 ],
21725 _In_ UINT NumRects,
21726 _In_reads_(NumRects) const D3D12_RECT *pRects);
21727
21728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
21729 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
21730 ID3D12GraphicsCommandList5 * This,
21731 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21732 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21733 _In_ ID3D12Resource *pResource,
21734 _In_ const FLOAT Values[ 4 ],
21735 _In_ UINT NumRects,
21736 _In_reads_(NumRects) const D3D12_RECT *pRects);
21737
21738 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
21739 void ( STDMETHODCALLTYPE *DiscardResource )(
21740 ID3D12GraphicsCommandList5 * This,
21741 _In_ ID3D12Resource *pResource,
21742 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
21743
21744 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
21745 void ( STDMETHODCALLTYPE *BeginQuery )(
21746 ID3D12GraphicsCommandList5 * This,
21747 _In_ ID3D12QueryHeap *pQueryHeap,
21748 _In_ D3D12_QUERY_TYPE Type,
21749 _In_ UINT Index);
21750
21751 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
21752 void ( STDMETHODCALLTYPE *EndQuery )(
21753 ID3D12GraphicsCommandList5 * This,
21754 _In_ ID3D12QueryHeap *pQueryHeap,
21755 _In_ D3D12_QUERY_TYPE Type,
21756 _In_ UINT Index);
21757
21758 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
21759 void ( STDMETHODCALLTYPE *ResolveQueryData )(
21760 ID3D12GraphicsCommandList5 * This,
21761 _In_ ID3D12QueryHeap *pQueryHeap,
21762 _In_ D3D12_QUERY_TYPE Type,
21763 _In_ UINT StartIndex,
21764 _In_ UINT NumQueries,
21765 _In_ ID3D12Resource *pDestinationBuffer,
21766 _In_ UINT64 AlignedDestinationBufferOffset);
21767
21768 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
21769 void ( STDMETHODCALLTYPE *SetPredication )(
21770 ID3D12GraphicsCommandList5 * This,
21771 _In_opt_ ID3D12Resource *pBuffer,
21772 _In_ UINT64 AlignedBufferOffset,
21773 _In_ D3D12_PREDICATION_OP Operation);
21774
21775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
21776 void ( STDMETHODCALLTYPE *SetMarker )(
21777 ID3D12GraphicsCommandList5 * This,
21778 UINT Metadata,
21779 _In_reads_bytes_opt_(Size) const void *pData,
21780 UINT Size);
21781
21782 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
21783 void ( STDMETHODCALLTYPE *BeginEvent )(
21784 ID3D12GraphicsCommandList5 * This,
21785 UINT Metadata,
21786 _In_reads_bytes_opt_(Size) const void *pData,
21787 UINT Size);
21788
21789 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
21790 void ( STDMETHODCALLTYPE *EndEvent )(
21791 ID3D12GraphicsCommandList5 * This);
21792
21793 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
21794 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
21795 ID3D12GraphicsCommandList5 * This,
21796 _In_ ID3D12CommandSignature *pCommandSignature,
21797 _In_ UINT MaxCommandCount,
21798 _In_ ID3D12Resource *pArgumentBuffer,
21799 _In_ UINT64 ArgumentBufferOffset,
21800 _In_opt_ ID3D12Resource *pCountBuffer,
21801 _In_ UINT64 CountBufferOffset);
21802
21803 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
21804 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
21805 ID3D12GraphicsCommandList5 * This,
21806 _In_ ID3D12Resource *pDstBuffer,
21807 UINT64 DstOffset,
21808 _In_ ID3D12Resource *pSrcBuffer,
21809 UINT64 SrcOffset,
21810 UINT Dependencies,
21811 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21812 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21813
21814 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
21815 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
21816 ID3D12GraphicsCommandList5 * This,
21817 _In_ ID3D12Resource *pDstBuffer,
21818 UINT64 DstOffset,
21819 _In_ ID3D12Resource *pSrcBuffer,
21820 UINT64 SrcOffset,
21821 UINT Dependencies,
21822 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21823 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21824
21825 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
21826 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
21827 ID3D12GraphicsCommandList5 * This,
21828 _In_ FLOAT Min,
21829 _In_ FLOAT Max);
21830
21831 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
21832 void ( STDMETHODCALLTYPE *SetSamplePositions )(
21833 ID3D12GraphicsCommandList5 * This,
21834 _In_ UINT NumSamplesPerPixel,
21835 _In_ UINT NumPixels,
21836 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
21837
21838 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
21839 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
21840 ID3D12GraphicsCommandList5 * This,
21841 _In_ ID3D12Resource *pDstResource,
21842 _In_ UINT DstSubresource,
21843 _In_ UINT DstX,
21844 _In_ UINT DstY,
21845 _In_ ID3D12Resource *pSrcResource,
21846 _In_ UINT SrcSubresource,
21847 _In_opt_ D3D12_RECT *pSrcRect,
21848 _In_ DXGI_FORMAT Format,
21849 _In_ D3D12_RESOLVE_MODE ResolveMode);
21850
21851 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
21852 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
21853 ID3D12GraphicsCommandList5 * This,
21854 _In_ UINT Mask);
21855
21856 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
21857 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
21858 ID3D12GraphicsCommandList5 * This,
21859 UINT Count,
21860 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
21861 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
21862
21863 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
21864 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
21865 ID3D12GraphicsCommandList5 * This,
21866 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
21867
21868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
21869 void ( STDMETHODCALLTYPE *BeginRenderPass )(
21870 ID3D12GraphicsCommandList5 * This,
21871 _In_ UINT NumRenderTargets,
21872 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
21873 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
21874 D3D12_RENDER_PASS_FLAGS Flags);
21875
21876 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
21877 void ( STDMETHODCALLTYPE *EndRenderPass )(
21878 ID3D12GraphicsCommandList5 * This);
21879
21880 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
21881 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
21882 ID3D12GraphicsCommandList5 * This,
21883 _In_ ID3D12MetaCommand *pMetaCommand,
21884 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
21885 _In_ SIZE_T InitializationParametersDataSizeInBytes);
21886
21887 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
21888 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
21889 ID3D12GraphicsCommandList5 * This,
21890 _In_ ID3D12MetaCommand *pMetaCommand,
21891 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
21892 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
21893
21894 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
21895 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
21896 ID3D12GraphicsCommandList5 * This,
21897 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
21898 _In_ UINT NumPostbuildInfoDescs,
21899 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
21900
21901 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
21902 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
21903 ID3D12GraphicsCommandList5 * This,
21904 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
21905 _In_ UINT NumSourceAccelerationStructures,
21906 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
21907
21908 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
21909 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
21910 ID3D12GraphicsCommandList5 * This,
21911 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
21912 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
21913 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
21914
21915 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
21916 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
21917 ID3D12GraphicsCommandList5 * This,
21918 _In_ ID3D12StateObject *pStateObject);
21919
21920 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
21921 void ( STDMETHODCALLTYPE *DispatchRays )(
21922 ID3D12GraphicsCommandList5 * This,
21923 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
21924
21925 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
21926 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
21927 ID3D12GraphicsCommandList5 * This,
21928 _In_ D3D12_SHADING_RATE baseShadingRate,
21929 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
21930
21931 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
21932 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
21933 ID3D12GraphicsCommandList5 * This,
21934 _In_opt_ ID3D12Resource *shadingRateImage);
21935
21936 END_INTERFACE
21937 } ID3D12GraphicsCommandList5Vtbl;
21938
21939 interface ID3D12GraphicsCommandList5
21940 {
21941 CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl;
21942 };
21943
21944
21945
21946#ifdef COBJMACROS
21947
21948
21949#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \
21950 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21951
21952#define ID3D12GraphicsCommandList5_AddRef(This) \
21953 ( (This)->lpVtbl -> AddRef(This) )
21954
21955#define ID3D12GraphicsCommandList5_Release(This) \
21956 ( (This)->lpVtbl -> Release(This) )
21957
21958
21959#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \
21960 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21961
21962#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \
21963 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21964
21965#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \
21966 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21967
21968#define ID3D12GraphicsCommandList5_SetName(This,Name) \
21969 ( (This)->lpVtbl -> SetName(This,Name) )
21970
21971
21972#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \
21973 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21974
21975
21976#define ID3D12GraphicsCommandList5_GetType(This) \
21977 ( (This)->lpVtbl -> GetType(This) )
21978
21979
21980#define ID3D12GraphicsCommandList5_Close(This) \
21981 ( (This)->lpVtbl -> Close(This) )
21982
21983#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \
21984 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
21985
21986#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \
21987 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
21988
21989#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
21990 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
21991
21992#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
21993 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
21994
21995#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
21996 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
21997
21998#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
21999 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
22000
22001#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
22002 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
22003
22004#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \
22005 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
22006
22007#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
22008 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
22009
22010#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
22011 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
22012
22013#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \
22014 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
22015
22016#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \
22017 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
22018
22019#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \
22020 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
22021
22022#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \
22023 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
22024
22025#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \
22026 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
22027
22028#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \
22029 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
22030
22031#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \
22032 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
22033
22034#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \
22035 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
22036
22037#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
22038 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
22039
22040#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \
22041 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
22042
22043#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \
22044 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
22045
22046#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22047 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22048
22049#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22050 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22051
22052#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22053 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22054
22055#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22056 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22057
22058#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22059 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22060
22061#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22062 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22063
22064#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22065 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22066
22067#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22068 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22069
22070#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22071 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22072
22073#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22074 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22075
22076#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22077 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22078
22079#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22080 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22081
22082#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \
22083 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
22084
22085#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
22086 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
22087
22088#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \
22089 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
22090
22091#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
22092 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
22093
22094#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
22095 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
22096
22097#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
22098 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
22099
22100#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22101 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22102
22103#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22104 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22105
22106#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \
22107 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
22108
22109#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \
22110 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
22111
22112#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \
22113 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
22114
22115#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
22116 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
22117
22118#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
22119 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
22120
22121#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \
22122 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
22123
22124#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \
22125 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
22126
22127#define ID3D12GraphicsCommandList5_EndEvent(This) \
22128 ( (This)->lpVtbl -> EndEvent(This) )
22129
22130#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
22131 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
22132
22133
22134#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22135 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22136
22137#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22138 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22139
22140#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \
22141 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
22142
22143#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
22144 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
22145
22146#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
22147 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
22148
22149#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \
22150 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
22151
22152
22153#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \
22154 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
22155
22156
22157#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \
22158 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
22159
22160
22161#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
22162 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
22163
22164#define ID3D12GraphicsCommandList5_EndRenderPass(This) \
22165 ( (This)->lpVtbl -> EndRenderPass(This) )
22166
22167#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
22168 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
22169
22170#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
22171 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
22172
22173#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
22174 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
22175
22176#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
22177 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
22178
22179#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
22180 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
22181
22182#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \
22183 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
22184
22185#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \
22186 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
22187
22188
22189#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \
22190 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
22191
22192#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \
22193 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
22194
22195#endif /* COBJMACROS */
22196
22197
22198#endif /* C style interface */
22199
22200
22201
22202
22203#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
22204
22205
22206/* interface __MIDL_itf_d3d12_0000_0055 */
22207/* [local] */
22208
22209typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
22210 {
22211 UINT ThreadGroupCountX;
22212 UINT ThreadGroupCountY;
22213 UINT ThreadGroupCountZ;
22214 } D3D12_DISPATCH_MESH_ARGUMENTS;
22215
22216
22217
22218extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec;
22219extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec;
22220
22221#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
22222#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
22223
22224/* interface ID3D12GraphicsCommandList6 */
22225/* [unique][local][object][uuid] */
22226
22227
22228EXTERN_C const IID IID_ID3D12GraphicsCommandList6;
22229
22230#if defined(__cplusplus) && !defined(CINTERFACE)
22231
22232 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
22233 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
22234 {
22235 public:
22236 virtual void STDMETHODCALLTYPE DispatchMesh(
22237 _In_ UINT ThreadGroupCountX,
22238 _In_ UINT ThreadGroupCountY,
22239 _In_ UINT ThreadGroupCountZ) = 0;
22240
22241 };
22242
22243
22244#else /* C style interface */
22245
22246 typedef struct ID3D12GraphicsCommandList6Vtbl
22247 {
22248 BEGIN_INTERFACE
22249
22250 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
22251 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
22252 ID3D12GraphicsCommandList6 * This,
22253 REFIID riid,
22254 _COM_Outptr_ void **ppvObject);
22255
22256 DECLSPEC_XFGVIRT(IUnknown, AddRef)
22257 ULONG ( STDMETHODCALLTYPE *AddRef )(
22258 ID3D12GraphicsCommandList6 * This);
22259
22260 DECLSPEC_XFGVIRT(IUnknown, Release)
22261 ULONG ( STDMETHODCALLTYPE *Release )(
22262 ID3D12GraphicsCommandList6 * This);
22263
22264 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
22265 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
22266 ID3D12GraphicsCommandList6 * This,
22267 _In_ REFGUID guid,
22268 _Inout_ UINT *pDataSize,
22269 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
22270
22271 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
22272 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
22273 ID3D12GraphicsCommandList6 * This,
22274 _In_ REFGUID guid,
22275 _In_ UINT DataSize,
22276 _In_reads_bytes_opt_( DataSize ) const void *pData);
22277
22278 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
22279 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
22280 ID3D12GraphicsCommandList6 * This,
22281 _In_ REFGUID guid,
22282 _In_opt_ const IUnknown *pData);
22283
22284 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
22285 HRESULT ( STDMETHODCALLTYPE *SetName )(
22286 ID3D12GraphicsCommandList6 * This,
22287 _In_z_ LPCWSTR Name);
22288
22289 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
22290 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
22291 ID3D12GraphicsCommandList6 * This,
22292 REFIID riid,
22293 _COM_Outptr_opt_ void **ppvDevice);
22294
22295 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
22296 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
22297 ID3D12GraphicsCommandList6 * This);
22298
22299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
22300 HRESULT ( STDMETHODCALLTYPE *Close )(
22301 ID3D12GraphicsCommandList6 * This);
22302
22303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
22304 HRESULT ( STDMETHODCALLTYPE *Reset )(
22305 ID3D12GraphicsCommandList6 * This,
22306 _In_ ID3D12CommandAllocator *pAllocator,
22307 _In_opt_ ID3D12PipelineState *pInitialState);
22308
22309 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
22310 void ( STDMETHODCALLTYPE *ClearState )(
22311 ID3D12GraphicsCommandList6 * This,
22312 _In_opt_ ID3D12PipelineState *pPipelineState);
22313
22314 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
22315 void ( STDMETHODCALLTYPE *DrawInstanced )(
22316 ID3D12GraphicsCommandList6 * This,
22317 _In_ UINT VertexCountPerInstance,
22318 _In_ UINT InstanceCount,
22319 _In_ UINT StartVertexLocation,
22320 _In_ UINT StartInstanceLocation);
22321
22322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
22323 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
22324 ID3D12GraphicsCommandList6 * This,
22325 _In_ UINT IndexCountPerInstance,
22326 _In_ UINT InstanceCount,
22327 _In_ UINT StartIndexLocation,
22328 _In_ INT BaseVertexLocation,
22329 _In_ UINT StartInstanceLocation);
22330
22331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
22332 void ( STDMETHODCALLTYPE *Dispatch )(
22333 ID3D12GraphicsCommandList6 * This,
22334 _In_ UINT ThreadGroupCountX,
22335 _In_ UINT ThreadGroupCountY,
22336 _In_ UINT ThreadGroupCountZ);
22337
22338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
22339 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
22340 ID3D12GraphicsCommandList6 * This,
22341 _In_ ID3D12Resource *pDstBuffer,
22342 UINT64 DstOffset,
22343 _In_ ID3D12Resource *pSrcBuffer,
22344 UINT64 SrcOffset,
22345 UINT64 NumBytes);
22346
22347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
22348 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
22349 ID3D12GraphicsCommandList6 * This,
22350 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
22351 UINT DstX,
22352 UINT DstY,
22353 UINT DstZ,
22354 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
22355 _In_opt_ const D3D12_BOX *pSrcBox);
22356
22357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
22358 void ( STDMETHODCALLTYPE *CopyResource )(
22359 ID3D12GraphicsCommandList6 * This,
22360 _In_ ID3D12Resource *pDstResource,
22361 _In_ ID3D12Resource *pSrcResource);
22362
22363 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
22364 void ( STDMETHODCALLTYPE *CopyTiles )(
22365 ID3D12GraphicsCommandList6 * This,
22366 _In_ ID3D12Resource *pTiledResource,
22367 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
22368 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
22369 _In_ ID3D12Resource *pBuffer,
22370 UINT64 BufferStartOffsetInBytes,
22371 D3D12_TILE_COPY_FLAGS Flags);
22372
22373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
22374 void ( STDMETHODCALLTYPE *ResolveSubresource )(
22375 ID3D12GraphicsCommandList6 * This,
22376 _In_ ID3D12Resource *pDstResource,
22377 _In_ UINT DstSubresource,
22378 _In_ ID3D12Resource *pSrcResource,
22379 _In_ UINT SrcSubresource,
22380 _In_ DXGI_FORMAT Format);
22381
22382 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
22383 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
22384 ID3D12GraphicsCommandList6 * This,
22385 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
22386
22387 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
22388 void ( STDMETHODCALLTYPE *RSSetViewports )(
22389 ID3D12GraphicsCommandList6 * This,
22390 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
22391 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
22392
22393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
22394 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
22395 ID3D12GraphicsCommandList6 * This,
22396 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
22397 _In_reads_( NumRects) const D3D12_RECT *pRects);
22398
22399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
22400 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
22401 ID3D12GraphicsCommandList6 * This,
22402 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
22403
22404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
22405 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
22406 ID3D12GraphicsCommandList6 * This,
22407 _In_ UINT StencilRef);
22408
22409 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
22410 void ( STDMETHODCALLTYPE *SetPipelineState )(
22411 ID3D12GraphicsCommandList6 * This,
22412 _In_ ID3D12PipelineState *pPipelineState);
22413
22414 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
22415 void ( STDMETHODCALLTYPE *ResourceBarrier )(
22416 ID3D12GraphicsCommandList6 * This,
22417 _In_ UINT NumBarriers,
22418 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
22419
22420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
22421 void ( STDMETHODCALLTYPE *ExecuteBundle )(
22422 ID3D12GraphicsCommandList6 * This,
22423 _In_ ID3D12GraphicsCommandList *pCommandList);
22424
22425 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
22426 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
22427 ID3D12GraphicsCommandList6 * This,
22428 _In_ UINT NumDescriptorHeaps,
22429 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
22430
22431 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
22432 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
22433 ID3D12GraphicsCommandList6 * This,
22434 _In_opt_ ID3D12RootSignature *pRootSignature);
22435
22436 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
22437 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
22438 ID3D12GraphicsCommandList6 * This,
22439 _In_opt_ ID3D12RootSignature *pRootSignature);
22440
22441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
22442 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
22443 ID3D12GraphicsCommandList6 * This,
22444 _In_ UINT RootParameterIndex,
22445 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22446
22447 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
22448 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
22449 ID3D12GraphicsCommandList6 * This,
22450 _In_ UINT RootParameterIndex,
22451 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22452
22453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
22454 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
22455 ID3D12GraphicsCommandList6 * This,
22456 _In_ UINT RootParameterIndex,
22457 _In_ UINT SrcData,
22458 _In_ UINT DestOffsetIn32BitValues);
22459
22460 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
22461 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
22462 ID3D12GraphicsCommandList6 * This,
22463 _In_ UINT RootParameterIndex,
22464 _In_ UINT SrcData,
22465 _In_ UINT DestOffsetIn32BitValues);
22466
22467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
22468 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
22469 ID3D12GraphicsCommandList6 * This,
22470 _In_ UINT RootParameterIndex,
22471 _In_ UINT Num32BitValuesToSet,
22472 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22473 _In_ UINT DestOffsetIn32BitValues);
22474
22475 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
22476 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
22477 ID3D12GraphicsCommandList6 * This,
22478 _In_ UINT RootParameterIndex,
22479 _In_ UINT Num32BitValuesToSet,
22480 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22481 _In_ UINT DestOffsetIn32BitValues);
22482
22483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
22484 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
22485 ID3D12GraphicsCommandList6 * This,
22486 _In_ UINT RootParameterIndex,
22487 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22488
22489 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
22490 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
22491 ID3D12GraphicsCommandList6 * This,
22492 _In_ UINT RootParameterIndex,
22493 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22494
22495 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
22496 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
22497 ID3D12GraphicsCommandList6 * This,
22498 _In_ UINT RootParameterIndex,
22499 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22500
22501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
22502 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
22503 ID3D12GraphicsCommandList6 * This,
22504 _In_ UINT RootParameterIndex,
22505 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22506
22507 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
22508 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
22509 ID3D12GraphicsCommandList6 * This,
22510 _In_ UINT RootParameterIndex,
22511 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22512
22513 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
22514 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
22515 ID3D12GraphicsCommandList6 * This,
22516 _In_ UINT RootParameterIndex,
22517 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22518
22519 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
22520 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
22521 ID3D12GraphicsCommandList6 * This,
22522 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
22523
22524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
22525 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
22526 ID3D12GraphicsCommandList6 * This,
22527 _In_ UINT StartSlot,
22528 _In_ UINT NumViews,
22529 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
22530
22531 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
22532 void ( STDMETHODCALLTYPE *SOSetTargets )(
22533 ID3D12GraphicsCommandList6 * This,
22534 _In_ UINT StartSlot,
22535 _In_ UINT NumViews,
22536 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
22537
22538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
22539 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
22540 ID3D12GraphicsCommandList6 * This,
22541 _In_ UINT NumRenderTargetDescriptors,
22542 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
22543 _In_ BOOL RTsSingleHandleToDescriptorRange,
22544 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
22545
22546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
22547 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
22548 ID3D12GraphicsCommandList6 * This,
22549 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
22550 _In_ D3D12_CLEAR_FLAGS ClearFlags,
22551 _In_ FLOAT Depth,
22552 _In_ UINT8 Stencil,
22553 _In_ UINT NumRects,
22554 _In_reads_(NumRects) const D3D12_RECT *pRects);
22555
22556 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
22557 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
22558 ID3D12GraphicsCommandList6 * This,
22559 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
22560 _In_ const FLOAT ColorRGBA[ 4 ],
22561 _In_ UINT NumRects,
22562 _In_reads_(NumRects) const D3D12_RECT *pRects);
22563
22564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
22565 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
22566 ID3D12GraphicsCommandList6 * This,
22567 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22568 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22569 _In_ ID3D12Resource *pResource,
22570 _In_ const UINT Values[ 4 ],
22571 _In_ UINT NumRects,
22572 _In_reads_(NumRects) const D3D12_RECT *pRects);
22573
22574 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
22575 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
22576 ID3D12GraphicsCommandList6 * This,
22577 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22578 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22579 _In_ ID3D12Resource *pResource,
22580 _In_ const FLOAT Values[ 4 ],
22581 _In_ UINT NumRects,
22582 _In_reads_(NumRects) const D3D12_RECT *pRects);
22583
22584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
22585 void ( STDMETHODCALLTYPE *DiscardResource )(
22586 ID3D12GraphicsCommandList6 * This,
22587 _In_ ID3D12Resource *pResource,
22588 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
22589
22590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
22591 void ( STDMETHODCALLTYPE *BeginQuery )(
22592 ID3D12GraphicsCommandList6 * This,
22593 _In_ ID3D12QueryHeap *pQueryHeap,
22594 _In_ D3D12_QUERY_TYPE Type,
22595 _In_ UINT Index);
22596
22597 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
22598 void ( STDMETHODCALLTYPE *EndQuery )(
22599 ID3D12GraphicsCommandList6 * This,
22600 _In_ ID3D12QueryHeap *pQueryHeap,
22601 _In_ D3D12_QUERY_TYPE Type,
22602 _In_ UINT Index);
22603
22604 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
22605 void ( STDMETHODCALLTYPE *ResolveQueryData )(
22606 ID3D12GraphicsCommandList6 * This,
22607 _In_ ID3D12QueryHeap *pQueryHeap,
22608 _In_ D3D12_QUERY_TYPE Type,
22609 _In_ UINT StartIndex,
22610 _In_ UINT NumQueries,
22611 _In_ ID3D12Resource *pDestinationBuffer,
22612 _In_ UINT64 AlignedDestinationBufferOffset);
22613
22614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
22615 void ( STDMETHODCALLTYPE *SetPredication )(
22616 ID3D12GraphicsCommandList6 * This,
22617 _In_opt_ ID3D12Resource *pBuffer,
22618 _In_ UINT64 AlignedBufferOffset,
22619 _In_ D3D12_PREDICATION_OP Operation);
22620
22621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
22622 void ( STDMETHODCALLTYPE *SetMarker )(
22623 ID3D12GraphicsCommandList6 * This,
22624 UINT Metadata,
22625 _In_reads_bytes_opt_(Size) const void *pData,
22626 UINT Size);
22627
22628 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
22629 void ( STDMETHODCALLTYPE *BeginEvent )(
22630 ID3D12GraphicsCommandList6 * This,
22631 UINT Metadata,
22632 _In_reads_bytes_opt_(Size) const void *pData,
22633 UINT Size);
22634
22635 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
22636 void ( STDMETHODCALLTYPE *EndEvent )(
22637 ID3D12GraphicsCommandList6 * This);
22638
22639 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
22640 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
22641 ID3D12GraphicsCommandList6 * This,
22642 _In_ ID3D12CommandSignature *pCommandSignature,
22643 _In_ UINT MaxCommandCount,
22644 _In_ ID3D12Resource *pArgumentBuffer,
22645 _In_ UINT64 ArgumentBufferOffset,
22646 _In_opt_ ID3D12Resource *pCountBuffer,
22647 _In_ UINT64 CountBufferOffset);
22648
22649 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
22650 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
22651 ID3D12GraphicsCommandList6 * This,
22652 _In_ ID3D12Resource *pDstBuffer,
22653 UINT64 DstOffset,
22654 _In_ ID3D12Resource *pSrcBuffer,
22655 UINT64 SrcOffset,
22656 UINT Dependencies,
22657 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22658 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22659
22660 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
22661 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
22662 ID3D12GraphicsCommandList6 * This,
22663 _In_ ID3D12Resource *pDstBuffer,
22664 UINT64 DstOffset,
22665 _In_ ID3D12Resource *pSrcBuffer,
22666 UINT64 SrcOffset,
22667 UINT Dependencies,
22668 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22669 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22670
22671 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
22672 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
22673 ID3D12GraphicsCommandList6 * This,
22674 _In_ FLOAT Min,
22675 _In_ FLOAT Max);
22676
22677 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
22678 void ( STDMETHODCALLTYPE *SetSamplePositions )(
22679 ID3D12GraphicsCommandList6 * This,
22680 _In_ UINT NumSamplesPerPixel,
22681 _In_ UINT NumPixels,
22682 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
22683
22684 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
22685 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
22686 ID3D12GraphicsCommandList6 * This,
22687 _In_ ID3D12Resource *pDstResource,
22688 _In_ UINT DstSubresource,
22689 _In_ UINT DstX,
22690 _In_ UINT DstY,
22691 _In_ ID3D12Resource *pSrcResource,
22692 _In_ UINT SrcSubresource,
22693 _In_opt_ D3D12_RECT *pSrcRect,
22694 _In_ DXGI_FORMAT Format,
22695 _In_ D3D12_RESOLVE_MODE ResolveMode);
22696
22697 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
22698 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
22699 ID3D12GraphicsCommandList6 * This,
22700 _In_ UINT Mask);
22701
22702 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
22703 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
22704 ID3D12GraphicsCommandList6 * This,
22705 UINT Count,
22706 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
22707 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
22708
22709 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
22710 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
22711 ID3D12GraphicsCommandList6 * This,
22712 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
22713
22714 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
22715 void ( STDMETHODCALLTYPE *BeginRenderPass )(
22716 ID3D12GraphicsCommandList6 * This,
22717 _In_ UINT NumRenderTargets,
22718 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
22719 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
22720 D3D12_RENDER_PASS_FLAGS Flags);
22721
22722 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
22723 void ( STDMETHODCALLTYPE *EndRenderPass )(
22724 ID3D12GraphicsCommandList6 * This);
22725
22726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
22727 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
22728 ID3D12GraphicsCommandList6 * This,
22729 _In_ ID3D12MetaCommand *pMetaCommand,
22730 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
22731 _In_ SIZE_T InitializationParametersDataSizeInBytes);
22732
22733 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
22734 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
22735 ID3D12GraphicsCommandList6 * This,
22736 _In_ ID3D12MetaCommand *pMetaCommand,
22737 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
22738 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
22739
22740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
22741 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
22742 ID3D12GraphicsCommandList6 * This,
22743 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
22744 _In_ UINT NumPostbuildInfoDescs,
22745 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
22746
22747 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
22748 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
22749 ID3D12GraphicsCommandList6 * This,
22750 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
22751 _In_ UINT NumSourceAccelerationStructures,
22752 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
22753
22754 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
22755 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
22756 ID3D12GraphicsCommandList6 * This,
22757 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
22758 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
22759 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
22760
22761 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
22762 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
22763 ID3D12GraphicsCommandList6 * This,
22764 _In_ ID3D12StateObject *pStateObject);
22765
22766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
22767 void ( STDMETHODCALLTYPE *DispatchRays )(
22768 ID3D12GraphicsCommandList6 * This,
22769 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
22770
22771 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
22772 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
22773 ID3D12GraphicsCommandList6 * This,
22774 _In_ D3D12_SHADING_RATE baseShadingRate,
22775 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
22776
22777 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
22778 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
22779 ID3D12GraphicsCommandList6 * This,
22780 _In_opt_ ID3D12Resource *shadingRateImage);
22781
22782 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
22783 void ( STDMETHODCALLTYPE *DispatchMesh )(
22784 ID3D12GraphicsCommandList6 * This,
22785 _In_ UINT ThreadGroupCountX,
22786 _In_ UINT ThreadGroupCountY,
22787 _In_ UINT ThreadGroupCountZ);
22788
22789 END_INTERFACE
22790 } ID3D12GraphicsCommandList6Vtbl;
22791
22792 interface ID3D12GraphicsCommandList6
22793 {
22794 CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl;
22795 };
22796
22797
22798
22799#ifdef COBJMACROS
22800
22801
22802#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \
22803 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
22804
22805#define ID3D12GraphicsCommandList6_AddRef(This) \
22806 ( (This)->lpVtbl -> AddRef(This) )
22807
22808#define ID3D12GraphicsCommandList6_Release(This) \
22809 ( (This)->lpVtbl -> Release(This) )
22810
22811
22812#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \
22813 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
22814
22815#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \
22816 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
22817
22818#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \
22819 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
22820
22821#define ID3D12GraphicsCommandList6_SetName(This,Name) \
22822 ( (This)->lpVtbl -> SetName(This,Name) )
22823
22824
22825#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \
22826 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
22827
22828
22829#define ID3D12GraphicsCommandList6_GetType(This) \
22830 ( (This)->lpVtbl -> GetType(This) )
22831
22832
22833#define ID3D12GraphicsCommandList6_Close(This) \
22834 ( (This)->lpVtbl -> Close(This) )
22835
22836#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \
22837 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
22838
22839#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \
22840 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
22841
22842#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
22843 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
22844
22845#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
22846 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
22847
22848#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
22849 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
22850
22851#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
22852 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
22853
22854#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
22855 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
22856
22857#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \
22858 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
22859
22860#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
22861 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
22862
22863#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
22864 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
22865
22866#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \
22867 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
22868
22869#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \
22870 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
22871
22872#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \
22873 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
22874
22875#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \
22876 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
22877
22878#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \
22879 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
22880
22881#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \
22882 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
22883
22884#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \
22885 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
22886
22887#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \
22888 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
22889
22890#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
22891 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
22892
22893#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \
22894 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
22895
22896#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \
22897 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
22898
22899#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22900 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22901
22902#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22903 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22904
22905#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22906 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22907
22908#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22909 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22910
22911#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22912 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22913
22914#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22915 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22916
22917#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22918 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22919
22920#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22921 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22922
22923#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22924 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22925
22926#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22927 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22928
22929#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22930 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22931
22932#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22933 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22934
22935#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \
22936 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
22937
22938#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
22939 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
22940
22941#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \
22942 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
22943
22944#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
22945 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
22946
22947#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
22948 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
22949
22950#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
22951 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
22952
22953#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22954 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22955
22956#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22957 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22958
22959#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \
22960 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
22961
22962#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \
22963 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
22964
22965#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \
22966 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
22967
22968#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
22969 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
22970
22971#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
22972 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
22973
22974#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \
22975 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
22976
22977#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \
22978 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
22979
22980#define ID3D12GraphicsCommandList6_EndEvent(This) \
22981 ( (This)->lpVtbl -> EndEvent(This) )
22982
22983#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
22984 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
22985
22986
22987#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22988 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22989
22990#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22991 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22992
22993#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \
22994 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
22995
22996#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
22997 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
22998
22999#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
23000 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
23001
23002#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \
23003 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
23004
23005
23006#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \
23007 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
23008
23009
23010#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \
23011 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
23012
23013
23014#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
23015 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
23016
23017#define ID3D12GraphicsCommandList6_EndRenderPass(This) \
23018 ( (This)->lpVtbl -> EndRenderPass(This) )
23019
23020#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
23021 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
23022
23023#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
23024 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
23025
23026#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
23027 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
23028
23029#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
23030 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
23031
23032#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
23033 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
23034
23035#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \
23036 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
23037
23038#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \
23039 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
23040
23041
23042#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \
23043 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
23044
23045#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \
23046 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
23047
23048
23049#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
23050 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
23051
23052#endif /* COBJMACROS */
23053
23054
23055#endif /* C style interface */
23056
23057
23058
23059
23060#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
23061
23062
23063/* interface __MIDL_itf_d3d12_0000_0056 */
23064/* [local] */
23065
23066#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
23067#pragma endregion
23068DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
23069DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
23070DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
23071DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
23072DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
23073DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
23074DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
23075DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
23076DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);
23077DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);
23078DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
23079DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);
23080DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);
23081DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);
23082DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);
23083DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);
23084DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
23085DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
23086DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);
23087DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
23088DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
23089DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
23090DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);
23091DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
23092DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
23093DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
23094DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
23095DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
23096DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
23097DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
23098DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
23099DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
23100DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
23101DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
23102DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
23103DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);
23104DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);
23105DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);
23106DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);
23107DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);
23108DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);
23109DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);
23110DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);
23111DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);
23112DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
23113DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);
23114DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
23115DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
23116DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
23117DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
23118DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);
23119DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
23120DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
23121DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
23122DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);
23123DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);
23124
23125
23126extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec;
23127extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec;
23128
23129/* Additional Prototypes for ALL interfaces */
23130
23131/* end of Additional Prototypes */
23132
23133#ifdef __cplusplus
23134}
23135#endif
23136
23137#endif
23138
23139