summaryrefslogtreecommitdiff
path: root/contrib/SDL-3.2.8/src/video/directx/d3d12.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/SDL-3.2.8/src/video/directx/d3d12.h')
-rw-r--r--contrib/SDL-3.2.8/src/video/directx/d3d12.h34949
1 files changed, 34949 insertions, 0 deletions
diff --git a/contrib/SDL-3.2.8/src/video/directx/d3d12.h b/contrib/SDL-3.2.8/src/video/directx/d3d12.h
new file mode 100644
index 0000000..eac7fbb
--- /dev/null
+++ b/contrib/SDL-3.2.8/src/video/directx/d3d12.h
@@ -0,0 +1,34949 @@
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 * Licensed under the MIT license
5 *
6 *-------------------------------------------------------------------------------------*/
7
8
9/* this ALWAYS GENERATED file contains the definitions for the interfaces */
10
11
12 /* File created by MIDL compiler version 8.01.0628 */
13
14
15
16/* verify that the <rpcndr.h> version is high enough to compile this file*/
17#ifndef __REQUIRED_RPCNDR_H_VERSION__
18#define __REQUIRED_RPCNDR_H_VERSION__ 500
19#endif
20
21/* verify that the <rpcsal.h> version is high enough to compile this file*/
22#ifndef __REQUIRED_RPCSAL_H_VERSION__
23#define __REQUIRED_RPCSAL_H_VERSION__ 100
24#endif
25
26#include "rpc.h"
27#include "rpcndr.h"
28
29#ifndef __RPCNDR_H_VERSION__
30#error this stub requires an updated version of <rpcndr.h>
31#endif /* __RPCNDR_H_VERSION__ */
32
33#ifndef COM_NO_WINDOWS_H
34#include "windows.h"
35#include "ole2.h"
36#endif /*COM_NO_WINDOWS_H*/
37
38#ifndef __d3d12_h__
39#define __d3d12_h__
40
41#if defined(_MSC_VER) && (_MSC_VER >= 1020)
42#pragma once
43#endif
44
45#ifndef DECLSPEC_XFGVIRT
46#if defined(_CONTROL_FLOW_GUARD_XFG)
47#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
48#else
49#define DECLSPEC_XFGVIRT(base, func)
50#endif
51#endif
52
53#ifndef _In_opt_count_
54#define _In_opt_count_(x)
55#endif
56#ifndef _In_count_
57#define _In_count_(x)
58#endif
59
60/* Forward Declarations */
61
62#ifndef __ID3D12Object_FWD_DEFINED__
63#define __ID3D12Object_FWD_DEFINED__
64typedef interface ID3D12Object ID3D12Object;
65
66#endif /* __ID3D12Object_FWD_DEFINED__ */
67
68
69#ifndef __ID3D12DeviceChild_FWD_DEFINED__
70#define __ID3D12DeviceChild_FWD_DEFINED__
71typedef interface ID3D12DeviceChild ID3D12DeviceChild;
72
73#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
74
75
76#ifndef __ID3D12RootSignature_FWD_DEFINED__
77#define __ID3D12RootSignature_FWD_DEFINED__
78typedef interface ID3D12RootSignature ID3D12RootSignature;
79
80#endif /* __ID3D12RootSignature_FWD_DEFINED__ */
81
82
83#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
84#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
85typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
86
87#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
88
89
90#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
91#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
92typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
93
94#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
95
96
97#ifndef __ID3D12Pageable_FWD_DEFINED__
98#define __ID3D12Pageable_FWD_DEFINED__
99typedef interface ID3D12Pageable ID3D12Pageable;
100
101#endif /* __ID3D12Pageable_FWD_DEFINED__ */
102
103
104#ifndef __ID3D12Heap_FWD_DEFINED__
105#define __ID3D12Heap_FWD_DEFINED__
106typedef interface ID3D12Heap ID3D12Heap;
107
108#endif /* __ID3D12Heap_FWD_DEFINED__ */
109
110
111#ifndef __ID3D12Resource_FWD_DEFINED__
112#define __ID3D12Resource_FWD_DEFINED__
113typedef interface ID3D12Resource ID3D12Resource;
114
115#endif /* __ID3D12Resource_FWD_DEFINED__ */
116
117
118#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
119#define __ID3D12CommandAllocator_FWD_DEFINED__
120typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
121
122#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
123
124
125#ifndef __ID3D12Fence_FWD_DEFINED__
126#define __ID3D12Fence_FWD_DEFINED__
127typedef interface ID3D12Fence ID3D12Fence;
128
129#endif /* __ID3D12Fence_FWD_DEFINED__ */
130
131
132#ifndef __ID3D12Fence1_FWD_DEFINED__
133#define __ID3D12Fence1_FWD_DEFINED__
134typedef interface ID3D12Fence1 ID3D12Fence1;
135
136#endif /* __ID3D12Fence1_FWD_DEFINED__ */
137
138
139#ifndef __ID3D12PipelineState_FWD_DEFINED__
140#define __ID3D12PipelineState_FWD_DEFINED__
141typedef interface ID3D12PipelineState ID3D12PipelineState;
142
143#endif /* __ID3D12PipelineState_FWD_DEFINED__ */
144
145
146#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
147#define __ID3D12DescriptorHeap_FWD_DEFINED__
148typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
149
150#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
151
152
153#ifndef __ID3D12QueryHeap_FWD_DEFINED__
154#define __ID3D12QueryHeap_FWD_DEFINED__
155typedef interface ID3D12QueryHeap ID3D12QueryHeap;
156
157#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
158
159
160#ifndef __ID3D12CommandSignature_FWD_DEFINED__
161#define __ID3D12CommandSignature_FWD_DEFINED__
162typedef interface ID3D12CommandSignature ID3D12CommandSignature;
163
164#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
165
166
167#ifndef __ID3D12CommandList_FWD_DEFINED__
168#define __ID3D12CommandList_FWD_DEFINED__
169typedef interface ID3D12CommandList ID3D12CommandList;
170
171#endif /* __ID3D12CommandList_FWD_DEFINED__ */
172
173
174#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
175#define __ID3D12GraphicsCommandList_FWD_DEFINED__
176typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
177
178#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
179
180
181#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
182#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
183typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
184
185#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
186
187
188#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
189#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
190typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
191
192#endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */
193
194
195#ifndef __ID3D12CommandQueue_FWD_DEFINED__
196#define __ID3D12CommandQueue_FWD_DEFINED__
197typedef interface ID3D12CommandQueue ID3D12CommandQueue;
198
199#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
200
201
202#ifndef __ID3D12Device_FWD_DEFINED__
203#define __ID3D12Device_FWD_DEFINED__
204typedef interface ID3D12Device ID3D12Device;
205
206#endif /* __ID3D12Device_FWD_DEFINED__ */
207
208
209#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
210#define __ID3D12PipelineLibrary_FWD_DEFINED__
211typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
212
213#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
214
215
216#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
217#define __ID3D12PipelineLibrary1_FWD_DEFINED__
218typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
219
220#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
221
222
223#ifndef __ID3D12Device1_FWD_DEFINED__
224#define __ID3D12Device1_FWD_DEFINED__
225typedef interface ID3D12Device1 ID3D12Device1;
226
227#endif /* __ID3D12Device1_FWD_DEFINED__ */
228
229
230#ifndef __ID3D12Device2_FWD_DEFINED__
231#define __ID3D12Device2_FWD_DEFINED__
232typedef interface ID3D12Device2 ID3D12Device2;
233
234#endif /* __ID3D12Device2_FWD_DEFINED__ */
235
236
237#ifndef __ID3D12Device3_FWD_DEFINED__
238#define __ID3D12Device3_FWD_DEFINED__
239typedef interface ID3D12Device3 ID3D12Device3;
240
241#endif /* __ID3D12Device3_FWD_DEFINED__ */
242
243
244#ifndef __ID3D12ProtectedSession_FWD_DEFINED__
245#define __ID3D12ProtectedSession_FWD_DEFINED__
246typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
247
248#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */
249
250
251#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
252#define __ID3D12ProtectedResourceSession_FWD_DEFINED__
253typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
254
255#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */
256
257
258#ifndef __ID3D12Device4_FWD_DEFINED__
259#define __ID3D12Device4_FWD_DEFINED__
260typedef interface ID3D12Device4 ID3D12Device4;
261
262#endif /* __ID3D12Device4_FWD_DEFINED__ */
263
264
265#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
266#define __ID3D12LifetimeOwner_FWD_DEFINED__
267typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
268
269#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */
270
271
272#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
273#define __ID3D12SwapChainAssistant_FWD_DEFINED__
274typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
275
276#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */
277
278
279#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
280#define __ID3D12LifetimeTracker_FWD_DEFINED__
281typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
282
283#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */
284
285
286#ifndef __ID3D12StateObject_FWD_DEFINED__
287#define __ID3D12StateObject_FWD_DEFINED__
288typedef interface ID3D12StateObject ID3D12StateObject;
289
290#endif /* __ID3D12StateObject_FWD_DEFINED__ */
291
292
293#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
294#define __ID3D12StateObjectProperties_FWD_DEFINED__
295typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
296
297#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */
298
299
300#ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__
301#define __ID3D12StateObjectProperties1_FWD_DEFINED__
302typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1;
303
304#endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */
305
306
307#ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__
308#define __ID3D12WorkGraphProperties_FWD_DEFINED__
309typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties;
310
311#endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */
312
313
314#ifndef __ID3D12Device5_FWD_DEFINED__
315#define __ID3D12Device5_FWD_DEFINED__
316typedef interface ID3D12Device5 ID3D12Device5;
317
318#endif /* __ID3D12Device5_FWD_DEFINED__ */
319
320
321#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
322#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
323typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
324
325#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */
326
327
328#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
329#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
330typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1;
331
332#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */
333
334
335#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
336#define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
337typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2;
338
339#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */
340
341
342#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
343#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
344typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
345
346#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */
347
348
349#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
350#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
351typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1;
352
353#endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */
354
355
356#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
357#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
358typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2;
359
360#endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */
361
362
363#ifndef __ID3D12Device6_FWD_DEFINED__
364#define __ID3D12Device6_FWD_DEFINED__
365typedef interface ID3D12Device6 ID3D12Device6;
366
367#endif /* __ID3D12Device6_FWD_DEFINED__ */
368
369
370#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__
371#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__
372typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1;
373
374#endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */
375
376
377#ifndef __ID3D12Device7_FWD_DEFINED__
378#define __ID3D12Device7_FWD_DEFINED__
379typedef interface ID3D12Device7 ID3D12Device7;
380
381#endif /* __ID3D12Device7_FWD_DEFINED__ */
382
383
384#ifndef __ID3D12Device8_FWD_DEFINED__
385#define __ID3D12Device8_FWD_DEFINED__
386typedef interface ID3D12Device8 ID3D12Device8;
387
388#endif /* __ID3D12Device8_FWD_DEFINED__ */
389
390
391#ifndef __ID3D12Resource1_FWD_DEFINED__
392#define __ID3D12Resource1_FWD_DEFINED__
393typedef interface ID3D12Resource1 ID3D12Resource1;
394
395#endif /* __ID3D12Resource1_FWD_DEFINED__ */
396
397
398#ifndef __ID3D12Resource2_FWD_DEFINED__
399#define __ID3D12Resource2_FWD_DEFINED__
400typedef interface ID3D12Resource2 ID3D12Resource2;
401
402#endif /* __ID3D12Resource2_FWD_DEFINED__ */
403
404
405#ifndef __ID3D12Heap1_FWD_DEFINED__
406#define __ID3D12Heap1_FWD_DEFINED__
407typedef interface ID3D12Heap1 ID3D12Heap1;
408
409#endif /* __ID3D12Heap1_FWD_DEFINED__ */
410
411
412#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
413#define __ID3D12GraphicsCommandList3_FWD_DEFINED__
414typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
415
416#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */
417
418
419#ifndef __ID3D12MetaCommand_FWD_DEFINED__
420#define __ID3D12MetaCommand_FWD_DEFINED__
421typedef interface ID3D12MetaCommand ID3D12MetaCommand;
422
423#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */
424
425
426#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
427#define __ID3D12GraphicsCommandList4_FWD_DEFINED__
428typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
429
430#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */
431
432
433#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__
434#define __ID3D12ShaderCacheSession_FWD_DEFINED__
435typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession;
436
437#endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */
438
439
440#ifndef __ID3D12Device9_FWD_DEFINED__
441#define __ID3D12Device9_FWD_DEFINED__
442typedef interface ID3D12Device9 ID3D12Device9;
443
444#endif /* __ID3D12Device9_FWD_DEFINED__ */
445
446
447#ifndef __ID3D12Device10_FWD_DEFINED__
448#define __ID3D12Device10_FWD_DEFINED__
449typedef interface ID3D12Device10 ID3D12Device10;
450
451#endif /* __ID3D12Device10_FWD_DEFINED__ */
452
453
454#ifndef __ID3D12Device11_FWD_DEFINED__
455#define __ID3D12Device11_FWD_DEFINED__
456typedef interface ID3D12Device11 ID3D12Device11;
457
458#endif /* __ID3D12Device11_FWD_DEFINED__ */
459
460
461#ifndef __ID3D12Device12_FWD_DEFINED__
462#define __ID3D12Device12_FWD_DEFINED__
463typedef interface ID3D12Device12 ID3D12Device12;
464
465#endif /* __ID3D12Device12_FWD_DEFINED__ */
466
467
468#ifndef __ID3D12Device13_FWD_DEFINED__
469#define __ID3D12Device13_FWD_DEFINED__
470typedef interface ID3D12Device13 ID3D12Device13;
471
472#endif /* __ID3D12Device13_FWD_DEFINED__ */
473
474
475#ifndef __ID3D12Device14_FWD_DEFINED__
476#define __ID3D12Device14_FWD_DEFINED__
477typedef interface ID3D12Device14 ID3D12Device14;
478
479#endif /* __ID3D12Device14_FWD_DEFINED__ */
480
481
482#ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
483#define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
484typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice;
485
486#endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */
487
488
489#ifndef __ID3D12Tools_FWD_DEFINED__
490#define __ID3D12Tools_FWD_DEFINED__
491typedef interface ID3D12Tools ID3D12Tools;
492
493#endif /* __ID3D12Tools_FWD_DEFINED__ */
494
495
496#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__
497#define __ID3D12SDKConfiguration_FWD_DEFINED__
498typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration;
499
500#endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */
501
502
503#ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__
504#define __ID3D12SDKConfiguration1_FWD_DEFINED__
505typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1;
506
507#endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */
508
509
510#ifndef __ID3D12DeviceFactory_FWD_DEFINED__
511#define __ID3D12DeviceFactory_FWD_DEFINED__
512typedef interface ID3D12DeviceFactory ID3D12DeviceFactory;
513
514#endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */
515
516
517#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__
518#define __ID3D12DeviceConfiguration_FWD_DEFINED__
519typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration;
520
521#endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */
522
523
524#ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__
525#define __ID3D12DeviceConfiguration1_FWD_DEFINED__
526typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1;
527
528#endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */
529
530
531#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
532#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
533typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
534
535#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */
536
537
538#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
539#define __ID3D12GraphicsCommandList6_FWD_DEFINED__
540typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
541
542#endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */
543
544
545#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__
546#define __ID3D12GraphicsCommandList7_FWD_DEFINED__
547typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7;
548
549#endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */
550
551
552#ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__
553#define __ID3D12GraphicsCommandList8_FWD_DEFINED__
554typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8;
555
556#endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */
557
558
559#ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__
560#define __ID3D12GraphicsCommandList9_FWD_DEFINED__
561typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9;
562
563#endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */
564
565
566#ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__
567#define __ID3D12GraphicsCommandList10_FWD_DEFINED__
568typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10;
569
570#endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */
571
572
573#ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__
574#define __ID3D12GBVDiagnostics_FWD_DEFINED__
575typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics;
576
577#endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */
578
579
580/* header files for imported files */
581#include "oaidl.h"
582#include "ocidl.h"
583#include "dxgicommon.h"
584#include "dxgiformat.h"
585#include "d3dcommon.h"
586
587#ifdef __cplusplus
588extern "C"{
589#endif
590
591
592/* interface __MIDL_itf_d3d12_0000_0000 */
593/* [local] */
594
595#include <winapifamily.h>
596#ifdef _MSC_VER
597#pragma region App Family
598#endif
599#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
600#ifndef _D3D12_CONSTANTS
601#define _D3D12_CONSTANTS
602#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff )
603
604#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff )
605
606#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff )
607
608#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff )
609
610#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 )
611
612#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 )
613
614#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 )
615
616#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 )
617
618#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 )
619
620#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 )
621
622#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 )
623
624#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 )
625
626#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
627
628#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 )
629
630#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
631
632#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
633
634#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 )
635
636#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
637
638#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 )
639
640#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
641
642#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
643
644#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 )
645
646#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 )
647
648#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 )
649
650#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 )
651
652#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 )
653
654#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 )
655
656#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 )
657
658#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 )
659
660#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 )
661
662#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 )
663
664#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 )
665
666#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 )
667
668#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 )
669
670#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 )
671
672#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 )
673
674#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 )
675
676#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 )
677
678#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 )
679
680#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 )
681
682#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 )
683
684#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 )
685
686#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 )
687
688#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 )
689
690#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 )
691
692#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 )
693
694#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 )
695
696#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 )
697
698#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 )
699
700#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 )
701
702#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 )
703
704#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 )
705
706#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 )
707
708#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 )
709
710#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 )
711
712#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 )
713
714#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 )
715
716#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 )
717
718#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 )
719
720#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 )
721
722#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 )
723
724#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 )
725
726#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 )
727
728#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 )
729
730#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 )
731
732#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 )
733
734#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 )
735
736#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 )
737
738#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 )
739
740#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 )
741
742#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 )
743
744#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 )
745
746#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 )
747
748#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 )
749
750#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 )
751
752#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 )
753
754#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 )
755
756#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 )
757
758#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 )
759
760#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 )
761
762#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 )
763
764#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 )
765
766#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 )
767
768#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 )
769
770#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 )
771
772#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 )
773
774#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 )
775
776#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 )
777
778#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 )
779
780#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 )
781
782#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 )
783
784#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 )
785
786#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 )
787
788#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 )
789
790#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 )
791
792#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 )
793
794#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 )
795
796#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 )
797
798#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 )
799
800#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 )
801
802#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 )
803
804#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 )
805
806#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )
807#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )
808#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )
809#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )
810#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )
811#define D3D12_DEFAULT_DEPTH_BIAS ( 0 )
812
813#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )
814#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 )
815
816#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )
817#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 )
818
819#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 )
820
821#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
822
823#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff )
824
825#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 )
826
827#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 )
828
829#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 )
830
831#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 )
832
833#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )
834#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff )
835
836#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 )
837
838#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff )
839
840#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 )
841
842#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 )
843
844#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )
845#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )
846#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 )
847
848#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 )
849
850#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 )
851
852#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff )
853
854#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 )
855
856#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
857
858#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
859
860#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
861
862#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
863
864#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 )
865
866#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
867
868#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
869
870#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 )
871
872#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
873
874#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 )
875
876#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 )
877
878#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 )
879
880#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
881
882#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
883
884#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
885
886#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
887
888#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
889
890#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
891
892#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
893
894#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
895
896#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
897
898#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
899
900#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 )
901
902#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
903
904#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 )
905
906#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )
907#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )
908#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )
909#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )
910#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )
911#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )
912#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )
913#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )
914#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )
915#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )
916#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )
917#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )
918#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )
919#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 )
920
921#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 )
922
923#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
924
925#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
926
927#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 )
928
929#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 )
930
931#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 )
932
933#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 )
934
935#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 )
936
937#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 )
938
939#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 )
940
941#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
942
943#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 )
944
945#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 )
946
947#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 )
948
949#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 )
950
951#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 )
952
953#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 )
954
955#define D3D12_GS_OUTPUT_ELEMENTS ( 32 )
956
957#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 )
958
959#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
960
961#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 )
962
963#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 )
964
965#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 )
966
967#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
968
969#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
970
971#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
972
973#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
974
975#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
976
977#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
978
979#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
980
981#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 )
982
983#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
984
985#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
986
987#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
988
989#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
990
991#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 )
992
993#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
994
995#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
996
997#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
998
999#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1000
1001#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
1002
1003#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
1004
1005#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
1006
1007#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
1008
1009#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )
1010#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )
1011#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
1012
1013#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 )
1014
1015#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1016
1017#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 )
1018
1019#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 )
1020
1021#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 )
1022
1023#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
1024
1025#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1026
1027#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
1028
1029#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
1030
1031#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
1032
1033#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 )
1034
1035#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 )
1036
1037#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 )
1038
1039#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 )
1040
1041#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 )
1042
1043#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 )
1044
1045#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 )
1046
1047#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 )
1048
1049#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 )
1050
1051#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 )
1052
1053#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 )
1054
1055#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 )
1056
1057#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 )
1058
1059#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff )
1060
1061#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff )
1062
1063#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff )
1064
1065#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff )
1066
1067#define D3D12_LINEAR_GAMMA ( 1.0f )
1068#define D3D12_MAJOR_VERSION ( 12 )
1069
1070#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )
1071#define D3D12_MAX_DEPTH ( 1.0f )
1072#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 )
1073
1074#define D3D12_MAX_MAXANISOTROPY ( 16 )
1075
1076#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 )
1077
1078#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )
1079#define D3D12_MAX_ROOT_COST ( 64 )
1080
1081#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 )
1082
1083#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 )
1084
1085#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 )
1086
1087#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 )
1088
1089#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 )
1090
1091#define D3D12_MINOR_VERSION ( 0 )
1092
1093#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )
1094#define D3D12_MIN_DEPTH ( 0.0f )
1095#define D3D12_MIN_MAXANISOTROPY ( 0 )
1096
1097#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )
1098#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )
1099#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 )
1100
1101#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 )
1102
1103#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
1104#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
1105
1106#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1107
1108#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
1109
1110#define D3D12_PACKED_TILE ( 0xffffffff )
1111
1112#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
1113
1114#define D3D12_PREVIEW_SDK_VERSION ( 714 )
1115
1116#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1117
1118#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
1119
1120#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
1121
1122#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
1123
1124#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
1125
1126#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
1127
1128#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
1129
1130#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
1131
1132#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
1133
1134#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1135
1136#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
1137
1138#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
1139
1140#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
1141
1142#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
1143#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
1144
1145#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1146
1147#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
1148
1149#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
1150
1151#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1152
1153#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
1154
1155#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1156
1157#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1158
1159#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
1160
1161#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
1162#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
1163
1164#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
1165
1166#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
1167
1168#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
1169
1170#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
1171
1172#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
1173
1174#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1175
1176#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1177
1178#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
1179
1180#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
1181
1182#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
1183
1184#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
1185
1186#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
1187
1188#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
1189
1190#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
1191
1192#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
1193
1194#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1195
1196#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
1197
1198#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
1199
1200#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
1201
1202#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
1203
1204#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
1205
1206#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1207
1208#define D3D12_REQ_MAXANISOTROPY ( 16 )
1209
1210#define D3D12_REQ_MIP_LEVELS ( 15 )
1211
1212#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
1213
1214#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1215
1216#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
1217
1218#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
1219
1220#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
1221#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
1222
1223#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
1224
1225#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1226
1227#define D3D12_REQ_SUBRESOURCES ( 30720 )
1228
1229#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
1230
1231#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
1232
1233#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
1234
1235#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
1236
1237#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
1238
1239#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
1240
1241#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
1242
1243#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
1244
1245#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
1246
1247#define D3D12_SDK_VERSION ( 614 )
1248
1249#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
1250
1251#define D3D12_SHADER_MAJOR_VERSION ( 5 )
1252
1253#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
1254
1255#define D3D12_SHADER_MAX_INTERFACES ( 253 )
1256
1257#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
1258
1259#define D3D12_SHADER_MAX_TYPES ( 65535 )
1260
1261#define D3D12_SHADER_MINOR_VERSION ( 1 )
1262
1263#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
1264
1265#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
1266
1267#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
1268
1269#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
1270
1271#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
1272
1273#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
1274
1275#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
1276
1277#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
1278
1279#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
1280
1281#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
1282
1283#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
1284
1285#define D3D12_SO_STREAM_COUNT ( 4 )
1286
1287#define D3D12_SPEC_DATE_DAY ( 14 )
1288
1289#define D3D12_SPEC_DATE_MONTH ( 11 )
1290
1291#define D3D12_SPEC_DATE_YEAR ( 2014 )
1292
1293#define D3D12_SPEC_VERSION ( 1.16 )
1294#define D3D12_SRGB_GAMMA ( 2.2f )
1295#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
1296#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
1297#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
1298#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
1299#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
1300#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
1301#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
1302
1303#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
1304
1305#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
1306
1307#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
1308
1309#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
1310
1311#define D3D12_STANDARD_VECTOR_SIZE ( 4 )
1312
1313#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
1314
1315#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
1316
1317#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
1318
1319#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
1320
1321#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1322
1323#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
1324
1325#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
1326
1327#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
1328
1329#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
1330
1331#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
1332
1333#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
1334
1335#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
1336
1337#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
1338
1339#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1340
1341#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
1342
1343#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
1344
1345#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
1346
1347#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
1348
1349#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
1350
1351#define D3D12_UAV_SLOT_COUNT ( 64 )
1352
1353#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
1354
1355#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
1356
1357#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
1358
1359#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
1360
1361#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
1362
1363#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
1364
1365#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff )
1366
1367#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 )
1368
1369#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 )
1370
1371#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 )
1372
1373#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 )
1374
1375#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
1376
1377#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
1378
1379#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
1380
1381#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
1382
1383#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
1384
1385#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
1386
1387#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
1388
1389#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1390
1391#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
1392
1393#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
1394
1395#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
1396
1397#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1398
1399#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1400
1401#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
1402
1403#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
1404
1405#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
1406
1407#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
1408
1409#define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 )
1410
1411#define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 )
1412
1413#endif
1414
1415typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
1416
1417typedef
1418enum D3D12_COMMAND_LIST_TYPE
1419 {
1420 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
1421 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
1422 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
1423 D3D12_COMMAND_LIST_TYPE_COPY = 3,
1424 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
1425 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
1426 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6,
1427 D3D12_COMMAND_LIST_TYPE_NONE = -1
1428 } D3D12_COMMAND_LIST_TYPE;
1429
1430typedef
1431enum D3D12_COMMAND_QUEUE_FLAGS
1432 {
1433 D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
1434 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
1435 } D3D12_COMMAND_QUEUE_FLAGS;
1436
1437DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )
1438typedef
1439enum D3D12_COMMAND_QUEUE_PRIORITY
1440 {
1441 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
1442 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
1443 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
1444 } D3D12_COMMAND_QUEUE_PRIORITY;
1445
1446typedef struct D3D12_COMMAND_QUEUE_DESC
1447 {
1448 D3D12_COMMAND_LIST_TYPE Type;
1449 INT Priority;
1450 D3D12_COMMAND_QUEUE_FLAGS Flags;
1451 UINT NodeMask;
1452 } D3D12_COMMAND_QUEUE_DESC;
1453
1454typedef
1455enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
1456 {
1457 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
1458 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
1459 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
1460 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
1461 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
1462 } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
1463
1464typedef
1465enum D3D12_INPUT_CLASSIFICATION
1466 {
1467 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
1468 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
1469 } D3D12_INPUT_CLASSIFICATION;
1470
1471typedef struct D3D12_INPUT_ELEMENT_DESC
1472 {
1473 LPCSTR SemanticName;
1474 UINT SemanticIndex;
1475 DXGI_FORMAT Format;
1476 UINT InputSlot;
1477 UINT AlignedByteOffset;
1478 D3D12_INPUT_CLASSIFICATION InputSlotClass;
1479 UINT InstanceDataStepRate;
1480 } D3D12_INPUT_ELEMENT_DESC;
1481
1482typedef
1483enum D3D12_FILL_MODE
1484 {
1485 D3D12_FILL_MODE_WIREFRAME = 2,
1486 D3D12_FILL_MODE_SOLID = 3
1487 } D3D12_FILL_MODE;
1488
1489typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
1490
1491typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
1492
1493typedef
1494enum D3D12_CULL_MODE
1495 {
1496 D3D12_CULL_MODE_NONE = 1,
1497 D3D12_CULL_MODE_FRONT = 2,
1498 D3D12_CULL_MODE_BACK = 3
1499 } D3D12_CULL_MODE;
1500
1501typedef struct D3D12_SO_DECLARATION_ENTRY
1502 {
1503 UINT Stream;
1504 LPCSTR SemanticName;
1505 UINT SemanticIndex;
1506 BYTE StartComponent;
1507 BYTE ComponentCount;
1508 BYTE OutputSlot;
1509 } D3D12_SO_DECLARATION_ENTRY;
1510
1511typedef struct D3D12_VIEWPORT
1512 {
1513 FLOAT TopLeftX;
1514 FLOAT TopLeftY;
1515 FLOAT Width;
1516 FLOAT Height;
1517 FLOAT MinDepth;
1518 FLOAT MaxDepth;
1519 } D3D12_VIEWPORT;
1520
1521typedef RECT D3D12_RECT;
1522
1523typedef struct D3D12_BOX
1524 {
1525 UINT left;
1526 UINT top;
1527 UINT front;
1528 UINT right;
1529 UINT bottom;
1530 UINT back;
1531 } D3D12_BOX;
1532
1533typedef
1534enum D3D12_COMPARISON_FUNC
1535 {
1536 D3D12_COMPARISON_FUNC_NONE = 0,
1537 D3D12_COMPARISON_FUNC_NEVER = 1,
1538 D3D12_COMPARISON_FUNC_LESS = 2,
1539 D3D12_COMPARISON_FUNC_EQUAL = 3,
1540 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
1541 D3D12_COMPARISON_FUNC_GREATER = 5,
1542 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
1543 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
1544 D3D12_COMPARISON_FUNC_ALWAYS = 8
1545 } D3D12_COMPARISON_FUNC;
1546
1547typedef
1548enum D3D12_DEPTH_WRITE_MASK
1549 {
1550 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
1551 D3D12_DEPTH_WRITE_MASK_ALL = 1
1552 } D3D12_DEPTH_WRITE_MASK;
1553
1554typedef
1555enum D3D12_STENCIL_OP
1556 {
1557 D3D12_STENCIL_OP_KEEP = 1,
1558 D3D12_STENCIL_OP_ZERO = 2,
1559 D3D12_STENCIL_OP_REPLACE = 3,
1560 D3D12_STENCIL_OP_INCR_SAT = 4,
1561 D3D12_STENCIL_OP_DECR_SAT = 5,
1562 D3D12_STENCIL_OP_INVERT = 6,
1563 D3D12_STENCIL_OP_INCR = 7,
1564 D3D12_STENCIL_OP_DECR = 8
1565 } D3D12_STENCIL_OP;
1566
1567typedef struct D3D12_DEPTH_STENCILOP_DESC
1568 {
1569 D3D12_STENCIL_OP StencilFailOp;
1570 D3D12_STENCIL_OP StencilDepthFailOp;
1571 D3D12_STENCIL_OP StencilPassOp;
1572 D3D12_COMPARISON_FUNC StencilFunc;
1573 } D3D12_DEPTH_STENCILOP_DESC;
1574
1575typedef struct D3D12_DEPTH_STENCIL_DESC
1576 {
1577 BOOL DepthEnable;
1578 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1579 D3D12_COMPARISON_FUNC DepthFunc;
1580 BOOL StencilEnable;
1581 UINT8 StencilReadMask;
1582 UINT8 StencilWriteMask;
1583 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1584 D3D12_DEPTH_STENCILOP_DESC BackFace;
1585 } D3D12_DEPTH_STENCIL_DESC;
1586
1587typedef struct D3D12_DEPTH_STENCIL_DESC1
1588 {
1589 BOOL DepthEnable;
1590 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1591 D3D12_COMPARISON_FUNC DepthFunc;
1592 BOOL StencilEnable;
1593 UINT8 StencilReadMask;
1594 UINT8 StencilWriteMask;
1595 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1596 D3D12_DEPTH_STENCILOP_DESC BackFace;
1597 BOOL DepthBoundsTestEnable;
1598 } D3D12_DEPTH_STENCIL_DESC1;
1599
1600typedef struct D3D12_DEPTH_STENCILOP_DESC1
1601 {
1602 D3D12_STENCIL_OP StencilFailOp;
1603 D3D12_STENCIL_OP StencilDepthFailOp;
1604 D3D12_STENCIL_OP StencilPassOp;
1605 D3D12_COMPARISON_FUNC StencilFunc;
1606 UINT8 StencilReadMask;
1607 UINT8 StencilWriteMask;
1608 } D3D12_DEPTH_STENCILOP_DESC1;
1609
1610typedef struct D3D12_DEPTH_STENCIL_DESC2
1611 {
1612 BOOL DepthEnable;
1613 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1614 D3D12_COMPARISON_FUNC DepthFunc;
1615 BOOL StencilEnable;
1616 D3D12_DEPTH_STENCILOP_DESC1 FrontFace;
1617 D3D12_DEPTH_STENCILOP_DESC1 BackFace;
1618 BOOL DepthBoundsTestEnable;
1619 } D3D12_DEPTH_STENCIL_DESC2;
1620
1621typedef
1622enum D3D12_BLEND
1623 {
1624 D3D12_BLEND_ZERO = 1,
1625 D3D12_BLEND_ONE = 2,
1626 D3D12_BLEND_SRC_COLOR = 3,
1627 D3D12_BLEND_INV_SRC_COLOR = 4,
1628 D3D12_BLEND_SRC_ALPHA = 5,
1629 D3D12_BLEND_INV_SRC_ALPHA = 6,
1630 D3D12_BLEND_DEST_ALPHA = 7,
1631 D3D12_BLEND_INV_DEST_ALPHA = 8,
1632 D3D12_BLEND_DEST_COLOR = 9,
1633 D3D12_BLEND_INV_DEST_COLOR = 10,
1634 D3D12_BLEND_SRC_ALPHA_SAT = 11,
1635 D3D12_BLEND_BLEND_FACTOR = 14,
1636 D3D12_BLEND_INV_BLEND_FACTOR = 15,
1637 D3D12_BLEND_SRC1_COLOR = 16,
1638 D3D12_BLEND_INV_SRC1_COLOR = 17,
1639 D3D12_BLEND_SRC1_ALPHA = 18,
1640 D3D12_BLEND_INV_SRC1_ALPHA = 19,
1641 D3D12_BLEND_ALPHA_FACTOR = 20,
1642 D3D12_BLEND_INV_ALPHA_FACTOR = 21
1643 } D3D12_BLEND;
1644
1645typedef
1646enum D3D12_BLEND_OP
1647 {
1648 D3D12_BLEND_OP_ADD = 1,
1649 D3D12_BLEND_OP_SUBTRACT = 2,
1650 D3D12_BLEND_OP_REV_SUBTRACT = 3,
1651 D3D12_BLEND_OP_MIN = 4,
1652 D3D12_BLEND_OP_MAX = 5
1653 } D3D12_BLEND_OP;
1654
1655typedef
1656enum D3D12_COLOR_WRITE_ENABLE
1657 {
1658 D3D12_COLOR_WRITE_ENABLE_RED = 1,
1659 D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
1660 D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
1661 D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
1662 D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA )
1663 } D3D12_COLOR_WRITE_ENABLE;
1664
1665typedef
1666enum D3D12_LOGIC_OP
1667 {
1668 D3D12_LOGIC_OP_CLEAR = 0,
1669 D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
1670 D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
1671 D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
1672 D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
1673 D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
1674 D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
1675 D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
1676 D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
1677 D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
1678 D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
1679 D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
1680 D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
1681 D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
1682 D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
1683 D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
1684 } D3D12_LOGIC_OP;
1685
1686typedef struct D3D12_RENDER_TARGET_BLEND_DESC
1687 {
1688 BOOL BlendEnable;
1689 BOOL LogicOpEnable;
1690 D3D12_BLEND SrcBlend;
1691 D3D12_BLEND DestBlend;
1692 D3D12_BLEND_OP BlendOp;
1693 D3D12_BLEND SrcBlendAlpha;
1694 D3D12_BLEND DestBlendAlpha;
1695 D3D12_BLEND_OP BlendOpAlpha;
1696 D3D12_LOGIC_OP LogicOp;
1697 UINT8 RenderTargetWriteMask;
1698 } D3D12_RENDER_TARGET_BLEND_DESC;
1699
1700typedef struct D3D12_BLEND_DESC
1701 {
1702 BOOL AlphaToCoverageEnable;
1703 BOOL IndependentBlendEnable;
1704 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1705 } D3D12_BLEND_DESC;
1706
1707/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
1708 IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1709typedef
1710enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
1711 {
1712 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
1713 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
1714 } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
1715
1716typedef struct D3D12_RASTERIZER_DESC
1717 {
1718 D3D12_FILL_MODE FillMode;
1719 D3D12_CULL_MODE CullMode;
1720 BOOL FrontCounterClockwise;
1721 INT DepthBias;
1722 FLOAT DepthBiasClamp;
1723 FLOAT SlopeScaledDepthBias;
1724 BOOL DepthClipEnable;
1725 BOOL MultisampleEnable;
1726 BOOL AntialiasedLineEnable;
1727 UINT ForcedSampleCount;
1728 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1729 } D3D12_RASTERIZER_DESC;
1730
1731typedef struct D3D12_RASTERIZER_DESC1
1732 {
1733 D3D12_FILL_MODE FillMode;
1734 D3D12_CULL_MODE CullMode;
1735 BOOL FrontCounterClockwise;
1736 FLOAT DepthBias;
1737 FLOAT DepthBiasClamp;
1738 FLOAT SlopeScaledDepthBias;
1739 BOOL DepthClipEnable;
1740 BOOL MultisampleEnable;
1741 BOOL AntialiasedLineEnable;
1742 UINT ForcedSampleCount;
1743 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1744 } D3D12_RASTERIZER_DESC1;
1745
1746typedef
1747enum D3D12_LINE_RASTERIZATION_MODE
1748 {
1749 D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0,
1750 D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) ,
1751 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) ,
1752 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 )
1753 } D3D12_LINE_RASTERIZATION_MODE;
1754
1755typedef struct D3D12_RASTERIZER_DESC2
1756 {
1757 D3D12_FILL_MODE FillMode;
1758 D3D12_CULL_MODE CullMode;
1759 BOOL FrontCounterClockwise;
1760 FLOAT DepthBias;
1761 FLOAT DepthBiasClamp;
1762 FLOAT SlopeScaledDepthBias;
1763 BOOL DepthClipEnable;
1764 D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode;
1765 UINT ForcedSampleCount;
1766 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1767 } D3D12_RASTERIZER_DESC2;
1768
1769
1770
1771extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
1772extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
1773
1774#ifndef __ID3D12Object_INTERFACE_DEFINED__
1775#define __ID3D12Object_INTERFACE_DEFINED__
1776
1777/* interface ID3D12Object */
1778/* [unique][local][object][uuid] */
1779
1780
1781EXTERN_C const IID IID_ID3D12Object;
1782
1783#if defined(__cplusplus) && !defined(CINTERFACE)
1784
1785 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1786 ID3D12Object : public IUnknown
1787 {
1788 public:
1789 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1790 _In_ REFGUID guid,
1791 _Inout_ UINT *pDataSize,
1792 _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
1793
1794 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1795 _In_ REFGUID guid,
1796 _In_ UINT DataSize,
1797 _In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
1798
1799 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1800 _In_ REFGUID guid,
1801 _In_opt_ const IUnknown *pData) = 0;
1802
1803 virtual HRESULT STDMETHODCALLTYPE SetName(
1804 _In_z_ LPCWSTR Name) = 0;
1805
1806 };
1807
1808
1809#else /* C style interface */
1810
1811 typedef struct ID3D12ObjectVtbl
1812 {
1813 BEGIN_INTERFACE
1814
1815 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1816 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1817 ID3D12Object * This,
1818 REFIID riid,
1819 _COM_Outptr_ void **ppvObject);
1820
1821 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1822 ULONG ( STDMETHODCALLTYPE *AddRef )(
1823 ID3D12Object * This);
1824
1825 DECLSPEC_XFGVIRT(IUnknown, Release)
1826 ULONG ( STDMETHODCALLTYPE *Release )(
1827 ID3D12Object * This);
1828
1829 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1830 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1831 ID3D12Object * This,
1832 _In_ REFGUID guid,
1833 _Inout_ UINT *pDataSize,
1834 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1835
1836 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1837 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1838 ID3D12Object * This,
1839 _In_ REFGUID guid,
1840 _In_ UINT DataSize,
1841 _In_reads_bytes_opt_( DataSize ) const void *pData);
1842
1843 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1844 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1845 ID3D12Object * This,
1846 _In_ REFGUID guid,
1847 _In_opt_ const IUnknown *pData);
1848
1849 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1850 HRESULT ( STDMETHODCALLTYPE *SetName )(
1851 ID3D12Object * This,
1852 _In_z_ LPCWSTR Name);
1853
1854 END_INTERFACE
1855 } ID3D12ObjectVtbl;
1856
1857 interface ID3D12Object
1858 {
1859 CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1860 };
1861
1862
1863
1864#ifdef COBJMACROS
1865
1866
1867#define ID3D12Object_QueryInterface(This,riid,ppvObject) \
1868 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1869
1870#define ID3D12Object_AddRef(This) \
1871 ( (This)->lpVtbl -> AddRef(This) )
1872
1873#define ID3D12Object_Release(This) \
1874 ( (This)->lpVtbl -> Release(This) )
1875
1876
1877#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
1878 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1879
1880#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
1881 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1882
1883#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
1884 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1885
1886#define ID3D12Object_SetName(This,Name) \
1887 ( (This)->lpVtbl -> SetName(This,Name) )
1888
1889#endif /* COBJMACROS */
1890
1891
1892#endif /* C style interface */
1893
1894
1895
1896
1897#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
1898
1899
1900#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
1901#define __ID3D12DeviceChild_INTERFACE_DEFINED__
1902
1903/* interface ID3D12DeviceChild */
1904/* [unique][local][object][uuid] */
1905
1906
1907EXTERN_C const IID IID_ID3D12DeviceChild;
1908
1909#if defined(__cplusplus) && !defined(CINTERFACE)
1910
1911 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
1912 ID3D12DeviceChild : public ID3D12Object
1913 {
1914 public:
1915 virtual HRESULT STDMETHODCALLTYPE GetDevice(
1916 REFIID riid,
1917 _COM_Outptr_opt_ void **ppvDevice) = 0;
1918
1919 };
1920
1921
1922#else /* C style interface */
1923
1924 typedef struct ID3D12DeviceChildVtbl
1925 {
1926 BEGIN_INTERFACE
1927
1928 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1929 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1930 ID3D12DeviceChild * This,
1931 REFIID riid,
1932 _COM_Outptr_ void **ppvObject);
1933
1934 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1935 ULONG ( STDMETHODCALLTYPE *AddRef )(
1936 ID3D12DeviceChild * This);
1937
1938 DECLSPEC_XFGVIRT(IUnknown, Release)
1939 ULONG ( STDMETHODCALLTYPE *Release )(
1940 ID3D12DeviceChild * This);
1941
1942 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1943 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1944 ID3D12DeviceChild * This,
1945 _In_ REFGUID guid,
1946 _Inout_ UINT *pDataSize,
1947 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1948
1949 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1950 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1951 ID3D12DeviceChild * This,
1952 _In_ REFGUID guid,
1953 _In_ UINT DataSize,
1954 _In_reads_bytes_opt_( DataSize ) const void *pData);
1955
1956 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1957 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1958 ID3D12DeviceChild * This,
1959 _In_ REFGUID guid,
1960 _In_opt_ const IUnknown *pData);
1961
1962 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1963 HRESULT ( STDMETHODCALLTYPE *SetName )(
1964 ID3D12DeviceChild * This,
1965 _In_z_ LPCWSTR Name);
1966
1967 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1968 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1969 ID3D12DeviceChild * This,
1970 REFIID riid,
1971 _COM_Outptr_opt_ void **ppvDevice);
1972
1973 END_INTERFACE
1974 } ID3D12DeviceChildVtbl;
1975
1976 interface ID3D12DeviceChild
1977 {
1978 CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
1979 };
1980
1981
1982
1983#ifdef COBJMACROS
1984
1985
1986#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
1987 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1988
1989#define ID3D12DeviceChild_AddRef(This) \
1990 ( (This)->lpVtbl -> AddRef(This) )
1991
1992#define ID3D12DeviceChild_Release(This) \
1993 ( (This)->lpVtbl -> Release(This) )
1994
1995
1996#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
1997 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1998
1999#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
2000 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2001
2002#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
2003 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2004
2005#define ID3D12DeviceChild_SetName(This,Name) \
2006 ( (This)->lpVtbl -> SetName(This,Name) )
2007
2008
2009#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
2010 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2011
2012#endif /* COBJMACROS */
2013
2014
2015#endif /* C style interface */
2016
2017
2018
2019
2020#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
2021
2022
2023#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
2024#define __ID3D12RootSignature_INTERFACE_DEFINED__
2025
2026/* interface ID3D12RootSignature */
2027/* [unique][local][object][uuid] */
2028
2029
2030EXTERN_C const IID IID_ID3D12RootSignature;
2031
2032#if defined(__cplusplus) && !defined(CINTERFACE)
2033
2034 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
2035 ID3D12RootSignature : public ID3D12DeviceChild
2036 {
2037 public:
2038 };
2039
2040
2041#else /* C style interface */
2042
2043 typedef struct ID3D12RootSignatureVtbl
2044 {
2045 BEGIN_INTERFACE
2046
2047 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2048 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2049 ID3D12RootSignature * This,
2050 REFIID riid,
2051 _COM_Outptr_ void **ppvObject);
2052
2053 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2054 ULONG ( STDMETHODCALLTYPE *AddRef )(
2055 ID3D12RootSignature * This);
2056
2057 DECLSPEC_XFGVIRT(IUnknown, Release)
2058 ULONG ( STDMETHODCALLTYPE *Release )(
2059 ID3D12RootSignature * This);
2060
2061 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2062 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2063 ID3D12RootSignature * This,
2064 _In_ REFGUID guid,
2065 _Inout_ UINT *pDataSize,
2066 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2067
2068 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2069 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2070 ID3D12RootSignature * This,
2071 _In_ REFGUID guid,
2072 _In_ UINT DataSize,
2073 _In_reads_bytes_opt_( DataSize ) const void *pData);
2074
2075 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2076 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2077 ID3D12RootSignature * This,
2078 _In_ REFGUID guid,
2079 _In_opt_ const IUnknown *pData);
2080
2081 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2082 HRESULT ( STDMETHODCALLTYPE *SetName )(
2083 ID3D12RootSignature * This,
2084 _In_z_ LPCWSTR Name);
2085
2086 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2087 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2088 ID3D12RootSignature * This,
2089 REFIID riid,
2090 _COM_Outptr_opt_ void **ppvDevice);
2091
2092 END_INTERFACE
2093 } ID3D12RootSignatureVtbl;
2094
2095 interface ID3D12RootSignature
2096 {
2097 CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
2098 };
2099
2100
2101
2102#ifdef COBJMACROS
2103
2104
2105#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
2106 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2107
2108#define ID3D12RootSignature_AddRef(This) \
2109 ( (This)->lpVtbl -> AddRef(This) )
2110
2111#define ID3D12RootSignature_Release(This) \
2112 ( (This)->lpVtbl -> Release(This) )
2113
2114
2115#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
2116 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2117
2118#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
2119 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2120
2121#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
2122 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2123
2124#define ID3D12RootSignature_SetName(This,Name) \
2125 ( (This)->lpVtbl -> SetName(This,Name) )
2126
2127
2128#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
2129 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2130
2131
2132#endif /* COBJMACROS */
2133
2134
2135#endif /* C style interface */
2136
2137
2138
2139
2140#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
2141
2142
2143/* interface __MIDL_itf_d3d12_0000_0001 */
2144/* [local] */
2145
2146typedef struct D3D12_SHADER_BYTECODE
2147 {
2148 _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
2149 SIZE_T BytecodeLength;
2150 } D3D12_SHADER_BYTECODE;
2151
2152typedef struct D3D12_STREAM_OUTPUT_DESC
2153 {
2154 _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
2155 UINT NumEntries;
2156 _Field_size_full_(NumStrides) const UINT *pBufferStrides;
2157 UINT NumStrides;
2158 UINT RasterizedStream;
2159 } D3D12_STREAM_OUTPUT_DESC;
2160
2161typedef struct D3D12_INPUT_LAYOUT_DESC
2162 {
2163 _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2164 UINT NumElements;
2165 } D3D12_INPUT_LAYOUT_DESC;
2166
2167typedef
2168enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
2169 {
2170 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
2171 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
2172 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
2173 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
2174
2175typedef
2176enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS
2177 {
2178 D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
2179 D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
2180 } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
2181
2182typedef struct D3D12_CACHED_PIPELINE_STATE
2183 {
2184 _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
2185 SIZE_T CachedBlobSizeInBytes;
2186 } D3D12_CACHED_PIPELINE_STATE;
2187
2188typedef
2189enum D3D12_PIPELINE_STATE_FLAGS
2190 {
2191 D3D12_PIPELINE_STATE_FLAG_NONE = 0,
2192 D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1,
2193 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4,
2194 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8
2195 } D3D12_PIPELINE_STATE_FLAGS;
2196
2197DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )
2198typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
2199 {
2200 ID3D12RootSignature *pRootSignature;
2201 D3D12_SHADER_BYTECODE VS;
2202 D3D12_SHADER_BYTECODE PS;
2203 D3D12_SHADER_BYTECODE DS;
2204 D3D12_SHADER_BYTECODE HS;
2205 D3D12_SHADER_BYTECODE GS;
2206 D3D12_STREAM_OUTPUT_DESC StreamOutput;
2207 D3D12_BLEND_DESC BlendState;
2208 UINT SampleMask;
2209 D3D12_RASTERIZER_DESC RasterizerState;
2210 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
2211 D3D12_INPUT_LAYOUT_DESC InputLayout;
2212 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
2213 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
2214 UINT NumRenderTargets;
2215 DXGI_FORMAT RTVFormats[ 8 ];
2216 DXGI_FORMAT DSVFormat;
2217 DXGI_SAMPLE_DESC SampleDesc;
2218 UINT NodeMask;
2219 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2220 D3D12_PIPELINE_STATE_FLAGS Flags;
2221 } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
2222
2223typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
2224 {
2225 ID3D12RootSignature *pRootSignature;
2226 D3D12_SHADER_BYTECODE CS;
2227 UINT NodeMask;
2228 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2229 D3D12_PIPELINE_STATE_FLAGS Flags;
2230 } D3D12_COMPUTE_PIPELINE_STATE_DESC;
2231
2232struct D3D12_RT_FORMAT_ARRAY
2233 {
2234 DXGI_FORMAT RTFormats[ 8 ];
2235 UINT NumRenderTargets;
2236 } ;
2237typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
2238 {
2239 _In_ SIZE_T SizeInBytes;
2240 _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
2241 } D3D12_PIPELINE_STATE_STREAM_DESC;
2242
2243typedef
2244enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
2245 {
2246 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
2247 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
2248 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
2249 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
2250 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
2251 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
2252 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
2253 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
2254 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
2255 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
2256 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
2257 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
2258 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
2259 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
2260 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
2261 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
2262 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
2263 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
2264 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
2265 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
2266 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
2267 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
2268 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
2269 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24,
2270 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25,
2271 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26,
2272 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27,
2273 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28,
2274 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 + 1 )
2275 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2276
2277typedef
2278enum D3D12_FEATURE
2279 {
2280 D3D12_FEATURE_D3D12_OPTIONS = 0,
2281 D3D12_FEATURE_ARCHITECTURE = 1,
2282 D3D12_FEATURE_FEATURE_LEVELS = 2,
2283 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2284 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2285 D3D12_FEATURE_FORMAT_INFO = 5,
2286 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2287 D3D12_FEATURE_SHADER_MODEL = 7,
2288 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2289 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2290 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2291 D3D12_FEATURE_ARCHITECTURE1 = 16,
2292 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2293 D3D12_FEATURE_SHADER_CACHE = 19,
2294 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2295 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2296 D3D12_FEATURE_EXISTING_HEAPS = 22,
2297 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
2298 D3D12_FEATURE_SERIALIZATION = 24,
2299 D3D12_FEATURE_CROSS_NODE = 25,
2300 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
2301 D3D12_FEATURE_DISPLAYABLE = 28,
2302 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
2303 D3D12_FEATURE_QUERY_META_COMMAND = 31,
2304 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
2305 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
2306 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
2307 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
2308 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
2309 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
2310 D3D12_FEATURE_D3D12_OPTIONS11 = 40,
2311 D3D12_FEATURE_D3D12_OPTIONS12 = 41,
2312 D3D12_FEATURE_D3D12_OPTIONS13 = 42,
2313 D3D12_FEATURE_D3D12_OPTIONS14 = 43,
2314 D3D12_FEATURE_D3D12_OPTIONS15 = 44,
2315 D3D12_FEATURE_D3D12_OPTIONS16 = 45,
2316 D3D12_FEATURE_D3D12_OPTIONS17 = 46,
2317 D3D12_FEATURE_D3D12_OPTIONS18 = 47,
2318 D3D12_FEATURE_D3D12_OPTIONS19 = 48,
2319 D3D12_FEATURE_D3D12_OPTIONS20 = 49,
2320 D3D12_FEATURE_PREDICATION = 50,
2321 D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51,
2322 D3D12_FEATURE_HARDWARE_COPY = 52,
2323 D3D12_FEATURE_D3D12_OPTIONS21 = 53
2324 } D3D12_FEATURE;
2325
2326typedef
2327enum D3D12_SHADER_MIN_PRECISION_SUPPORT
2328 {
2329 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
2330 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
2331 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
2332 } D3D12_SHADER_MIN_PRECISION_SUPPORT;
2333
2334DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )
2335typedef
2336enum D3D12_TILED_RESOURCES_TIER
2337 {
2338 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
2339 D3D12_TILED_RESOURCES_TIER_1 = 1,
2340 D3D12_TILED_RESOURCES_TIER_2 = 2,
2341 D3D12_TILED_RESOURCES_TIER_3 = 3,
2342 D3D12_TILED_RESOURCES_TIER_4 = 4
2343 } D3D12_TILED_RESOURCES_TIER;
2344
2345typedef
2346enum D3D12_RESOURCE_BINDING_TIER
2347 {
2348 D3D12_RESOURCE_BINDING_TIER_1 = 1,
2349 D3D12_RESOURCE_BINDING_TIER_2 = 2,
2350 D3D12_RESOURCE_BINDING_TIER_3 = 3
2351 } D3D12_RESOURCE_BINDING_TIER;
2352
2353typedef
2354enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
2355 {
2356 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
2357 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
2358 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
2359 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
2360 } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
2361
2362typedef
2363enum D3D12_FORMAT_SUPPORT1
2364 {
2365 D3D12_FORMAT_SUPPORT1_NONE = 0,
2366 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
2367 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
2368 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
2369 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
2370 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
2371 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
2372 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
2373 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
2374 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
2375 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
2376 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
2377 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
2378 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
2379 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
2380 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
2381 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
2382 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
2383 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
2384 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
2385 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
2386 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
2387 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
2388 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
2389 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
2390 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
2391 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
2392 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
2393 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
2394 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
2395 } D3D12_FORMAT_SUPPORT1;
2396
2397DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )
2398typedef
2399enum D3D12_FORMAT_SUPPORT2
2400 {
2401 D3D12_FORMAT_SUPPORT2_NONE = 0,
2402 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
2403 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
2404 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
2405 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
2406 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
2407 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
2408 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
2409 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
2410 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
2411 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
2412 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
2413 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000
2414 } D3D12_FORMAT_SUPPORT2;
2415
2416DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )
2417typedef
2418enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
2419 {
2420 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
2421 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
2422 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
2423
2424DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )
2425typedef
2426enum D3D12_CROSS_NODE_SHARING_TIER
2427 {
2428 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
2429 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
2430 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
2431 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
2432 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
2433 } D3D12_CROSS_NODE_SHARING_TIER;
2434
2435typedef
2436enum D3D12_RESOURCE_HEAP_TIER
2437 {
2438 D3D12_RESOURCE_HEAP_TIER_1 = 1,
2439 D3D12_RESOURCE_HEAP_TIER_2 = 2
2440 } D3D12_RESOURCE_HEAP_TIER;
2441
2442typedef
2443enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
2444 {
2445 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
2446 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
2447 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
2448 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
2449
2450typedef
2451enum D3D12_VIEW_INSTANCING_TIER
2452 {
2453 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
2454 D3D12_VIEW_INSTANCING_TIER_1 = 1,
2455 D3D12_VIEW_INSTANCING_TIER_2 = 2,
2456 D3D12_VIEW_INSTANCING_TIER_3 = 3
2457 } D3D12_VIEW_INSTANCING_TIER;
2458
2459typedef
2460enum D3D12_WORK_GRAPHS_TIER
2461 {
2462 D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0,
2463 D3D12_WORK_GRAPHS_TIER_1_0 = 10
2464 } D3D12_WORK_GRAPHS_TIER;
2465
2466typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
2467 {
2468 _Out_ BOOL DoublePrecisionFloatShaderOps;
2469 _Out_ BOOL OutputMergerLogicOp;
2470 _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
2471 _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
2472 _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
2473 _Out_ BOOL PSSpecifiedStencilRefSupported;
2474 _Out_ BOOL TypedUAVLoadAdditionalFormats;
2475 _Out_ BOOL ROVsSupported;
2476 _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
2477 _Out_ UINT MaxGPUVirtualAddressBitsPerResource;
2478 _Out_ BOOL StandardSwizzle64KBSupported;
2479 _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
2480 _Out_ BOOL CrossAdapterRowMajorTextureSupported;
2481 _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
2482 _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
2483 } D3D12_FEATURE_DATA_D3D12_OPTIONS;
2484
2485typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
2486 {
2487 _Out_ BOOL WaveOps;
2488 _Out_ UINT WaveLaneCountMin;
2489 _Out_ UINT WaveLaneCountMax;
2490 _Out_ UINT TotalLaneCount;
2491 _Out_ BOOL ExpandedComputeResourceStates;
2492 _Out_ BOOL Int64ShaderOps;
2493 } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2494
2495typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
2496 {
2497 _Out_ BOOL DepthBoundsTestSupported;
2498 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2499 } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2500
2501typedef
2502enum D3D_ROOT_SIGNATURE_VERSION
2503 {
2504 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2505 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2506 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
2507 D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3
2508 } D3D_ROOT_SIGNATURE_VERSION;
2509
2510typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
2511 {
2512 _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2513 } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2514
2515typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
2516 {
2517 _In_ UINT NodeIndex;
2518 _Out_ BOOL TileBasedRenderer;
2519 _Out_ BOOL UMA;
2520 _Out_ BOOL CacheCoherentUMA;
2521 } D3D12_FEATURE_DATA_ARCHITECTURE;
2522
2523typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
2524 {
2525 _In_ UINT NodeIndex;
2526 _Out_ BOOL TileBasedRenderer;
2527 _Out_ BOOL UMA;
2528 _Out_ BOOL CacheCoherentUMA;
2529 _Out_ BOOL IsolatedMMU;
2530 } D3D12_FEATURE_DATA_ARCHITECTURE1;
2531
2532typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
2533 {
2534 _In_ UINT NumFeatureLevels;
2535 _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2536 _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2537 } D3D12_FEATURE_DATA_FEATURE_LEVELS;
2538
2539typedef
2540enum D3D_SHADER_MODEL
2541 {
2542 D3D_SHADER_MODEL_NONE = 0,
2543 D3D_SHADER_MODEL_5_1 = 0x51,
2544 D3D_SHADER_MODEL_6_0 = 0x60,
2545 D3D_SHADER_MODEL_6_1 = 0x61,
2546 D3D_SHADER_MODEL_6_2 = 0x62,
2547 D3D_SHADER_MODEL_6_3 = 0x63,
2548 D3D_SHADER_MODEL_6_4 = 0x64,
2549 D3D_SHADER_MODEL_6_5 = 0x65,
2550 D3D_SHADER_MODEL_6_6 = 0x66,
2551 D3D_SHADER_MODEL_6_7 = 0x67,
2552 D3D_SHADER_MODEL_6_8 = 0x68,
2553 D3D_SHADER_MODEL_6_9 = 0x69,
2554 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9
2555 } D3D_SHADER_MODEL;
2556
2557typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
2558 {
2559 _Inout_ D3D_SHADER_MODEL HighestShaderModel;
2560 } D3D12_FEATURE_DATA_SHADER_MODEL;
2561
2562typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
2563 {
2564 _In_ DXGI_FORMAT Format;
2565 _Out_ D3D12_FORMAT_SUPPORT1 Support1;
2566 _Out_ D3D12_FORMAT_SUPPORT2 Support2;
2567 } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
2568
2569typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
2570 {
2571 _In_ DXGI_FORMAT Format;
2572 _In_ UINT SampleCount;
2573 _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
2574 _Out_ UINT NumQualityLevels;
2575 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
2576
2577typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
2578 {
2579 DXGI_FORMAT Format;
2580 UINT8 PlaneCount;
2581 } D3D12_FEATURE_DATA_FORMAT_INFO;
2582
2583typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
2584 {
2585 UINT MaxGPUVirtualAddressBitsPerResource;
2586 UINT MaxGPUVirtualAddressBitsPerProcess;
2587 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2588
2589typedef
2590enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
2591 {
2592 D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
2593 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
2594 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
2595 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
2596 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
2597 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
2598 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
2599 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
2600 } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
2601
2602DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )
2603typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
2604 {
2605 _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2606 } D3D12_FEATURE_DATA_SHADER_CACHE;
2607
2608typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
2609 {
2610 _In_ D3D12_COMMAND_LIST_TYPE CommandListType;
2611 _In_ UINT Priority;
2612 _Out_ BOOL PriorityForTypeIsSupported;
2613 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2614
2615typedef
2616enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
2617 {
2618 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
2619 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
2620 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
2621 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
2622 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
2623 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
2624 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
2625 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
2626 } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
2627
2628DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )
2629typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
2630 {
2631 _Out_ BOOL CopyQueueTimestampQueriesSupported;
2632 _Out_ BOOL CastingFullyTypedFormatSupported;
2633 _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2634 _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2635 _Out_ BOOL BarycentricsSupported;
2636 } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2637
2638typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
2639 {
2640 _Out_ BOOL Supported;
2641 } D3D12_FEATURE_DATA_EXISTING_HEAPS;
2642
2643typedef
2644enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
2645 {
2646 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
2647 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) ,
2648 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 )
2649 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
2650
2651typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
2652 {
2653 _Out_ BOOL DisplayableTexture;
2654 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2655 } D3D12_FEATURE_DATA_DISPLAYABLE;
2656
2657typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
2658 {
2659 _Out_ BOOL MSAA64KBAlignedTextureSupported;
2660 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2661 _Out_ BOOL Native16BitShaderOpsSupported;
2662 } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2663
2664typedef
2665enum D3D12_HEAP_SERIALIZATION_TIER
2666 {
2667 D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
2668 D3D12_HEAP_SERIALIZATION_TIER_10 = 10
2669 } D3D12_HEAP_SERIALIZATION_TIER;
2670
2671typedef struct D3D12_FEATURE_DATA_SERIALIZATION
2672 {
2673 _In_ UINT NodeIndex;
2674 _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2675 } D3D12_FEATURE_DATA_SERIALIZATION;
2676
2677typedef struct D3D12_FEATURE_DATA_CROSS_NODE
2678 {
2679 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2680 BOOL AtomicShaderInstructions;
2681 } D3D12_FEATURE_DATA_CROSS_NODE;
2682
2683typedef
2684enum D3D12_RENDER_PASS_TIER
2685 {
2686 D3D12_RENDER_PASS_TIER_0 = 0,
2687 D3D12_RENDER_PASS_TIER_1 = 1,
2688 D3D12_RENDER_PASS_TIER_2 = 2
2689 } D3D12_RENDER_PASS_TIER;
2690
2691typedef
2692enum D3D12_RAYTRACING_TIER
2693 {
2694 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
2695 D3D12_RAYTRACING_TIER_1_0 = 10,
2696 D3D12_RAYTRACING_TIER_1_1 = 11
2697 } D3D12_RAYTRACING_TIER;
2698
2699typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
2700 {
2701 _Out_ BOOL SRVOnlyTiledResourceTier3;
2702 _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
2703 _Out_ D3D12_RAYTRACING_TIER RaytracingTier;
2704 } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2705
2706typedef
2707enum D3D12_VARIABLE_SHADING_RATE_TIER
2708 {
2709 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
2710 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
2711 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
2712 } D3D12_VARIABLE_SHADING_RATE_TIER;
2713
2714typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
2715 {
2716 _Out_ BOOL AdditionalShadingRatesSupported;
2717 _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2718 _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2719 _Out_ UINT ShadingRateImageTileSize;
2720 _Out_ BOOL BackgroundProcessingSupported;
2721 } D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2722
2723typedef
2724enum D3D12_MESH_SHADER_TIER
2725 {
2726 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
2727 D3D12_MESH_SHADER_TIER_1 = 10
2728 } D3D12_MESH_SHADER_TIER;
2729
2730typedef
2731enum D3D12_SAMPLER_FEEDBACK_TIER
2732 {
2733 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
2734 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
2735 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
2736 } D3D12_SAMPLER_FEEDBACK_TIER;
2737
2738typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
2739 {
2740 _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier;
2741 _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2742 } D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2743
2744typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
2745 {
2746 _In_ GUID CommandId;
2747 _In_ UINT NodeMask;
2748 _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
2749 _In_ SIZE_T QueryInputDataSizeInBytes;
2750 _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
2751 _In_ SIZE_T QueryOutputDataSizeInBytes;
2752 } D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2753
2754typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
2755 {
2756 _Out_ BOOL UnalignedBlockTexturesSupported;
2757 } D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2758
2759typedef
2760enum D3D12_WAVE_MMA_TIER
2761 {
2762 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
2763 D3D12_WAVE_MMA_TIER_1_0 = 10
2764 } D3D12_WAVE_MMA_TIER;
2765
2766typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
2767 {
2768 _Out_ BOOL MeshShaderPipelineStatsSupported;
2769 _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2770 _Out_ BOOL AtomicInt64OnTypedResourceSupported;
2771 _Out_ BOOL AtomicInt64OnGroupSharedSupported;
2772 _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported;
2773 _Out_ D3D12_WAVE_MMA_TIER WaveMMATier;
2774 } D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2775
2776typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
2777 {
2778 _Out_ BOOL VariableRateShadingSumCombinerSupported;
2779 _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
2780 } D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2781
2782typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
2783 {
2784 _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
2785 } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2786
2787typedef
2788enum D3D12_TRI_STATE
2789 {
2790 D3D12_TRI_STATE_UNKNOWN = -1,
2791 D3D12_TRI_STATE_FALSE = 0,
2792 D3D12_TRI_STATE_TRUE = 1
2793 } D3D12_TRI_STATE;
2794
2795typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12
2796 {
2797 _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
2798 _Out_ BOOL EnhancedBarriersSupported;
2799 _Out_ BOOL RelaxedFormatCastingSupported;
2800 } D3D12_FEATURE_DATA_D3D12_OPTIONS12;
2801
2802typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13
2803 {
2804 _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported;
2805 _Out_ BOOL UnrestrictedVertexElementAlignmentSupported;
2806 _Out_ BOOL InvertedViewportHeightFlipsYSupported;
2807 _Out_ BOOL InvertedViewportDepthFlipsZSupported;
2808 _Out_ BOOL TextureCopyBetweenDimensionsSupported;
2809 _Out_ BOOL AlphaBlendFactorSupported;
2810 } D3D12_FEATURE_DATA_D3D12_OPTIONS13;
2811
2812typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14
2813 {
2814 _Out_ BOOL AdvancedTextureOpsSupported;
2815 _Out_ BOOL WriteableMSAATexturesSupported;
2816 _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported;
2817 } D3D12_FEATURE_DATA_D3D12_OPTIONS14;
2818
2819typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15
2820 {
2821 _Out_ BOOL TriangleFanSupported;
2822 _Out_ BOOL DynamicIndexBufferStripCutSupported;
2823 } D3D12_FEATURE_DATA_D3D12_OPTIONS15;
2824
2825typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16
2826 {
2827 _Out_ BOOL DynamicDepthBiasSupported;
2828 _Out_ BOOL GPUUploadHeapSupported;
2829 } D3D12_FEATURE_DATA_D3D12_OPTIONS16;
2830
2831typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17
2832 {
2833 _Out_ BOOL NonNormalizedCoordinateSamplersSupported;
2834 _Out_ BOOL ManualWriteTrackingResourceSupported;
2835 } D3D12_FEATURE_DATA_D3D12_OPTIONS17;
2836
2837typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18
2838 {
2839 _Out_ BOOL RenderPassesValid;
2840 } D3D12_FEATURE_DATA_D3D12_OPTIONS18;
2841
2842typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19
2843 {
2844 BOOL MismatchingOutputDimensionsSupported;
2845 UINT SupportedSampleCountsWithNoOutputs;
2846 BOOL PointSamplingAddressesNeverRoundUp;
2847 BOOL RasterizerDesc2Supported;
2848 BOOL NarrowQuadrilateralLinesSupported;
2849 BOOL AnisoFilterWithPointMipSupported;
2850 UINT MaxSamplerDescriptorHeapSize;
2851 UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers;
2852 UINT MaxViewDescriptorHeapSize;
2853 _Out_ BOOL ComputeOnlyCustomHeapSupported;
2854 } D3D12_FEATURE_DATA_D3D12_OPTIONS19;
2855
2856typedef
2857enum D3D12_RECREATE_AT_TIER
2858 {
2859 D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0,
2860 D3D12_RECREATE_AT_TIER_1 = 1
2861 } D3D12_RECREATE_AT_TIER;
2862
2863typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20
2864 {
2865 _Out_ BOOL ComputeOnlyWriteWatchSupported;
2866 D3D12_RECREATE_AT_TIER RecreateAtTier;
2867 } D3D12_FEATURE_DATA_D3D12_OPTIONS20;
2868
2869typedef
2870enum D3D12_EXECUTE_INDIRECT_TIER
2871 {
2872 D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10,
2873 D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11
2874 } D3D12_EXECUTE_INDIRECT_TIER;
2875
2876typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21
2877 {
2878 _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier;
2879 _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier;
2880 _Out_ BOOL SampleCmpGradientAndBiasSupported;
2881 _Out_ BOOL ExtendedCommandInfoSupported;
2882 } D3D12_FEATURE_DATA_D3D12_OPTIONS21;
2883
2884typedef struct D3D12_FEATURE_DATA_PREDICATION
2885 {
2886 _Out_ BOOL Supported;
2887 } D3D12_FEATURE_DATA_PREDICATION;
2888
2889typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY
2890 {
2891 _Out_ BOOL Supported;
2892 } D3D12_FEATURE_DATA_HARDWARE_COPY;
2893
2894typedef struct D3D12_RESOURCE_ALLOCATION_INFO
2895 {
2896 UINT64 SizeInBytes;
2897 UINT64 Alignment;
2898 } D3D12_RESOURCE_ALLOCATION_INFO;
2899
2900typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
2901 {
2902 UINT64 Offset;
2903 UINT64 Alignment;
2904 UINT64 SizeInBytes;
2905 } D3D12_RESOURCE_ALLOCATION_INFO1;
2906
2907typedef
2908enum D3D12_HEAP_TYPE
2909 {
2910 D3D12_HEAP_TYPE_DEFAULT = 1,
2911 D3D12_HEAP_TYPE_UPLOAD = 2,
2912 D3D12_HEAP_TYPE_READBACK = 3,
2913 D3D12_HEAP_TYPE_CUSTOM = 4,
2914 D3D12_HEAP_TYPE_GPU_UPLOAD = 5
2915 } D3D12_HEAP_TYPE;
2916
2917typedef
2918enum D3D12_CPU_PAGE_PROPERTY
2919 {
2920 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
2921 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
2922 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
2923 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
2924 } D3D12_CPU_PAGE_PROPERTY;
2925
2926typedef
2927enum D3D12_MEMORY_POOL
2928 {
2929 D3D12_MEMORY_POOL_UNKNOWN = 0,
2930 D3D12_MEMORY_POOL_L0 = 1,
2931 D3D12_MEMORY_POOL_L1 = 2
2932 } D3D12_MEMORY_POOL;
2933
2934typedef struct D3D12_HEAP_PROPERTIES
2935 {
2936 D3D12_HEAP_TYPE Type;
2937 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
2938 D3D12_MEMORY_POOL MemoryPoolPreference;
2939 UINT CreationNodeMask;
2940 UINT VisibleNodeMask;
2941 } D3D12_HEAP_PROPERTIES;
2942
2943typedef
2944enum D3D12_HEAP_FLAGS
2945 {
2946 D3D12_HEAP_FLAG_NONE = 0,
2947 D3D12_HEAP_FLAG_SHARED = 0x1,
2948 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
2949 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
2950 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
2951 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
2952 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
2953 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
2954 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
2955 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
2956 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
2957 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
2958 D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000,
2959 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
2960 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
2961 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
2962 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
2963 } D3D12_HEAP_FLAGS;
2964
2965DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )
2966typedef struct D3D12_HEAP_DESC
2967 {
2968 UINT64 SizeInBytes;
2969 D3D12_HEAP_PROPERTIES Properties;
2970 UINT64 Alignment;
2971 D3D12_HEAP_FLAGS Flags;
2972 } D3D12_HEAP_DESC;
2973
2974typedef
2975enum D3D12_RESOURCE_DIMENSION
2976 {
2977 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
2978 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
2979 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
2980 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
2981 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
2982 } D3D12_RESOURCE_DIMENSION;
2983
2984typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO
2985 {
2986 _In_ DXGI_FORMAT Format;
2987 _In_ D3D12_RESOURCE_DIMENSION Dimension;
2988 _In_ D3D12_HEAP_PROPERTIES DestHeapProperties;
2989 _Out_ BOOL Supported;
2990 } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO;
2991
2992typedef
2993enum D3D12_TEXTURE_LAYOUT
2994 {
2995 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
2996 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
2997 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
2998 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
2999 } D3D12_TEXTURE_LAYOUT;
3000
3001typedef
3002enum D3D12_RESOURCE_FLAGS
3003 {
3004 D3D12_RESOURCE_FLAG_NONE = 0,
3005 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
3006 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
3007 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
3008 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
3009 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
3010 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
3011 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
3012 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
3013 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
3014 } D3D12_RESOURCE_FLAGS;
3015
3016DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )
3017typedef struct D3D12_MIP_REGION
3018 {
3019 UINT Width;
3020 UINT Height;
3021 UINT Depth;
3022 } D3D12_MIP_REGION;
3023
3024typedef struct D3D12_RESOURCE_DESC
3025 {
3026 D3D12_RESOURCE_DIMENSION Dimension;
3027 UINT64 Alignment;
3028 UINT64 Width;
3029 UINT Height;
3030 UINT16 DepthOrArraySize;
3031 UINT16 MipLevels;
3032 DXGI_FORMAT Format;
3033 DXGI_SAMPLE_DESC SampleDesc;
3034 D3D12_TEXTURE_LAYOUT Layout;
3035 D3D12_RESOURCE_FLAGS Flags;
3036 } D3D12_RESOURCE_DESC;
3037
3038typedef struct D3D12_RESOURCE_DESC1
3039 {
3040 D3D12_RESOURCE_DIMENSION Dimension;
3041 UINT64 Alignment;
3042 UINT64 Width;
3043 UINT Height;
3044 UINT16 DepthOrArraySize;
3045 UINT16 MipLevels;
3046 DXGI_FORMAT Format;
3047 DXGI_SAMPLE_DESC SampleDesc;
3048 D3D12_TEXTURE_LAYOUT Layout;
3049 D3D12_RESOURCE_FLAGS Flags;
3050 D3D12_MIP_REGION SamplerFeedbackMipRegion;
3051 } D3D12_RESOURCE_DESC1;
3052
3053typedef struct D3D12_DEPTH_STENCIL_VALUE
3054 {
3055 FLOAT Depth;
3056 UINT8 Stencil;
3057 } D3D12_DEPTH_STENCIL_VALUE;
3058
3059typedef struct D3D12_CLEAR_VALUE
3060 {
3061 DXGI_FORMAT Format;
3062 union
3063 {
3064 FLOAT Color[ 4 ];
3065 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
3066 } ;
3067 } D3D12_CLEAR_VALUE;
3068
3069typedef struct D3D12_RANGE
3070 {
3071 SIZE_T Begin;
3072 SIZE_T End;
3073 } D3D12_RANGE;
3074
3075typedef struct D3D12_RANGE_UINT64
3076 {
3077 UINT64 Begin;
3078 UINT64 End;
3079 } D3D12_RANGE_UINT64;
3080
3081typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
3082 {
3083 UINT Subresource;
3084 D3D12_RANGE_UINT64 Range;
3085 } D3D12_SUBRESOURCE_RANGE_UINT64;
3086
3087typedef struct D3D12_SUBRESOURCE_INFO
3088 {
3089 UINT64 Offset;
3090 UINT RowPitch;
3091 UINT DepthPitch;
3092 } D3D12_SUBRESOURCE_INFO;
3093
3094typedef struct D3D12_TILED_RESOURCE_COORDINATE
3095 {
3096 UINT X;
3097 UINT Y;
3098 UINT Z;
3099 UINT Subresource;
3100 } D3D12_TILED_RESOURCE_COORDINATE;
3101
3102typedef struct D3D12_TILE_REGION_SIZE
3103 {
3104 UINT NumTiles;
3105 BOOL UseBox;
3106 UINT Width;
3107 UINT16 Height;
3108 UINT16 Depth;
3109 } D3D12_TILE_REGION_SIZE;
3110
3111typedef
3112enum D3D12_TILE_RANGE_FLAGS
3113 {
3114 D3D12_TILE_RANGE_FLAG_NONE = 0,
3115 D3D12_TILE_RANGE_FLAG_NULL = 1,
3116 D3D12_TILE_RANGE_FLAG_SKIP = 2,
3117 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
3118 } D3D12_TILE_RANGE_FLAGS;
3119
3120typedef struct D3D12_SUBRESOURCE_TILING
3121 {
3122 UINT WidthInTiles;
3123 UINT16 HeightInTiles;
3124 UINT16 DepthInTiles;
3125 UINT StartTileIndexInOverallResource;
3126 } D3D12_SUBRESOURCE_TILING;
3127
3128typedef struct D3D12_TILE_SHAPE
3129 {
3130 UINT WidthInTexels;
3131 UINT HeightInTexels;
3132 UINT DepthInTexels;
3133 } D3D12_TILE_SHAPE;
3134
3135typedef struct D3D12_PACKED_MIP_INFO
3136 {
3137 UINT8 NumStandardMips;
3138 UINT8 NumPackedMips;
3139 UINT NumTilesForPackedMips;
3140 UINT StartTileIndexInOverallResource;
3141 } D3D12_PACKED_MIP_INFO;
3142
3143typedef
3144enum D3D12_TILE_MAPPING_FLAGS
3145 {
3146 D3D12_TILE_MAPPING_FLAG_NONE = 0,
3147 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
3148 } D3D12_TILE_MAPPING_FLAGS;
3149
3150DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )
3151typedef
3152enum D3D12_TILE_COPY_FLAGS
3153 {
3154 D3D12_TILE_COPY_FLAG_NONE = 0,
3155 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
3156 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
3157 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
3158 } D3D12_TILE_COPY_FLAGS;
3159
3160DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )
3161typedef
3162enum D3D12_RESOURCE_STATES
3163 {
3164 D3D12_RESOURCE_STATE_COMMON = 0,
3165 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
3166 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
3167 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
3168 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
3169 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
3170 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
3171 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
3172 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
3173 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
3174 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
3175 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
3176 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
3177 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
3178 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
3179 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
3180 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
3181 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000,
3182 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000,
3183 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000,
3184 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000,
3185 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000,
3186 D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
3187 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) ,
3188 D3D12_RESOURCE_STATE_PRESENT = 0,
3189 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
3190 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
3191 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
3192 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
3193 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
3194 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
3195 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
3196 } D3D12_RESOURCE_STATES;
3197
3198DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )
3199typedef
3200enum D3D12_RESOURCE_BARRIER_TYPE
3201 {
3202 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
3203 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
3204 D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
3205 } D3D12_RESOURCE_BARRIER_TYPE;
3206
3207
3208typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
3209 {
3210 ID3D12Resource *pResource;
3211 UINT Subresource;
3212 D3D12_RESOURCE_STATES StateBefore;
3213 D3D12_RESOURCE_STATES StateAfter;
3214 } D3D12_RESOURCE_TRANSITION_BARRIER;
3215
3216typedef struct D3D12_RESOURCE_ALIASING_BARRIER
3217 {
3218 ID3D12Resource *pResourceBefore;
3219 ID3D12Resource *pResourceAfter;
3220 } D3D12_RESOURCE_ALIASING_BARRIER;
3221
3222typedef struct D3D12_RESOURCE_UAV_BARRIER
3223 {
3224 ID3D12Resource *pResource;
3225 } D3D12_RESOURCE_UAV_BARRIER;
3226
3227typedef
3228enum D3D12_RESOURCE_BARRIER_FLAGS
3229 {
3230 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
3231 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
3232 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
3233 } D3D12_RESOURCE_BARRIER_FLAGS;
3234
3235DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )
3236typedef struct D3D12_RESOURCE_BARRIER
3237 {
3238 D3D12_RESOURCE_BARRIER_TYPE Type;
3239 D3D12_RESOURCE_BARRIER_FLAGS Flags;
3240 union
3241 {
3242 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
3243 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
3244 D3D12_RESOURCE_UAV_BARRIER UAV;
3245 } ;
3246 } D3D12_RESOURCE_BARRIER;
3247
3248typedef struct D3D12_SUBRESOURCE_FOOTPRINT
3249 {
3250 DXGI_FORMAT Format;
3251 UINT Width;
3252 UINT Height;
3253 UINT Depth;
3254 UINT RowPitch;
3255 } D3D12_SUBRESOURCE_FOOTPRINT;
3256
3257typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
3258 {
3259 UINT64 Offset;
3260 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
3261 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
3262
3263typedef
3264enum D3D12_TEXTURE_COPY_TYPE
3265 {
3266 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
3267 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
3268 } D3D12_TEXTURE_COPY_TYPE;
3269
3270typedef struct D3D12_TEXTURE_COPY_LOCATION
3271 {
3272 ID3D12Resource *pResource;
3273 D3D12_TEXTURE_COPY_TYPE Type;
3274 union
3275 {
3276 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
3277 UINT SubresourceIndex;
3278 } ;
3279 } D3D12_TEXTURE_COPY_LOCATION;
3280
3281typedef
3282enum D3D12_RESOLVE_MODE
3283 {
3284 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
3285 D3D12_RESOLVE_MODE_MIN = 1,
3286 D3D12_RESOLVE_MODE_MAX = 2,
3287 D3D12_RESOLVE_MODE_AVERAGE = 3,
3288 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
3289 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
3290 } D3D12_RESOLVE_MODE;
3291
3292typedef struct D3D12_SAMPLE_POSITION
3293 {
3294 INT8 X;
3295 INT8 Y;
3296 } D3D12_SAMPLE_POSITION;
3297
3298typedef struct D3D12_VIEW_INSTANCE_LOCATION
3299 {
3300 UINT ViewportArrayIndex;
3301 UINT RenderTargetArrayIndex;
3302 } D3D12_VIEW_INSTANCE_LOCATION;
3303
3304typedef
3305enum D3D12_VIEW_INSTANCING_FLAGS
3306 {
3307 D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
3308 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
3309 } D3D12_VIEW_INSTANCING_FLAGS;
3310
3311DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )
3312typedef struct D3D12_VIEW_INSTANCING_DESC
3313 {
3314 UINT ViewInstanceCount;
3315 _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
3316 D3D12_VIEW_INSTANCING_FLAGS Flags;
3317 } D3D12_VIEW_INSTANCING_DESC;
3318
3319typedef
3320enum D3D12_SHADER_COMPONENT_MAPPING
3321 {
3322 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
3323 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
3324 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
3325 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
3326 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
3327 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
3328 } D3D12_SHADER_COMPONENT_MAPPING;
3329
3330#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
3331#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
3332#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
3333#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
3334 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
3335 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
3336 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
3337 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
3338#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
3339#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
3340typedef
3341enum D3D12_BUFFER_SRV_FLAGS
3342 {
3343 D3D12_BUFFER_SRV_FLAG_NONE = 0,
3344 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
3345 } D3D12_BUFFER_SRV_FLAGS;
3346
3347DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )
3348typedef struct D3D12_BUFFER_SRV
3349 {
3350 UINT64 FirstElement;
3351 UINT NumElements;
3352 UINT StructureByteStride;
3353 D3D12_BUFFER_SRV_FLAGS Flags;
3354 } D3D12_BUFFER_SRV;
3355
3356typedef struct D3D12_TEX1D_SRV
3357 {
3358 UINT MostDetailedMip;
3359 UINT MipLevels;
3360 FLOAT ResourceMinLODClamp;
3361 } D3D12_TEX1D_SRV;
3362
3363typedef struct D3D12_TEX1D_ARRAY_SRV
3364 {
3365 UINT MostDetailedMip;
3366 UINT MipLevels;
3367 UINT FirstArraySlice;
3368 UINT ArraySize;
3369 FLOAT ResourceMinLODClamp;
3370 } D3D12_TEX1D_ARRAY_SRV;
3371
3372typedef struct D3D12_TEX2D_SRV
3373 {
3374 UINT MostDetailedMip;
3375 UINT MipLevels;
3376 UINT PlaneSlice;
3377 FLOAT ResourceMinLODClamp;
3378 } D3D12_TEX2D_SRV;
3379
3380typedef struct D3D12_TEX2D_ARRAY_SRV
3381 {
3382 UINT MostDetailedMip;
3383 UINT MipLevels;
3384 UINT FirstArraySlice;
3385 UINT ArraySize;
3386 UINT PlaneSlice;
3387 FLOAT ResourceMinLODClamp;
3388 } D3D12_TEX2D_ARRAY_SRV;
3389
3390typedef struct D3D12_TEX3D_SRV
3391 {
3392 UINT MostDetailedMip;
3393 UINT MipLevels;
3394 FLOAT ResourceMinLODClamp;
3395 } D3D12_TEX3D_SRV;
3396
3397typedef struct D3D12_TEXCUBE_SRV
3398 {
3399 UINT MostDetailedMip;
3400 UINT MipLevels;
3401 FLOAT ResourceMinLODClamp;
3402 } D3D12_TEXCUBE_SRV;
3403
3404typedef struct D3D12_TEXCUBE_ARRAY_SRV
3405 {
3406 UINT MostDetailedMip;
3407 UINT MipLevels;
3408 UINT First2DArrayFace;
3409 UINT NumCubes;
3410 FLOAT ResourceMinLODClamp;
3411 } D3D12_TEXCUBE_ARRAY_SRV;
3412
3413typedef struct D3D12_TEX2DMS_SRV
3414 {
3415 UINT UnusedField_NothingToDefine;
3416 } D3D12_TEX2DMS_SRV;
3417
3418typedef struct D3D12_TEX2DMS_ARRAY_SRV
3419 {
3420 UINT FirstArraySlice;
3421 UINT ArraySize;
3422 } D3D12_TEX2DMS_ARRAY_SRV;
3423
3424typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
3425 {
3426 D3D12_GPU_VIRTUAL_ADDRESS Location;
3427 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
3428
3429typedef
3430enum D3D12_SRV_DIMENSION
3431 {
3432 D3D12_SRV_DIMENSION_UNKNOWN = 0,
3433 D3D12_SRV_DIMENSION_BUFFER = 1,
3434 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
3435 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
3436 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
3437 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
3438 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
3439 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
3440 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
3441 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
3442 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
3443 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
3444 } D3D12_SRV_DIMENSION;
3445
3446typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
3447 {
3448 DXGI_FORMAT Format;
3449 D3D12_SRV_DIMENSION ViewDimension;
3450 UINT Shader4ComponentMapping;
3451 union
3452 {
3453 D3D12_BUFFER_SRV Buffer;
3454 D3D12_TEX1D_SRV Texture1D;
3455 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
3456 D3D12_TEX2D_SRV Texture2D;
3457 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
3458 D3D12_TEX2DMS_SRV Texture2DMS;
3459 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3460 D3D12_TEX3D_SRV Texture3D;
3461 D3D12_TEXCUBE_SRV TextureCube;
3462 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
3463 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
3464 } ;
3465 } D3D12_SHADER_RESOURCE_VIEW_DESC;
3466
3467typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
3468 {
3469 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3470 UINT SizeInBytes;
3471 } D3D12_CONSTANT_BUFFER_VIEW_DESC;
3472
3473typedef
3474enum D3D12_FILTER
3475 {
3476 D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
3477 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
3478 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
3479 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
3480 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
3481 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
3482 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
3483 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
3484 D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54,
3485 D3D12_FILTER_ANISOTROPIC = 0x55,
3486 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
3487 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
3488 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
3489 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
3490 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
3491 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
3492 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
3493 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
3494 D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4,
3495 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
3496 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
3497 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
3498 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
3499 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
3500 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
3501 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
3502 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
3503 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
3504 D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154,
3505 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
3506 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
3507 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
3508 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
3509 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
3510 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
3511 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
3512 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
3513 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
3514 D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4,
3515 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
3516 } D3D12_FILTER;
3517
3518typedef
3519enum D3D12_FILTER_TYPE
3520 {
3521 D3D12_FILTER_TYPE_POINT = 0,
3522 D3D12_FILTER_TYPE_LINEAR = 1
3523 } D3D12_FILTER_TYPE;
3524
3525typedef
3526enum D3D12_FILTER_REDUCTION_TYPE
3527 {
3528 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
3529 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
3530 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
3531 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
3532 } D3D12_FILTER_REDUCTION_TYPE;
3533
3534#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
3535
3536#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
3537
3538#define D3D12_FILTER_TYPE_MASK ( 0x3 )
3539
3540#define D3D12_MIN_FILTER_SHIFT ( 4 )
3541
3542#define D3D12_MAG_FILTER_SHIFT ( 2 )
3543
3544#define D3D12_MIP_FILTER_SHIFT ( 0 )
3545
3546#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
3547
3548#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
3549 ( ( D3D12_FILTER ) ( \
3550 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
3551 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
3552 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
3553 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
3554#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
3555 ( ( D3D12_FILTER ) ( \
3556 D3D12_ANISOTROPIC_FILTERING_BIT | \
3557 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3558 D3D12_FILTER_TYPE_LINEAR, \
3559 D3D12_FILTER_TYPE_LINEAR, \
3560 reduction ) ) )
3561#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \
3562 ( ( D3D12_FILTER ) ( \
3563 D3D12_ANISOTROPIC_FILTERING_BIT | \
3564 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3565 D3D12_FILTER_TYPE_LINEAR, \
3566 D3D12_FILTER_TYPE_POINT, \
3567 reduction ) ) )
3568#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
3569 ( ( D3D12_FILTER_TYPE ) \
3570 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3571#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
3572 ( ( D3D12_FILTER_TYPE ) \
3573 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3574#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
3575 ( ( D3D12_FILTER_TYPE ) \
3576 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3577#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
3578 ( ( D3D12_FILTER_REDUCTION_TYPE ) \
3579 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
3580#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
3581 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
3582#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
3583 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
3584 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
3585 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) )
3586typedef
3587enum D3D12_TEXTURE_ADDRESS_MODE
3588 {
3589 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
3590 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
3591 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
3592 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
3593 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
3594 } D3D12_TEXTURE_ADDRESS_MODE;
3595
3596typedef struct D3D12_SAMPLER_DESC
3597 {
3598 D3D12_FILTER Filter;
3599 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3600 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3601 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3602 FLOAT MipLODBias;
3603 UINT MaxAnisotropy;
3604 D3D12_COMPARISON_FUNC ComparisonFunc;
3605 FLOAT BorderColor[ 4 ];
3606 FLOAT MinLOD;
3607 FLOAT MaxLOD;
3608 } D3D12_SAMPLER_DESC;
3609
3610typedef
3611enum D3D12_SAMPLER_FLAGS
3612 {
3613 D3D12_SAMPLER_FLAG_NONE = 0,
3614 D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1,
3615 D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2
3616 } D3D12_SAMPLER_FLAGS;
3617
3618DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )
3619typedef struct D3D12_SAMPLER_DESC2
3620 {
3621 D3D12_FILTER Filter;
3622 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3623 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3624 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3625 FLOAT MipLODBias;
3626 UINT MaxAnisotropy;
3627 D3D12_COMPARISON_FUNC ComparisonFunc;
3628 union
3629 {
3630 FLOAT FloatBorderColor[ 4 ];
3631 UINT UintBorderColor[ 4 ];
3632 } ;
3633 FLOAT MinLOD;
3634 FLOAT MaxLOD;
3635 D3D12_SAMPLER_FLAGS Flags;
3636 } D3D12_SAMPLER_DESC2;
3637
3638typedef
3639enum D3D12_BUFFER_UAV_FLAGS
3640 {
3641 D3D12_BUFFER_UAV_FLAG_NONE = 0,
3642 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
3643 } D3D12_BUFFER_UAV_FLAGS;
3644
3645DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )
3646typedef struct D3D12_BUFFER_UAV
3647 {
3648 UINT64 FirstElement;
3649 UINT NumElements;
3650 UINT StructureByteStride;
3651 UINT64 CounterOffsetInBytes;
3652 D3D12_BUFFER_UAV_FLAGS Flags;
3653 } D3D12_BUFFER_UAV;
3654
3655typedef struct D3D12_TEX1D_UAV
3656 {
3657 UINT MipSlice;
3658 } D3D12_TEX1D_UAV;
3659
3660typedef struct D3D12_TEX1D_ARRAY_UAV
3661 {
3662 UINT MipSlice;
3663 UINT FirstArraySlice;
3664 UINT ArraySize;
3665 } D3D12_TEX1D_ARRAY_UAV;
3666
3667typedef struct D3D12_TEX2D_UAV
3668 {
3669 UINT MipSlice;
3670 UINT PlaneSlice;
3671 } D3D12_TEX2D_UAV;
3672
3673typedef struct D3D12_TEX2D_ARRAY_UAV
3674 {
3675 UINT MipSlice;
3676 UINT FirstArraySlice;
3677 UINT ArraySize;
3678 UINT PlaneSlice;
3679 } D3D12_TEX2D_ARRAY_UAV;
3680
3681typedef struct D3D12_TEX2DMS_UAV
3682 {
3683 UINT UnusedField_NothingToDefine;
3684 } D3D12_TEX2DMS_UAV;
3685
3686typedef struct D3D12_TEX2DMS_ARRAY_UAV
3687 {
3688 UINT FirstArraySlice;
3689 UINT ArraySize;
3690 } D3D12_TEX2DMS_ARRAY_UAV;
3691
3692typedef struct D3D12_TEX3D_UAV
3693 {
3694 UINT MipSlice;
3695 UINT FirstWSlice;
3696 UINT WSize;
3697 } D3D12_TEX3D_UAV;
3698
3699typedef
3700enum D3D12_UAV_DIMENSION
3701 {
3702 D3D12_UAV_DIMENSION_UNKNOWN = 0,
3703 D3D12_UAV_DIMENSION_BUFFER = 1,
3704 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
3705 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
3706 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
3707 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
3708 D3D12_UAV_DIMENSION_TEXTURE2DMS = 6,
3709 D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7,
3710 D3D12_UAV_DIMENSION_TEXTURE3D = 8
3711 } D3D12_UAV_DIMENSION;
3712
3713typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
3714 {
3715 DXGI_FORMAT Format;
3716 D3D12_UAV_DIMENSION ViewDimension;
3717 union
3718 {
3719 D3D12_BUFFER_UAV Buffer;
3720 D3D12_TEX1D_UAV Texture1D;
3721 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
3722 D3D12_TEX2D_UAV Texture2D;
3723 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
3724 D3D12_TEX2DMS_UAV Texture2DMS;
3725 D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray;
3726 D3D12_TEX3D_UAV Texture3D;
3727 } ;
3728 } D3D12_UNORDERED_ACCESS_VIEW_DESC;
3729
3730typedef struct D3D12_BUFFER_RTV
3731 {
3732 UINT64 FirstElement;
3733 UINT NumElements;
3734 } D3D12_BUFFER_RTV;
3735
3736typedef struct D3D12_TEX1D_RTV
3737 {
3738 UINT MipSlice;
3739 } D3D12_TEX1D_RTV;
3740
3741typedef struct D3D12_TEX1D_ARRAY_RTV
3742 {
3743 UINT MipSlice;
3744 UINT FirstArraySlice;
3745 UINT ArraySize;
3746 } D3D12_TEX1D_ARRAY_RTV;
3747
3748typedef struct D3D12_TEX2D_RTV
3749 {
3750 UINT MipSlice;
3751 UINT PlaneSlice;
3752 } D3D12_TEX2D_RTV;
3753
3754typedef struct D3D12_TEX2DMS_RTV
3755 {
3756 UINT UnusedField_NothingToDefine;
3757 } D3D12_TEX2DMS_RTV;
3758
3759typedef struct D3D12_TEX2D_ARRAY_RTV
3760 {
3761 UINT MipSlice;
3762 UINT FirstArraySlice;
3763 UINT ArraySize;
3764 UINT PlaneSlice;
3765 } D3D12_TEX2D_ARRAY_RTV;
3766
3767typedef struct D3D12_TEX2DMS_ARRAY_RTV
3768 {
3769 UINT FirstArraySlice;
3770 UINT ArraySize;
3771 } D3D12_TEX2DMS_ARRAY_RTV;
3772
3773typedef struct D3D12_TEX3D_RTV
3774 {
3775 UINT MipSlice;
3776 UINT FirstWSlice;
3777 UINT WSize;
3778 } D3D12_TEX3D_RTV;
3779
3780typedef
3781enum D3D12_RTV_DIMENSION
3782 {
3783 D3D12_RTV_DIMENSION_UNKNOWN = 0,
3784 D3D12_RTV_DIMENSION_BUFFER = 1,
3785 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
3786 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
3787 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
3788 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
3789 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
3790 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
3791 D3D12_RTV_DIMENSION_TEXTURE3D = 8
3792 } D3D12_RTV_DIMENSION;
3793
3794typedef struct D3D12_RENDER_TARGET_VIEW_DESC
3795 {
3796 DXGI_FORMAT Format;
3797 D3D12_RTV_DIMENSION ViewDimension;
3798 union
3799 {
3800 D3D12_BUFFER_RTV Buffer;
3801 D3D12_TEX1D_RTV Texture1D;
3802 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
3803 D3D12_TEX2D_RTV Texture2D;
3804 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
3805 D3D12_TEX2DMS_RTV Texture2DMS;
3806 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3807 D3D12_TEX3D_RTV Texture3D;
3808 } ;
3809 } D3D12_RENDER_TARGET_VIEW_DESC;
3810
3811typedef struct D3D12_TEX1D_DSV
3812 {
3813 UINT MipSlice;
3814 } D3D12_TEX1D_DSV;
3815
3816typedef struct D3D12_TEX1D_ARRAY_DSV
3817 {
3818 UINT MipSlice;
3819 UINT FirstArraySlice;
3820 UINT ArraySize;
3821 } D3D12_TEX1D_ARRAY_DSV;
3822
3823typedef struct D3D12_TEX2D_DSV
3824 {
3825 UINT MipSlice;
3826 } D3D12_TEX2D_DSV;
3827
3828typedef struct D3D12_TEX2D_ARRAY_DSV
3829 {
3830 UINT MipSlice;
3831 UINT FirstArraySlice;
3832 UINT ArraySize;
3833 } D3D12_TEX2D_ARRAY_DSV;
3834
3835typedef struct D3D12_TEX2DMS_DSV
3836 {
3837 UINT UnusedField_NothingToDefine;
3838 } D3D12_TEX2DMS_DSV;
3839
3840typedef struct D3D12_TEX2DMS_ARRAY_DSV
3841 {
3842 UINT FirstArraySlice;
3843 UINT ArraySize;
3844 } D3D12_TEX2DMS_ARRAY_DSV;
3845
3846typedef
3847enum D3D12_DSV_FLAGS
3848 {
3849 D3D12_DSV_FLAG_NONE = 0,
3850 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
3851 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
3852 } D3D12_DSV_FLAGS;
3853
3854DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )
3855typedef
3856enum D3D12_DSV_DIMENSION
3857 {
3858 D3D12_DSV_DIMENSION_UNKNOWN = 0,
3859 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
3860 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
3861 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
3862 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
3863 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
3864 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
3865 } D3D12_DSV_DIMENSION;
3866
3867typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
3868 {
3869 DXGI_FORMAT Format;
3870 D3D12_DSV_DIMENSION ViewDimension;
3871 D3D12_DSV_FLAGS Flags;
3872 union
3873 {
3874 D3D12_TEX1D_DSV Texture1D;
3875 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
3876 D3D12_TEX2D_DSV Texture2D;
3877 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
3878 D3D12_TEX2DMS_DSV Texture2DMS;
3879 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
3880 } ;
3881 } D3D12_DEPTH_STENCIL_VIEW_DESC;
3882
3883typedef
3884enum D3D12_CLEAR_FLAGS
3885 {
3886 D3D12_CLEAR_FLAG_DEPTH = 0x1,
3887 D3D12_CLEAR_FLAG_STENCIL = 0x2
3888 } D3D12_CLEAR_FLAGS;
3889
3890DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )
3891typedef
3892enum D3D12_FENCE_FLAGS
3893 {
3894 D3D12_FENCE_FLAG_NONE = 0,
3895 D3D12_FENCE_FLAG_SHARED = 0x1,
3896 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
3897 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
3898 } D3D12_FENCE_FLAGS;
3899
3900DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )
3901typedef
3902enum D3D12_DESCRIPTOR_HEAP_TYPE
3903 {
3904 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
3905 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
3906 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
3907 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
3908 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
3909 } D3D12_DESCRIPTOR_HEAP_TYPE;
3910
3911typedef
3912enum D3D12_DESCRIPTOR_HEAP_FLAGS
3913 {
3914 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
3915 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
3916 } D3D12_DESCRIPTOR_HEAP_FLAGS;
3917
3918DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )
3919typedef struct D3D12_DESCRIPTOR_HEAP_DESC
3920 {
3921 D3D12_DESCRIPTOR_HEAP_TYPE Type;
3922 UINT NumDescriptors;
3923 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
3924 UINT NodeMask;
3925 } D3D12_DESCRIPTOR_HEAP_DESC;
3926
3927typedef
3928enum D3D12_DESCRIPTOR_RANGE_TYPE
3929 {
3930 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
3931 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
3932 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
3933 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
3934 } D3D12_DESCRIPTOR_RANGE_TYPE;
3935
3936typedef struct D3D12_DESCRIPTOR_RANGE
3937 {
3938 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
3939 UINT NumDescriptors;
3940 UINT BaseShaderRegister;
3941 UINT RegisterSpace;
3942 UINT OffsetInDescriptorsFromTableStart;
3943 } D3D12_DESCRIPTOR_RANGE;
3944
3945typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
3946 {
3947 UINT NumDescriptorRanges;
3948 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
3949 } D3D12_ROOT_DESCRIPTOR_TABLE;
3950
3951typedef struct D3D12_ROOT_CONSTANTS
3952 {
3953 UINT ShaderRegister;
3954 UINT RegisterSpace;
3955 UINT Num32BitValues;
3956 } D3D12_ROOT_CONSTANTS;
3957
3958typedef struct D3D12_ROOT_DESCRIPTOR
3959 {
3960 UINT ShaderRegister;
3961 UINT RegisterSpace;
3962 } D3D12_ROOT_DESCRIPTOR;
3963
3964typedef
3965enum D3D12_SHADER_VISIBILITY
3966 {
3967 D3D12_SHADER_VISIBILITY_ALL = 0,
3968 D3D12_SHADER_VISIBILITY_VERTEX = 1,
3969 D3D12_SHADER_VISIBILITY_HULL = 2,
3970 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
3971 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
3972 D3D12_SHADER_VISIBILITY_PIXEL = 5,
3973 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
3974 D3D12_SHADER_VISIBILITY_MESH = 7
3975 } D3D12_SHADER_VISIBILITY;
3976
3977typedef
3978enum D3D12_ROOT_PARAMETER_TYPE
3979 {
3980 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
3981 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
3982 D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
3983 D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
3984 D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
3985 } D3D12_ROOT_PARAMETER_TYPE;
3986
3987typedef struct D3D12_ROOT_PARAMETER
3988 {
3989 D3D12_ROOT_PARAMETER_TYPE ParameterType;
3990 union
3991 {
3992 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
3993 D3D12_ROOT_CONSTANTS Constants;
3994 D3D12_ROOT_DESCRIPTOR Descriptor;
3995 } ;
3996 D3D12_SHADER_VISIBILITY ShaderVisibility;
3997 } D3D12_ROOT_PARAMETER;
3998
3999typedef
4000enum D3D12_ROOT_SIGNATURE_FLAGS
4001 {
4002 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
4003 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
4004 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
4005 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
4006 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
4007 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
4008 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
4009 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
4010 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
4011 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
4012 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
4013 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
4014 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
4015 } D3D12_ROOT_SIGNATURE_FLAGS;
4016
4017DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )
4018typedef
4019enum D3D12_STATIC_BORDER_COLOR
4020 {
4021 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
4022 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
4023 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) ,
4024 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) ,
4025 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 )
4026 } D3D12_STATIC_BORDER_COLOR;
4027
4028typedef struct D3D12_STATIC_SAMPLER_DESC
4029 {
4030 D3D12_FILTER Filter;
4031 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4032 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4033 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4034 FLOAT MipLODBias;
4035 UINT MaxAnisotropy;
4036 D3D12_COMPARISON_FUNC ComparisonFunc;
4037 D3D12_STATIC_BORDER_COLOR BorderColor;
4038 FLOAT MinLOD;
4039 FLOAT MaxLOD;
4040 UINT ShaderRegister;
4041 UINT RegisterSpace;
4042 D3D12_SHADER_VISIBILITY ShaderVisibility;
4043 } D3D12_STATIC_SAMPLER_DESC;
4044
4045typedef struct D3D12_STATIC_SAMPLER_DESC1
4046 {
4047 D3D12_FILTER Filter;
4048 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4049 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4050 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4051 FLOAT MipLODBias;
4052 UINT MaxAnisotropy;
4053 D3D12_COMPARISON_FUNC ComparisonFunc;
4054 D3D12_STATIC_BORDER_COLOR BorderColor;
4055 FLOAT MinLOD;
4056 FLOAT MaxLOD;
4057 UINT ShaderRegister;
4058 UINT RegisterSpace;
4059 D3D12_SHADER_VISIBILITY ShaderVisibility;
4060 D3D12_SAMPLER_FLAGS Flags;
4061 } D3D12_STATIC_SAMPLER_DESC1;
4062
4063typedef struct D3D12_ROOT_SIGNATURE_DESC
4064 {
4065 UINT NumParameters;
4066 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
4067 UINT NumStaticSamplers;
4068 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4069 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4070 } D3D12_ROOT_SIGNATURE_DESC;
4071
4072typedef
4073enum D3D12_DESCRIPTOR_RANGE_FLAGS
4074 {
4075 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
4076 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
4077 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
4078 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4079 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
4080 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
4081 } D3D12_DESCRIPTOR_RANGE_FLAGS;
4082
4083DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )
4084typedef struct D3D12_DESCRIPTOR_RANGE1
4085 {
4086 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
4087 UINT NumDescriptors;
4088 UINT BaseShaderRegister;
4089 UINT RegisterSpace;
4090 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
4091 UINT OffsetInDescriptorsFromTableStart;
4092 } D3D12_DESCRIPTOR_RANGE1;
4093
4094typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
4095 {
4096 UINT NumDescriptorRanges;
4097 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
4098 } D3D12_ROOT_DESCRIPTOR_TABLE1;
4099
4100typedef
4101enum D3D12_ROOT_DESCRIPTOR_FLAGS
4102 {
4103 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
4104 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
4105 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4106 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
4107 } D3D12_ROOT_DESCRIPTOR_FLAGS;
4108
4109DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )
4110typedef struct D3D12_ROOT_DESCRIPTOR1
4111 {
4112 UINT ShaderRegister;
4113 UINT RegisterSpace;
4114 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
4115 } D3D12_ROOT_DESCRIPTOR1;
4116
4117typedef struct D3D12_ROOT_PARAMETER1
4118 {
4119 D3D12_ROOT_PARAMETER_TYPE ParameterType;
4120 union
4121 {
4122 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
4123 D3D12_ROOT_CONSTANTS Constants;
4124 D3D12_ROOT_DESCRIPTOR1 Descriptor;
4125 } ;
4126 D3D12_SHADER_VISIBILITY ShaderVisibility;
4127 } D3D12_ROOT_PARAMETER1;
4128
4129typedef struct D3D12_ROOT_SIGNATURE_DESC1
4130 {
4131 UINT NumParameters;
4132 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4133 UINT NumStaticSamplers;
4134 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4135 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4136 } D3D12_ROOT_SIGNATURE_DESC1;
4137
4138typedef struct D3D12_ROOT_SIGNATURE_DESC2
4139 {
4140 UINT NumParameters;
4141 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4142 UINT NumStaticSamplers;
4143 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers;
4144 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4145 } D3D12_ROOT_SIGNATURE_DESC2;
4146
4147typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
4148 {
4149 D3D_ROOT_SIGNATURE_VERSION Version;
4150 union
4151 {
4152 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
4153 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
4154 D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2;
4155 } ;
4156 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
4157
4158
4159
4160extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
4161extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
4162
4163#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4164#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4165
4166/* interface ID3D12RootSignatureDeserializer */
4167/* [unique][local][object][uuid] */
4168
4169
4170EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
4171
4172#if defined(__cplusplus) && !defined(CINTERFACE)
4173
4174 MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
4175 ID3D12RootSignatureDeserializer : public IUnknown
4176 {
4177 public:
4178 virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
4179
4180 };
4181
4182
4183#else /* C style interface */
4184
4185 typedef struct ID3D12RootSignatureDeserializerVtbl
4186 {
4187 BEGIN_INTERFACE
4188
4189 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4190 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4191 ID3D12RootSignatureDeserializer * This,
4192 REFIID riid,
4193 _COM_Outptr_ void **ppvObject);
4194
4195 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4196 ULONG ( STDMETHODCALLTYPE *AddRef )(
4197 ID3D12RootSignatureDeserializer * This);
4198
4199 DECLSPEC_XFGVIRT(IUnknown, Release)
4200 ULONG ( STDMETHODCALLTYPE *Release )(
4201 ID3D12RootSignatureDeserializer * This);
4202
4203 DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc)
4204 const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
4205 ID3D12RootSignatureDeserializer * This);
4206
4207 END_INTERFACE
4208 } ID3D12RootSignatureDeserializerVtbl;
4209
4210 interface ID3D12RootSignatureDeserializer
4211 {
4212 CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl;
4213 };
4214
4215
4216
4217#ifdef COBJMACROS
4218
4219
4220#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4221 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4222
4223#define ID3D12RootSignatureDeserializer_AddRef(This) \
4224 ( (This)->lpVtbl -> AddRef(This) )
4225
4226#define ID3D12RootSignatureDeserializer_Release(This) \
4227 ( (This)->lpVtbl -> Release(This) )
4228
4229
4230#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \
4231 ( (This)->lpVtbl -> GetRootSignatureDesc(This) )
4232
4233#endif /* COBJMACROS */
4234
4235
4236#endif /* C style interface */
4237
4238
4239
4240
4241#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
4242
4243
4244#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4245#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4246
4247/* interface ID3D12VersionedRootSignatureDeserializer */
4248/* [unique][local][object][uuid] */
4249
4250
4251EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
4252
4253#if defined(__cplusplus) && !defined(CINTERFACE)
4254
4255 MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
4256 ID3D12VersionedRootSignatureDeserializer : public IUnknown
4257 {
4258 public:
4259 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
4260 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4261 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
4262
4263 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
4264
4265 };
4266
4267
4268#else /* C style interface */
4269
4270 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
4271 {
4272 BEGIN_INTERFACE
4273
4274 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4275 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4276 ID3D12VersionedRootSignatureDeserializer * This,
4277 REFIID riid,
4278 _COM_Outptr_ void **ppvObject);
4279
4280 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4281 ULONG ( STDMETHODCALLTYPE *AddRef )(
4282 ID3D12VersionedRootSignatureDeserializer * This);
4283
4284 DECLSPEC_XFGVIRT(IUnknown, Release)
4285 ULONG ( STDMETHODCALLTYPE *Release )(
4286 ID3D12VersionedRootSignatureDeserializer * This);
4287
4288 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion)
4289 HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
4290 ID3D12VersionedRootSignatureDeserializer * This,
4291 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4292 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
4293
4294 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc)
4295 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
4296 ID3D12VersionedRootSignatureDeserializer * This);
4297
4298 END_INTERFACE
4299 } ID3D12VersionedRootSignatureDeserializerVtbl;
4300
4301 interface ID3D12VersionedRootSignatureDeserializer
4302 {
4303 CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
4304 };
4305
4306
4307
4308#ifdef COBJMACROS
4309
4310
4311#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4312 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4313
4314#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
4315 ( (This)->lpVtbl -> AddRef(This) )
4316
4317#define ID3D12VersionedRootSignatureDeserializer_Release(This) \
4318 ( (This)->lpVtbl -> Release(This) )
4319
4320
4321#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
4322 ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
4323
4324#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
4325 ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
4326
4327#endif /* COBJMACROS */
4328
4329
4330#endif /* C style interface */
4331
4332
4333
4334
4335#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
4336
4337
4338/* interface __MIDL_itf_d3d12_0000_0003 */
4339/* [local] */
4340
4341typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
4342 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4343 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4344 _Out_ ID3DBlob** ppBlob,
4345 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4346
4347HRESULT WINAPI D3D12SerializeRootSignature(
4348 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4349 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4350 _Out_ ID3DBlob** ppBlob,
4351 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4352
4353typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
4354 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4355 _In_ SIZE_T SrcDataSizeInBytes,
4356 _In_ REFIID pRootSignatureDeserializerInterface,
4357 _Out_ void** ppRootSignatureDeserializer);
4358
4359HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
4360 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4361 _In_ SIZE_T SrcDataSizeInBytes,
4362 _In_ REFIID pRootSignatureDeserializerInterface,
4363 _Out_ void** ppRootSignatureDeserializer);
4364
4365typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
4366 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4367 _Out_ ID3DBlob** ppBlob,
4368 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4369
4370HRESULT WINAPI D3D12SerializeVersionedRootSignature(
4371 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4372 _Out_ ID3DBlob** ppBlob,
4373 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4374
4375typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
4376 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4377 _In_ SIZE_T SrcDataSizeInBytes,
4378 _In_ REFIID pRootSignatureDeserializerInterface,
4379 _Out_ void** ppRootSignatureDeserializer);
4380
4381HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
4382 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4383 _In_ SIZE_T SrcDataSizeInBytes,
4384 _In_ REFIID pRootSignatureDeserializerInterface,
4385 _Out_ void** ppRootSignatureDeserializer);
4386
4387typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
4388 {
4389 SIZE_T ptr;
4390 } D3D12_CPU_DESCRIPTOR_HANDLE;
4391
4392typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
4393 {
4394 UINT64 ptr;
4395 } D3D12_GPU_DESCRIPTOR_HANDLE;
4396
4397// If rects are supplied in D3D12_DISCARD_REGION, below, the resource
4398// must have 2D subresources with all specified subresources the same dimension.
4399typedef struct D3D12_DISCARD_REGION
4400 {
4401 UINT NumRects;
4402 _In_reads_(NumRects) const D3D12_RECT *pRects;
4403 UINT FirstSubresource;
4404 UINT NumSubresources;
4405 } D3D12_DISCARD_REGION;
4406
4407typedef
4408enum D3D12_QUERY_HEAP_TYPE
4409 {
4410 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
4411 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
4412 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
4413 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
4414 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
4415 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
4416 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
4417 } D3D12_QUERY_HEAP_TYPE;
4418
4419typedef struct D3D12_QUERY_HEAP_DESC
4420 {
4421 D3D12_QUERY_HEAP_TYPE Type;
4422 UINT Count;
4423 UINT NodeMask;
4424 } D3D12_QUERY_HEAP_DESC;
4425
4426typedef
4427enum D3D12_QUERY_TYPE
4428 {
4429 D3D12_QUERY_TYPE_OCCLUSION = 0,
4430 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
4431 D3D12_QUERY_TYPE_TIMESTAMP = 2,
4432 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
4433 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
4434 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
4435 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
4436 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
4437 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
4438 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
4439 } D3D12_QUERY_TYPE;
4440
4441typedef
4442enum D3D12_PREDICATION_OP
4443 {
4444 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
4445 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
4446 } D3D12_PREDICATION_OP;
4447
4448typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
4449 {
4450 UINT64 IAVertices;
4451 UINT64 IAPrimitives;
4452 UINT64 VSInvocations;
4453 UINT64 GSInvocations;
4454 UINT64 GSPrimitives;
4455 UINT64 CInvocations;
4456 UINT64 CPrimitives;
4457 UINT64 PSInvocations;
4458 UINT64 HSInvocations;
4459 UINT64 DSInvocations;
4460 UINT64 CSInvocations;
4461 } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
4462
4463typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
4464 {
4465 UINT64 IAVertices;
4466 UINT64 IAPrimitives;
4467 UINT64 VSInvocations;
4468 UINT64 GSInvocations;
4469 UINT64 GSPrimitives;
4470 UINT64 CInvocations;
4471 UINT64 CPrimitives;
4472 UINT64 PSInvocations;
4473 UINT64 HSInvocations;
4474 UINT64 DSInvocations;
4475 UINT64 CSInvocations;
4476 UINT64 ASInvocations;
4477 UINT64 MSInvocations;
4478 UINT64 MSPrimitives;
4479 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
4480
4481typedef struct D3D12_QUERY_DATA_SO_STATISTICS
4482 {
4483 UINT64 NumPrimitivesWritten;
4484 UINT64 PrimitivesStorageNeeded;
4485 } D3D12_QUERY_DATA_SO_STATISTICS;
4486
4487typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
4488 {
4489 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4490 UINT64 SizeInBytes;
4491 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
4492 } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
4493
4494typedef struct D3D12_DRAW_ARGUMENTS
4495 {
4496 UINT VertexCountPerInstance;
4497 UINT InstanceCount;
4498 UINT StartVertexLocation;
4499 UINT StartInstanceLocation;
4500 } D3D12_DRAW_ARGUMENTS;
4501
4502typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
4503 {
4504 UINT IndexCountPerInstance;
4505 UINT InstanceCount;
4506 UINT StartIndexLocation;
4507 INT BaseVertexLocation;
4508 UINT StartInstanceLocation;
4509 } D3D12_DRAW_INDEXED_ARGUMENTS;
4510
4511typedef struct D3D12_DISPATCH_ARGUMENTS
4512 {
4513 UINT ThreadGroupCountX;
4514 UINT ThreadGroupCountY;
4515 UINT ThreadGroupCountZ;
4516 } D3D12_DISPATCH_ARGUMENTS;
4517
4518typedef struct D3D12_VERTEX_BUFFER_VIEW
4519 {
4520 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4521 UINT SizeInBytes;
4522 UINT StrideInBytes;
4523 } D3D12_VERTEX_BUFFER_VIEW;
4524
4525typedef struct D3D12_INDEX_BUFFER_VIEW
4526 {
4527 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4528 UINT SizeInBytes;
4529 DXGI_FORMAT Format;
4530 } D3D12_INDEX_BUFFER_VIEW;
4531
4532typedef
4533enum D3D12_INDIRECT_ARGUMENT_TYPE
4534 {
4535 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
4536 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) ,
4537 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) ,
4538 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) ,
4539 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) ,
4540 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) ,
4541 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) ,
4542 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) ,
4543 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) ,
4544 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) ,
4545 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) ,
4546 D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 )
4547 } D3D12_INDIRECT_ARGUMENT_TYPE;
4548
4549typedef struct D3D12_INDIRECT_ARGUMENT_DESC
4550 {
4551 D3D12_INDIRECT_ARGUMENT_TYPE Type;
4552 union
4553 {
4554 struct
4555 {
4556 UINT Slot;
4557 } VertexBuffer;
4558 struct
4559 {
4560 UINT RootParameterIndex;
4561 UINT DestOffsetIn32BitValues;
4562 UINT Num32BitValuesToSet;
4563 } Constant;
4564 struct
4565 {
4566 UINT RootParameterIndex;
4567 } ConstantBufferView;
4568 struct
4569 {
4570 UINT RootParameterIndex;
4571 } ShaderResourceView;
4572 struct
4573 {
4574 UINT RootParameterIndex;
4575 } UnorderedAccessView;
4576 struct
4577 {
4578 UINT RootParameterIndex;
4579 UINT DestOffsetIn32BitValues;
4580 } IncrementingConstant;
4581 } ;
4582 } D3D12_INDIRECT_ARGUMENT_DESC;
4583
4584typedef struct D3D12_COMMAND_SIGNATURE_DESC
4585 {
4586 UINT ByteStride;
4587 UINT NumArgumentDescs;
4588 _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
4589 UINT NodeMask;
4590 } D3D12_COMMAND_SIGNATURE_DESC;
4591
4592
4593
4594
4595extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
4596extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
4597
4598#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
4599#define __ID3D12Pageable_INTERFACE_DEFINED__
4600
4601/* interface ID3D12Pageable */
4602/* [unique][local][object][uuid] */
4603
4604
4605EXTERN_C const IID IID_ID3D12Pageable;
4606
4607#if defined(__cplusplus) && !defined(CINTERFACE)
4608
4609 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
4610 ID3D12Pageable : public ID3D12DeviceChild
4611 {
4612 public:
4613 };
4614
4615
4616#else /* C style interface */
4617
4618 typedef struct ID3D12PageableVtbl
4619 {
4620 BEGIN_INTERFACE
4621
4622 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4623 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4624 ID3D12Pageable * This,
4625 REFIID riid,
4626 _COM_Outptr_ void **ppvObject);
4627
4628 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4629 ULONG ( STDMETHODCALLTYPE *AddRef )(
4630 ID3D12Pageable * This);
4631
4632 DECLSPEC_XFGVIRT(IUnknown, Release)
4633 ULONG ( STDMETHODCALLTYPE *Release )(
4634 ID3D12Pageable * This);
4635
4636 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4637 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4638 ID3D12Pageable * This,
4639 _In_ REFGUID guid,
4640 _Inout_ UINT *pDataSize,
4641 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4642
4643 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4644 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4645 ID3D12Pageable * This,
4646 _In_ REFGUID guid,
4647 _In_ UINT DataSize,
4648 _In_reads_bytes_opt_( DataSize ) const void *pData);
4649
4650 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4651 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4652 ID3D12Pageable * This,
4653 _In_ REFGUID guid,
4654 _In_opt_ const IUnknown *pData);
4655
4656 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4657 HRESULT ( STDMETHODCALLTYPE *SetName )(
4658 ID3D12Pageable * This,
4659 _In_z_ LPCWSTR Name);
4660
4661 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4662 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4663 ID3D12Pageable * This,
4664 REFIID riid,
4665 _COM_Outptr_opt_ void **ppvDevice);
4666
4667 END_INTERFACE
4668 } ID3D12PageableVtbl;
4669
4670 interface ID3D12Pageable
4671 {
4672 CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
4673 };
4674
4675
4676
4677#ifdef COBJMACROS
4678
4679
4680#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \
4681 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4682
4683#define ID3D12Pageable_AddRef(This) \
4684 ( (This)->lpVtbl -> AddRef(This) )
4685
4686#define ID3D12Pageable_Release(This) \
4687 ( (This)->lpVtbl -> Release(This) )
4688
4689
4690#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \
4691 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4692
4693#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \
4694 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4695
4696#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \
4697 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4698
4699#define ID3D12Pageable_SetName(This,Name) \
4700 ( (This)->lpVtbl -> SetName(This,Name) )
4701
4702
4703#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \
4704 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4705
4706
4707#endif /* COBJMACROS */
4708
4709
4710#endif /* C style interface */
4711
4712
4713
4714
4715#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
4716
4717
4718#ifndef __ID3D12Heap_INTERFACE_DEFINED__
4719#define __ID3D12Heap_INTERFACE_DEFINED__
4720
4721/* interface ID3D12Heap */
4722/* [unique][local][object][uuid] */
4723
4724
4725EXTERN_C const IID IID_ID3D12Heap;
4726
4727#if defined(__cplusplus) && !defined(CINTERFACE)
4728
4729 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
4730 ID3D12Heap : public ID3D12Pageable
4731 {
4732 public:
4733#if defined(_MSC_VER) || !defined(_WIN32)
4734 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4735#else
4736 virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
4737 D3D12_HEAP_DESC * RetVal) = 0;
4738#endif
4739
4740 };
4741
4742
4743#else /* C style interface */
4744
4745 typedef struct ID3D12HeapVtbl
4746 {
4747 BEGIN_INTERFACE
4748
4749 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4750 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4751 ID3D12Heap * This,
4752 REFIID riid,
4753 _COM_Outptr_ void **ppvObject);
4754
4755 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4756 ULONG ( STDMETHODCALLTYPE *AddRef )(
4757 ID3D12Heap * This);
4758
4759 DECLSPEC_XFGVIRT(IUnknown, Release)
4760 ULONG ( STDMETHODCALLTYPE *Release )(
4761 ID3D12Heap * This);
4762
4763 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4764 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4765 ID3D12Heap * This,
4766 _In_ REFGUID guid,
4767 _Inout_ UINT *pDataSize,
4768 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4769
4770 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4771 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4772 ID3D12Heap * This,
4773 _In_ REFGUID guid,
4774 _In_ UINT DataSize,
4775 _In_reads_bytes_opt_( DataSize ) const void *pData);
4776
4777 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4778 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4779 ID3D12Heap * This,
4780 _In_ REFGUID guid,
4781 _In_opt_ const IUnknown *pData);
4782
4783 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4784 HRESULT ( STDMETHODCALLTYPE *SetName )(
4785 ID3D12Heap * This,
4786 _In_z_ LPCWSTR Name);
4787
4788 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4789 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4790 ID3D12Heap * This,
4791 REFIID riid,
4792 _COM_Outptr_opt_ void **ppvDevice);
4793
4794 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
4795#if !defined(_WIN32)
4796 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
4797 ID3D12Heap * This);
4798
4799#else
4800 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
4801 ID3D12Heap * This,
4802 D3D12_HEAP_DESC * RetVal);
4803
4804#endif
4805
4806 END_INTERFACE
4807 } ID3D12HeapVtbl;
4808
4809 interface ID3D12Heap
4810 {
4811 CONST_VTBL struct ID3D12HeapVtbl *lpVtbl;
4812 };
4813
4814
4815
4816#ifdef COBJMACROS
4817
4818
4819#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \
4820 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4821
4822#define ID3D12Heap_AddRef(This) \
4823 ( (This)->lpVtbl -> AddRef(This) )
4824
4825#define ID3D12Heap_Release(This) \
4826 ( (This)->lpVtbl -> Release(This) )
4827
4828
4829#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \
4830 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4831
4832#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \
4833 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4834
4835#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \
4836 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4837
4838#define ID3D12Heap_SetName(This,Name) \
4839 ( (This)->lpVtbl -> SetName(This,Name) )
4840
4841
4842#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \
4843 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4844
4845
4846#if !defined(_WIN32)
4847
4848#define ID3D12Heap_GetDesc(This) \
4849 ( (This)->lpVtbl -> GetDesc(This) )
4850#else
4851#define ID3D12Heap_GetDesc(This,RetVal) \
4852 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
4853#endif
4854
4855#endif /* COBJMACROS */
4856
4857
4858#endif /* C style interface */
4859
4860
4861
4862
4863#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
4864
4865
4866#ifndef __ID3D12Resource_INTERFACE_DEFINED__
4867#define __ID3D12Resource_INTERFACE_DEFINED__
4868
4869/* interface ID3D12Resource */
4870/* [unique][local][object][uuid] */
4871
4872
4873EXTERN_C const IID IID_ID3D12Resource;
4874
4875#if defined(__cplusplus) && !defined(CINTERFACE)
4876
4877 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
4878 ID3D12Resource : public ID3D12Pageable
4879 {
4880 public:
4881 virtual HRESULT STDMETHODCALLTYPE Map(
4882 UINT Subresource,
4883 _In_opt_ const D3D12_RANGE *pReadRange,
4884 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
4885
4886 virtual void STDMETHODCALLTYPE Unmap(
4887 UINT Subresource,
4888 _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
4889
4890#if defined(_MSC_VER) || !defined(_WIN32)
4891 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4892#else
4893 virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc(
4894 D3D12_RESOURCE_DESC * RetVal) = 0;
4895#endif
4896
4897 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0;
4898
4899 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
4900 UINT DstSubresource,
4901 _In_opt_ const D3D12_BOX *pDstBox,
4902 _In_ const void *pSrcData,
4903 UINT SrcRowPitch,
4904 UINT SrcDepthPitch) = 0;
4905
4906 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
4907 _Out_ void *pDstData,
4908 UINT DstRowPitch,
4909 UINT DstDepthPitch,
4910 UINT SrcSubresource,
4911 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
4912
4913 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
4914 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
4915 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0;
4916
4917 };
4918
4919
4920#else /* C style interface */
4921
4922 typedef struct ID3D12ResourceVtbl
4923 {
4924 BEGIN_INTERFACE
4925
4926 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4927 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4928 ID3D12Resource * This,
4929 REFIID riid,
4930 _COM_Outptr_ void **ppvObject);
4931
4932 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4933 ULONG ( STDMETHODCALLTYPE *AddRef )(
4934 ID3D12Resource * This);
4935
4936 DECLSPEC_XFGVIRT(IUnknown, Release)
4937 ULONG ( STDMETHODCALLTYPE *Release )(
4938 ID3D12Resource * This);
4939
4940 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4941 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4942 ID3D12Resource * This,
4943 _In_ REFGUID guid,
4944 _Inout_ UINT *pDataSize,
4945 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4946
4947 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4948 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4949 ID3D12Resource * This,
4950 _In_ REFGUID guid,
4951 _In_ UINT DataSize,
4952 _In_reads_bytes_opt_( DataSize ) const void *pData);
4953
4954 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4955 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4956 ID3D12Resource * This,
4957 _In_ REFGUID guid,
4958 _In_opt_ const IUnknown *pData);
4959
4960 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4961 HRESULT ( STDMETHODCALLTYPE *SetName )(
4962 ID3D12Resource * This,
4963 _In_z_ LPCWSTR Name);
4964
4965 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4966 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4967 ID3D12Resource * This,
4968 REFIID riid,
4969 _COM_Outptr_opt_ void **ppvDevice);
4970
4971 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
4972 HRESULT ( STDMETHODCALLTYPE *Map )(
4973 ID3D12Resource * This,
4974 UINT Subresource,
4975 _In_opt_ const D3D12_RANGE *pReadRange,
4976 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
4977
4978 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
4979 void ( STDMETHODCALLTYPE *Unmap )(
4980 ID3D12Resource * This,
4981 UINT Subresource,
4982 _In_opt_ const D3D12_RANGE *pWrittenRange);
4983
4984 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
4985#if !defined(_WIN32)
4986 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
4987 ID3D12Resource * This);
4988
4989#else
4990 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
4991 ID3D12Resource * This,
4992 D3D12_RESOURCE_DESC * RetVal);
4993
4994#endif
4995
4996 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
4997 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
4998 ID3D12Resource * This);
4999
5000 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
5001 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
5002 ID3D12Resource * This,
5003 UINT DstSubresource,
5004 _In_opt_ const D3D12_BOX *pDstBox,
5005 _In_ const void *pSrcData,
5006 UINT SrcRowPitch,
5007 UINT SrcDepthPitch);
5008
5009 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
5010 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
5011 ID3D12Resource * This,
5012 _Out_ void *pDstData,
5013 UINT DstRowPitch,
5014 UINT DstDepthPitch,
5015 UINT SrcSubresource,
5016 _In_opt_ const D3D12_BOX *pSrcBox);
5017
5018 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
5019 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
5020 ID3D12Resource * This,
5021 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
5022 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
5023
5024 END_INTERFACE
5025 } ID3D12ResourceVtbl;
5026
5027 interface ID3D12Resource
5028 {
5029 CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
5030 };
5031
5032
5033
5034#ifdef COBJMACROS
5035
5036
5037#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \
5038 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5039
5040#define ID3D12Resource_AddRef(This) \
5041 ( (This)->lpVtbl -> AddRef(This) )
5042
5043#define ID3D12Resource_Release(This) \
5044 ( (This)->lpVtbl -> Release(This) )
5045
5046
5047#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \
5048 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5049
5050#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \
5051 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5052
5053#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \
5054 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5055
5056#define ID3D12Resource_SetName(This,Name) \
5057 ( (This)->lpVtbl -> SetName(This,Name) )
5058
5059
5060#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \
5061 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5062
5063
5064
5065#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \
5066 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
5067
5068#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \
5069 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
5070#if !defined(_WIN32)
5071
5072#define ID3D12Resource_GetDesc(This) \
5073 ( (This)->lpVtbl -> GetDesc(This) )
5074#else
5075#define ID3D12Resource_GetDesc(This,RetVal) \
5076 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5077#endif
5078
5079#define ID3D12Resource_GetGPUVirtualAddress(This) \
5080 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
5081
5082#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
5083 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
5084
5085#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
5086 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
5087
5088#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
5089 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
5090
5091#endif /* COBJMACROS */
5092
5093
5094#endif /* C style interface */
5095
5096
5097
5098
5099#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
5100
5101
5102#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
5103#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
5104
5105/* interface ID3D12CommandAllocator */
5106/* [unique][local][object][uuid] */
5107
5108
5109EXTERN_C const IID IID_ID3D12CommandAllocator;
5110
5111#if defined(__cplusplus) && !defined(CINTERFACE)
5112
5113 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
5114 ID3D12CommandAllocator : public ID3D12Pageable
5115 {
5116 public:
5117 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
5118
5119 };
5120
5121
5122#else /* C style interface */
5123
5124 typedef struct ID3D12CommandAllocatorVtbl
5125 {
5126 BEGIN_INTERFACE
5127
5128 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5129 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5130 ID3D12CommandAllocator * This,
5131 REFIID riid,
5132 _COM_Outptr_ void **ppvObject);
5133
5134 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5135 ULONG ( STDMETHODCALLTYPE *AddRef )(
5136 ID3D12CommandAllocator * This);
5137
5138 DECLSPEC_XFGVIRT(IUnknown, Release)
5139 ULONG ( STDMETHODCALLTYPE *Release )(
5140 ID3D12CommandAllocator * This);
5141
5142 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5143 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5144 ID3D12CommandAllocator * This,
5145 _In_ REFGUID guid,
5146 _Inout_ UINT *pDataSize,
5147 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5148
5149 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5150 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5151 ID3D12CommandAllocator * This,
5152 _In_ REFGUID guid,
5153 _In_ UINT DataSize,
5154 _In_reads_bytes_opt_( DataSize ) const void *pData);
5155
5156 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5157 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5158 ID3D12CommandAllocator * This,
5159 _In_ REFGUID guid,
5160 _In_opt_ const IUnknown *pData);
5161
5162 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5163 HRESULT ( STDMETHODCALLTYPE *SetName )(
5164 ID3D12CommandAllocator * This,
5165 _In_z_ LPCWSTR Name);
5166
5167 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5168 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5169 ID3D12CommandAllocator * This,
5170 REFIID riid,
5171 _COM_Outptr_opt_ void **ppvDevice);
5172
5173 DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset)
5174 HRESULT ( STDMETHODCALLTYPE *Reset )(
5175 ID3D12CommandAllocator * This);
5176
5177 END_INTERFACE
5178 } ID3D12CommandAllocatorVtbl;
5179
5180 interface ID3D12CommandAllocator
5181 {
5182 CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
5183 };
5184
5185
5186
5187#ifdef COBJMACROS
5188
5189
5190#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \
5191 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5192
5193#define ID3D12CommandAllocator_AddRef(This) \
5194 ( (This)->lpVtbl -> AddRef(This) )
5195
5196#define ID3D12CommandAllocator_Release(This) \
5197 ( (This)->lpVtbl -> Release(This) )
5198
5199
5200#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \
5201 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5202
5203#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \
5204 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5205
5206#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \
5207 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5208
5209#define ID3D12CommandAllocator_SetName(This,Name) \
5210 ( (This)->lpVtbl -> SetName(This,Name) )
5211
5212
5213#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \
5214 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5215
5216
5217
5218#define ID3D12CommandAllocator_Reset(This) \
5219 ( (This)->lpVtbl -> Reset(This) )
5220
5221#endif /* COBJMACROS */
5222
5223
5224#endif /* C style interface */
5225
5226
5227
5228
5229#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
5230
5231
5232#ifndef __ID3D12Fence_INTERFACE_DEFINED__
5233#define __ID3D12Fence_INTERFACE_DEFINED__
5234
5235/* interface ID3D12Fence */
5236/* [unique][local][object][uuid] */
5237
5238
5239EXTERN_C const IID IID_ID3D12Fence;
5240
5241#if defined(__cplusplus) && !defined(CINTERFACE)
5242
5243 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
5244 ID3D12Fence : public ID3D12Pageable
5245 {
5246 public:
5247 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0;
5248
5249 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
5250 UINT64 Value,
5251 HANDLE hEvent) = 0;
5252
5253 virtual HRESULT STDMETHODCALLTYPE Signal(
5254 UINT64 Value) = 0;
5255
5256 };
5257
5258
5259#else /* C style interface */
5260
5261 typedef struct ID3D12FenceVtbl
5262 {
5263 BEGIN_INTERFACE
5264
5265 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5266 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5267 ID3D12Fence * This,
5268 REFIID riid,
5269 _COM_Outptr_ void **ppvObject);
5270
5271 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5272 ULONG ( STDMETHODCALLTYPE *AddRef )(
5273 ID3D12Fence * This);
5274
5275 DECLSPEC_XFGVIRT(IUnknown, Release)
5276 ULONG ( STDMETHODCALLTYPE *Release )(
5277 ID3D12Fence * This);
5278
5279 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5280 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5281 ID3D12Fence * This,
5282 _In_ REFGUID guid,
5283 _Inout_ UINT *pDataSize,
5284 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5285
5286 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5287 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5288 ID3D12Fence * This,
5289 _In_ REFGUID guid,
5290 _In_ UINT DataSize,
5291 _In_reads_bytes_opt_( DataSize ) const void *pData);
5292
5293 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5294 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5295 ID3D12Fence * This,
5296 _In_ REFGUID guid,
5297 _In_opt_ const IUnknown *pData);
5298
5299 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5300 HRESULT ( STDMETHODCALLTYPE *SetName )(
5301 ID3D12Fence * This,
5302 _In_z_ LPCWSTR Name);
5303
5304 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5305 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5306 ID3D12Fence * This,
5307 REFIID riid,
5308 _COM_Outptr_opt_ void **ppvDevice);
5309
5310 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5311 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5312 ID3D12Fence * This);
5313
5314 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5315 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5316 ID3D12Fence * This,
5317 UINT64 Value,
5318 HANDLE hEvent);
5319
5320 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5321 HRESULT ( STDMETHODCALLTYPE *Signal )(
5322 ID3D12Fence * This,
5323 UINT64 Value);
5324
5325 END_INTERFACE
5326 } ID3D12FenceVtbl;
5327
5328 interface ID3D12Fence
5329 {
5330 CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
5331 };
5332
5333
5334
5335#ifdef COBJMACROS
5336
5337
5338#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \
5339 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5340
5341#define ID3D12Fence_AddRef(This) \
5342 ( (This)->lpVtbl -> AddRef(This) )
5343
5344#define ID3D12Fence_Release(This) \
5345 ( (This)->lpVtbl -> Release(This) )
5346
5347
5348#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \
5349 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5350
5351#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \
5352 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5353
5354#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \
5355 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5356
5357#define ID3D12Fence_SetName(This,Name) \
5358 ( (This)->lpVtbl -> SetName(This,Name) )
5359
5360
5361#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \
5362 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5363
5364
5365
5366#define ID3D12Fence_GetCompletedValue(This) \
5367 ( (This)->lpVtbl -> GetCompletedValue(This) )
5368
5369#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \
5370 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5371
5372#define ID3D12Fence_Signal(This,Value) \
5373 ( (This)->lpVtbl -> Signal(This,Value) )
5374
5375#endif /* COBJMACROS */
5376
5377
5378#endif /* C style interface */
5379
5380
5381
5382
5383#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
5384
5385
5386#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
5387#define __ID3D12Fence1_INTERFACE_DEFINED__
5388
5389/* interface ID3D12Fence1 */
5390/* [unique][local][object][uuid] */
5391
5392
5393EXTERN_C const IID IID_ID3D12Fence1;
5394
5395#if defined(__cplusplus) && !defined(CINTERFACE)
5396
5397 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
5398 ID3D12Fence1 : public ID3D12Fence
5399 {
5400 public:
5401 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0;
5402
5403 };
5404
5405
5406#else /* C style interface */
5407
5408 typedef struct ID3D12Fence1Vtbl
5409 {
5410 BEGIN_INTERFACE
5411
5412 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5413 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5414 ID3D12Fence1 * This,
5415 REFIID riid,
5416 _COM_Outptr_ void **ppvObject);
5417
5418 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5419 ULONG ( STDMETHODCALLTYPE *AddRef )(
5420 ID3D12Fence1 * This);
5421
5422 DECLSPEC_XFGVIRT(IUnknown, Release)
5423 ULONG ( STDMETHODCALLTYPE *Release )(
5424 ID3D12Fence1 * This);
5425
5426 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5427 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5428 ID3D12Fence1 * This,
5429 _In_ REFGUID guid,
5430 _Inout_ UINT *pDataSize,
5431 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5432
5433 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5434 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5435 ID3D12Fence1 * This,
5436 _In_ REFGUID guid,
5437 _In_ UINT DataSize,
5438 _In_reads_bytes_opt_( DataSize ) const void *pData);
5439
5440 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5441 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5442 ID3D12Fence1 * This,
5443 _In_ REFGUID guid,
5444 _In_opt_ const IUnknown *pData);
5445
5446 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5447 HRESULT ( STDMETHODCALLTYPE *SetName )(
5448 ID3D12Fence1 * This,
5449 _In_z_ LPCWSTR Name);
5450
5451 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5452 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5453 ID3D12Fence1 * This,
5454 REFIID riid,
5455 _COM_Outptr_opt_ void **ppvDevice);
5456
5457 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5458 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5459 ID3D12Fence1 * This);
5460
5461 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5462 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5463 ID3D12Fence1 * This,
5464 UINT64 Value,
5465 HANDLE hEvent);
5466
5467 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5468 HRESULT ( STDMETHODCALLTYPE *Signal )(
5469 ID3D12Fence1 * This,
5470 UINT64 Value);
5471
5472 DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags)
5473 D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )(
5474 ID3D12Fence1 * This);
5475
5476 END_INTERFACE
5477 } ID3D12Fence1Vtbl;
5478
5479 interface ID3D12Fence1
5480 {
5481 CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl;
5482 };
5483
5484
5485
5486#ifdef COBJMACROS
5487
5488
5489#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \
5490 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5491
5492#define ID3D12Fence1_AddRef(This) \
5493 ( (This)->lpVtbl -> AddRef(This) )
5494
5495#define ID3D12Fence1_Release(This) \
5496 ( (This)->lpVtbl -> Release(This) )
5497
5498
5499#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \
5500 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5501
5502#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \
5503 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5504
5505#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \
5506 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5507
5508#define ID3D12Fence1_SetName(This,Name) \
5509 ( (This)->lpVtbl -> SetName(This,Name) )
5510
5511
5512#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \
5513 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5514
5515
5516
5517#define ID3D12Fence1_GetCompletedValue(This) \
5518 ( (This)->lpVtbl -> GetCompletedValue(This) )
5519
5520#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \
5521 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5522
5523#define ID3D12Fence1_Signal(This,Value) \
5524 ( (This)->lpVtbl -> Signal(This,Value) )
5525
5526
5527#define ID3D12Fence1_GetCreationFlags(This) \
5528 ( (This)->lpVtbl -> GetCreationFlags(This) )
5529
5530#endif /* COBJMACROS */
5531
5532
5533#endif /* C style interface */
5534
5535
5536
5537
5538#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
5539
5540
5541#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5542#define __ID3D12PipelineState_INTERFACE_DEFINED__
5543
5544/* interface ID3D12PipelineState */
5545/* [unique][local][object][uuid] */
5546
5547
5548EXTERN_C const IID IID_ID3D12PipelineState;
5549
5550#if defined(__cplusplus) && !defined(CINTERFACE)
5551
5552 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5553 ID3D12PipelineState : public ID3D12Pageable
5554 {
5555 public:
5556 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5557 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
5558
5559 };
5560
5561
5562#else /* C style interface */
5563
5564 typedef struct ID3D12PipelineStateVtbl
5565 {
5566 BEGIN_INTERFACE
5567
5568 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5569 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5570 ID3D12PipelineState * This,
5571 REFIID riid,
5572 _COM_Outptr_ void **ppvObject);
5573
5574 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5575 ULONG ( STDMETHODCALLTYPE *AddRef )(
5576 ID3D12PipelineState * This);
5577
5578 DECLSPEC_XFGVIRT(IUnknown, Release)
5579 ULONG ( STDMETHODCALLTYPE *Release )(
5580 ID3D12PipelineState * This);
5581
5582 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5583 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5584 ID3D12PipelineState * This,
5585 _In_ REFGUID guid,
5586 _Inout_ UINT *pDataSize,
5587 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5588
5589 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5590 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5591 ID3D12PipelineState * This,
5592 _In_ REFGUID guid,
5593 _In_ UINT DataSize,
5594 _In_reads_bytes_opt_( DataSize ) const void *pData);
5595
5596 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5597 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5598 ID3D12PipelineState * This,
5599 _In_ REFGUID guid,
5600 _In_opt_ const IUnknown *pData);
5601
5602 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5603 HRESULT ( STDMETHODCALLTYPE *SetName )(
5604 ID3D12PipelineState * This,
5605 _In_z_ LPCWSTR Name);
5606
5607 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5608 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5609 ID3D12PipelineState * This,
5610 REFIID riid,
5611 _COM_Outptr_opt_ void **ppvDevice);
5612
5613 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5614 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5615 ID3D12PipelineState * This,
5616 _COM_Outptr_ ID3DBlob **ppBlob);
5617
5618 END_INTERFACE
5619 } ID3D12PipelineStateVtbl;
5620
5621 interface ID3D12PipelineState
5622 {
5623 CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5624 };
5625
5626
5627
5628#ifdef COBJMACROS
5629
5630
5631#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \
5632 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5633
5634#define ID3D12PipelineState_AddRef(This) \
5635 ( (This)->lpVtbl -> AddRef(This) )
5636
5637#define ID3D12PipelineState_Release(This) \
5638 ( (This)->lpVtbl -> Release(This) )
5639
5640
5641#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \
5642 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5643
5644#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \
5645 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5646
5647#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \
5648 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5649
5650#define ID3D12PipelineState_SetName(This,Name) \
5651 ( (This)->lpVtbl -> SetName(This,Name) )
5652
5653
5654#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \
5655 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5656
5657
5658
5659#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \
5660 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5661
5662#endif /* COBJMACROS */
5663
5664
5665#endif /* C style interface */
5666
5667
5668
5669
5670#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5671
5672
5673#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5674#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5675
5676/* interface ID3D12DescriptorHeap */
5677/* [unique][local][object][uuid] */
5678
5679
5680EXTERN_C const IID IID_ID3D12DescriptorHeap;
5681
5682#if defined(__cplusplus) && !defined(CINTERFACE)
5683
5684 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5685 ID3D12DescriptorHeap : public ID3D12Pageable
5686 {
5687 public:
5688#if defined(_MSC_VER) || !defined(_WIN32)
5689 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5690#else
5691 virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
5692 D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0;
5693#endif
5694
5695#if defined(_MSC_VER) || !defined(_WIN32)
5696 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0;
5697#else
5698 virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
5699 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0;
5700#endif
5701
5702#if defined(_MSC_VER) || !defined(_WIN32)
5703 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0;
5704#else
5705 virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
5706 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0;
5707#endif
5708
5709 };
5710
5711
5712#else /* C style interface */
5713
5714 typedef struct ID3D12DescriptorHeapVtbl
5715 {
5716 BEGIN_INTERFACE
5717
5718 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5719 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5720 ID3D12DescriptorHeap * This,
5721 REFIID riid,
5722 _COM_Outptr_ void **ppvObject);
5723
5724 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5725 ULONG ( STDMETHODCALLTYPE *AddRef )(
5726 ID3D12DescriptorHeap * This);
5727
5728 DECLSPEC_XFGVIRT(IUnknown, Release)
5729 ULONG ( STDMETHODCALLTYPE *Release )(
5730 ID3D12DescriptorHeap * This);
5731
5732 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5733 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5734 ID3D12DescriptorHeap * This,
5735 _In_ REFGUID guid,
5736 _Inout_ UINT *pDataSize,
5737 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5738
5739 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5740 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5741 ID3D12DescriptorHeap * This,
5742 _In_ REFGUID guid,
5743 _In_ UINT DataSize,
5744 _In_reads_bytes_opt_( DataSize ) const void *pData);
5745
5746 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5747 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5748 ID3D12DescriptorHeap * This,
5749 _In_ REFGUID guid,
5750 _In_opt_ const IUnknown *pData);
5751
5752 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5753 HRESULT ( STDMETHODCALLTYPE *SetName )(
5754 ID3D12DescriptorHeap * This,
5755 _In_z_ LPCWSTR Name);
5756
5757 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5758 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5759 ID3D12DescriptorHeap * This,
5760 REFIID riid,
5761 _COM_Outptr_opt_ void **ppvDevice);
5762
5763 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc)
5764#if !defined(_WIN32)
5765 D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
5766 ID3D12DescriptorHeap * This);
5767
5768#else
5769 D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
5770 ID3D12DescriptorHeap * This,
5771 D3D12_DESCRIPTOR_HEAP_DESC * RetVal);
5772
5773#endif
5774
5775 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart)
5776#if !defined(_WIN32)
5777 D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
5778 ID3D12DescriptorHeap * This);
5779
5780#else
5781 D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
5782 ID3D12DescriptorHeap * This,
5783 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal);
5784
5785#endif
5786
5787 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart)
5788#if !defined(_WIN32)
5789 D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
5790 ID3D12DescriptorHeap * This);
5791
5792#else
5793 D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
5794 ID3D12DescriptorHeap * This,
5795 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal);
5796
5797#endif
5798
5799 END_INTERFACE
5800 } ID3D12DescriptorHeapVtbl;
5801
5802 interface ID3D12DescriptorHeap
5803 {
5804 CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
5805 };
5806
5807
5808
5809#ifdef COBJMACROS
5810
5811
5812#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \
5813 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5814
5815#define ID3D12DescriptorHeap_AddRef(This) \
5816 ( (This)->lpVtbl -> AddRef(This) )
5817
5818#define ID3D12DescriptorHeap_Release(This) \
5819 ( (This)->lpVtbl -> Release(This) )
5820
5821
5822#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \
5823 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5824
5825#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \
5826 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5827
5828#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \
5829 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5830
5831#define ID3D12DescriptorHeap_SetName(This,Name) \
5832 ( (This)->lpVtbl -> SetName(This,Name) )
5833
5834
5835#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \
5836 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5837
5838
5839#if !defined(_WIN32)
5840
5841#define ID3D12DescriptorHeap_GetDesc(This) \
5842 ( (This)->lpVtbl -> GetDesc(This) )
5843#else
5844#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \
5845 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5846#endif
5847#if !defined(_WIN32)
5848
5849#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
5850 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) )
5851#else
5852#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \
5853 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) )
5854#endif
5855#if !defined(_WIN32)
5856
5857#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
5858 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) )
5859#else
5860#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \
5861 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) )
5862#endif
5863
5864#endif /* COBJMACROS */
5865
5866
5867#endif /* C style interface */
5868
5869
5870
5871
5872#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
5873
5874
5875#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
5876#define __ID3D12QueryHeap_INTERFACE_DEFINED__
5877
5878/* interface ID3D12QueryHeap */
5879/* [unique][local][object][uuid] */
5880
5881
5882EXTERN_C const IID IID_ID3D12QueryHeap;
5883
5884#if defined(__cplusplus) && !defined(CINTERFACE)
5885
5886 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
5887 ID3D12QueryHeap : public ID3D12Pageable
5888 {
5889 public:
5890 };
5891
5892
5893#else /* C style interface */
5894
5895 typedef struct ID3D12QueryHeapVtbl
5896 {
5897 BEGIN_INTERFACE
5898
5899 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5900 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5901 ID3D12QueryHeap * This,
5902 REFIID riid,
5903 _COM_Outptr_ void **ppvObject);
5904
5905 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5906 ULONG ( STDMETHODCALLTYPE *AddRef )(
5907 ID3D12QueryHeap * This);
5908
5909 DECLSPEC_XFGVIRT(IUnknown, Release)
5910 ULONG ( STDMETHODCALLTYPE *Release )(
5911 ID3D12QueryHeap * This);
5912
5913 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5914 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5915 ID3D12QueryHeap * This,
5916 _In_ REFGUID guid,
5917 _Inout_ UINT *pDataSize,
5918 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5919
5920 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5921 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5922 ID3D12QueryHeap * This,
5923 _In_ REFGUID guid,
5924 _In_ UINT DataSize,
5925 _In_reads_bytes_opt_( DataSize ) const void *pData);
5926
5927 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5928 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5929 ID3D12QueryHeap * This,
5930 _In_ REFGUID guid,
5931 _In_opt_ const IUnknown *pData);
5932
5933 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5934 HRESULT ( STDMETHODCALLTYPE *SetName )(
5935 ID3D12QueryHeap * This,
5936 _In_z_ LPCWSTR Name);
5937
5938 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5939 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5940 ID3D12QueryHeap * This,
5941 REFIID riid,
5942 _COM_Outptr_opt_ void **ppvDevice);
5943
5944 END_INTERFACE
5945 } ID3D12QueryHeapVtbl;
5946
5947 interface ID3D12QueryHeap
5948 {
5949 CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
5950 };
5951
5952
5953
5954#ifdef COBJMACROS
5955
5956
5957#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \
5958 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5959
5960#define ID3D12QueryHeap_AddRef(This) \
5961 ( (This)->lpVtbl -> AddRef(This) )
5962
5963#define ID3D12QueryHeap_Release(This) \
5964 ( (This)->lpVtbl -> Release(This) )
5965
5966
5967#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \
5968 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5969
5970#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \
5971 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5972
5973#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \
5974 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5975
5976#define ID3D12QueryHeap_SetName(This,Name) \
5977 ( (This)->lpVtbl -> SetName(This,Name) )
5978
5979
5980#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \
5981 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5982
5983
5984
5985#endif /* COBJMACROS */
5986
5987
5988#endif /* C style interface */
5989
5990
5991
5992
5993#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
5994
5995
5996#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
5997#define __ID3D12CommandSignature_INTERFACE_DEFINED__
5998
5999/* interface ID3D12CommandSignature */
6000/* [unique][local][object][uuid] */
6001
6002
6003EXTERN_C const IID IID_ID3D12CommandSignature;
6004
6005#if defined(__cplusplus) && !defined(CINTERFACE)
6006
6007 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
6008 ID3D12CommandSignature : public ID3D12Pageable
6009 {
6010 public:
6011 };
6012
6013
6014#else /* C style interface */
6015
6016 typedef struct ID3D12CommandSignatureVtbl
6017 {
6018 BEGIN_INTERFACE
6019
6020 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6021 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6022 ID3D12CommandSignature * This,
6023 REFIID riid,
6024 _COM_Outptr_ void **ppvObject);
6025
6026 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6027 ULONG ( STDMETHODCALLTYPE *AddRef )(
6028 ID3D12CommandSignature * This);
6029
6030 DECLSPEC_XFGVIRT(IUnknown, Release)
6031 ULONG ( STDMETHODCALLTYPE *Release )(
6032 ID3D12CommandSignature * This);
6033
6034 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6035 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6036 ID3D12CommandSignature * This,
6037 _In_ REFGUID guid,
6038 _Inout_ UINT *pDataSize,
6039 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6040
6041 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6042 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6043 ID3D12CommandSignature * This,
6044 _In_ REFGUID guid,
6045 _In_ UINT DataSize,
6046 _In_reads_bytes_opt_( DataSize ) const void *pData);
6047
6048 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6049 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6050 ID3D12CommandSignature * This,
6051 _In_ REFGUID guid,
6052 _In_opt_ const IUnknown *pData);
6053
6054 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6055 HRESULT ( STDMETHODCALLTYPE *SetName )(
6056 ID3D12CommandSignature * This,
6057 _In_z_ LPCWSTR Name);
6058
6059 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6060 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6061 ID3D12CommandSignature * This,
6062 REFIID riid,
6063 _COM_Outptr_opt_ void **ppvDevice);
6064
6065 END_INTERFACE
6066 } ID3D12CommandSignatureVtbl;
6067
6068 interface ID3D12CommandSignature
6069 {
6070 CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl;
6071 };
6072
6073
6074
6075#ifdef COBJMACROS
6076
6077
6078#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \
6079 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6080
6081#define ID3D12CommandSignature_AddRef(This) \
6082 ( (This)->lpVtbl -> AddRef(This) )
6083
6084#define ID3D12CommandSignature_Release(This) \
6085 ( (This)->lpVtbl -> Release(This) )
6086
6087
6088#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \
6089 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6090
6091#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \
6092 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6093
6094#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \
6095 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6096
6097#define ID3D12CommandSignature_SetName(This,Name) \
6098 ( (This)->lpVtbl -> SetName(This,Name) )
6099
6100
6101#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \
6102 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6103
6104
6105
6106#endif /* COBJMACROS */
6107
6108
6109#endif /* C style interface */
6110
6111
6112
6113
6114#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
6115
6116
6117#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
6118#define __ID3D12CommandList_INTERFACE_DEFINED__
6119
6120/* interface ID3D12CommandList */
6121/* [unique][local][object][uuid] */
6122
6123
6124EXTERN_C const IID IID_ID3D12CommandList;
6125
6126#if defined(__cplusplus) && !defined(CINTERFACE)
6127
6128 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
6129 ID3D12CommandList : public ID3D12DeviceChild
6130 {
6131 public:
6132 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0;
6133
6134 };
6135
6136
6137#else /* C style interface */
6138
6139 typedef struct ID3D12CommandListVtbl
6140 {
6141 BEGIN_INTERFACE
6142
6143 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6144 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6145 ID3D12CommandList * This,
6146 REFIID riid,
6147 _COM_Outptr_ void **ppvObject);
6148
6149 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6150 ULONG ( STDMETHODCALLTYPE *AddRef )(
6151 ID3D12CommandList * This);
6152
6153 DECLSPEC_XFGVIRT(IUnknown, Release)
6154 ULONG ( STDMETHODCALLTYPE *Release )(
6155 ID3D12CommandList * This);
6156
6157 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6158 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6159 ID3D12CommandList * This,
6160 _In_ REFGUID guid,
6161 _Inout_ UINT *pDataSize,
6162 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6163
6164 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6165 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6166 ID3D12CommandList * This,
6167 _In_ REFGUID guid,
6168 _In_ UINT DataSize,
6169 _In_reads_bytes_opt_( DataSize ) const void *pData);
6170
6171 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6172 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6173 ID3D12CommandList * This,
6174 _In_ REFGUID guid,
6175 _In_opt_ const IUnknown *pData);
6176
6177 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6178 HRESULT ( STDMETHODCALLTYPE *SetName )(
6179 ID3D12CommandList * This,
6180 _In_z_ LPCWSTR Name);
6181
6182 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6183 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6184 ID3D12CommandList * This,
6185 REFIID riid,
6186 _COM_Outptr_opt_ void **ppvDevice);
6187
6188 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6189 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6190 ID3D12CommandList * This);
6191
6192 END_INTERFACE
6193 } ID3D12CommandListVtbl;
6194
6195 interface ID3D12CommandList
6196 {
6197 CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
6198 };
6199
6200
6201
6202#ifdef COBJMACROS
6203
6204
6205#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \
6206 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6207
6208#define ID3D12CommandList_AddRef(This) \
6209 ( (This)->lpVtbl -> AddRef(This) )
6210
6211#define ID3D12CommandList_Release(This) \
6212 ( (This)->lpVtbl -> Release(This) )
6213
6214
6215#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \
6216 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6217
6218#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \
6219 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6220
6221#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \
6222 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6223
6224#define ID3D12CommandList_SetName(This,Name) \
6225 ( (This)->lpVtbl -> SetName(This,Name) )
6226
6227
6228#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \
6229 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6230
6231
6232#define ID3D12CommandList_GetType(This) \
6233 ( (This)->lpVtbl -> GetType(This) )
6234
6235#endif /* COBJMACROS */
6236
6237
6238#endif /* C style interface */
6239
6240
6241
6242
6243#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
6244
6245
6246#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6247#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6248
6249/* interface ID3D12GraphicsCommandList */
6250/* [unique][local][object][uuid] */
6251
6252
6253EXTERN_C const IID IID_ID3D12GraphicsCommandList;
6254
6255#if defined(__cplusplus) && !defined(CINTERFACE)
6256
6257 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
6258 ID3D12GraphicsCommandList : public ID3D12CommandList
6259 {
6260 public:
6261 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
6262
6263 virtual HRESULT STDMETHODCALLTYPE Reset(
6264 _In_ ID3D12CommandAllocator *pAllocator,
6265 _In_opt_ ID3D12PipelineState *pInitialState) = 0;
6266
6267 virtual void STDMETHODCALLTYPE ClearState(
6268 _In_opt_ ID3D12PipelineState *pPipelineState) = 0;
6269
6270 virtual void STDMETHODCALLTYPE DrawInstanced(
6271 _In_ UINT VertexCountPerInstance,
6272 _In_ UINT InstanceCount,
6273 _In_ UINT StartVertexLocation,
6274 _In_ UINT StartInstanceLocation) = 0;
6275
6276 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
6277 _In_ UINT IndexCountPerInstance,
6278 _In_ UINT InstanceCount,
6279 _In_ UINT StartIndexLocation,
6280 _In_ INT BaseVertexLocation,
6281 _In_ UINT StartInstanceLocation) = 0;
6282
6283 virtual void STDMETHODCALLTYPE Dispatch(
6284 _In_ UINT ThreadGroupCountX,
6285 _In_ UINT ThreadGroupCountY,
6286 _In_ UINT ThreadGroupCountZ) = 0;
6287
6288 virtual void STDMETHODCALLTYPE CopyBufferRegion(
6289 _In_ ID3D12Resource *pDstBuffer,
6290 UINT64 DstOffset,
6291 _In_ ID3D12Resource *pSrcBuffer,
6292 UINT64 SrcOffset,
6293 UINT64 NumBytes) = 0;
6294
6295 virtual void STDMETHODCALLTYPE CopyTextureRegion(
6296 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6297 UINT DstX,
6298 UINT DstY,
6299 UINT DstZ,
6300 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6301 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
6302
6303 virtual void STDMETHODCALLTYPE CopyResource(
6304 _In_ ID3D12Resource *pDstResource,
6305 _In_ ID3D12Resource *pSrcResource) = 0;
6306
6307 virtual void STDMETHODCALLTYPE CopyTiles(
6308 _In_ ID3D12Resource *pTiledResource,
6309 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6310 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6311 _In_ ID3D12Resource *pBuffer,
6312 UINT64 BufferStartOffsetInBytes,
6313 D3D12_TILE_COPY_FLAGS Flags) = 0;
6314
6315 virtual void STDMETHODCALLTYPE ResolveSubresource(
6316 _In_ ID3D12Resource *pDstResource,
6317 _In_ UINT DstSubresource,
6318 _In_ ID3D12Resource *pSrcResource,
6319 _In_ UINT SrcSubresource,
6320 _In_ DXGI_FORMAT Format) = 0;
6321
6322 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
6323 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
6324
6325 virtual void STDMETHODCALLTYPE RSSetViewports(
6326 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6327 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
6328
6329 virtual void STDMETHODCALLTYPE RSSetScissorRects(
6330 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6331 _In_reads_( NumRects) const D3D12_RECT *pRects) = 0;
6332
6333 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
6334 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0;
6335
6336 virtual void STDMETHODCALLTYPE OMSetStencilRef(
6337 _In_ UINT StencilRef) = 0;
6338
6339 virtual void STDMETHODCALLTYPE SetPipelineState(
6340 _In_ ID3D12PipelineState *pPipelineState) = 0;
6341
6342 virtual void STDMETHODCALLTYPE ResourceBarrier(
6343 _In_ UINT NumBarriers,
6344 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
6345
6346 virtual void STDMETHODCALLTYPE ExecuteBundle(
6347 _In_ ID3D12GraphicsCommandList *pCommandList) = 0;
6348
6349 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
6350 _In_ UINT NumDescriptorHeaps,
6351 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
6352
6353 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
6354 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6355
6356 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
6357 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6358
6359 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
6360 _In_ UINT RootParameterIndex,
6361 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6362
6363 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
6364 _In_ UINT RootParameterIndex,
6365 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6366
6367 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
6368 _In_ UINT RootParameterIndex,
6369 _In_ UINT SrcData,
6370 _In_ UINT DestOffsetIn32BitValues) = 0;
6371
6372 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
6373 _In_ UINT RootParameterIndex,
6374 _In_ UINT SrcData,
6375 _In_ UINT DestOffsetIn32BitValues) = 0;
6376
6377 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
6378 _In_ UINT RootParameterIndex,
6379 _In_ UINT Num32BitValuesToSet,
6380 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6381 _In_ UINT DestOffsetIn32BitValues) = 0;
6382
6383 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
6384 _In_ UINT RootParameterIndex,
6385 _In_ UINT Num32BitValuesToSet,
6386 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6387 _In_ UINT DestOffsetIn32BitValues) = 0;
6388
6389 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
6390 _In_ UINT RootParameterIndex,
6391 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6392
6393 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
6394 _In_ UINT RootParameterIndex,
6395 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6396
6397 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
6398 _In_ UINT RootParameterIndex,
6399 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6400
6401 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
6402 _In_ UINT RootParameterIndex,
6403 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6404
6405 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
6406 _In_ UINT RootParameterIndex,
6407 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6408
6409 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
6410 _In_ UINT RootParameterIndex,
6411 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6412
6413 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
6414 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
6415
6416 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
6417 _In_ UINT StartSlot,
6418 _In_ UINT NumViews,
6419 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
6420
6421 virtual void STDMETHODCALLTYPE SOSetTargets(
6422 _In_ UINT StartSlot,
6423 _In_ UINT NumViews,
6424 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
6425
6426 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
6427 _In_ UINT NumRenderTargetDescriptors,
6428 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6429 _In_ BOOL RTsSingleHandleToDescriptorRange,
6430 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
6431
6432 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
6433 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6434 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6435 _In_ FLOAT Depth,
6436 _In_ UINT8 Stencil,
6437 _In_ UINT NumRects,
6438 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6439
6440 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
6441 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6442 _In_ const FLOAT ColorRGBA[ 4 ],
6443 _In_ UINT NumRects,
6444 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6445
6446 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
6447 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6448 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6449 _In_ ID3D12Resource *pResource,
6450 _In_ const UINT Values[ 4 ],
6451 _In_ UINT NumRects,
6452 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6453
6454 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
6455 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6456 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6457 _In_ ID3D12Resource *pResource,
6458 _In_ const FLOAT Values[ 4 ],
6459 _In_ UINT NumRects,
6460 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6461
6462 virtual void STDMETHODCALLTYPE DiscardResource(
6463 _In_ ID3D12Resource *pResource,
6464 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
6465
6466 virtual void STDMETHODCALLTYPE BeginQuery(
6467 _In_ ID3D12QueryHeap *pQueryHeap,
6468 _In_ D3D12_QUERY_TYPE Type,
6469 _In_ UINT Index) = 0;
6470
6471 virtual void STDMETHODCALLTYPE EndQuery(
6472 _In_ ID3D12QueryHeap *pQueryHeap,
6473 _In_ D3D12_QUERY_TYPE Type,
6474 _In_ UINT Index) = 0;
6475
6476 virtual void STDMETHODCALLTYPE ResolveQueryData(
6477 _In_ ID3D12QueryHeap *pQueryHeap,
6478 _In_ D3D12_QUERY_TYPE Type,
6479 _In_ UINT StartIndex,
6480 _In_ UINT NumQueries,
6481 _In_ ID3D12Resource *pDestinationBuffer,
6482 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
6483
6484 virtual void STDMETHODCALLTYPE SetPredication(
6485 _In_opt_ ID3D12Resource *pBuffer,
6486 _In_ UINT64 AlignedBufferOffset,
6487 _In_ D3D12_PREDICATION_OP Operation) = 0;
6488
6489 virtual void STDMETHODCALLTYPE SetMarker(
6490 UINT Metadata,
6491 _In_reads_bytes_opt_(Size) const void *pData,
6492 UINT Size) = 0;
6493
6494 virtual void STDMETHODCALLTYPE BeginEvent(
6495 UINT Metadata,
6496 _In_reads_bytes_opt_(Size) const void *pData,
6497 UINT Size) = 0;
6498
6499 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
6500
6501 virtual void STDMETHODCALLTYPE ExecuteIndirect(
6502 _In_ ID3D12CommandSignature *pCommandSignature,
6503 _In_ UINT MaxCommandCount,
6504 _In_ ID3D12Resource *pArgumentBuffer,
6505 _In_ UINT64 ArgumentBufferOffset,
6506 _In_opt_ ID3D12Resource *pCountBuffer,
6507 _In_ UINT64 CountBufferOffset) = 0;
6508
6509 };
6510
6511
6512#else /* C style interface */
6513
6514 typedef struct ID3D12GraphicsCommandListVtbl
6515 {
6516 BEGIN_INTERFACE
6517
6518 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6519 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6520 ID3D12GraphicsCommandList * This,
6521 REFIID riid,
6522 _COM_Outptr_ void **ppvObject);
6523
6524 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6525 ULONG ( STDMETHODCALLTYPE *AddRef )(
6526 ID3D12GraphicsCommandList * This);
6527
6528 DECLSPEC_XFGVIRT(IUnknown, Release)
6529 ULONG ( STDMETHODCALLTYPE *Release )(
6530 ID3D12GraphicsCommandList * This);
6531
6532 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6533 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6534 ID3D12GraphicsCommandList * This,
6535 _In_ REFGUID guid,
6536 _Inout_ UINT *pDataSize,
6537 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6538
6539 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6540 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6541 ID3D12GraphicsCommandList * This,
6542 _In_ REFGUID guid,
6543 _In_ UINT DataSize,
6544 _In_reads_bytes_opt_( DataSize ) const void *pData);
6545
6546 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6547 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6548 ID3D12GraphicsCommandList * This,
6549 _In_ REFGUID guid,
6550 _In_opt_ const IUnknown *pData);
6551
6552 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6553 HRESULT ( STDMETHODCALLTYPE *SetName )(
6554 ID3D12GraphicsCommandList * This,
6555 _In_z_ LPCWSTR Name);
6556
6557 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6558 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6559 ID3D12GraphicsCommandList * This,
6560 REFIID riid,
6561 _COM_Outptr_opt_ void **ppvDevice);
6562
6563 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6564 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6565 ID3D12GraphicsCommandList * This);
6566
6567 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
6568 HRESULT ( STDMETHODCALLTYPE *Close )(
6569 ID3D12GraphicsCommandList * This);
6570
6571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
6572 HRESULT ( STDMETHODCALLTYPE *Reset )(
6573 ID3D12GraphicsCommandList * This,
6574 _In_ ID3D12CommandAllocator *pAllocator,
6575 _In_opt_ ID3D12PipelineState *pInitialState);
6576
6577 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
6578 void ( STDMETHODCALLTYPE *ClearState )(
6579 ID3D12GraphicsCommandList * This,
6580 _In_opt_ ID3D12PipelineState *pPipelineState);
6581
6582 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
6583 void ( STDMETHODCALLTYPE *DrawInstanced )(
6584 ID3D12GraphicsCommandList * This,
6585 _In_ UINT VertexCountPerInstance,
6586 _In_ UINT InstanceCount,
6587 _In_ UINT StartVertexLocation,
6588 _In_ UINT StartInstanceLocation);
6589
6590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
6591 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
6592 ID3D12GraphicsCommandList * This,
6593 _In_ UINT IndexCountPerInstance,
6594 _In_ UINT InstanceCount,
6595 _In_ UINT StartIndexLocation,
6596 _In_ INT BaseVertexLocation,
6597 _In_ UINT StartInstanceLocation);
6598
6599 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
6600 void ( STDMETHODCALLTYPE *Dispatch )(
6601 ID3D12GraphicsCommandList * This,
6602 _In_ UINT ThreadGroupCountX,
6603 _In_ UINT ThreadGroupCountY,
6604 _In_ UINT ThreadGroupCountZ);
6605
6606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
6607 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
6608 ID3D12GraphicsCommandList * This,
6609 _In_ ID3D12Resource *pDstBuffer,
6610 UINT64 DstOffset,
6611 _In_ ID3D12Resource *pSrcBuffer,
6612 UINT64 SrcOffset,
6613 UINT64 NumBytes);
6614
6615 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
6616 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
6617 ID3D12GraphicsCommandList * This,
6618 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6619 UINT DstX,
6620 UINT DstY,
6621 UINT DstZ,
6622 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6623 _In_opt_ const D3D12_BOX *pSrcBox);
6624
6625 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
6626 void ( STDMETHODCALLTYPE *CopyResource )(
6627 ID3D12GraphicsCommandList * This,
6628 _In_ ID3D12Resource *pDstResource,
6629 _In_ ID3D12Resource *pSrcResource);
6630
6631 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
6632 void ( STDMETHODCALLTYPE *CopyTiles )(
6633 ID3D12GraphicsCommandList * This,
6634 _In_ ID3D12Resource *pTiledResource,
6635 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6636 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6637 _In_ ID3D12Resource *pBuffer,
6638 UINT64 BufferStartOffsetInBytes,
6639 D3D12_TILE_COPY_FLAGS Flags);
6640
6641 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
6642 void ( STDMETHODCALLTYPE *ResolveSubresource )(
6643 ID3D12GraphicsCommandList * This,
6644 _In_ ID3D12Resource *pDstResource,
6645 _In_ UINT DstSubresource,
6646 _In_ ID3D12Resource *pSrcResource,
6647 _In_ UINT SrcSubresource,
6648 _In_ DXGI_FORMAT Format);
6649
6650 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
6651 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
6652 ID3D12GraphicsCommandList * This,
6653 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
6654
6655 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
6656 void ( STDMETHODCALLTYPE *RSSetViewports )(
6657 ID3D12GraphicsCommandList * This,
6658 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6659 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
6660
6661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
6662 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
6663 ID3D12GraphicsCommandList * This,
6664 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6665 _In_reads_( NumRects) const D3D12_RECT *pRects);
6666
6667 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
6668 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
6669 ID3D12GraphicsCommandList * This,
6670 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
6671
6672 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
6673 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
6674 ID3D12GraphicsCommandList * This,
6675 _In_ UINT StencilRef);
6676
6677 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
6678 void ( STDMETHODCALLTYPE *SetPipelineState )(
6679 ID3D12GraphicsCommandList * This,
6680 _In_ ID3D12PipelineState *pPipelineState);
6681
6682 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
6683 void ( STDMETHODCALLTYPE *ResourceBarrier )(
6684 ID3D12GraphicsCommandList * This,
6685 _In_ UINT NumBarriers,
6686 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6687
6688 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
6689 void ( STDMETHODCALLTYPE *ExecuteBundle )(
6690 ID3D12GraphicsCommandList * This,
6691 _In_ ID3D12GraphicsCommandList *pCommandList);
6692
6693 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
6694 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
6695 ID3D12GraphicsCommandList * This,
6696 _In_ UINT NumDescriptorHeaps,
6697 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
6698
6699 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
6700 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
6701 ID3D12GraphicsCommandList * This,
6702 _In_opt_ ID3D12RootSignature *pRootSignature);
6703
6704 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
6705 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
6706 ID3D12GraphicsCommandList * This,
6707 _In_opt_ ID3D12RootSignature *pRootSignature);
6708
6709 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
6710 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
6711 ID3D12GraphicsCommandList * This,
6712 _In_ UINT RootParameterIndex,
6713 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6714
6715 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
6716 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
6717 ID3D12GraphicsCommandList * This,
6718 _In_ UINT RootParameterIndex,
6719 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
6720
6721 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
6722 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
6723 ID3D12GraphicsCommandList * This,
6724 _In_ UINT RootParameterIndex,
6725 _In_ UINT SrcData,
6726 _In_ UINT DestOffsetIn32BitValues);
6727
6728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
6729 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
6730 ID3D12GraphicsCommandList * This,
6731 _In_ UINT RootParameterIndex,
6732 _In_ UINT SrcData,
6733 _In_ UINT DestOffsetIn32BitValues);
6734
6735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
6736 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
6737 ID3D12GraphicsCommandList * This,
6738 _In_ UINT RootParameterIndex,
6739 _In_ UINT Num32BitValuesToSet,
6740 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6741 _In_ UINT DestOffsetIn32BitValues);
6742
6743 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
6744 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
6745 ID3D12GraphicsCommandList * This,
6746 _In_ UINT RootParameterIndex,
6747 _In_ UINT Num32BitValuesToSet,
6748 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6749 _In_ UINT DestOffsetIn32BitValues);
6750
6751 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
6752 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
6753 ID3D12GraphicsCommandList * This,
6754 _In_ UINT RootParameterIndex,
6755 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6756
6757 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
6758 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
6759 ID3D12GraphicsCommandList * This,
6760 _In_ UINT RootParameterIndex,
6761 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6762
6763 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
6764 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
6765 ID3D12GraphicsCommandList * This,
6766 _In_ UINT RootParameterIndex,
6767 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6768
6769 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
6770 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
6771 ID3D12GraphicsCommandList * This,
6772 _In_ UINT RootParameterIndex,
6773 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6774
6775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
6776 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
6777 ID3D12GraphicsCommandList * This,
6778 _In_ UINT RootParameterIndex,
6779 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6780
6781 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
6782 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
6783 ID3D12GraphicsCommandList * This,
6784 _In_ UINT RootParameterIndex,
6785 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
6786
6787 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
6788 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
6789 ID3D12GraphicsCommandList * This,
6790 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
6791
6792 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
6793 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
6794 ID3D12GraphicsCommandList * This,
6795 _In_ UINT StartSlot,
6796 _In_ UINT NumViews,
6797 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
6798
6799 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
6800 void ( STDMETHODCALLTYPE *SOSetTargets )(
6801 ID3D12GraphicsCommandList * This,
6802 _In_ UINT StartSlot,
6803 _In_ UINT NumViews,
6804 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
6805
6806 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
6807 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
6808 ID3D12GraphicsCommandList * This,
6809 _In_ UINT NumRenderTargetDescriptors,
6810 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6811 _In_ BOOL RTsSingleHandleToDescriptorRange,
6812 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
6813
6814 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
6815 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
6816 ID3D12GraphicsCommandList * This,
6817 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6818 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6819 _In_ FLOAT Depth,
6820 _In_ UINT8 Stencil,
6821 _In_ UINT NumRects,
6822 _In_reads_(NumRects) const D3D12_RECT *pRects);
6823
6824 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
6825 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
6826 ID3D12GraphicsCommandList * This,
6827 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6828 _In_ const FLOAT ColorRGBA[ 4 ],
6829 _In_ UINT NumRects,
6830 _In_reads_(NumRects) const D3D12_RECT *pRects);
6831
6832 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
6833 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
6834 ID3D12GraphicsCommandList * This,
6835 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6836 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6837 _In_ ID3D12Resource *pResource,
6838 _In_ const UINT Values[ 4 ],
6839 _In_ UINT NumRects,
6840 _In_reads_(NumRects) const D3D12_RECT *pRects);
6841
6842 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
6843 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
6844 ID3D12GraphicsCommandList * This,
6845 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6846 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6847 _In_ ID3D12Resource *pResource,
6848 _In_ const FLOAT Values[ 4 ],
6849 _In_ UINT NumRects,
6850 _In_reads_(NumRects) const D3D12_RECT *pRects);
6851
6852 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
6853 void ( STDMETHODCALLTYPE *DiscardResource )(
6854 ID3D12GraphicsCommandList * This,
6855 _In_ ID3D12Resource *pResource,
6856 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
6857
6858 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
6859 void ( STDMETHODCALLTYPE *BeginQuery )(
6860 ID3D12GraphicsCommandList * This,
6861 _In_ ID3D12QueryHeap *pQueryHeap,
6862 _In_ D3D12_QUERY_TYPE Type,
6863 _In_ UINT Index);
6864
6865 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
6866 void ( STDMETHODCALLTYPE *EndQuery )(
6867 ID3D12GraphicsCommandList * This,
6868 _In_ ID3D12QueryHeap *pQueryHeap,
6869 _In_ D3D12_QUERY_TYPE Type,
6870 _In_ UINT Index);
6871
6872 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
6873 void ( STDMETHODCALLTYPE *ResolveQueryData )(
6874 ID3D12GraphicsCommandList * This,
6875 _In_ ID3D12QueryHeap *pQueryHeap,
6876 _In_ D3D12_QUERY_TYPE Type,
6877 _In_ UINT StartIndex,
6878 _In_ UINT NumQueries,
6879 _In_ ID3D12Resource *pDestinationBuffer,
6880 _In_ UINT64 AlignedDestinationBufferOffset);
6881
6882 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
6883 void ( STDMETHODCALLTYPE *SetPredication )(
6884 ID3D12GraphicsCommandList * This,
6885 _In_opt_ ID3D12Resource *pBuffer,
6886 _In_ UINT64 AlignedBufferOffset,
6887 _In_ D3D12_PREDICATION_OP Operation);
6888
6889 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
6890 void ( STDMETHODCALLTYPE *SetMarker )(
6891 ID3D12GraphicsCommandList * This,
6892 UINT Metadata,
6893 _In_reads_bytes_opt_(Size) const void *pData,
6894 UINT Size);
6895
6896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
6897 void ( STDMETHODCALLTYPE *BeginEvent )(
6898 ID3D12GraphicsCommandList * This,
6899 UINT Metadata,
6900 _In_reads_bytes_opt_(Size) const void *pData,
6901 UINT Size);
6902
6903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
6904 void ( STDMETHODCALLTYPE *EndEvent )(
6905 ID3D12GraphicsCommandList * This);
6906
6907 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
6908 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
6909 ID3D12GraphicsCommandList * This,
6910 _In_ ID3D12CommandSignature *pCommandSignature,
6911 _In_ UINT MaxCommandCount,
6912 _In_ ID3D12Resource *pArgumentBuffer,
6913 _In_ UINT64 ArgumentBufferOffset,
6914 _In_opt_ ID3D12Resource *pCountBuffer,
6915 _In_ UINT64 CountBufferOffset);
6916
6917 END_INTERFACE
6918 } ID3D12GraphicsCommandListVtbl;
6919
6920 interface ID3D12GraphicsCommandList
6921 {
6922 CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl;
6923 };
6924
6925
6926
6927#ifdef COBJMACROS
6928
6929
6930#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \
6931 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6932
6933#define ID3D12GraphicsCommandList_AddRef(This) \
6934 ( (This)->lpVtbl -> AddRef(This) )
6935
6936#define ID3D12GraphicsCommandList_Release(This) \
6937 ( (This)->lpVtbl -> Release(This) )
6938
6939
6940#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \
6941 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6942
6943#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \
6944 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6945
6946#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \
6947 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6948
6949#define ID3D12GraphicsCommandList_SetName(This,Name) \
6950 ( (This)->lpVtbl -> SetName(This,Name) )
6951
6952
6953#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \
6954 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6955
6956
6957#define ID3D12GraphicsCommandList_GetType(This) \
6958 ( (This)->lpVtbl -> GetType(This) )
6959
6960
6961#define ID3D12GraphicsCommandList_Close(This) \
6962 ( (This)->lpVtbl -> Close(This) )
6963
6964#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \
6965 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
6966
6967#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \
6968 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
6969
6970#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
6971 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
6972
6973#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
6974 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
6975
6976#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
6977 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
6978
6979#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
6980 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
6981
6982#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
6983 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
6984
6985#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \
6986 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
6987
6988#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
6989 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
6990
6991#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
6992 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
6993
6994#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \
6995 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
6996
6997#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \
6998 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
6999
7000#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \
7001 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7002
7003#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \
7004 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7005
7006#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \
7007 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7008
7009#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \
7010 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7011
7012#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
7013 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7014
7015#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \
7016 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7017
7018#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7019 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7020
7021#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \
7022 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7023
7024#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \
7025 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7026
7027#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7028 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7029
7030#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7031 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7032
7033#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7034 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7035
7036#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7037 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7038
7039#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7040 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7041
7042#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7043 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7044
7045#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7046 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7047
7048#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7049 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7050
7051#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7052 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7053
7054#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7055 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7056
7057#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7058 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7059
7060#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7061 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7062
7063#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \
7064 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7065
7066#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7067 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7068
7069#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \
7070 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7071
7072#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7073 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7074
7075#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7076 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7077
7078#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7079 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7080
7081#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7082 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7083
7084#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7085 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7086
7087#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \
7088 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
7089
7090#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
7091 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
7092
7093#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \
7094 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
7095
7096#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
7097 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
7098
7099#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
7100 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
7101
7102#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \
7103 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
7104
7105#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \
7106 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
7107
7108#define ID3D12GraphicsCommandList_EndEvent(This) \
7109 ( (This)->lpVtbl -> EndEvent(This) )
7110
7111#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
7112 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
7113
7114#endif /* COBJMACROS */
7115
7116
7117#endif /* C style interface */
7118
7119
7120
7121
7122#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
7123
7124
7125#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7126#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7127
7128/* interface ID3D12GraphicsCommandList1 */
7129/* [unique][local][object][uuid] */
7130
7131
7132EXTERN_C const IID IID_ID3D12GraphicsCommandList1;
7133
7134#if defined(__cplusplus) && !defined(CINTERFACE)
7135
7136 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
7137 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
7138 {
7139 public:
7140 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
7141 _In_ ID3D12Resource *pDstBuffer,
7142 UINT64 DstOffset,
7143 _In_ ID3D12Resource *pSrcBuffer,
7144 UINT64 SrcOffset,
7145 UINT Dependencies,
7146 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7147 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7148
7149 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
7150 _In_ ID3D12Resource *pDstBuffer,
7151 UINT64 DstOffset,
7152 _In_ ID3D12Resource *pSrcBuffer,
7153 UINT64 SrcOffset,
7154 UINT Dependencies,
7155 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7156 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7157
7158 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
7159 _In_ FLOAT Min,
7160 _In_ FLOAT Max) = 0;
7161
7162 virtual void STDMETHODCALLTYPE SetSamplePositions(
7163 _In_ UINT NumSamplesPerPixel,
7164 _In_ UINT NumPixels,
7165 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0;
7166
7167 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
7168 _In_ ID3D12Resource *pDstResource,
7169 _In_ UINT DstSubresource,
7170 _In_ UINT DstX,
7171 _In_ UINT DstY,
7172 _In_ ID3D12Resource *pSrcResource,
7173 _In_ UINT SrcSubresource,
7174 _In_opt_ D3D12_RECT *pSrcRect,
7175 _In_ DXGI_FORMAT Format,
7176 _In_ D3D12_RESOLVE_MODE ResolveMode) = 0;
7177
7178 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
7179 _In_ UINT Mask) = 0;
7180
7181 };
7182
7183
7184#else /* C style interface */
7185
7186 typedef struct ID3D12GraphicsCommandList1Vtbl
7187 {
7188 BEGIN_INTERFACE
7189
7190 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7191 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7192 ID3D12GraphicsCommandList1 * This,
7193 REFIID riid,
7194 _COM_Outptr_ void **ppvObject);
7195
7196 DECLSPEC_XFGVIRT(IUnknown, AddRef)
7197 ULONG ( STDMETHODCALLTYPE *AddRef )(
7198 ID3D12GraphicsCommandList1 * This);
7199
7200 DECLSPEC_XFGVIRT(IUnknown, Release)
7201 ULONG ( STDMETHODCALLTYPE *Release )(
7202 ID3D12GraphicsCommandList1 * This);
7203
7204 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7205 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7206 ID3D12GraphicsCommandList1 * This,
7207 _In_ REFGUID guid,
7208 _Inout_ UINT *pDataSize,
7209 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
7210
7211 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7212 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7213 ID3D12GraphicsCommandList1 * This,
7214 _In_ REFGUID guid,
7215 _In_ UINT DataSize,
7216 _In_reads_bytes_opt_( DataSize ) const void *pData);
7217
7218 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7219 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7220 ID3D12GraphicsCommandList1 * This,
7221 _In_ REFGUID guid,
7222 _In_opt_ const IUnknown *pData);
7223
7224 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7225 HRESULT ( STDMETHODCALLTYPE *SetName )(
7226 ID3D12GraphicsCommandList1 * This,
7227 _In_z_ LPCWSTR Name);
7228
7229 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7230 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7231 ID3D12GraphicsCommandList1 * This,
7232 REFIID riid,
7233 _COM_Outptr_opt_ void **ppvDevice);
7234
7235 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
7236 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
7237 ID3D12GraphicsCommandList1 * This);
7238
7239 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
7240 HRESULT ( STDMETHODCALLTYPE *Close )(
7241 ID3D12GraphicsCommandList1 * This);
7242
7243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
7244 HRESULT ( STDMETHODCALLTYPE *Reset )(
7245 ID3D12GraphicsCommandList1 * This,
7246 _In_ ID3D12CommandAllocator *pAllocator,
7247 _In_opt_ ID3D12PipelineState *pInitialState);
7248
7249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
7250 void ( STDMETHODCALLTYPE *ClearState )(
7251 ID3D12GraphicsCommandList1 * This,
7252 _In_opt_ ID3D12PipelineState *pPipelineState);
7253
7254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
7255 void ( STDMETHODCALLTYPE *DrawInstanced )(
7256 ID3D12GraphicsCommandList1 * This,
7257 _In_ UINT VertexCountPerInstance,
7258 _In_ UINT InstanceCount,
7259 _In_ UINT StartVertexLocation,
7260 _In_ UINT StartInstanceLocation);
7261
7262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
7263 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
7264 ID3D12GraphicsCommandList1 * This,
7265 _In_ UINT IndexCountPerInstance,
7266 _In_ UINT InstanceCount,
7267 _In_ UINT StartIndexLocation,
7268 _In_ INT BaseVertexLocation,
7269 _In_ UINT StartInstanceLocation);
7270
7271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
7272 void ( STDMETHODCALLTYPE *Dispatch )(
7273 ID3D12GraphicsCommandList1 * This,
7274 _In_ UINT ThreadGroupCountX,
7275 _In_ UINT ThreadGroupCountY,
7276 _In_ UINT ThreadGroupCountZ);
7277
7278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
7279 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
7280 ID3D12GraphicsCommandList1 * This,
7281 _In_ ID3D12Resource *pDstBuffer,
7282 UINT64 DstOffset,
7283 _In_ ID3D12Resource *pSrcBuffer,
7284 UINT64 SrcOffset,
7285 UINT64 NumBytes);
7286
7287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
7288 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
7289 ID3D12GraphicsCommandList1 * This,
7290 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
7291 UINT DstX,
7292 UINT DstY,
7293 UINT DstZ,
7294 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
7295 _In_opt_ const D3D12_BOX *pSrcBox);
7296
7297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
7298 void ( STDMETHODCALLTYPE *CopyResource )(
7299 ID3D12GraphicsCommandList1 * This,
7300 _In_ ID3D12Resource *pDstResource,
7301 _In_ ID3D12Resource *pSrcResource);
7302
7303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
7304 void ( STDMETHODCALLTYPE *CopyTiles )(
7305 ID3D12GraphicsCommandList1 * This,
7306 _In_ ID3D12Resource *pTiledResource,
7307 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
7308 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
7309 _In_ ID3D12Resource *pBuffer,
7310 UINT64 BufferStartOffsetInBytes,
7311 D3D12_TILE_COPY_FLAGS Flags);
7312
7313 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
7314 void ( STDMETHODCALLTYPE *ResolveSubresource )(
7315 ID3D12GraphicsCommandList1 * This,
7316 _In_ ID3D12Resource *pDstResource,
7317 _In_ UINT DstSubresource,
7318 _In_ ID3D12Resource *pSrcResource,
7319 _In_ UINT SrcSubresource,
7320 _In_ DXGI_FORMAT Format);
7321
7322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
7323 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
7324 ID3D12GraphicsCommandList1 * This,
7325 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
7326
7327 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
7328 void ( STDMETHODCALLTYPE *RSSetViewports )(
7329 ID3D12GraphicsCommandList1 * This,
7330 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
7331 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
7332
7333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
7334 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
7335 ID3D12GraphicsCommandList1 * This,
7336 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
7337 _In_reads_( NumRects) const D3D12_RECT *pRects);
7338
7339 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
7340 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
7341 ID3D12GraphicsCommandList1 * This,
7342 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
7343
7344 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
7345 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
7346 ID3D12GraphicsCommandList1 * This,
7347 _In_ UINT StencilRef);
7348
7349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
7350 void ( STDMETHODCALLTYPE *SetPipelineState )(
7351 ID3D12GraphicsCommandList1 * This,
7352 _In_ ID3D12PipelineState *pPipelineState);
7353
7354 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
7355 void ( STDMETHODCALLTYPE *ResourceBarrier )(
7356 ID3D12GraphicsCommandList1 * This,
7357 _In_ UINT NumBarriers,
7358 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
7359
7360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
7361 void ( STDMETHODCALLTYPE *ExecuteBundle )(
7362 ID3D12GraphicsCommandList1 * This,
7363 _In_ ID3D12GraphicsCommandList *pCommandList);
7364
7365 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
7366 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
7367 ID3D12GraphicsCommandList1 * This,
7368 _In_ UINT NumDescriptorHeaps,
7369 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
7370
7371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
7372 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
7373 ID3D12GraphicsCommandList1 * This,
7374 _In_opt_ ID3D12RootSignature *pRootSignature);
7375
7376 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
7377 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
7378 ID3D12GraphicsCommandList1 * This,
7379 _In_opt_ ID3D12RootSignature *pRootSignature);
7380
7381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7382 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7383 ID3D12GraphicsCommandList1 * This,
7384 _In_ UINT RootParameterIndex,
7385 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7386
7387 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7388 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7389 ID3D12GraphicsCommandList1 * This,
7390 _In_ UINT RootParameterIndex,
7391 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7392
7393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7394 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7395 ID3D12GraphicsCommandList1 * This,
7396 _In_ UINT RootParameterIndex,
7397 _In_ UINT SrcData,
7398 _In_ UINT DestOffsetIn32BitValues);
7399
7400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7401 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7402 ID3D12GraphicsCommandList1 * This,
7403 _In_ UINT RootParameterIndex,
7404 _In_ UINT SrcData,
7405 _In_ UINT DestOffsetIn32BitValues);
7406
7407 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7408 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7409 ID3D12GraphicsCommandList1 * This,
7410 _In_ UINT RootParameterIndex,
7411 _In_ UINT Num32BitValuesToSet,
7412 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7413 _In_ UINT DestOffsetIn32BitValues);
7414
7415 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7416 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7417 ID3D12GraphicsCommandList1 * This,
7418 _In_ UINT RootParameterIndex,
7419 _In_ UINT Num32BitValuesToSet,
7420 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7421 _In_ UINT DestOffsetIn32BitValues);
7422
7423 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7424 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7425 ID3D12GraphicsCommandList1 * This,
7426 _In_ UINT RootParameterIndex,
7427 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7428
7429 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7430 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7431 ID3D12GraphicsCommandList1 * This,
7432 _In_ UINT RootParameterIndex,
7433 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7434
7435 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7436 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7437 ID3D12GraphicsCommandList1 * This,
7438 _In_ UINT RootParameterIndex,
7439 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7440
7441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7442 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7443 ID3D12GraphicsCommandList1 * This,
7444 _In_ UINT RootParameterIndex,
7445 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7446
7447 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7448 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7449 ID3D12GraphicsCommandList1 * This,
7450 _In_ UINT RootParameterIndex,
7451 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7452
7453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7454 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7455 ID3D12GraphicsCommandList1 * This,
7456 _In_ UINT RootParameterIndex,
7457 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7458
7459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7460 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7461 ID3D12GraphicsCommandList1 * This,
7462 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7463
7464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7465 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7466 ID3D12GraphicsCommandList1 * This,
7467 _In_ UINT StartSlot,
7468 _In_ UINT NumViews,
7469 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7470
7471 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7472 void ( STDMETHODCALLTYPE *SOSetTargets )(
7473 ID3D12GraphicsCommandList1 * This,
7474 _In_ UINT StartSlot,
7475 _In_ UINT NumViews,
7476 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7477
7478 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7479 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7480 ID3D12GraphicsCommandList1 * This,
7481 _In_ UINT NumRenderTargetDescriptors,
7482 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7483 _In_ BOOL RTsSingleHandleToDescriptorRange,
7484 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7485
7486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7487 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7488 ID3D12GraphicsCommandList1 * This,
7489 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7490 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7491 _In_ FLOAT Depth,
7492 _In_ UINT8 Stencil,
7493 _In_ UINT NumRects,
7494 _In_reads_(NumRects) const D3D12_RECT *pRects);
7495
7496 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7497 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7498 ID3D12GraphicsCommandList1 * This,
7499 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7500 _In_ const FLOAT ColorRGBA[ 4 ],
7501 _In_ UINT NumRects,
7502 _In_reads_(NumRects) const D3D12_RECT *pRects);
7503
7504 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7505 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7506 ID3D12GraphicsCommandList1 * This,
7507 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7508 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7509 _In_ ID3D12Resource *pResource,
7510 _In_ const UINT Values[ 4 ],
7511 _In_ UINT NumRects,
7512 _In_reads_(NumRects) const D3D12_RECT *pRects);
7513
7514 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7515 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7516 ID3D12GraphicsCommandList1 * This,
7517 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7519 _In_ ID3D12Resource *pResource,
7520 _In_ const FLOAT Values[ 4 ],
7521 _In_ UINT NumRects,
7522 _In_reads_(NumRects) const D3D12_RECT *pRects);
7523
7524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7525 void ( STDMETHODCALLTYPE *DiscardResource )(
7526 ID3D12GraphicsCommandList1 * This,
7527 _In_ ID3D12Resource *pResource,
7528 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7529
7530 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7531 void ( STDMETHODCALLTYPE *BeginQuery )(
7532 ID3D12GraphicsCommandList1 * This,
7533 _In_ ID3D12QueryHeap *pQueryHeap,
7534 _In_ D3D12_QUERY_TYPE Type,
7535 _In_ UINT Index);
7536
7537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7538 void ( STDMETHODCALLTYPE *EndQuery )(
7539 ID3D12GraphicsCommandList1 * This,
7540 _In_ ID3D12QueryHeap *pQueryHeap,
7541 _In_ D3D12_QUERY_TYPE Type,
7542 _In_ UINT Index);
7543
7544 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7545 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7546 ID3D12GraphicsCommandList1 * This,
7547 _In_ ID3D12QueryHeap *pQueryHeap,
7548 _In_ D3D12_QUERY_TYPE Type,
7549 _In_ UINT StartIndex,
7550 _In_ UINT NumQueries,
7551 _In_ ID3D12Resource *pDestinationBuffer,
7552 _In_ UINT64 AlignedDestinationBufferOffset);
7553
7554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7555 void ( STDMETHODCALLTYPE *SetPredication )(
7556 ID3D12GraphicsCommandList1 * This,
7557 _In_opt_ ID3D12Resource *pBuffer,
7558 _In_ UINT64 AlignedBufferOffset,
7559 _In_ D3D12_PREDICATION_OP Operation);
7560
7561 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7562 void ( STDMETHODCALLTYPE *SetMarker )(
7563 ID3D12GraphicsCommandList1 * This,
7564 UINT Metadata,
7565 _In_reads_bytes_opt_(Size) const void *pData,
7566 UINT Size);
7567
7568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7569 void ( STDMETHODCALLTYPE *BeginEvent )(
7570 ID3D12GraphicsCommandList1 * This,
7571 UINT Metadata,
7572 _In_reads_bytes_opt_(Size) const void *pData,
7573 UINT Size);
7574
7575 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7576 void ( STDMETHODCALLTYPE *EndEvent )(
7577 ID3D12GraphicsCommandList1 * This);
7578
7579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7580 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7581 ID3D12GraphicsCommandList1 * This,
7582 _In_ ID3D12CommandSignature *pCommandSignature,
7583 _In_ UINT MaxCommandCount,
7584 _In_ ID3D12Resource *pArgumentBuffer,
7585 _In_ UINT64 ArgumentBufferOffset,
7586 _In_opt_ ID3D12Resource *pCountBuffer,
7587 _In_ UINT64 CountBufferOffset);
7588
7589 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
7590 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
7591 ID3D12GraphicsCommandList1 * This,
7592 _In_ ID3D12Resource *pDstBuffer,
7593 UINT64 DstOffset,
7594 _In_ ID3D12Resource *pSrcBuffer,
7595 UINT64 SrcOffset,
7596 UINT Dependencies,
7597 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7598 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7599
7600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
7601 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
7602 ID3D12GraphicsCommandList1 * This,
7603 _In_ ID3D12Resource *pDstBuffer,
7604 UINT64 DstOffset,
7605 _In_ ID3D12Resource *pSrcBuffer,
7606 UINT64 SrcOffset,
7607 UINT Dependencies,
7608 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7609 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7610
7611 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
7612 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
7613 ID3D12GraphicsCommandList1 * This,
7614 _In_ FLOAT Min,
7615 _In_ FLOAT Max);
7616
7617 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
7618 void ( STDMETHODCALLTYPE *SetSamplePositions )(
7619 ID3D12GraphicsCommandList1 * This,
7620 _In_ UINT NumSamplesPerPixel,
7621 _In_ UINT NumPixels,
7622 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
7623
7624 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
7625 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
7626 ID3D12GraphicsCommandList1 * This,
7627 _In_ ID3D12Resource *pDstResource,
7628 _In_ UINT DstSubresource,
7629 _In_ UINT DstX,
7630 _In_ UINT DstY,
7631 _In_ ID3D12Resource *pSrcResource,
7632 _In_ UINT SrcSubresource,
7633 _In_opt_ D3D12_RECT *pSrcRect,
7634 _In_ DXGI_FORMAT Format,
7635 _In_ D3D12_RESOLVE_MODE ResolveMode);
7636
7637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
7638 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
7639 ID3D12GraphicsCommandList1 * This,
7640 _In_ UINT Mask);
7641
7642 END_INTERFACE
7643 } ID3D12GraphicsCommandList1Vtbl;
7644
7645 interface ID3D12GraphicsCommandList1
7646 {
7647 CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl;
7648 };
7649
7650
7651
7652#ifdef COBJMACROS
7653
7654
7655#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \
7656 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7657
7658#define ID3D12GraphicsCommandList1_AddRef(This) \
7659 ( (This)->lpVtbl -> AddRef(This) )
7660
7661#define ID3D12GraphicsCommandList1_Release(This) \
7662 ( (This)->lpVtbl -> Release(This) )
7663
7664
7665#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
7666 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7667
7668#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \
7669 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7670
7671#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \
7672 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7673
7674#define ID3D12GraphicsCommandList1_SetName(This,Name) \
7675 ( (This)->lpVtbl -> SetName(This,Name) )
7676
7677
7678#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \
7679 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7680
7681
7682#define ID3D12GraphicsCommandList1_GetType(This) \
7683 ( (This)->lpVtbl -> GetType(This) )
7684
7685
7686#define ID3D12GraphicsCommandList1_Close(This) \
7687 ( (This)->lpVtbl -> Close(This) )
7688
7689#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \
7690 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7691
7692#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \
7693 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7694
7695#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7696 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7697
7698#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7699 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7700
7701#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7702 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7703
7704#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7705 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7706
7707#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
7708 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
7709
7710#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \
7711 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
7712
7713#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
7714 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
7715
7716#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
7717 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
7718
7719#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \
7720 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
7721
7722#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \
7723 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
7724
7725#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \
7726 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7727
7728#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \
7729 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7730
7731#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \
7732 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7733
7734#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \
7735 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7736
7737#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
7738 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7739
7740#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \
7741 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7742
7743#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7744 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7745
7746#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \
7747 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7748
7749#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \
7750 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7751
7752#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7753 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7754
7755#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7756 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7757
7758#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7759 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7760
7761#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7762 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7763
7764#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7765 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7766
7767#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7768 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7769
7770#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7771 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7772
7773#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7774 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7775
7776#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7777 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7778
7779#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7780 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7781
7782#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7783 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7784
7785#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7786 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7787
7788#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \
7789 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7790
7791#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7792 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7793
7794#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \
7795 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7796
7797#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7798 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7799
7800#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7801 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7802
7803#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7804 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7805
7806#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7807 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7808
7809#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7810 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7811
7812#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \
7813 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
7814
7815#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
7816 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
7817
7818#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
7819 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
7820
7821#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
7822 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
7823
7824#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
7825 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
7826
7827#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \
7828 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
7829
7830#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \
7831 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
7832
7833#define ID3D12GraphicsCommandList1_EndEvent(This) \
7834 ( (This)->lpVtbl -> EndEvent(This) )
7835
7836#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
7837 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
7838
7839
7840#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
7841 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
7842
7843#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
7844 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
7845
7846#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \
7847 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
7848
7849#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
7850 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
7851
7852#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
7853 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
7854
7855#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \
7856 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
7857
7858#endif /* COBJMACROS */
7859
7860
7861#endif /* C style interface */
7862
7863
7864
7865
7866#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
7867
7868
7869/* interface __MIDL_itf_d3d12_0000_0018 */
7870/* [local] */
7871
7872typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
7873 {
7874 D3D12_GPU_VIRTUAL_ADDRESS Dest;
7875 UINT32 Value;
7876 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
7877
7878typedef
7879enum D3D12_WRITEBUFFERIMMEDIATE_MODE
7880 {
7881 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0,
7882 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
7883 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
7884 } D3D12_WRITEBUFFERIMMEDIATE_MODE;
7885
7886
7887
7888extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec;
7889extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec;
7890
7891#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
7892#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
7893
7894/* interface ID3D12GraphicsCommandList2 */
7895/* [unique][local][object][uuid] */
7896
7897
7898EXTERN_C const IID IID_ID3D12GraphicsCommandList2;
7899
7900#if defined(__cplusplus) && !defined(CINTERFACE)
7901
7902 MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28")
7903 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
7904 {
7905 public:
7906 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
7907 UINT Count,
7908 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
7909 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
7910
7911 };
7912
7913
7914#else /* C style interface */
7915
7916 typedef struct ID3D12GraphicsCommandList2Vtbl
7917 {
7918 BEGIN_INTERFACE
7919
7920 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7921 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7922 ID3D12GraphicsCommandList2 * This,
7923 REFIID riid,
7924 _COM_Outptr_ void **ppvObject);
7925
7926 DECLSPEC_XFGVIRT(IUnknown, AddRef)
7927 ULONG ( STDMETHODCALLTYPE *AddRef )(
7928 ID3D12GraphicsCommandList2 * This);
7929
7930 DECLSPEC_XFGVIRT(IUnknown, Release)
7931 ULONG ( STDMETHODCALLTYPE *Release )(
7932 ID3D12GraphicsCommandList2 * This);
7933
7934 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7935 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7936 ID3D12GraphicsCommandList2 * This,
7937 _In_ REFGUID guid,
7938 _Inout_ UINT *pDataSize,
7939 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
7940
7941 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7942 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7943 ID3D12GraphicsCommandList2 * This,
7944 _In_ REFGUID guid,
7945 _In_ UINT DataSize,
7946 _In_reads_bytes_opt_( DataSize ) const void *pData);
7947
7948 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7949 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7950 ID3D12GraphicsCommandList2 * This,
7951 _In_ REFGUID guid,
7952 _In_opt_ const IUnknown *pData);
7953
7954 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7955 HRESULT ( STDMETHODCALLTYPE *SetName )(
7956 ID3D12GraphicsCommandList2 * This,
7957 _In_z_ LPCWSTR Name);
7958
7959 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7960 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7961 ID3D12GraphicsCommandList2 * This,
7962 REFIID riid,
7963 _COM_Outptr_opt_ void **ppvDevice);
7964
7965 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
7966 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
7967 ID3D12GraphicsCommandList2 * This);
7968
7969 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
7970 HRESULT ( STDMETHODCALLTYPE *Close )(
7971 ID3D12GraphicsCommandList2 * This);
7972
7973 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
7974 HRESULT ( STDMETHODCALLTYPE *Reset )(
7975 ID3D12GraphicsCommandList2 * This,
7976 _In_ ID3D12CommandAllocator *pAllocator,
7977 _In_opt_ ID3D12PipelineState *pInitialState);
7978
7979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
7980 void ( STDMETHODCALLTYPE *ClearState )(
7981 ID3D12GraphicsCommandList2 * This,
7982 _In_opt_ ID3D12PipelineState *pPipelineState);
7983
7984 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
7985 void ( STDMETHODCALLTYPE *DrawInstanced )(
7986 ID3D12GraphicsCommandList2 * This,
7987 _In_ UINT VertexCountPerInstance,
7988 _In_ UINT InstanceCount,
7989 _In_ UINT StartVertexLocation,
7990 _In_ UINT StartInstanceLocation);
7991
7992 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
7993 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
7994 ID3D12GraphicsCommandList2 * This,
7995 _In_ UINT IndexCountPerInstance,
7996 _In_ UINT InstanceCount,
7997 _In_ UINT StartIndexLocation,
7998 _In_ INT BaseVertexLocation,
7999 _In_ UINT StartInstanceLocation);
8000
8001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
8002 void ( STDMETHODCALLTYPE *Dispatch )(
8003 ID3D12GraphicsCommandList2 * This,
8004 _In_ UINT ThreadGroupCountX,
8005 _In_ UINT ThreadGroupCountY,
8006 _In_ UINT ThreadGroupCountZ);
8007
8008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
8009 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
8010 ID3D12GraphicsCommandList2 * This,
8011 _In_ ID3D12Resource *pDstBuffer,
8012 UINT64 DstOffset,
8013 _In_ ID3D12Resource *pSrcBuffer,
8014 UINT64 SrcOffset,
8015 UINT64 NumBytes);
8016
8017 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
8018 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
8019 ID3D12GraphicsCommandList2 * This,
8020 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
8021 UINT DstX,
8022 UINT DstY,
8023 UINT DstZ,
8024 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
8025 _In_opt_ const D3D12_BOX *pSrcBox);
8026
8027 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
8028 void ( STDMETHODCALLTYPE *CopyResource )(
8029 ID3D12GraphicsCommandList2 * This,
8030 _In_ ID3D12Resource *pDstResource,
8031 _In_ ID3D12Resource *pSrcResource);
8032
8033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
8034 void ( STDMETHODCALLTYPE *CopyTiles )(
8035 ID3D12GraphicsCommandList2 * This,
8036 _In_ ID3D12Resource *pTiledResource,
8037 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
8038 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
8039 _In_ ID3D12Resource *pBuffer,
8040 UINT64 BufferStartOffsetInBytes,
8041 D3D12_TILE_COPY_FLAGS Flags);
8042
8043 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
8044 void ( STDMETHODCALLTYPE *ResolveSubresource )(
8045 ID3D12GraphicsCommandList2 * This,
8046 _In_ ID3D12Resource *pDstResource,
8047 _In_ UINT DstSubresource,
8048 _In_ ID3D12Resource *pSrcResource,
8049 _In_ UINT SrcSubresource,
8050 _In_ DXGI_FORMAT Format);
8051
8052 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
8053 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
8054 ID3D12GraphicsCommandList2 * This,
8055 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
8056
8057 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
8058 void ( STDMETHODCALLTYPE *RSSetViewports )(
8059 ID3D12GraphicsCommandList2 * This,
8060 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
8061 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
8062
8063 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
8064 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
8065 ID3D12GraphicsCommandList2 * This,
8066 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
8067 _In_reads_( NumRects) const D3D12_RECT *pRects);
8068
8069 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
8070 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
8071 ID3D12GraphicsCommandList2 * This,
8072 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
8073
8074 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
8075 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
8076 ID3D12GraphicsCommandList2 * This,
8077 _In_ UINT StencilRef);
8078
8079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
8080 void ( STDMETHODCALLTYPE *SetPipelineState )(
8081 ID3D12GraphicsCommandList2 * This,
8082 _In_ ID3D12PipelineState *pPipelineState);
8083
8084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
8085 void ( STDMETHODCALLTYPE *ResourceBarrier )(
8086 ID3D12GraphicsCommandList2 * This,
8087 _In_ UINT NumBarriers,
8088 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
8089
8090 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
8091 void ( STDMETHODCALLTYPE *ExecuteBundle )(
8092 ID3D12GraphicsCommandList2 * This,
8093 _In_ ID3D12GraphicsCommandList *pCommandList);
8094
8095 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
8096 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
8097 ID3D12GraphicsCommandList2 * This,
8098 _In_ UINT NumDescriptorHeaps,
8099 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
8100
8101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
8102 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
8103 ID3D12GraphicsCommandList2 * This,
8104 _In_opt_ ID3D12RootSignature *pRootSignature);
8105
8106 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
8107 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
8108 ID3D12GraphicsCommandList2 * This,
8109 _In_opt_ ID3D12RootSignature *pRootSignature);
8110
8111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
8112 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
8113 ID3D12GraphicsCommandList2 * This,
8114 _In_ UINT RootParameterIndex,
8115 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8116
8117 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
8118 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
8119 ID3D12GraphicsCommandList2 * This,
8120 _In_ UINT RootParameterIndex,
8121 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8122
8123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
8124 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
8125 ID3D12GraphicsCommandList2 * This,
8126 _In_ UINT RootParameterIndex,
8127 _In_ UINT SrcData,
8128 _In_ UINT DestOffsetIn32BitValues);
8129
8130 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
8131 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
8132 ID3D12GraphicsCommandList2 * This,
8133 _In_ UINT RootParameterIndex,
8134 _In_ UINT SrcData,
8135 _In_ UINT DestOffsetIn32BitValues);
8136
8137 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
8138 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
8139 ID3D12GraphicsCommandList2 * This,
8140 _In_ UINT RootParameterIndex,
8141 _In_ UINT Num32BitValuesToSet,
8142 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8143 _In_ UINT DestOffsetIn32BitValues);
8144
8145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
8146 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
8147 ID3D12GraphicsCommandList2 * This,
8148 _In_ UINT RootParameterIndex,
8149 _In_ UINT Num32BitValuesToSet,
8150 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8151 _In_ UINT DestOffsetIn32BitValues);
8152
8153 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
8154 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
8155 ID3D12GraphicsCommandList2 * This,
8156 _In_ UINT RootParameterIndex,
8157 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8158
8159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
8160 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
8161 ID3D12GraphicsCommandList2 * This,
8162 _In_ UINT RootParameterIndex,
8163 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8164
8165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
8166 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
8167 ID3D12GraphicsCommandList2 * This,
8168 _In_ UINT RootParameterIndex,
8169 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8170
8171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
8172 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
8173 ID3D12GraphicsCommandList2 * This,
8174 _In_ UINT RootParameterIndex,
8175 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8176
8177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
8178 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
8179 ID3D12GraphicsCommandList2 * This,
8180 _In_ UINT RootParameterIndex,
8181 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8182
8183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
8184 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
8185 ID3D12GraphicsCommandList2 * This,
8186 _In_ UINT RootParameterIndex,
8187 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8188
8189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
8190 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
8191 ID3D12GraphicsCommandList2 * This,
8192 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
8193
8194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
8195 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
8196 ID3D12GraphicsCommandList2 * This,
8197 _In_ UINT StartSlot,
8198 _In_ UINT NumViews,
8199 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
8200
8201 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
8202 void ( STDMETHODCALLTYPE *SOSetTargets )(
8203 ID3D12GraphicsCommandList2 * This,
8204 _In_ UINT StartSlot,
8205 _In_ UINT NumViews,
8206 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
8207
8208 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
8209 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
8210 ID3D12GraphicsCommandList2 * This,
8211 _In_ UINT NumRenderTargetDescriptors,
8212 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
8213 _In_ BOOL RTsSingleHandleToDescriptorRange,
8214 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
8215
8216 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
8217 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
8218 ID3D12GraphicsCommandList2 * This,
8219 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
8220 _In_ D3D12_CLEAR_FLAGS ClearFlags,
8221 _In_ FLOAT Depth,
8222 _In_ UINT8 Stencil,
8223 _In_ UINT NumRects,
8224 _In_reads_(NumRects) const D3D12_RECT *pRects);
8225
8226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
8227 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
8228 ID3D12GraphicsCommandList2 * This,
8229 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
8230 _In_ const FLOAT ColorRGBA[ 4 ],
8231 _In_ UINT NumRects,
8232 _In_reads_(NumRects) const D3D12_RECT *pRects);
8233
8234 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
8235 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
8236 ID3D12GraphicsCommandList2 * This,
8237 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8238 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8239 _In_ ID3D12Resource *pResource,
8240 _In_ const UINT Values[ 4 ],
8241 _In_ UINT NumRects,
8242 _In_reads_(NumRects) const D3D12_RECT *pRects);
8243
8244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
8245 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
8246 ID3D12GraphicsCommandList2 * This,
8247 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8248 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8249 _In_ ID3D12Resource *pResource,
8250 _In_ const FLOAT Values[ 4 ],
8251 _In_ UINT NumRects,
8252 _In_reads_(NumRects) const D3D12_RECT *pRects);
8253
8254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
8255 void ( STDMETHODCALLTYPE *DiscardResource )(
8256 ID3D12GraphicsCommandList2 * This,
8257 _In_ ID3D12Resource *pResource,
8258 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
8259
8260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
8261 void ( STDMETHODCALLTYPE *BeginQuery )(
8262 ID3D12GraphicsCommandList2 * This,
8263 _In_ ID3D12QueryHeap *pQueryHeap,
8264 _In_ D3D12_QUERY_TYPE Type,
8265 _In_ UINT Index);
8266
8267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
8268 void ( STDMETHODCALLTYPE *EndQuery )(
8269 ID3D12GraphicsCommandList2 * This,
8270 _In_ ID3D12QueryHeap *pQueryHeap,
8271 _In_ D3D12_QUERY_TYPE Type,
8272 _In_ UINT Index);
8273
8274 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
8275 void ( STDMETHODCALLTYPE *ResolveQueryData )(
8276 ID3D12GraphicsCommandList2 * This,
8277 _In_ ID3D12QueryHeap *pQueryHeap,
8278 _In_ D3D12_QUERY_TYPE Type,
8279 _In_ UINT StartIndex,
8280 _In_ UINT NumQueries,
8281 _In_ ID3D12Resource *pDestinationBuffer,
8282 _In_ UINT64 AlignedDestinationBufferOffset);
8283
8284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
8285 void ( STDMETHODCALLTYPE *SetPredication )(
8286 ID3D12GraphicsCommandList2 * This,
8287 _In_opt_ ID3D12Resource *pBuffer,
8288 _In_ UINT64 AlignedBufferOffset,
8289 _In_ D3D12_PREDICATION_OP Operation);
8290
8291 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
8292 void ( STDMETHODCALLTYPE *SetMarker )(
8293 ID3D12GraphicsCommandList2 * This,
8294 UINT Metadata,
8295 _In_reads_bytes_opt_(Size) const void *pData,
8296 UINT Size);
8297
8298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
8299 void ( STDMETHODCALLTYPE *BeginEvent )(
8300 ID3D12GraphicsCommandList2 * This,
8301 UINT Metadata,
8302 _In_reads_bytes_opt_(Size) const void *pData,
8303 UINT Size);
8304
8305 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
8306 void ( STDMETHODCALLTYPE *EndEvent )(
8307 ID3D12GraphicsCommandList2 * This);
8308
8309 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
8310 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
8311 ID3D12GraphicsCommandList2 * This,
8312 _In_ ID3D12CommandSignature *pCommandSignature,
8313 _In_ UINT MaxCommandCount,
8314 _In_ ID3D12Resource *pArgumentBuffer,
8315 _In_ UINT64 ArgumentBufferOffset,
8316 _In_opt_ ID3D12Resource *pCountBuffer,
8317 _In_ UINT64 CountBufferOffset);
8318
8319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
8320 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
8321 ID3D12GraphicsCommandList2 * This,
8322 _In_ ID3D12Resource *pDstBuffer,
8323 UINT64 DstOffset,
8324 _In_ ID3D12Resource *pSrcBuffer,
8325 UINT64 SrcOffset,
8326 UINT Dependencies,
8327 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8328 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8329
8330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
8331 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
8332 ID3D12GraphicsCommandList2 * This,
8333 _In_ ID3D12Resource *pDstBuffer,
8334 UINT64 DstOffset,
8335 _In_ ID3D12Resource *pSrcBuffer,
8336 UINT64 SrcOffset,
8337 UINT Dependencies,
8338 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8339 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8340
8341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
8342 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
8343 ID3D12GraphicsCommandList2 * This,
8344 _In_ FLOAT Min,
8345 _In_ FLOAT Max);
8346
8347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
8348 void ( STDMETHODCALLTYPE *SetSamplePositions )(
8349 ID3D12GraphicsCommandList2 * This,
8350 _In_ UINT NumSamplesPerPixel,
8351 _In_ UINT NumPixels,
8352 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
8353
8354 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
8355 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
8356 ID3D12GraphicsCommandList2 * This,
8357 _In_ ID3D12Resource *pDstResource,
8358 _In_ UINT DstSubresource,
8359 _In_ UINT DstX,
8360 _In_ UINT DstY,
8361 _In_ ID3D12Resource *pSrcResource,
8362 _In_ UINT SrcSubresource,
8363 _In_opt_ D3D12_RECT *pSrcRect,
8364 _In_ DXGI_FORMAT Format,
8365 _In_ D3D12_RESOLVE_MODE ResolveMode);
8366
8367 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
8368 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
8369 ID3D12GraphicsCommandList2 * This,
8370 _In_ UINT Mask);
8371
8372 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
8373 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
8374 ID3D12GraphicsCommandList2 * This,
8375 UINT Count,
8376 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8377 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
8378
8379 END_INTERFACE
8380 } ID3D12GraphicsCommandList2Vtbl;
8381
8382 interface ID3D12GraphicsCommandList2
8383 {
8384 CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl;
8385 };
8386
8387
8388
8389#ifdef COBJMACROS
8390
8391
8392#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \
8393 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8394
8395#define ID3D12GraphicsCommandList2_AddRef(This) \
8396 ( (This)->lpVtbl -> AddRef(This) )
8397
8398#define ID3D12GraphicsCommandList2_Release(This) \
8399 ( (This)->lpVtbl -> Release(This) )
8400
8401
8402#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
8403 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8404
8405#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \
8406 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8407
8408#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \
8409 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8410
8411#define ID3D12GraphicsCommandList2_SetName(This,Name) \
8412 ( (This)->lpVtbl -> SetName(This,Name) )
8413
8414
8415#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \
8416 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8417
8418
8419#define ID3D12GraphicsCommandList2_GetType(This) \
8420 ( (This)->lpVtbl -> GetType(This) )
8421
8422
8423#define ID3D12GraphicsCommandList2_Close(This) \
8424 ( (This)->lpVtbl -> Close(This) )
8425
8426#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \
8427 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
8428
8429#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \
8430 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
8431
8432#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
8433 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
8434
8435#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
8436 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
8437
8438#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
8439 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8440
8441#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
8442 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
8443
8444#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
8445 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
8446
8447#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \
8448 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8449
8450#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
8451 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
8452
8453#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
8454 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
8455
8456#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \
8457 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
8458
8459#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \
8460 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8461
8462#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \
8463 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8464
8465#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \
8466 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
8467
8468#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \
8469 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
8470
8471#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \
8472 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
8473
8474#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
8475 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8476
8477#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \
8478 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
8479
8480#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
8481 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
8482
8483#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \
8484 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
8485
8486#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \
8487 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
8488
8489#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8490 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8491
8492#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8493 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8494
8495#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8496 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8497
8498#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8499 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8500
8501#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8502 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8503
8504#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8505 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8506
8507#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8508 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8509
8510#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8511 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8512
8513#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8514 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8515
8516#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8517 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8518
8519#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8520 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8521
8522#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8523 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8524
8525#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \
8526 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
8527
8528#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
8529 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
8530
8531#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \
8532 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
8533
8534#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
8535 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
8536
8537#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
8538 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
8539
8540#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
8541 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
8542
8543#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8544 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8545
8546#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8547 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8548
8549#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \
8550 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8551
8552#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
8553 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8554
8555#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
8556 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8557
8558#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8559 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8560
8561#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8562 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8563
8564#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \
8565 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8566
8567#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \
8568 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8569
8570#define ID3D12GraphicsCommandList2_EndEvent(This) \
8571 ( (This)->lpVtbl -> EndEvent(This) )
8572
8573#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8574 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8575
8576
8577#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8578 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8579
8580#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8581 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8582
8583#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \
8584 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8585
8586#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8587 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8588
8589#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8590 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8591
8592#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \
8593 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8594
8595
8596#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
8597 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
8598
8599#endif /* COBJMACROS */
8600
8601
8602#endif /* C style interface */
8603
8604
8605
8606
8607#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
8608
8609
8610#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
8611#define __ID3D12CommandQueue_INTERFACE_DEFINED__
8612
8613/* interface ID3D12CommandQueue */
8614/* [unique][local][object][uuid] */
8615
8616
8617EXTERN_C const IID IID_ID3D12CommandQueue;
8618
8619#if defined(__cplusplus) && !defined(CINTERFACE)
8620
8621 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
8622 ID3D12CommandQueue : public ID3D12Pageable
8623 {
8624 public:
8625 virtual void STDMETHODCALLTYPE UpdateTileMappings(
8626 _In_ ID3D12Resource *pResource,
8627 UINT NumResourceRegions,
8628 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8629 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8630 _In_opt_ ID3D12Heap *pHeap,
8631 UINT NumRanges,
8632 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8633 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8634 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8635 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8636
8637 virtual void STDMETHODCALLTYPE CopyTileMappings(
8638 _In_ ID3D12Resource *pDstResource,
8639 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8640 _In_ ID3D12Resource *pSrcResource,
8641 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8642 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8643 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8644
8645 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
8646 _In_ UINT NumCommandLists,
8647 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
8648
8649 virtual void STDMETHODCALLTYPE SetMarker(
8650 UINT Metadata,
8651 _In_reads_bytes_opt_(Size) const void *pData,
8652 UINT Size) = 0;
8653
8654 virtual void STDMETHODCALLTYPE BeginEvent(
8655 UINT Metadata,
8656 _In_reads_bytes_opt_(Size) const void *pData,
8657 UINT Size) = 0;
8658
8659 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
8660
8661 virtual HRESULT STDMETHODCALLTYPE Signal(
8662 ID3D12Fence *pFence,
8663 UINT64 Value) = 0;
8664
8665 virtual HRESULT STDMETHODCALLTYPE Wait(
8666 ID3D12Fence *pFence,
8667 UINT64 Value) = 0;
8668
8669 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
8670 _Out_ UINT64 *pFrequency) = 0;
8671
8672 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
8673 _Out_ UINT64 *pGPUTimestamp,
8674 _Out_ UINT64 *pCpuTimestamp) = 0;
8675
8676#if defined(_MSC_VER) || !defined(_WIN32)
8677 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
8678#else
8679 virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc(
8680 D3D12_COMMAND_QUEUE_DESC * RetVal) = 0;
8681#endif
8682
8683 };
8684
8685
8686#else /* C style interface */
8687
8688 typedef struct ID3D12CommandQueueVtbl
8689 {
8690 BEGIN_INTERFACE
8691
8692 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8693 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8694 ID3D12CommandQueue * This,
8695 REFIID riid,
8696 _COM_Outptr_ void **ppvObject);
8697
8698 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8699 ULONG ( STDMETHODCALLTYPE *AddRef )(
8700 ID3D12CommandQueue * This);
8701
8702 DECLSPEC_XFGVIRT(IUnknown, Release)
8703 ULONG ( STDMETHODCALLTYPE *Release )(
8704 ID3D12CommandQueue * This);
8705
8706 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8707 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8708 ID3D12CommandQueue * This,
8709 _In_ REFGUID guid,
8710 _Inout_ UINT *pDataSize,
8711 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
8712
8713 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8714 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8715 ID3D12CommandQueue * This,
8716 _In_ REFGUID guid,
8717 _In_ UINT DataSize,
8718 _In_reads_bytes_opt_( DataSize ) const void *pData);
8719
8720 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8721 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8722 ID3D12CommandQueue * This,
8723 _In_ REFGUID guid,
8724 _In_opt_ const IUnknown *pData);
8725
8726 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8727 HRESULT ( STDMETHODCALLTYPE *SetName )(
8728 ID3D12CommandQueue * This,
8729 _In_z_ LPCWSTR Name);
8730
8731 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8732 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8733 ID3D12CommandQueue * This,
8734 REFIID riid,
8735 _COM_Outptr_opt_ void **ppvDevice);
8736
8737 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
8738 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
8739 ID3D12CommandQueue * This,
8740 _In_ ID3D12Resource *pResource,
8741 UINT NumResourceRegions,
8742 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8743 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8744 _In_opt_ ID3D12Heap *pHeap,
8745 UINT NumRanges,
8746 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8747 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8748 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8749 D3D12_TILE_MAPPING_FLAGS Flags);
8750
8751 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
8752 void ( STDMETHODCALLTYPE *CopyTileMappings )(
8753 ID3D12CommandQueue * This,
8754 _In_ ID3D12Resource *pDstResource,
8755 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8756 _In_ ID3D12Resource *pSrcResource,
8757 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8758 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8759 D3D12_TILE_MAPPING_FLAGS Flags);
8760
8761 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
8762 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
8763 ID3D12CommandQueue * This,
8764 _In_ UINT NumCommandLists,
8765 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
8766
8767 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
8768 void ( STDMETHODCALLTYPE *SetMarker )(
8769 ID3D12CommandQueue * This,
8770 UINT Metadata,
8771 _In_reads_bytes_opt_(Size) const void *pData,
8772 UINT Size);
8773
8774 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
8775 void ( STDMETHODCALLTYPE *BeginEvent )(
8776 ID3D12CommandQueue * This,
8777 UINT Metadata,
8778 _In_reads_bytes_opt_(Size) const void *pData,
8779 UINT Size);
8780
8781 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
8782 void ( STDMETHODCALLTYPE *EndEvent )(
8783 ID3D12CommandQueue * This);
8784
8785 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
8786 HRESULT ( STDMETHODCALLTYPE *Signal )(
8787 ID3D12CommandQueue * This,
8788 ID3D12Fence *pFence,
8789 UINT64 Value);
8790
8791 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
8792 HRESULT ( STDMETHODCALLTYPE *Wait )(
8793 ID3D12CommandQueue * This,
8794 ID3D12Fence *pFence,
8795 UINT64 Value);
8796
8797 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
8798 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
8799 ID3D12CommandQueue * This,
8800 _Out_ UINT64 *pFrequency);
8801
8802 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
8803 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
8804 ID3D12CommandQueue * This,
8805 _Out_ UINT64 *pGPUTimestamp,
8806 _Out_ UINT64 *pCpuTimestamp);
8807
8808 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
8809#if !defined(_WIN32)
8810 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
8811 ID3D12CommandQueue * This);
8812
8813#else
8814 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
8815 ID3D12CommandQueue * This,
8816 D3D12_COMMAND_QUEUE_DESC * RetVal);
8817
8818#endif
8819
8820 END_INTERFACE
8821 } ID3D12CommandQueueVtbl;
8822
8823 interface ID3D12CommandQueue
8824 {
8825 CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
8826 };
8827
8828
8829
8830#ifdef COBJMACROS
8831
8832
8833#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \
8834 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8835
8836#define ID3D12CommandQueue_AddRef(This) \
8837 ( (This)->lpVtbl -> AddRef(This) )
8838
8839#define ID3D12CommandQueue_Release(This) \
8840 ( (This)->lpVtbl -> Release(This) )
8841
8842
8843#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \
8844 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8845
8846#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \
8847 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8848
8849#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \
8850 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8851
8852#define ID3D12CommandQueue_SetName(This,Name) \
8853 ( (This)->lpVtbl -> SetName(This,Name) )
8854
8855
8856#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \
8857 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8858
8859
8860
8861#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
8862 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
8863
8864#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
8865 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
8866
8867#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
8868 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
8869
8870#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \
8871 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8872
8873#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \
8874 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8875
8876#define ID3D12CommandQueue_EndEvent(This) \
8877 ( (This)->lpVtbl -> EndEvent(This) )
8878
8879#define ID3D12CommandQueue_Signal(This,pFence,Value) \
8880 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
8881
8882#define ID3D12CommandQueue_Wait(This,pFence,Value) \
8883 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
8884
8885#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \
8886 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
8887
8888#define ID3D12CommandQueue_GetClockCalibration(This,pGPUTimestamp,pCpuTimestamp) \
8889 ( (This)->lpVtbl -> GetClockCalibration(This,pGPUTimestamp,pCpuTimestamp) )
8890#if !defined(_WIN32)
8891
8892#define ID3D12CommandQueue_GetDesc(This) \
8893 ( (This)->lpVtbl -> GetDesc(This) )
8894#else
8895#define ID3D12CommandQueue_GetDesc(This,RetVal) \
8896 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
8897#endif
8898
8899#endif /* COBJMACROS */
8900
8901
8902#endif /* C style interface */
8903
8904
8905
8906
8907#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
8908
8909
8910/* interface __MIDL_itf_d3d12_0000_0020 */
8911/* [local] */
8912
8913#ifdef __midl
8914#ifndef LUID_DEFINED
8915#define LUID_DEFINED 1
8916typedef struct __LUID
8917 {
8918 DWORD LowPart;
8919 LONG HighPart;
8920 } LUID;
8921
8922typedef struct __LUID *PLUID;
8923
8924#endif
8925#endif
8926
8927
8928extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec;
8929extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec;
8930
8931#ifndef __ID3D12Device_INTERFACE_DEFINED__
8932#define __ID3D12Device_INTERFACE_DEFINED__
8933
8934/* interface ID3D12Device */
8935/* [unique][local][object][uuid] */
8936
8937
8938EXTERN_C const IID IID_ID3D12Device;
8939
8940#if defined(__cplusplus) && !defined(CINTERFACE)
8941
8942 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
8943 ID3D12Device : public ID3D12Object
8944 {
8945 public:
8946 virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0;
8947
8948 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
8949 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
8950 REFIID riid,
8951 _COM_Outptr_ void **ppCommandQueue) = 0;
8952
8953 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
8954 _In_ D3D12_COMMAND_LIST_TYPE type,
8955 REFIID riid,
8956 _COM_Outptr_ void **ppCommandAllocator) = 0;
8957
8958 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
8959 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
8960 REFIID riid,
8961 _COM_Outptr_ void **ppPipelineState) = 0;
8962
8963 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
8964 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
8965 REFIID riid,
8966 _COM_Outptr_ void **ppPipelineState) = 0;
8967
8968 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
8969 _In_ UINT nodeMask,
8970 _In_ D3D12_COMMAND_LIST_TYPE type,
8971 _In_ ID3D12CommandAllocator *pCommandAllocator,
8972 _In_opt_ ID3D12PipelineState *pInitialState,
8973 REFIID riid,
8974 _COM_Outptr_ void **ppCommandList) = 0;
8975
8976 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
8977 D3D12_FEATURE Feature,
8978 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
8979 UINT FeatureSupportDataSize) = 0;
8980
8981 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
8982 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
8983 REFIID riid,
8984 _COM_Outptr_ void **ppvHeap) = 0;
8985
8986 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
8987 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
8988
8989 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
8990 _In_ UINT nodeMask,
8991 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
8992 _In_ SIZE_T blobLengthInBytes,
8993 REFIID riid,
8994 _COM_Outptr_ void **ppvRootSignature) = 0;
8995
8996 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
8997 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
8998 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
8999
9000 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
9001 _In_opt_ ID3D12Resource *pResource,
9002 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9003 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9004
9005 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
9006 _In_opt_ ID3D12Resource *pResource,
9007 _In_opt_ ID3D12Resource *pCounterResource,
9008 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9009 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9010
9011 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
9012 _In_opt_ ID3D12Resource *pResource,
9013 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9014 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9015
9016 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
9017 _In_opt_ ID3D12Resource *pResource,
9018 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9019 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9020
9021 virtual void STDMETHODCALLTYPE CreateSampler(
9022 _In_ const D3D12_SAMPLER_DESC *pDesc,
9023 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9024
9025 virtual void STDMETHODCALLTYPE CopyDescriptors(
9026 _In_ UINT NumDestDescriptorRanges,
9027 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9028 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9029 _In_ UINT NumSrcDescriptorRanges,
9030 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9031 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9032 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9033
9034 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
9035 _In_ UINT NumDescriptors,
9036 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9037 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9038 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9039
9040#if defined(_MSC_VER) || !defined(_WIN32)
9041 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
9042 _In_ UINT visibleMask,
9043 _In_ UINT numResourceDescs,
9044 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9045#else
9046 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo(
9047 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9048 _In_ UINT visibleMask,
9049 _In_ UINT numResourceDescs,
9050 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9051#endif
9052
9053#if defined(_MSC_VER) || !defined(_WIN32)
9054 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
9055 _In_ UINT nodeMask,
9056 D3D12_HEAP_TYPE heapType) = 0;
9057#else
9058 virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties(
9059 D3D12_HEAP_PROPERTIES * RetVal,
9060 _In_ UINT nodeMask,
9061 D3D12_HEAP_TYPE heapType) = 0;
9062#endif
9063
9064 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
9065 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9066 D3D12_HEAP_FLAGS HeapFlags,
9067 _In_ const D3D12_RESOURCE_DESC *pDesc,
9068 D3D12_RESOURCE_STATES InitialResourceState,
9069 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9070 REFIID riidResource,
9071 _COM_Outptr_opt_ void **ppvResource) = 0;
9072
9073 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
9074 _In_ const D3D12_HEAP_DESC *pDesc,
9075 REFIID riid,
9076 _COM_Outptr_opt_ void **ppvHeap) = 0;
9077
9078 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
9079 _In_ ID3D12Heap *pHeap,
9080 UINT64 HeapOffset,
9081 _In_ const D3D12_RESOURCE_DESC *pDesc,
9082 D3D12_RESOURCE_STATES InitialState,
9083 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9084 REFIID riid,
9085 _COM_Outptr_opt_ void **ppvResource) = 0;
9086
9087 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
9088 _In_ const D3D12_RESOURCE_DESC *pDesc,
9089 D3D12_RESOURCE_STATES InitialState,
9090 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9091 REFIID riid,
9092 _COM_Outptr_opt_ void **ppvResource) = 0;
9093
9094 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
9095 _In_ ID3D12DeviceChild *pObject,
9096 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
9097 DWORD Access,
9098 _In_opt_ LPCWSTR Name,
9099 _Out_ HANDLE *pHandle) = 0;
9100
9101 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
9102 _In_ HANDLE NTHandle,
9103 REFIID riid,
9104 _COM_Outptr_opt_ void **ppvObj) = 0;
9105
9106 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
9107 _In_ LPCWSTR Name,
9108 DWORD Access,
9109 /* [annotation][out] */
9110 _Out_ HANDLE *pNTHandle) = 0;
9111
9112 virtual HRESULT STDMETHODCALLTYPE MakeResident(
9113 UINT NumObjects,
9114 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9115
9116 virtual HRESULT STDMETHODCALLTYPE Evict(
9117 UINT NumObjects,
9118 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9119
9120 virtual HRESULT STDMETHODCALLTYPE CreateFence(
9121 UINT64 InitialValue,
9122 D3D12_FENCE_FLAGS Flags,
9123 REFIID riid,
9124 _COM_Outptr_ void **ppFence) = 0;
9125
9126 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
9127
9128 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
9129 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
9130 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
9131 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
9132 UINT64 BaseOffset,
9133 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
9134 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
9135 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
9136 _Out_opt_ UINT64 *pTotalBytes) = 0;
9137
9138 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
9139 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
9140 REFIID riid,
9141 _COM_Outptr_opt_ void **ppvHeap) = 0;
9142
9143 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
9144 BOOL Enable) = 0;
9145
9146 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
9147 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
9148 _In_opt_ ID3D12RootSignature *pRootSignature,
9149 REFIID riid,
9150 _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
9151
9152 virtual void STDMETHODCALLTYPE GetResourceTiling(
9153 _In_ ID3D12Resource *pTiledResource,
9154 _Out_opt_ UINT *pNumTilesForEntireResource,
9155 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
9156 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
9157 _Inout_opt_ UINT *pNumSubresourceTilings,
9158 _In_ UINT FirstSubresourceTilingToGet,
9159 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0;
9160
9161#if defined(_MSC_VER) || !defined(_WIN32)
9162 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0;
9163#else
9164 virtual LUID *STDMETHODCALLTYPE GetAdapterLuid(
9165 LUID * RetVal) = 0;
9166#endif
9167
9168 };
9169
9170
9171#else /* C style interface */
9172
9173 typedef struct ID3D12DeviceVtbl
9174 {
9175 BEGIN_INTERFACE
9176
9177 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9178 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9179 ID3D12Device * This,
9180 REFIID riid,
9181 _COM_Outptr_ void **ppvObject);
9182
9183 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9184 ULONG ( STDMETHODCALLTYPE *AddRef )(
9185 ID3D12Device * This);
9186
9187 DECLSPEC_XFGVIRT(IUnknown, Release)
9188 ULONG ( STDMETHODCALLTYPE *Release )(
9189 ID3D12Device * This);
9190
9191 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9192 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9193 ID3D12Device * This,
9194 _In_ REFGUID guid,
9195 _Inout_ UINT *pDataSize,
9196 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9197
9198 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9199 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9200 ID3D12Device * This,
9201 _In_ REFGUID guid,
9202 _In_ UINT DataSize,
9203 _In_reads_bytes_opt_( DataSize ) const void *pData);
9204
9205 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9206 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9207 ID3D12Device * This,
9208 _In_ REFGUID guid,
9209 _In_opt_ const IUnknown *pData);
9210
9211 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9212 HRESULT ( STDMETHODCALLTYPE *SetName )(
9213 ID3D12Device * This,
9214 _In_z_ LPCWSTR Name);
9215
9216 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
9217 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
9218 ID3D12Device * This);
9219
9220 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
9221 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
9222 ID3D12Device * This,
9223 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9224 REFIID riid,
9225 _COM_Outptr_ void **ppCommandQueue);
9226
9227 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
9228 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
9229 ID3D12Device * This,
9230 _In_ D3D12_COMMAND_LIST_TYPE type,
9231 REFIID riid,
9232 _COM_Outptr_ void **ppCommandAllocator);
9233
9234 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
9235 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
9236 ID3D12Device * This,
9237 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9238 REFIID riid,
9239 _COM_Outptr_ void **ppPipelineState);
9240
9241 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
9242 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
9243 ID3D12Device * This,
9244 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9245 REFIID riid,
9246 _COM_Outptr_ void **ppPipelineState);
9247
9248 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
9249 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
9250 ID3D12Device * This,
9251 _In_ UINT nodeMask,
9252 _In_ D3D12_COMMAND_LIST_TYPE type,
9253 _In_ ID3D12CommandAllocator *pCommandAllocator,
9254 _In_opt_ ID3D12PipelineState *pInitialState,
9255 REFIID riid,
9256 _COM_Outptr_ void **ppCommandList);
9257
9258 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
9259 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9260 ID3D12Device * This,
9261 D3D12_FEATURE Feature,
9262 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9263 UINT FeatureSupportDataSize);
9264
9265 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
9266 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
9267 ID3D12Device * This,
9268 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9269 REFIID riid,
9270 _COM_Outptr_ void **ppvHeap);
9271
9272 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
9273 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
9274 ID3D12Device * This,
9275 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
9276
9277 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
9278 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
9279 ID3D12Device * This,
9280 _In_ UINT nodeMask,
9281 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9282 _In_ SIZE_T blobLengthInBytes,
9283 REFIID riid,
9284 _COM_Outptr_ void **ppvRootSignature);
9285
9286 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
9287 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
9288 ID3D12Device * This,
9289 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9290 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9291
9292 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
9293 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9294 ID3D12Device * This,
9295 _In_opt_ ID3D12Resource *pResource,
9296 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9297 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9298
9299 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
9300 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9301 ID3D12Device * This,
9302 _In_opt_ ID3D12Resource *pResource,
9303 _In_opt_ ID3D12Resource *pCounterResource,
9304 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9305 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9306
9307 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
9308 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9309 ID3D12Device * This,
9310 _In_opt_ ID3D12Resource *pResource,
9311 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9312 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9313
9314 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
9315 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9316 ID3D12Device * This,
9317 _In_opt_ ID3D12Resource *pResource,
9318 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9319 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9320
9321 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
9322 void ( STDMETHODCALLTYPE *CreateSampler )(
9323 ID3D12Device * This,
9324 _In_ const D3D12_SAMPLER_DESC *pDesc,
9325 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9326
9327 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
9328 void ( STDMETHODCALLTYPE *CopyDescriptors )(
9329 ID3D12Device * This,
9330 _In_ UINT NumDestDescriptorRanges,
9331 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9332 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9333 _In_ UINT NumSrcDescriptorRanges,
9334 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9335 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9336 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9337
9338 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
9339 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
9340 ID3D12Device * This,
9341 _In_ UINT NumDescriptors,
9342 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9343 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9344 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9345
9346 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
9347#if !defined(_WIN32)
9348 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9349 ID3D12Device * This,
9350 _In_ UINT visibleMask,
9351 _In_ UINT numResourceDescs,
9352 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9353
9354#else
9355 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9356 ID3D12Device * This,
9357 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9358 _In_ UINT visibleMask,
9359 _In_ UINT numResourceDescs,
9360 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9361
9362#endif
9363
9364 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
9365#if !defined(_WIN32)
9366 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9367 ID3D12Device * This,
9368 _In_ UINT nodeMask,
9369 D3D12_HEAP_TYPE heapType);
9370
9371#else
9372 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9373 ID3D12Device * This,
9374 D3D12_HEAP_PROPERTIES * RetVal,
9375 _In_ UINT nodeMask,
9376 D3D12_HEAP_TYPE heapType);
9377
9378#endif
9379
9380 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
9381 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
9382 ID3D12Device * This,
9383 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9384 D3D12_HEAP_FLAGS HeapFlags,
9385 _In_ const D3D12_RESOURCE_DESC *pDesc,
9386 D3D12_RESOURCE_STATES InitialResourceState,
9387 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9388 REFIID riidResource,
9389 _COM_Outptr_opt_ void **ppvResource);
9390
9391 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
9392 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
9393 ID3D12Device * This,
9394 _In_ const D3D12_HEAP_DESC *pDesc,
9395 REFIID riid,
9396 _COM_Outptr_opt_ void **ppvHeap);
9397
9398 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
9399 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
9400 ID3D12Device * This,
9401 _In_ ID3D12Heap *pHeap,
9402 UINT64 HeapOffset,
9403 _In_ const D3D12_RESOURCE_DESC *pDesc,
9404 D3D12_RESOURCE_STATES InitialState,
9405 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9406 REFIID riid,
9407 _COM_Outptr_opt_ void **ppvResource);
9408
9409 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
9410 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
9411 ID3D12Device * This,
9412 _In_ const D3D12_RESOURCE_DESC *pDesc,
9413 D3D12_RESOURCE_STATES InitialState,
9414 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9415 REFIID riid,
9416 _COM_Outptr_opt_ void **ppvResource);
9417
9418 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
9419 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
9420 ID3D12Device * This,
9421 _In_ ID3D12DeviceChild *pObject,
9422 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
9423 DWORD Access,
9424 _In_opt_ LPCWSTR Name,
9425 _Out_ HANDLE *pHandle);
9426
9427 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
9428 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
9429 ID3D12Device * This,
9430 _In_ HANDLE NTHandle,
9431 REFIID riid,
9432 _COM_Outptr_opt_ void **ppvObj);
9433
9434 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
9435 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
9436 ID3D12Device * This,
9437 _In_ LPCWSTR Name,
9438 DWORD Access,
9439 /* [annotation][out] */
9440 _Out_ HANDLE *pNTHandle);
9441
9442 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
9443 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
9444 ID3D12Device * This,
9445 UINT NumObjects,
9446 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
9447
9448 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
9449 HRESULT ( STDMETHODCALLTYPE *Evict )(
9450 ID3D12Device * This,
9451 UINT NumObjects,
9452 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
9453
9454 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
9455 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
9456 ID3D12Device * This,
9457 UINT64 InitialValue,
9458 D3D12_FENCE_FLAGS Flags,
9459 REFIID riid,
9460 _COM_Outptr_ void **ppFence);
9461
9462 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
9463 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
9464 ID3D12Device * This);
9465
9466 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
9467 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
9468 ID3D12Device * This,
9469 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
9470 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
9471 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
9472 UINT64 BaseOffset,
9473 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
9474 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
9475 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
9476 _Out_opt_ UINT64 *pTotalBytes);
9477
9478 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
9479 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
9480 ID3D12Device * This,
9481 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
9482 REFIID riid,
9483 _COM_Outptr_opt_ void **ppvHeap);
9484
9485 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
9486 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
9487 ID3D12Device * This,
9488 BOOL Enable);
9489
9490 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
9491 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
9492 ID3D12Device * This,
9493 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
9494 _In_opt_ ID3D12RootSignature *pRootSignature,
9495 REFIID riid,
9496 _COM_Outptr_opt_ void **ppvCommandSignature);
9497
9498 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
9499 void ( STDMETHODCALLTYPE *GetResourceTiling )(
9500 ID3D12Device * This,
9501 _In_ ID3D12Resource *pTiledResource,
9502 _Out_opt_ UINT *pNumTilesForEntireResource,
9503 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
9504 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
9505 _Inout_opt_ UINT *pNumSubresourceTilings,
9506 _In_ UINT FirstSubresourceTilingToGet,
9507 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
9508
9509 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
9510#if !defined(_WIN32)
9511 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
9512 ID3D12Device * This);
9513
9514#else
9515 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
9516 ID3D12Device * This,
9517 LUID * RetVal);
9518
9519#endif
9520
9521 END_INTERFACE
9522 } ID3D12DeviceVtbl;
9523
9524 interface ID3D12Device
9525 {
9526 CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
9527 };
9528
9529
9530
9531#ifdef COBJMACROS
9532
9533
9534#define ID3D12Device_QueryInterface(This,riid,ppvObject) \
9535 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9536
9537#define ID3D12Device_AddRef(This) \
9538 ( (This)->lpVtbl -> AddRef(This) )
9539
9540#define ID3D12Device_Release(This) \
9541 ( (This)->lpVtbl -> Release(This) )
9542
9543
9544#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \
9545 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9546
9547#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \
9548 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9549
9550#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \
9551 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9552
9553#define ID3D12Device_SetName(This,Name) \
9554 ( (This)->lpVtbl -> SetName(This,Name) )
9555
9556
9557#define ID3D12Device_GetNodeCount(This) \
9558 ( (This)->lpVtbl -> GetNodeCount(This) )
9559
9560#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
9561 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
9562
9563#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
9564 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
9565
9566#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
9567 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
9568
9569#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
9570 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
9571
9572#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
9573 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
9574
9575#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
9576 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
9577
9578#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
9579 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
9580
9581#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
9582 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
9583
9584#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
9585 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
9586
9587#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \
9588 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
9589
9590#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
9591 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
9592
9593#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
9594 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
9595
9596#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
9597 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
9598
9599#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
9600 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
9601
9602#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \
9603 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
9604
9605#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
9606 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
9607
9608#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
9609 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
9610#if !defined(_WIN32)
9611
9612#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
9613 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
9614#else
9615#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
9616 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
9617#endif
9618#if !defined(_WIN32)
9619
9620#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \
9621 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
9622#else
9623#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
9624 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
9625#endif
9626
9627#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
9628 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
9629
9630#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
9631 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
9632
9633#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9634 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9635
9636#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
9637 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
9638
9639#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
9640 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
9641
9642#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
9643 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
9644
9645#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
9646 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
9647
9648#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \
9649 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
9650
9651#define ID3D12Device_Evict(This,NumObjects,ppObjects) \
9652 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
9653
9654#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \
9655 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
9656
9657#define ID3D12Device_GetDeviceRemovedReason(This) \
9658 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
9659
9660#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
9661 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
9662
9663#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
9664 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
9665
9666#define ID3D12Device_SetStablePowerState(This,Enable) \
9667 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
9668
9669#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
9670 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
9671
9672#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
9673 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
9674#if !defined(_WIN32)
9675
9676#define ID3D12Device_GetAdapterLuid(This) \
9677 ( (This)->lpVtbl -> GetAdapterLuid(This) )
9678#else
9679#define ID3D12Device_GetAdapterLuid(This,RetVal) \
9680 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
9681#endif
9682
9683#endif /* COBJMACROS */
9684
9685
9686#endif /* C style interface */
9687
9688
9689
9690
9691#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
9692
9693
9694#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9695#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
9696
9697/* interface ID3D12PipelineLibrary */
9698/* [unique][local][object][uuid] */
9699
9700
9701EXTERN_C const IID IID_ID3D12PipelineLibrary;
9702
9703#if defined(__cplusplus) && !defined(CINTERFACE)
9704
9705 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
9706 ID3D12PipelineLibrary : public ID3D12DeviceChild
9707 {
9708 public:
9709 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
9710 _In_opt_ LPCWSTR pName,
9711 _In_ ID3D12PipelineState *pPipeline) = 0;
9712
9713 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
9714 _In_ LPCWSTR pName,
9715 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9716 REFIID riid,
9717 _COM_Outptr_ void **ppPipelineState) = 0;
9718
9719 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
9720 _In_ LPCWSTR pName,
9721 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9722 REFIID riid,
9723 _COM_Outptr_ void **ppPipelineState) = 0;
9724
9725 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
9726
9727 virtual HRESULT STDMETHODCALLTYPE Serialize(
9728 _Out_writes_(DataSizeInBytes) void *pData,
9729 SIZE_T DataSizeInBytes) = 0;
9730
9731 };
9732
9733
9734#else /* C style interface */
9735
9736 typedef struct ID3D12PipelineLibraryVtbl
9737 {
9738 BEGIN_INTERFACE
9739
9740 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9741 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9742 ID3D12PipelineLibrary * This,
9743 REFIID riid,
9744 _COM_Outptr_ void **ppvObject);
9745
9746 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9747 ULONG ( STDMETHODCALLTYPE *AddRef )(
9748 ID3D12PipelineLibrary * This);
9749
9750 DECLSPEC_XFGVIRT(IUnknown, Release)
9751 ULONG ( STDMETHODCALLTYPE *Release )(
9752 ID3D12PipelineLibrary * This);
9753
9754 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9755 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9756 ID3D12PipelineLibrary * This,
9757 _In_ REFGUID guid,
9758 _Inout_ UINT *pDataSize,
9759 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9760
9761 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9762 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9763 ID3D12PipelineLibrary * This,
9764 _In_ REFGUID guid,
9765 _In_ UINT DataSize,
9766 _In_reads_bytes_opt_( DataSize ) const void *pData);
9767
9768 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9769 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9770 ID3D12PipelineLibrary * This,
9771 _In_ REFGUID guid,
9772 _In_opt_ const IUnknown *pData);
9773
9774 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9775 HRESULT ( STDMETHODCALLTYPE *SetName )(
9776 ID3D12PipelineLibrary * This,
9777 _In_z_ LPCWSTR Name);
9778
9779 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9780 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9781 ID3D12PipelineLibrary * This,
9782 REFIID riid,
9783 _COM_Outptr_opt_ void **ppvDevice);
9784
9785 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
9786 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
9787 ID3D12PipelineLibrary * This,
9788 _In_opt_ LPCWSTR pName,
9789 _In_ ID3D12PipelineState *pPipeline);
9790
9791 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
9792 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
9793 ID3D12PipelineLibrary * This,
9794 _In_ LPCWSTR pName,
9795 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9796 REFIID riid,
9797 _COM_Outptr_ void **ppPipelineState);
9798
9799 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
9800 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
9801 ID3D12PipelineLibrary * This,
9802 _In_ LPCWSTR pName,
9803 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9804 REFIID riid,
9805 _COM_Outptr_ void **ppPipelineState);
9806
9807 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
9808 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
9809 ID3D12PipelineLibrary * This);
9810
9811 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
9812 HRESULT ( STDMETHODCALLTYPE *Serialize )(
9813 ID3D12PipelineLibrary * This,
9814 _Out_writes_(DataSizeInBytes) void *pData,
9815 SIZE_T DataSizeInBytes);
9816
9817 END_INTERFACE
9818 } ID3D12PipelineLibraryVtbl;
9819
9820 interface ID3D12PipelineLibrary
9821 {
9822 CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
9823 };
9824
9825
9826
9827#ifdef COBJMACROS
9828
9829
9830#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
9831 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9832
9833#define ID3D12PipelineLibrary_AddRef(This) \
9834 ( (This)->lpVtbl -> AddRef(This) )
9835
9836#define ID3D12PipelineLibrary_Release(This) \
9837 ( (This)->lpVtbl -> Release(This) )
9838
9839
9840#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
9841 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9842
9843#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
9844 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9845
9846#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
9847 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9848
9849#define ID3D12PipelineLibrary_SetName(This,Name) \
9850 ( (This)->lpVtbl -> SetName(This,Name) )
9851
9852
9853#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
9854 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9855
9856
9857#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
9858 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
9859
9860#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
9861 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
9862
9863#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
9864 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
9865
9866#define ID3D12PipelineLibrary_GetSerializedSize(This) \
9867 ( (This)->lpVtbl -> GetSerializedSize(This) )
9868
9869#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
9870 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
9871
9872#endif /* COBJMACROS */
9873
9874
9875#endif /* C style interface */
9876
9877
9878
9879
9880#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
9881
9882
9883#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9884#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
9885
9886/* interface ID3D12PipelineLibrary1 */
9887/* [unique][local][object][uuid] */
9888
9889
9890EXTERN_C const IID IID_ID3D12PipelineLibrary1;
9891
9892#if defined(__cplusplus) && !defined(CINTERFACE)
9893
9894 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
9895 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
9896 {
9897 public:
9898 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
9899 _In_ LPCWSTR pName,
9900 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
9901 REFIID riid,
9902 _COM_Outptr_ void **ppPipelineState) = 0;
9903
9904 };
9905
9906
9907#else /* C style interface */
9908
9909 typedef struct ID3D12PipelineLibrary1Vtbl
9910 {
9911 BEGIN_INTERFACE
9912
9913 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9914 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9915 ID3D12PipelineLibrary1 * This,
9916 REFIID riid,
9917 _COM_Outptr_ void **ppvObject);
9918
9919 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9920 ULONG ( STDMETHODCALLTYPE *AddRef )(
9921 ID3D12PipelineLibrary1 * This);
9922
9923 DECLSPEC_XFGVIRT(IUnknown, Release)
9924 ULONG ( STDMETHODCALLTYPE *Release )(
9925 ID3D12PipelineLibrary1 * This);
9926
9927 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9928 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9929 ID3D12PipelineLibrary1 * This,
9930 _In_ REFGUID guid,
9931 _Inout_ UINT *pDataSize,
9932 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9933
9934 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9935 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9936 ID3D12PipelineLibrary1 * This,
9937 _In_ REFGUID guid,
9938 _In_ UINT DataSize,
9939 _In_reads_bytes_opt_( DataSize ) const void *pData);
9940
9941 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9942 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9943 ID3D12PipelineLibrary1 * This,
9944 _In_ REFGUID guid,
9945 _In_opt_ const IUnknown *pData);
9946
9947 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9948 HRESULT ( STDMETHODCALLTYPE *SetName )(
9949 ID3D12PipelineLibrary1 * This,
9950 _In_z_ LPCWSTR Name);
9951
9952 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9953 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9954 ID3D12PipelineLibrary1 * This,
9955 REFIID riid,
9956 _COM_Outptr_opt_ void **ppvDevice);
9957
9958 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
9959 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
9960 ID3D12PipelineLibrary1 * This,
9961 _In_opt_ LPCWSTR pName,
9962 _In_ ID3D12PipelineState *pPipeline);
9963
9964 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
9965 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
9966 ID3D12PipelineLibrary1 * This,
9967 _In_ LPCWSTR pName,
9968 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9969 REFIID riid,
9970 _COM_Outptr_ void **ppPipelineState);
9971
9972 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
9973 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
9974 ID3D12PipelineLibrary1 * This,
9975 _In_ LPCWSTR pName,
9976 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9977 REFIID riid,
9978 _COM_Outptr_ void **ppPipelineState);
9979
9980 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
9981 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
9982 ID3D12PipelineLibrary1 * This);
9983
9984 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
9985 HRESULT ( STDMETHODCALLTYPE *Serialize )(
9986 ID3D12PipelineLibrary1 * This,
9987 _Out_writes_(DataSizeInBytes) void *pData,
9988 SIZE_T DataSizeInBytes);
9989
9990 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline)
9991 HRESULT ( STDMETHODCALLTYPE *LoadPipeline )(
9992 ID3D12PipelineLibrary1 * This,
9993 _In_ LPCWSTR pName,
9994 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
9995 REFIID riid,
9996 _COM_Outptr_ void **ppPipelineState);
9997
9998 END_INTERFACE
9999 } ID3D12PipelineLibrary1Vtbl;
10000
10001 interface ID3D12PipelineLibrary1
10002 {
10003 CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl;
10004 };
10005
10006
10007
10008#ifdef COBJMACROS
10009
10010
10011#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \
10012 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10013
10014#define ID3D12PipelineLibrary1_AddRef(This) \
10015 ( (This)->lpVtbl -> AddRef(This) )
10016
10017#define ID3D12PipelineLibrary1_Release(This) \
10018 ( (This)->lpVtbl -> Release(This) )
10019
10020
10021#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \
10022 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10023
10024#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \
10025 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10026
10027#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \
10028 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10029
10030#define ID3D12PipelineLibrary1_SetName(This,Name) \
10031 ( (This)->lpVtbl -> SetName(This,Name) )
10032
10033
10034#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \
10035 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
10036
10037
10038#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \
10039 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
10040
10041#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
10042 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
10043
10044#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
10045 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
10046
10047#define ID3D12PipelineLibrary1_GetSerializedSize(This) \
10048 ( (This)->lpVtbl -> GetSerializedSize(This) )
10049
10050#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \
10051 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
10052
10053
10054#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \
10055 ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) )
10056
10057#endif /* COBJMACROS */
10058
10059
10060#endif /* C style interface */
10061
10062
10063
10064
10065#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
10066
10067
10068/* interface __MIDL_itf_d3d12_0000_0023 */
10069/* [local] */
10070
10071typedef
10072enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
10073 {
10074 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
10075 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
10076 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
10077 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
10078
10079DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )
10080typedef
10081enum D3D12_RESIDENCY_PRIORITY
10082 {
10083 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
10084 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
10085 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
10086 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
10087 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
10088 } D3D12_RESIDENCY_PRIORITY;
10089
10090
10091
10092extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_c_ifspec;
10093extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0023_v0_0_s_ifspec;
10094
10095#ifndef __ID3D12Device1_INTERFACE_DEFINED__
10096#define __ID3D12Device1_INTERFACE_DEFINED__
10097
10098/* interface ID3D12Device1 */
10099/* [unique][local][object][uuid] */
10100
10101
10102EXTERN_C const IID IID_ID3D12Device1;
10103
10104#if defined(__cplusplus) && !defined(CINTERFACE)
10105
10106 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
10107 ID3D12Device1 : public ID3D12Device
10108 {
10109 public:
10110 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
10111 _In_reads_(BlobLength) const void *pLibraryBlob,
10112 SIZE_T BlobLength,
10113 REFIID riid,
10114 _COM_Outptr_ void **ppPipelineLibrary) = 0;
10115
10116 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
10117 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10118 _In_reads_(NumFences) const UINT64 *pFenceValues,
10119 UINT NumFences,
10120 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10121 HANDLE hEvent) = 0;
10122
10123 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
10124 UINT NumObjects,
10125 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10126 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
10127
10128 };
10129
10130
10131#else /* C style interface */
10132
10133 typedef struct ID3D12Device1Vtbl
10134 {
10135 BEGIN_INTERFACE
10136
10137 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10138 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10139 ID3D12Device1 * This,
10140 REFIID riid,
10141 _COM_Outptr_ void **ppvObject);
10142
10143 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10144 ULONG ( STDMETHODCALLTYPE *AddRef )(
10145 ID3D12Device1 * This);
10146
10147 DECLSPEC_XFGVIRT(IUnknown, Release)
10148 ULONG ( STDMETHODCALLTYPE *Release )(
10149 ID3D12Device1 * This);
10150
10151 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10152 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10153 ID3D12Device1 * This,
10154 _In_ REFGUID guid,
10155 _Inout_ UINT *pDataSize,
10156 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10157
10158 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10159 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10160 ID3D12Device1 * This,
10161 _In_ REFGUID guid,
10162 _In_ UINT DataSize,
10163 _In_reads_bytes_opt_( DataSize ) const void *pData);
10164
10165 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10166 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10167 ID3D12Device1 * This,
10168 _In_ REFGUID guid,
10169 _In_opt_ const IUnknown *pData);
10170
10171 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10172 HRESULT ( STDMETHODCALLTYPE *SetName )(
10173 ID3D12Device1 * This,
10174 _In_z_ LPCWSTR Name);
10175
10176 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10177 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10178 ID3D12Device1 * This);
10179
10180 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10181 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10182 ID3D12Device1 * This,
10183 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10184 REFIID riid,
10185 _COM_Outptr_ void **ppCommandQueue);
10186
10187 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10188 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10189 ID3D12Device1 * This,
10190 _In_ D3D12_COMMAND_LIST_TYPE type,
10191 REFIID riid,
10192 _COM_Outptr_ void **ppCommandAllocator);
10193
10194 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10195 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10196 ID3D12Device1 * This,
10197 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10198 REFIID riid,
10199 _COM_Outptr_ void **ppPipelineState);
10200
10201 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10202 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10203 ID3D12Device1 * This,
10204 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10205 REFIID riid,
10206 _COM_Outptr_ void **ppPipelineState);
10207
10208 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10209 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10210 ID3D12Device1 * This,
10211 _In_ UINT nodeMask,
10212 _In_ D3D12_COMMAND_LIST_TYPE type,
10213 _In_ ID3D12CommandAllocator *pCommandAllocator,
10214 _In_opt_ ID3D12PipelineState *pInitialState,
10215 REFIID riid,
10216 _COM_Outptr_ void **ppCommandList);
10217
10218 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10219 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10220 ID3D12Device1 * This,
10221 D3D12_FEATURE Feature,
10222 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10223 UINT FeatureSupportDataSize);
10224
10225 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10226 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10227 ID3D12Device1 * This,
10228 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10229 REFIID riid,
10230 _COM_Outptr_ void **ppvHeap);
10231
10232 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10233 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10234 ID3D12Device1 * This,
10235 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10236
10237 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10238 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10239 ID3D12Device1 * This,
10240 _In_ UINT nodeMask,
10241 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10242 _In_ SIZE_T blobLengthInBytes,
10243 REFIID riid,
10244 _COM_Outptr_ void **ppvRootSignature);
10245
10246 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10247 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10248 ID3D12Device1 * This,
10249 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10250 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10251
10252 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10253 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10254 ID3D12Device1 * This,
10255 _In_opt_ ID3D12Resource *pResource,
10256 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10257 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10258
10259 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10260 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10261 ID3D12Device1 * This,
10262 _In_opt_ ID3D12Resource *pResource,
10263 _In_opt_ ID3D12Resource *pCounterResource,
10264 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10265 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10266
10267 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10268 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10269 ID3D12Device1 * This,
10270 _In_opt_ ID3D12Resource *pResource,
10271 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10272 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10273
10274 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10275 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10276 ID3D12Device1 * This,
10277 _In_opt_ ID3D12Resource *pResource,
10278 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10279 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10280
10281 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10282 void ( STDMETHODCALLTYPE *CreateSampler )(
10283 ID3D12Device1 * This,
10284 _In_ const D3D12_SAMPLER_DESC *pDesc,
10285 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10286
10287 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10288 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10289 ID3D12Device1 * This,
10290 _In_ UINT NumDestDescriptorRanges,
10291 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10292 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10293 _In_ UINT NumSrcDescriptorRanges,
10294 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10295 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10296 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10297
10298 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10299 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10300 ID3D12Device1 * This,
10301 _In_ UINT NumDescriptors,
10302 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10303 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10304 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10305
10306 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10307#if !defined(_WIN32)
10308 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10309 ID3D12Device1 * This,
10310 _In_ UINT visibleMask,
10311 _In_ UINT numResourceDescs,
10312 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10313
10314#else
10315 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10316 ID3D12Device1 * This,
10317 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10318 _In_ UINT visibleMask,
10319 _In_ UINT numResourceDescs,
10320 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10321
10322#endif
10323
10324 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10325#if !defined(_WIN32)
10326 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10327 ID3D12Device1 * This,
10328 _In_ UINT nodeMask,
10329 D3D12_HEAP_TYPE heapType);
10330
10331#else
10332 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10333 ID3D12Device1 * This,
10334 D3D12_HEAP_PROPERTIES * RetVal,
10335 _In_ UINT nodeMask,
10336 D3D12_HEAP_TYPE heapType);
10337
10338#endif
10339
10340 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10341 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10342 ID3D12Device1 * This,
10343 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10344 D3D12_HEAP_FLAGS HeapFlags,
10345 _In_ const D3D12_RESOURCE_DESC *pDesc,
10346 D3D12_RESOURCE_STATES InitialResourceState,
10347 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10348 REFIID riidResource,
10349 _COM_Outptr_opt_ void **ppvResource);
10350
10351 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10352 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10353 ID3D12Device1 * This,
10354 _In_ const D3D12_HEAP_DESC *pDesc,
10355 REFIID riid,
10356 _COM_Outptr_opt_ void **ppvHeap);
10357
10358 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10359 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10360 ID3D12Device1 * This,
10361 _In_ ID3D12Heap *pHeap,
10362 UINT64 HeapOffset,
10363 _In_ const D3D12_RESOURCE_DESC *pDesc,
10364 D3D12_RESOURCE_STATES InitialState,
10365 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10366 REFIID riid,
10367 _COM_Outptr_opt_ void **ppvResource);
10368
10369 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10370 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10371 ID3D12Device1 * This,
10372 _In_ const D3D12_RESOURCE_DESC *pDesc,
10373 D3D12_RESOURCE_STATES InitialState,
10374 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10375 REFIID riid,
10376 _COM_Outptr_opt_ void **ppvResource);
10377
10378 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10379 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10380 ID3D12Device1 * This,
10381 _In_ ID3D12DeviceChild *pObject,
10382 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10383 DWORD Access,
10384 _In_opt_ LPCWSTR Name,
10385 _Out_ HANDLE *pHandle);
10386
10387 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10388 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10389 ID3D12Device1 * This,
10390 _In_ HANDLE NTHandle,
10391 REFIID riid,
10392 _COM_Outptr_opt_ void **ppvObj);
10393
10394 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10395 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10396 ID3D12Device1 * This,
10397 _In_ LPCWSTR Name,
10398 DWORD Access,
10399 /* [annotation][out] */
10400 _Out_ HANDLE *pNTHandle);
10401
10402 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10403 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10404 ID3D12Device1 * This,
10405 UINT NumObjects,
10406 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10407
10408 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10409 HRESULT ( STDMETHODCALLTYPE *Evict )(
10410 ID3D12Device1 * This,
10411 UINT NumObjects,
10412 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10413
10414 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10415 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10416 ID3D12Device1 * This,
10417 UINT64 InitialValue,
10418 D3D12_FENCE_FLAGS Flags,
10419 REFIID riid,
10420 _COM_Outptr_ void **ppFence);
10421
10422 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
10423 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
10424 ID3D12Device1 * This);
10425
10426 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
10427 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
10428 ID3D12Device1 * This,
10429 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
10430 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
10431 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
10432 UINT64 BaseOffset,
10433 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
10434 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
10435 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
10436 _Out_opt_ UINT64 *pTotalBytes);
10437
10438 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
10439 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
10440 ID3D12Device1 * This,
10441 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
10442 REFIID riid,
10443 _COM_Outptr_opt_ void **ppvHeap);
10444
10445 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
10446 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
10447 ID3D12Device1 * This,
10448 BOOL Enable);
10449
10450 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
10451 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
10452 ID3D12Device1 * This,
10453 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
10454 _In_opt_ ID3D12RootSignature *pRootSignature,
10455 REFIID riid,
10456 _COM_Outptr_opt_ void **ppvCommandSignature);
10457
10458 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
10459 void ( STDMETHODCALLTYPE *GetResourceTiling )(
10460 ID3D12Device1 * This,
10461 _In_ ID3D12Resource *pTiledResource,
10462 _Out_opt_ UINT *pNumTilesForEntireResource,
10463 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
10464 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
10465 _Inout_opt_ UINT *pNumSubresourceTilings,
10466 _In_ UINT FirstSubresourceTilingToGet,
10467 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
10468
10469 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
10470#if !defined(_WIN32)
10471 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
10472 ID3D12Device1 * This);
10473
10474#else
10475 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
10476 ID3D12Device1 * This,
10477 LUID * RetVal);
10478
10479#endif
10480
10481 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
10482 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
10483 ID3D12Device1 * This,
10484 _In_reads_(BlobLength) const void *pLibraryBlob,
10485 SIZE_T BlobLength,
10486 REFIID riid,
10487 _COM_Outptr_ void **ppPipelineLibrary);
10488
10489 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
10490 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
10491 ID3D12Device1 * This,
10492 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10493 _In_reads_(NumFences) const UINT64 *pFenceValues,
10494 UINT NumFences,
10495 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10496 HANDLE hEvent);
10497
10498 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
10499 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
10500 ID3D12Device1 * This,
10501 UINT NumObjects,
10502 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10503 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
10504
10505 END_INTERFACE
10506 } ID3D12Device1Vtbl;
10507
10508 interface ID3D12Device1
10509 {
10510 CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
10511 };
10512
10513
10514
10515#ifdef COBJMACROS
10516
10517
10518#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
10519 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10520
10521#define ID3D12Device1_AddRef(This) \
10522 ( (This)->lpVtbl -> AddRef(This) )
10523
10524#define ID3D12Device1_Release(This) \
10525 ( (This)->lpVtbl -> Release(This) )
10526
10527
10528#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
10529 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10530
10531#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
10532 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10533
10534#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
10535 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10536
10537#define ID3D12Device1_SetName(This,Name) \
10538 ( (This)->lpVtbl -> SetName(This,Name) )
10539
10540
10541#define ID3D12Device1_GetNodeCount(This) \
10542 ( (This)->lpVtbl -> GetNodeCount(This) )
10543
10544#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
10545 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
10546
10547#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
10548 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
10549
10550#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
10551 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
10552
10553#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
10554 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
10555
10556#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
10557 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
10558
10559#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
10560 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
10561
10562#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
10563 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
10564
10565#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
10566 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
10567
10568#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
10569 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
10570
10571#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
10572 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
10573
10574#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
10575 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
10576
10577#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
10578 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
10579
10580#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
10581 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
10582
10583#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
10584 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
10585
10586#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
10587 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
10588
10589#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
10590 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
10591
10592#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
10593 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
10594#if !defined(_WIN32)
10595
10596#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
10597 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
10598#else
10599#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
10600 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
10601#endif
10602#if !defined(_WIN32)
10603
10604#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \
10605 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
10606#else
10607#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
10608 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
10609#endif
10610
10611#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
10612 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
10613
10614#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
10615 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
10616
10617#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10618 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10619
10620#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10621 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10622
10623#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
10624 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
10625
10626#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
10627 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
10628
10629#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
10630 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
10631
10632#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
10633 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
10634
10635#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
10636 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
10637
10638#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
10639 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
10640
10641#define ID3D12Device1_GetDeviceRemovedReason(This) \
10642 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10643
10644#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
10645 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
10646
10647#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
10648 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
10649
10650#define ID3D12Device1_SetStablePowerState(This,Enable) \
10651 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
10652
10653#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
10654 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
10655
10656#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
10657 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
10658#if !defined(_WIN32)
10659
10660#define ID3D12Device1_GetAdapterLuid(This) \
10661 ( (This)->lpVtbl -> GetAdapterLuid(This) )
10662#else
10663#define ID3D12Device1_GetAdapterLuid(This,RetVal) \
10664 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
10665#endif
10666
10667
10668#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
10669 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
10670
10671#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
10672 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
10673
10674#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
10675 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
10676
10677#endif /* COBJMACROS */
10678
10679
10680#endif /* C style interface */
10681
10682
10683
10684
10685#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
10686
10687
10688#ifndef __ID3D12Device2_INTERFACE_DEFINED__
10689#define __ID3D12Device2_INTERFACE_DEFINED__
10690
10691/* interface ID3D12Device2 */
10692/* [unique][local][object][uuid] */
10693
10694
10695EXTERN_C const IID IID_ID3D12Device2;
10696
10697#if defined(__cplusplus) && !defined(CINTERFACE)
10698
10699 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
10700 ID3D12Device2 : public ID3D12Device1
10701 {
10702 public:
10703 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
10704 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10705 REFIID riid,
10706 _COM_Outptr_ void **ppPipelineState) = 0;
10707
10708 };
10709
10710
10711#else /* C style interface */
10712
10713 typedef struct ID3D12Device2Vtbl
10714 {
10715 BEGIN_INTERFACE
10716
10717 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10718 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10719 ID3D12Device2 * This,
10720 REFIID riid,
10721 _COM_Outptr_ void **ppvObject);
10722
10723 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10724 ULONG ( STDMETHODCALLTYPE *AddRef )(
10725 ID3D12Device2 * This);
10726
10727 DECLSPEC_XFGVIRT(IUnknown, Release)
10728 ULONG ( STDMETHODCALLTYPE *Release )(
10729 ID3D12Device2 * This);
10730
10731 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10732 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10733 ID3D12Device2 * This,
10734 _In_ REFGUID guid,
10735 _Inout_ UINT *pDataSize,
10736 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10737
10738 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10739 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10740 ID3D12Device2 * This,
10741 _In_ REFGUID guid,
10742 _In_ UINT DataSize,
10743 _In_reads_bytes_opt_( DataSize ) const void *pData);
10744
10745 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10746 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10747 ID3D12Device2 * This,
10748 _In_ REFGUID guid,
10749 _In_opt_ const IUnknown *pData);
10750
10751 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10752 HRESULT ( STDMETHODCALLTYPE *SetName )(
10753 ID3D12Device2 * This,
10754 _In_z_ LPCWSTR Name);
10755
10756 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10757 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10758 ID3D12Device2 * This);
10759
10760 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10761 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10762 ID3D12Device2 * This,
10763 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10764 REFIID riid,
10765 _COM_Outptr_ void **ppCommandQueue);
10766
10767 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10768 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10769 ID3D12Device2 * This,
10770 _In_ D3D12_COMMAND_LIST_TYPE type,
10771 REFIID riid,
10772 _COM_Outptr_ void **ppCommandAllocator);
10773
10774 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10775 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10776 ID3D12Device2 * This,
10777 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10778 REFIID riid,
10779 _COM_Outptr_ void **ppPipelineState);
10780
10781 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10782 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10783 ID3D12Device2 * This,
10784 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10785 REFIID riid,
10786 _COM_Outptr_ void **ppPipelineState);
10787
10788 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10789 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10790 ID3D12Device2 * This,
10791 _In_ UINT nodeMask,
10792 _In_ D3D12_COMMAND_LIST_TYPE type,
10793 _In_ ID3D12CommandAllocator *pCommandAllocator,
10794 _In_opt_ ID3D12PipelineState *pInitialState,
10795 REFIID riid,
10796 _COM_Outptr_ void **ppCommandList);
10797
10798 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10799 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10800 ID3D12Device2 * This,
10801 D3D12_FEATURE Feature,
10802 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10803 UINT FeatureSupportDataSize);
10804
10805 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10806 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10807 ID3D12Device2 * This,
10808 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10809 REFIID riid,
10810 _COM_Outptr_ void **ppvHeap);
10811
10812 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10813 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10814 ID3D12Device2 * This,
10815 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10816
10817 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10818 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10819 ID3D12Device2 * This,
10820 _In_ UINT nodeMask,
10821 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10822 _In_ SIZE_T blobLengthInBytes,
10823 REFIID riid,
10824 _COM_Outptr_ void **ppvRootSignature);
10825
10826 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10827 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10828 ID3D12Device2 * This,
10829 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10830 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10831
10832 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10833 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10834 ID3D12Device2 * This,
10835 _In_opt_ ID3D12Resource *pResource,
10836 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10837 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10838
10839 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10840 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10841 ID3D12Device2 * This,
10842 _In_opt_ ID3D12Resource *pResource,
10843 _In_opt_ ID3D12Resource *pCounterResource,
10844 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10845 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10846
10847 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10848 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10849 ID3D12Device2 * This,
10850 _In_opt_ ID3D12Resource *pResource,
10851 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10852 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10853
10854 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10855 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10856 ID3D12Device2 * This,
10857 _In_opt_ ID3D12Resource *pResource,
10858 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10859 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10860
10861 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10862 void ( STDMETHODCALLTYPE *CreateSampler )(
10863 ID3D12Device2 * This,
10864 _In_ const D3D12_SAMPLER_DESC *pDesc,
10865 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10866
10867 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10868 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10869 ID3D12Device2 * This,
10870 _In_ UINT NumDestDescriptorRanges,
10871 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10872 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10873 _In_ UINT NumSrcDescriptorRanges,
10874 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10875 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10876 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10877
10878 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10879 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10880 ID3D12Device2 * This,
10881 _In_ UINT NumDescriptors,
10882 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10883 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10884 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10885
10886 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10887#if !defined(_WIN32)
10888 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10889 ID3D12Device2 * This,
10890 _In_ UINT visibleMask,
10891 _In_ UINT numResourceDescs,
10892 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10893
10894#else
10895 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10896 ID3D12Device2 * This,
10897 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10898 _In_ UINT visibleMask,
10899 _In_ UINT numResourceDescs,
10900 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10901
10902#endif
10903
10904 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10905#if !defined(_WIN32)
10906 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10907 ID3D12Device2 * This,
10908 _In_ UINT nodeMask,
10909 D3D12_HEAP_TYPE heapType);
10910
10911#else
10912 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10913 ID3D12Device2 * This,
10914 D3D12_HEAP_PROPERTIES * RetVal,
10915 _In_ UINT nodeMask,
10916 D3D12_HEAP_TYPE heapType);
10917
10918#endif
10919
10920 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10921 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10922 ID3D12Device2 * This,
10923 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10924 D3D12_HEAP_FLAGS HeapFlags,
10925 _In_ const D3D12_RESOURCE_DESC *pDesc,
10926 D3D12_RESOURCE_STATES InitialResourceState,
10927 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10928 REFIID riidResource,
10929 _COM_Outptr_opt_ void **ppvResource);
10930
10931 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10932 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10933 ID3D12Device2 * This,
10934 _In_ const D3D12_HEAP_DESC *pDesc,
10935 REFIID riid,
10936 _COM_Outptr_opt_ void **ppvHeap);
10937
10938 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10939 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10940 ID3D12Device2 * This,
10941 _In_ ID3D12Heap *pHeap,
10942 UINT64 HeapOffset,
10943 _In_ const D3D12_RESOURCE_DESC *pDesc,
10944 D3D12_RESOURCE_STATES InitialState,
10945 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10946 REFIID riid,
10947 _COM_Outptr_opt_ void **ppvResource);
10948
10949 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10950 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10951 ID3D12Device2 * This,
10952 _In_ const D3D12_RESOURCE_DESC *pDesc,
10953 D3D12_RESOURCE_STATES InitialState,
10954 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10955 REFIID riid,
10956 _COM_Outptr_opt_ void **ppvResource);
10957
10958 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10959 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10960 ID3D12Device2 * This,
10961 _In_ ID3D12DeviceChild *pObject,
10962 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10963 DWORD Access,
10964 _In_opt_ LPCWSTR Name,
10965 _Out_ HANDLE *pHandle);
10966
10967 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10968 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10969 ID3D12Device2 * This,
10970 _In_ HANDLE NTHandle,
10971 REFIID riid,
10972 _COM_Outptr_opt_ void **ppvObj);
10973
10974 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10975 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10976 ID3D12Device2 * This,
10977 _In_ LPCWSTR Name,
10978 DWORD Access,
10979 /* [annotation][out] */
10980 _Out_ HANDLE *pNTHandle);
10981
10982 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10983 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10984 ID3D12Device2 * This,
10985 UINT NumObjects,
10986 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10987
10988 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10989 HRESULT ( STDMETHODCALLTYPE *Evict )(
10990 ID3D12Device2 * This,
10991 UINT NumObjects,
10992 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10993
10994 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10995 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10996 ID3D12Device2 * This,
10997 UINT64 InitialValue,
10998 D3D12_FENCE_FLAGS Flags,
10999 REFIID riid,
11000 _COM_Outptr_ void **ppFence);
11001
11002 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11003 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11004 ID3D12Device2 * This);
11005
11006 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11007 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11008 ID3D12Device2 * This,
11009 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11010 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11011 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11012 UINT64 BaseOffset,
11013 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11014 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11015 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11016 _Out_opt_ UINT64 *pTotalBytes);
11017
11018 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11019 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11020 ID3D12Device2 * This,
11021 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11022 REFIID riid,
11023 _COM_Outptr_opt_ void **ppvHeap);
11024
11025 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11026 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11027 ID3D12Device2 * This,
11028 BOOL Enable);
11029
11030 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11031 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11032 ID3D12Device2 * This,
11033 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11034 _In_opt_ ID3D12RootSignature *pRootSignature,
11035 REFIID riid,
11036 _COM_Outptr_opt_ void **ppvCommandSignature);
11037
11038 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11039 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11040 ID3D12Device2 * This,
11041 _In_ ID3D12Resource *pTiledResource,
11042 _Out_opt_ UINT *pNumTilesForEntireResource,
11043 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11044 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11045 _Inout_opt_ UINT *pNumSubresourceTilings,
11046 _In_ UINT FirstSubresourceTilingToGet,
11047 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11048
11049 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11050#if !defined(_WIN32)
11051 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11052 ID3D12Device2 * This);
11053
11054#else
11055 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11056 ID3D12Device2 * This,
11057 LUID * RetVal);
11058
11059#endif
11060
11061 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11062 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11063 ID3D12Device2 * This,
11064 _In_reads_(BlobLength) const void *pLibraryBlob,
11065 SIZE_T BlobLength,
11066 REFIID riid,
11067 _COM_Outptr_ void **ppPipelineLibrary);
11068
11069 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11070 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11071 ID3D12Device2 * This,
11072 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11073 _In_reads_(NumFences) const UINT64 *pFenceValues,
11074 UINT NumFences,
11075 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11076 HANDLE hEvent);
11077
11078 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11079 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11080 ID3D12Device2 * This,
11081 UINT NumObjects,
11082 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11083 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11084
11085 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
11086 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
11087 ID3D12Device2 * This,
11088 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11089 REFIID riid,
11090 _COM_Outptr_ void **ppPipelineState);
11091
11092 END_INTERFACE
11093 } ID3D12Device2Vtbl;
11094
11095 interface ID3D12Device2
11096 {
11097 CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl;
11098 };
11099
11100
11101
11102#ifdef COBJMACROS
11103
11104
11105#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \
11106 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11107
11108#define ID3D12Device2_AddRef(This) \
11109 ( (This)->lpVtbl -> AddRef(This) )
11110
11111#define ID3D12Device2_Release(This) \
11112 ( (This)->lpVtbl -> Release(This) )
11113
11114
11115#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \
11116 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11117
11118#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \
11119 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11120
11121#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \
11122 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11123
11124#define ID3D12Device2_SetName(This,Name) \
11125 ( (This)->lpVtbl -> SetName(This,Name) )
11126
11127
11128#define ID3D12Device2_GetNodeCount(This) \
11129 ( (This)->lpVtbl -> GetNodeCount(This) )
11130
11131#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11132 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11133
11134#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11135 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11136
11137#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11138 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11139
11140#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11141 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11142
11143#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11144 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11145
11146#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11147 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11148
11149#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11150 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11151
11152#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11153 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11154
11155#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11156 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11157
11158#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11159 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11160
11161#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11162 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11163
11164#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11165 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11166
11167#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11168 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11169
11170#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11171 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11172
11173#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \
11174 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11175
11176#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11177 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11178
11179#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11180 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11181#if !defined(_WIN32)
11182
11183#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11184 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11185#else
11186#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11187 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11188#endif
11189#if !defined(_WIN32)
11190
11191#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \
11192 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11193#else
11194#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11195 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11196#endif
11197
11198#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11199 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11200
11201#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \
11202 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11203
11204#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11205 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11206
11207#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11208 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11209
11210#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11211 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11212
11213#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11214 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11215
11216#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11217 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11218
11219#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \
11220 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11221
11222#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \
11223 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11224
11225#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11226 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11227
11228#define ID3D12Device2_GetDeviceRemovedReason(This) \
11229 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11230
11231#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11232 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11233
11234#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11235 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11236
11237#define ID3D12Device2_SetStablePowerState(This,Enable) \
11238 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11239
11240#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11241 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11242
11243#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11244 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11245#if !defined(_WIN32)
11246
11247#define ID3D12Device2_GetAdapterLuid(This) \
11248 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11249#else
11250#define ID3D12Device2_GetAdapterLuid(This,RetVal) \
11251 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11252#endif
11253
11254
11255#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11256 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11257
11258#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11259 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11260
11261#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11262 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11263
11264
11265#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
11266 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
11267
11268#endif /* COBJMACROS */
11269
11270
11271#endif /* C style interface */
11272
11273
11274
11275
11276#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
11277
11278
11279/* interface __MIDL_itf_d3d12_0000_0025 */
11280/* [local] */
11281
11282typedef
11283enum D3D12_RESIDENCY_FLAGS
11284 {
11285 D3D12_RESIDENCY_FLAG_NONE = 0,
11286 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
11287 } D3D12_RESIDENCY_FLAGS;
11288
11289DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )
11290
11291
11292extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec;
11293extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec;
11294
11295#ifndef __ID3D12Device3_INTERFACE_DEFINED__
11296#define __ID3D12Device3_INTERFACE_DEFINED__
11297
11298/* interface ID3D12Device3 */
11299/* [unique][local][object][uuid] */
11300
11301
11302EXTERN_C const IID IID_ID3D12Device3;
11303
11304#if defined(__cplusplus) && !defined(CINTERFACE)
11305
11306 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
11307 ID3D12Device3 : public ID3D12Device2
11308 {
11309 public:
11310 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
11311 _In_ const void *pAddress,
11312 REFIID riid,
11313 _COM_Outptr_ void **ppvHeap) = 0;
11314
11315 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
11316 _In_ HANDLE hFileMapping,
11317 REFIID riid,
11318 _COM_Outptr_ void **ppvHeap) = 0;
11319
11320 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
11321 D3D12_RESIDENCY_FLAGS Flags,
11322 UINT NumObjects,
11323 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11324 _In_ ID3D12Fence *pFenceToSignal,
11325 UINT64 FenceValueToSignal) = 0;
11326
11327 };
11328
11329
11330#else /* C style interface */
11331
11332 typedef struct ID3D12Device3Vtbl
11333 {
11334 BEGIN_INTERFACE
11335
11336 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11337 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11338 ID3D12Device3 * This,
11339 REFIID riid,
11340 _COM_Outptr_ void **ppvObject);
11341
11342 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11343 ULONG ( STDMETHODCALLTYPE *AddRef )(
11344 ID3D12Device3 * This);
11345
11346 DECLSPEC_XFGVIRT(IUnknown, Release)
11347 ULONG ( STDMETHODCALLTYPE *Release )(
11348 ID3D12Device3 * This);
11349
11350 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11351 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11352 ID3D12Device3 * This,
11353 _In_ REFGUID guid,
11354 _Inout_ UINT *pDataSize,
11355 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11356
11357 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11358 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11359 ID3D12Device3 * This,
11360 _In_ REFGUID guid,
11361 _In_ UINT DataSize,
11362 _In_reads_bytes_opt_( DataSize ) const void *pData);
11363
11364 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11365 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11366 ID3D12Device3 * This,
11367 _In_ REFGUID guid,
11368 _In_opt_ const IUnknown *pData);
11369
11370 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11371 HRESULT ( STDMETHODCALLTYPE *SetName )(
11372 ID3D12Device3 * This,
11373 _In_z_ LPCWSTR Name);
11374
11375 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11376 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11377 ID3D12Device3 * This);
11378
11379 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11380 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11381 ID3D12Device3 * This,
11382 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11383 REFIID riid,
11384 _COM_Outptr_ void **ppCommandQueue);
11385
11386 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11387 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11388 ID3D12Device3 * This,
11389 _In_ D3D12_COMMAND_LIST_TYPE type,
11390 REFIID riid,
11391 _COM_Outptr_ void **ppCommandAllocator);
11392
11393 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
11394 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
11395 ID3D12Device3 * This,
11396 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
11397 REFIID riid,
11398 _COM_Outptr_ void **ppPipelineState);
11399
11400 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
11401 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
11402 ID3D12Device3 * This,
11403 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
11404 REFIID riid,
11405 _COM_Outptr_ void **ppPipelineState);
11406
11407 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
11408 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
11409 ID3D12Device3 * This,
11410 _In_ UINT nodeMask,
11411 _In_ D3D12_COMMAND_LIST_TYPE type,
11412 _In_ ID3D12CommandAllocator *pCommandAllocator,
11413 _In_opt_ ID3D12PipelineState *pInitialState,
11414 REFIID riid,
11415 _COM_Outptr_ void **ppCommandList);
11416
11417 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
11418 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
11419 ID3D12Device3 * This,
11420 D3D12_FEATURE Feature,
11421 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
11422 UINT FeatureSupportDataSize);
11423
11424 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
11425 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
11426 ID3D12Device3 * This,
11427 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
11428 REFIID riid,
11429 _COM_Outptr_ void **ppvHeap);
11430
11431 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
11432 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
11433 ID3D12Device3 * This,
11434 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
11435
11436 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
11437 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
11438 ID3D12Device3 * This,
11439 _In_ UINT nodeMask,
11440 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
11441 _In_ SIZE_T blobLengthInBytes,
11442 REFIID riid,
11443 _COM_Outptr_ void **ppvRootSignature);
11444
11445 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
11446 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
11447 ID3D12Device3 * This,
11448 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
11449 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11450
11451 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
11452 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
11453 ID3D12Device3 * This,
11454 _In_opt_ ID3D12Resource *pResource,
11455 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
11456 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11457
11458 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
11459 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
11460 ID3D12Device3 * This,
11461 _In_opt_ ID3D12Resource *pResource,
11462 _In_opt_ ID3D12Resource *pCounterResource,
11463 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
11464 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11465
11466 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
11467 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
11468 ID3D12Device3 * This,
11469 _In_opt_ ID3D12Resource *pResource,
11470 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
11471 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11472
11473 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
11474 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
11475 ID3D12Device3 * This,
11476 _In_opt_ ID3D12Resource *pResource,
11477 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
11478 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11479
11480 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
11481 void ( STDMETHODCALLTYPE *CreateSampler )(
11482 ID3D12Device3 * This,
11483 _In_ const D3D12_SAMPLER_DESC *pDesc,
11484 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11485
11486 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
11487 void ( STDMETHODCALLTYPE *CopyDescriptors )(
11488 ID3D12Device3 * This,
11489 _In_ UINT NumDestDescriptorRanges,
11490 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
11491 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
11492 _In_ UINT NumSrcDescriptorRanges,
11493 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
11494 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
11495 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11496
11497 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
11498 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
11499 ID3D12Device3 * This,
11500 _In_ UINT NumDescriptors,
11501 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
11502 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
11503 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11504
11505 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
11506#if !defined(_WIN32)
11507 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11508 ID3D12Device3 * This,
11509 _In_ UINT visibleMask,
11510 _In_ UINT numResourceDescs,
11511 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11512
11513#else
11514 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11515 ID3D12Device3 * This,
11516 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
11517 _In_ UINT visibleMask,
11518 _In_ UINT numResourceDescs,
11519 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11520
11521#endif
11522
11523 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
11524#if !defined(_WIN32)
11525 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11526 ID3D12Device3 * This,
11527 _In_ UINT nodeMask,
11528 D3D12_HEAP_TYPE heapType);
11529
11530#else
11531 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11532 ID3D12Device3 * This,
11533 D3D12_HEAP_PROPERTIES * RetVal,
11534 _In_ UINT nodeMask,
11535 D3D12_HEAP_TYPE heapType);
11536
11537#endif
11538
11539 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
11540 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
11541 ID3D12Device3 * This,
11542 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
11543 D3D12_HEAP_FLAGS HeapFlags,
11544 _In_ const D3D12_RESOURCE_DESC *pDesc,
11545 D3D12_RESOURCE_STATES InitialResourceState,
11546 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11547 REFIID riidResource,
11548 _COM_Outptr_opt_ void **ppvResource);
11549
11550 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
11551 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
11552 ID3D12Device3 * This,
11553 _In_ const D3D12_HEAP_DESC *pDesc,
11554 REFIID riid,
11555 _COM_Outptr_opt_ void **ppvHeap);
11556
11557 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
11558 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
11559 ID3D12Device3 * This,
11560 _In_ ID3D12Heap *pHeap,
11561 UINT64 HeapOffset,
11562 _In_ const D3D12_RESOURCE_DESC *pDesc,
11563 D3D12_RESOURCE_STATES InitialState,
11564 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11565 REFIID riid,
11566 _COM_Outptr_opt_ void **ppvResource);
11567
11568 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
11569 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
11570 ID3D12Device3 * This,
11571 _In_ const D3D12_RESOURCE_DESC *pDesc,
11572 D3D12_RESOURCE_STATES InitialState,
11573 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11574 REFIID riid,
11575 _COM_Outptr_opt_ void **ppvResource);
11576
11577 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
11578 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
11579 ID3D12Device3 * This,
11580 _In_ ID3D12DeviceChild *pObject,
11581 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
11582 DWORD Access,
11583 _In_opt_ LPCWSTR Name,
11584 _Out_ HANDLE *pHandle);
11585
11586 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
11587 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
11588 ID3D12Device3 * This,
11589 _In_ HANDLE NTHandle,
11590 REFIID riid,
11591 _COM_Outptr_opt_ void **ppvObj);
11592
11593 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
11594 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
11595 ID3D12Device3 * This,
11596 _In_ LPCWSTR Name,
11597 DWORD Access,
11598 /* [annotation][out] */
11599 _Out_ HANDLE *pNTHandle);
11600
11601 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11602 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11603 ID3D12Device3 * This,
11604 UINT NumObjects,
11605 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11606
11607 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11608 HRESULT ( STDMETHODCALLTYPE *Evict )(
11609 ID3D12Device3 * This,
11610 UINT NumObjects,
11611 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11612
11613 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11614 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11615 ID3D12Device3 * This,
11616 UINT64 InitialValue,
11617 D3D12_FENCE_FLAGS Flags,
11618 REFIID riid,
11619 _COM_Outptr_ void **ppFence);
11620
11621 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11622 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11623 ID3D12Device3 * This);
11624
11625 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11626 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11627 ID3D12Device3 * This,
11628 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11629 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11630 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11631 UINT64 BaseOffset,
11632 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11633 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11634 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11635 _Out_opt_ UINT64 *pTotalBytes);
11636
11637 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11638 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11639 ID3D12Device3 * This,
11640 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11641 REFIID riid,
11642 _COM_Outptr_opt_ void **ppvHeap);
11643
11644 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11645 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11646 ID3D12Device3 * This,
11647 BOOL Enable);
11648
11649 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11650 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11651 ID3D12Device3 * This,
11652 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11653 _In_opt_ ID3D12RootSignature *pRootSignature,
11654 REFIID riid,
11655 _COM_Outptr_opt_ void **ppvCommandSignature);
11656
11657 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11658 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11659 ID3D12Device3 * This,
11660 _In_ ID3D12Resource *pTiledResource,
11661 _Out_opt_ UINT *pNumTilesForEntireResource,
11662 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11663 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11664 _Inout_opt_ UINT *pNumSubresourceTilings,
11665 _In_ UINT FirstSubresourceTilingToGet,
11666 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11667
11668 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11669#if !defined(_WIN32)
11670 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11671 ID3D12Device3 * This);
11672
11673#else
11674 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11675 ID3D12Device3 * This,
11676 LUID * RetVal);
11677
11678#endif
11679
11680 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11681 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11682 ID3D12Device3 * This,
11683 _In_reads_(BlobLength) const void *pLibraryBlob,
11684 SIZE_T BlobLength,
11685 REFIID riid,
11686 _COM_Outptr_ void **ppPipelineLibrary);
11687
11688 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11689 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11690 ID3D12Device3 * This,
11691 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11692 _In_reads_(NumFences) const UINT64 *pFenceValues,
11693 UINT NumFences,
11694 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11695 HANDLE hEvent);
11696
11697 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11698 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11699 ID3D12Device3 * This,
11700 UINT NumObjects,
11701 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11702 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11703
11704 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
11705 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
11706 ID3D12Device3 * This,
11707 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11708 REFIID riid,
11709 _COM_Outptr_ void **ppPipelineState);
11710
11711 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
11712 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
11713 ID3D12Device3 * This,
11714 _In_ const void *pAddress,
11715 REFIID riid,
11716 _COM_Outptr_ void **ppvHeap);
11717
11718 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
11719 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
11720 ID3D12Device3 * This,
11721 _In_ HANDLE hFileMapping,
11722 REFIID riid,
11723 _COM_Outptr_ void **ppvHeap);
11724
11725 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
11726 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
11727 ID3D12Device3 * This,
11728 D3D12_RESIDENCY_FLAGS Flags,
11729 UINT NumObjects,
11730 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11731 _In_ ID3D12Fence *pFenceToSignal,
11732 UINT64 FenceValueToSignal);
11733
11734 END_INTERFACE
11735 } ID3D12Device3Vtbl;
11736
11737 interface ID3D12Device3
11738 {
11739 CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl;
11740 };
11741
11742
11743
11744#ifdef COBJMACROS
11745
11746
11747#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \
11748 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11749
11750#define ID3D12Device3_AddRef(This) \
11751 ( (This)->lpVtbl -> AddRef(This) )
11752
11753#define ID3D12Device3_Release(This) \
11754 ( (This)->lpVtbl -> Release(This) )
11755
11756
11757#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \
11758 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11759
11760#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \
11761 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11762
11763#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \
11764 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11765
11766#define ID3D12Device3_SetName(This,Name) \
11767 ( (This)->lpVtbl -> SetName(This,Name) )
11768
11769
11770#define ID3D12Device3_GetNodeCount(This) \
11771 ( (This)->lpVtbl -> GetNodeCount(This) )
11772
11773#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11774 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11775
11776#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11777 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11778
11779#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11780 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11781
11782#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11783 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11784
11785#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11786 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11787
11788#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11789 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11790
11791#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11792 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11793
11794#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11795 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11796
11797#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11798 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11799
11800#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11801 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11802
11803#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11804 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11805
11806#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11807 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11808
11809#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11810 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11811
11812#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11813 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11814
11815#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \
11816 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11817
11818#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11819 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11820
11821#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11822 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11823#if !defined(_WIN32)
11824
11825#define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11826 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11827#else
11828#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11829 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11830#endif
11831#if !defined(_WIN32)
11832
11833#define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \
11834 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11835#else
11836#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11837 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11838#endif
11839
11840#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11841 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11842
11843#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \
11844 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11845
11846#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11847 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11848
11849#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11850 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11851
11852#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11853 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11854
11855#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11856 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11857
11858#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11859 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11860
11861#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \
11862 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11863
11864#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \
11865 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11866
11867#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11868 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11869
11870#define ID3D12Device3_GetDeviceRemovedReason(This) \
11871 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11872
11873#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11874 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11875
11876#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11877 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11878
11879#define ID3D12Device3_SetStablePowerState(This,Enable) \
11880 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11881
11882#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11883 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11884
11885#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11886 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11887#if !defined(_WIN32)
11888
11889#define ID3D12Device3_GetAdapterLuid(This) \
11890 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11891#else
11892#define ID3D12Device3_GetAdapterLuid(This,RetVal) \
11893 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11894#endif
11895
11896
11897#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11898 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11899
11900#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11901 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11902
11903#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11904 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11905
11906
11907#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
11908 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
11909
11910
11911#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
11912 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
11913
11914#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
11915 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
11916
11917#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
11918 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
11919
11920#endif /* COBJMACROS */
11921
11922
11923#endif /* C style interface */
11924
11925
11926
11927
11928#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
11929
11930
11931/* interface __MIDL_itf_d3d12_0000_0026 */
11932/* [local] */
11933
11934typedef
11935enum D3D12_COMMAND_LIST_FLAGS
11936 {
11937 D3D12_COMMAND_LIST_FLAG_NONE = 0
11938 } D3D12_COMMAND_LIST_FLAGS;
11939
11940DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )
11941typedef
11942enum D3D12_COMMAND_POOL_FLAGS
11943 {
11944 D3D12_COMMAND_POOL_FLAG_NONE = 0
11945 } D3D12_COMMAND_POOL_FLAGS;
11946
11947DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )
11948typedef
11949enum D3D12_COMMAND_RECORDER_FLAGS
11950 {
11951 D3D12_COMMAND_RECORDER_FLAG_NONE = 0
11952 } D3D12_COMMAND_RECORDER_FLAGS;
11953
11954DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )
11955typedef
11956enum D3D12_PROTECTED_SESSION_STATUS
11957 {
11958 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
11959 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
11960 } D3D12_PROTECTED_SESSION_STATUS;
11961
11962
11963
11964extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_c_ifspec;
11965extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0026_v0_0_s_ifspec;
11966
11967#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
11968#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
11969
11970/* interface ID3D12ProtectedSession */
11971/* [unique][local][object][uuid] */
11972
11973
11974EXTERN_C const IID IID_ID3D12ProtectedSession;
11975
11976#if defined(__cplusplus) && !defined(CINTERFACE)
11977
11978 MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
11979 ID3D12ProtectedSession : public ID3D12DeviceChild
11980 {
11981 public:
11982 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
11983 REFIID riid,
11984 _COM_Outptr_opt_ void **ppFence) = 0;
11985
11986 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
11987
11988 };
11989
11990
11991#else /* C style interface */
11992
11993 typedef struct ID3D12ProtectedSessionVtbl
11994 {
11995 BEGIN_INTERFACE
11996
11997 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11998 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11999 ID3D12ProtectedSession * This,
12000 REFIID riid,
12001 _COM_Outptr_ void **ppvObject);
12002
12003 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12004 ULONG ( STDMETHODCALLTYPE *AddRef )(
12005 ID3D12ProtectedSession * This);
12006
12007 DECLSPEC_XFGVIRT(IUnknown, Release)
12008 ULONG ( STDMETHODCALLTYPE *Release )(
12009 ID3D12ProtectedSession * This);
12010
12011 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12012 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12013 ID3D12ProtectedSession * This,
12014 _In_ REFGUID guid,
12015 _Inout_ UINT *pDataSize,
12016 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12017
12018 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12019 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12020 ID3D12ProtectedSession * This,
12021 _In_ REFGUID guid,
12022 _In_ UINT DataSize,
12023 _In_reads_bytes_opt_( DataSize ) const void *pData);
12024
12025 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12026 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12027 ID3D12ProtectedSession * This,
12028 _In_ REFGUID guid,
12029 _In_opt_ const IUnknown *pData);
12030
12031 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12032 HRESULT ( STDMETHODCALLTYPE *SetName )(
12033 ID3D12ProtectedSession * This,
12034 _In_z_ LPCWSTR Name);
12035
12036 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12037 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12038 ID3D12ProtectedSession * This,
12039 REFIID riid,
12040 _COM_Outptr_opt_ void **ppvDevice);
12041
12042 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12043 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12044 ID3D12ProtectedSession * This,
12045 REFIID riid,
12046 _COM_Outptr_opt_ void **ppFence);
12047
12048 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12049 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12050 ID3D12ProtectedSession * This);
12051
12052 END_INTERFACE
12053 } ID3D12ProtectedSessionVtbl;
12054
12055 interface ID3D12ProtectedSession
12056 {
12057 CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
12058 };
12059
12060
12061
12062#ifdef COBJMACROS
12063
12064
12065#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
12066 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12067
12068#define ID3D12ProtectedSession_AddRef(This) \
12069 ( (This)->lpVtbl -> AddRef(This) )
12070
12071#define ID3D12ProtectedSession_Release(This) \
12072 ( (This)->lpVtbl -> Release(This) )
12073
12074
12075#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
12076 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12077
12078#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
12079 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12080
12081#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
12082 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12083
12084#define ID3D12ProtectedSession_SetName(This,Name) \
12085 ( (This)->lpVtbl -> SetName(This,Name) )
12086
12087
12088#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
12089 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12090
12091
12092#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
12093 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12094
12095#define ID3D12ProtectedSession_GetSessionStatus(This) \
12096 ( (This)->lpVtbl -> GetSessionStatus(This) )
12097
12098#endif /* COBJMACROS */
12099
12100
12101#endif /* C style interface */
12102
12103
12104
12105
12106#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
12107
12108
12109/* interface __MIDL_itf_d3d12_0000_0027 */
12110/* [local] */
12111
12112typedef
12113enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
12114 {
12115 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
12116 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
12117 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
12118
12119DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )
12120typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
12121 {
12122 UINT NodeIndex;
12123 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
12124 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
12125
12126typedef
12127enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
12128 {
12129 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
12130 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
12131
12132DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )
12133typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
12134 {
12135 UINT NodeMask;
12136 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
12137 } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
12138
12139
12140
12141extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
12142extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
12143
12144#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12145#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12146
12147/* interface ID3D12ProtectedResourceSession */
12148/* [unique][local][object][uuid] */
12149
12150
12151EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
12152
12153#if defined(__cplusplus) && !defined(CINTERFACE)
12154
12155 MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
12156 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
12157 {
12158 public:
12159#if defined(_MSC_VER) || !defined(_WIN32)
12160 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
12161#else
12162 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
12163 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0;
12164#endif
12165
12166 };
12167
12168
12169#else /* C style interface */
12170
12171 typedef struct ID3D12ProtectedResourceSessionVtbl
12172 {
12173 BEGIN_INTERFACE
12174
12175 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12176 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12177 ID3D12ProtectedResourceSession * This,
12178 REFIID riid,
12179 _COM_Outptr_ void **ppvObject);
12180
12181 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12182 ULONG ( STDMETHODCALLTYPE *AddRef )(
12183 ID3D12ProtectedResourceSession * This);
12184
12185 DECLSPEC_XFGVIRT(IUnknown, Release)
12186 ULONG ( STDMETHODCALLTYPE *Release )(
12187 ID3D12ProtectedResourceSession * This);
12188
12189 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12190 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12191 ID3D12ProtectedResourceSession * This,
12192 _In_ REFGUID guid,
12193 _Inout_ UINT *pDataSize,
12194 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12195
12196 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12197 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12198 ID3D12ProtectedResourceSession * This,
12199 _In_ REFGUID guid,
12200 _In_ UINT DataSize,
12201 _In_reads_bytes_opt_( DataSize ) const void *pData);
12202
12203 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12204 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12205 ID3D12ProtectedResourceSession * This,
12206 _In_ REFGUID guid,
12207 _In_opt_ const IUnknown *pData);
12208
12209 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12210 HRESULT ( STDMETHODCALLTYPE *SetName )(
12211 ID3D12ProtectedResourceSession * This,
12212 _In_z_ LPCWSTR Name);
12213
12214 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12215 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12216 ID3D12ProtectedResourceSession * This,
12217 REFIID riid,
12218 _COM_Outptr_opt_ void **ppvDevice);
12219
12220 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12221 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12222 ID3D12ProtectedResourceSession * This,
12223 REFIID riid,
12224 _COM_Outptr_opt_ void **ppFence);
12225
12226 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12227 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12228 ID3D12ProtectedResourceSession * This);
12229
12230 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
12231#if !defined(_WIN32)
12232 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
12233 ID3D12ProtectedResourceSession * This);
12234
12235#else
12236 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
12237 ID3D12ProtectedResourceSession * This,
12238 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
12239
12240#endif
12241
12242 END_INTERFACE
12243 } ID3D12ProtectedResourceSessionVtbl;
12244
12245 interface ID3D12ProtectedResourceSession
12246 {
12247 CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
12248 };
12249
12250
12251
12252#ifdef COBJMACROS
12253
12254
12255#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
12256 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12257
12258#define ID3D12ProtectedResourceSession_AddRef(This) \
12259 ( (This)->lpVtbl -> AddRef(This) )
12260
12261#define ID3D12ProtectedResourceSession_Release(This) \
12262 ( (This)->lpVtbl -> Release(This) )
12263
12264
12265#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
12266 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12267
12268#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
12269 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12270
12271#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
12272 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12273
12274#define ID3D12ProtectedResourceSession_SetName(This,Name) \
12275 ( (This)->lpVtbl -> SetName(This,Name) )
12276
12277
12278#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
12279 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12280
12281
12282#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
12283 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12284
12285#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
12286 ( (This)->lpVtbl -> GetSessionStatus(This) )
12287
12288#if !defined(_WIN32)
12289
12290#define ID3D12ProtectedResourceSession_GetDesc(This) \
12291 ( (This)->lpVtbl -> GetDesc(This) )
12292#else
12293#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \
12294 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
12295#endif
12296
12297#endif /* COBJMACROS */
12298
12299
12300#endif /* C style interface */
12301
12302
12303
12304
12305#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
12306
12307
12308#ifndef __ID3D12Device4_INTERFACE_DEFINED__
12309#define __ID3D12Device4_INTERFACE_DEFINED__
12310
12311/* interface ID3D12Device4 */
12312/* [unique][local][object][uuid] */
12313
12314
12315EXTERN_C const IID IID_ID3D12Device4;
12316
12317#if defined(__cplusplus) && !defined(CINTERFACE)
12318
12319 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
12320 ID3D12Device4 : public ID3D12Device3
12321 {
12322 public:
12323 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
12324 _In_ UINT nodeMask,
12325 _In_ D3D12_COMMAND_LIST_TYPE type,
12326 _In_ D3D12_COMMAND_LIST_FLAGS flags,
12327 REFIID riid,
12328 _COM_Outptr_ void **ppCommandList) = 0;
12329
12330 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
12331 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
12332 _In_ REFIID riid,
12333 _COM_Outptr_ void **ppSession) = 0;
12334
12335 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
12336 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12337 D3D12_HEAP_FLAGS HeapFlags,
12338 _In_ const D3D12_RESOURCE_DESC *pDesc,
12339 D3D12_RESOURCE_STATES InitialResourceState,
12340 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12341 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12342 REFIID riidResource,
12343 _COM_Outptr_opt_ void **ppvResource) = 0;
12344
12345 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
12346 _In_ const D3D12_HEAP_DESC *pDesc,
12347 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12348 REFIID riid,
12349 _COM_Outptr_opt_ void **ppvHeap) = 0;
12350
12351 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
12352 _In_ const D3D12_RESOURCE_DESC *pDesc,
12353 D3D12_RESOURCE_STATES InitialState,
12354 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12355 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12356 REFIID riid,
12357 _COM_Outptr_opt_ void **ppvResource) = 0;
12358
12359#if defined(_MSC_VER) || !defined(_WIN32)
12360 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
12361 UINT visibleMask,
12362 UINT numResourceDescs,
12363 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12364 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12365#else
12366 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1(
12367 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12368 UINT visibleMask,
12369 UINT numResourceDescs,
12370 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12371 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12372#endif
12373
12374 };
12375
12376
12377#else /* C style interface */
12378
12379 typedef struct ID3D12Device4Vtbl
12380 {
12381 BEGIN_INTERFACE
12382
12383 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12384 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12385 ID3D12Device4 * This,
12386 REFIID riid,
12387 _COM_Outptr_ void **ppvObject);
12388
12389 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12390 ULONG ( STDMETHODCALLTYPE *AddRef )(
12391 ID3D12Device4 * This);
12392
12393 DECLSPEC_XFGVIRT(IUnknown, Release)
12394 ULONG ( STDMETHODCALLTYPE *Release )(
12395 ID3D12Device4 * This);
12396
12397 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12398 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12399 ID3D12Device4 * This,
12400 _In_ REFGUID guid,
12401 _Inout_ UINT *pDataSize,
12402 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12403
12404 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12405 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12406 ID3D12Device4 * This,
12407 _In_ REFGUID guid,
12408 _In_ UINT DataSize,
12409 _In_reads_bytes_opt_( DataSize ) const void *pData);
12410
12411 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12412 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12413 ID3D12Device4 * This,
12414 _In_ REFGUID guid,
12415 _In_opt_ const IUnknown *pData);
12416
12417 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12418 HRESULT ( STDMETHODCALLTYPE *SetName )(
12419 ID3D12Device4 * This,
12420 _In_z_ LPCWSTR Name);
12421
12422 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
12423 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
12424 ID3D12Device4 * This);
12425
12426 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
12427 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
12428 ID3D12Device4 * This,
12429 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
12430 REFIID riid,
12431 _COM_Outptr_ void **ppCommandQueue);
12432
12433 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
12434 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
12435 ID3D12Device4 * This,
12436 _In_ D3D12_COMMAND_LIST_TYPE type,
12437 REFIID riid,
12438 _COM_Outptr_ void **ppCommandAllocator);
12439
12440 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
12441 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
12442 ID3D12Device4 * This,
12443 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
12444 REFIID riid,
12445 _COM_Outptr_ void **ppPipelineState);
12446
12447 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
12448 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
12449 ID3D12Device4 * This,
12450 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
12451 REFIID riid,
12452 _COM_Outptr_ void **ppPipelineState);
12453
12454 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
12455 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
12456 ID3D12Device4 * This,
12457 _In_ UINT nodeMask,
12458 _In_ D3D12_COMMAND_LIST_TYPE type,
12459 _In_ ID3D12CommandAllocator *pCommandAllocator,
12460 _In_opt_ ID3D12PipelineState *pInitialState,
12461 REFIID riid,
12462 _COM_Outptr_ void **ppCommandList);
12463
12464 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
12465 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
12466 ID3D12Device4 * This,
12467 D3D12_FEATURE Feature,
12468 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
12469 UINT FeatureSupportDataSize);
12470
12471 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
12472 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
12473 ID3D12Device4 * This,
12474 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
12475 REFIID riid,
12476 _COM_Outptr_ void **ppvHeap);
12477
12478 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
12479 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
12480 ID3D12Device4 * This,
12481 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
12482
12483 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
12484 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
12485 ID3D12Device4 * This,
12486 _In_ UINT nodeMask,
12487 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
12488 _In_ SIZE_T blobLengthInBytes,
12489 REFIID riid,
12490 _COM_Outptr_ void **ppvRootSignature);
12491
12492 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
12493 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
12494 ID3D12Device4 * This,
12495 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
12496 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12497
12498 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
12499 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
12500 ID3D12Device4 * This,
12501 _In_opt_ ID3D12Resource *pResource,
12502 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
12503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12504
12505 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
12506 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
12507 ID3D12Device4 * This,
12508 _In_opt_ ID3D12Resource *pResource,
12509 _In_opt_ ID3D12Resource *pCounterResource,
12510 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
12511 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12512
12513 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
12514 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
12515 ID3D12Device4 * This,
12516 _In_opt_ ID3D12Resource *pResource,
12517 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
12518 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12519
12520 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
12521 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
12522 ID3D12Device4 * This,
12523 _In_opt_ ID3D12Resource *pResource,
12524 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
12525 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12526
12527 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
12528 void ( STDMETHODCALLTYPE *CreateSampler )(
12529 ID3D12Device4 * This,
12530 _In_ const D3D12_SAMPLER_DESC *pDesc,
12531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12532
12533 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
12534 void ( STDMETHODCALLTYPE *CopyDescriptors )(
12535 ID3D12Device4 * This,
12536 _In_ UINT NumDestDescriptorRanges,
12537 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
12538 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
12539 _In_ UINT NumSrcDescriptorRanges,
12540 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
12541 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
12542 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12543
12544 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
12545 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
12546 ID3D12Device4 * This,
12547 _In_ UINT NumDescriptors,
12548 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
12549 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
12550 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12551
12552 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
12553#if !defined(_WIN32)
12554 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12555 ID3D12Device4 * This,
12556 _In_ UINT visibleMask,
12557 _In_ UINT numResourceDescs,
12558 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12559
12560#else
12561 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12562 ID3D12Device4 * This,
12563 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12564 _In_ UINT visibleMask,
12565 _In_ UINT numResourceDescs,
12566 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12567
12568#endif
12569
12570 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
12571#if !defined(_WIN32)
12572 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12573 ID3D12Device4 * This,
12574 _In_ UINT nodeMask,
12575 D3D12_HEAP_TYPE heapType);
12576
12577#else
12578 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12579 ID3D12Device4 * This,
12580 D3D12_HEAP_PROPERTIES * RetVal,
12581 _In_ UINT nodeMask,
12582 D3D12_HEAP_TYPE heapType);
12583
12584#endif
12585
12586 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
12587 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
12588 ID3D12Device4 * This,
12589 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12590 D3D12_HEAP_FLAGS HeapFlags,
12591 _In_ const D3D12_RESOURCE_DESC *pDesc,
12592 D3D12_RESOURCE_STATES InitialResourceState,
12593 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12594 REFIID riidResource,
12595 _COM_Outptr_opt_ void **ppvResource);
12596
12597 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
12598 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
12599 ID3D12Device4 * This,
12600 _In_ const D3D12_HEAP_DESC *pDesc,
12601 REFIID riid,
12602 _COM_Outptr_opt_ void **ppvHeap);
12603
12604 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
12605 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
12606 ID3D12Device4 * This,
12607 _In_ ID3D12Heap *pHeap,
12608 UINT64 HeapOffset,
12609 _In_ const D3D12_RESOURCE_DESC *pDesc,
12610 D3D12_RESOURCE_STATES InitialState,
12611 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12612 REFIID riid,
12613 _COM_Outptr_opt_ void **ppvResource);
12614
12615 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
12616 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
12617 ID3D12Device4 * This,
12618 _In_ const D3D12_RESOURCE_DESC *pDesc,
12619 D3D12_RESOURCE_STATES InitialState,
12620 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12621 REFIID riid,
12622 _COM_Outptr_opt_ void **ppvResource);
12623
12624 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
12625 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
12626 ID3D12Device4 * This,
12627 _In_ ID3D12DeviceChild *pObject,
12628 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
12629 DWORD Access,
12630 _In_opt_ LPCWSTR Name,
12631 _Out_ HANDLE *pHandle);
12632
12633 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
12634 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
12635 ID3D12Device4 * This,
12636 _In_ HANDLE NTHandle,
12637 REFIID riid,
12638 _COM_Outptr_opt_ void **ppvObj);
12639
12640 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
12641 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
12642 ID3D12Device4 * This,
12643 _In_ LPCWSTR Name,
12644 DWORD Access,
12645 /* [annotation][out] */
12646 _Out_ HANDLE *pNTHandle);
12647
12648 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
12649 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
12650 ID3D12Device4 * This,
12651 UINT NumObjects,
12652 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12653
12654 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
12655 HRESULT ( STDMETHODCALLTYPE *Evict )(
12656 ID3D12Device4 * This,
12657 UINT NumObjects,
12658 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12659
12660 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
12661 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
12662 ID3D12Device4 * This,
12663 UINT64 InitialValue,
12664 D3D12_FENCE_FLAGS Flags,
12665 REFIID riid,
12666 _COM_Outptr_ void **ppFence);
12667
12668 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
12669 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
12670 ID3D12Device4 * This);
12671
12672 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
12673 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
12674 ID3D12Device4 * This,
12675 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
12676 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
12677 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
12678 UINT64 BaseOffset,
12679 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
12680 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
12681 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
12682 _Out_opt_ UINT64 *pTotalBytes);
12683
12684 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
12685 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
12686 ID3D12Device4 * This,
12687 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
12688 REFIID riid,
12689 _COM_Outptr_opt_ void **ppvHeap);
12690
12691 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
12692 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
12693 ID3D12Device4 * This,
12694 BOOL Enable);
12695
12696 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
12697 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
12698 ID3D12Device4 * This,
12699 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
12700 _In_opt_ ID3D12RootSignature *pRootSignature,
12701 REFIID riid,
12702 _COM_Outptr_opt_ void **ppvCommandSignature);
12703
12704 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
12705 void ( STDMETHODCALLTYPE *GetResourceTiling )(
12706 ID3D12Device4 * This,
12707 _In_ ID3D12Resource *pTiledResource,
12708 _Out_opt_ UINT *pNumTilesForEntireResource,
12709 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
12710 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
12711 _Inout_opt_ UINT *pNumSubresourceTilings,
12712 _In_ UINT FirstSubresourceTilingToGet,
12713 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
12714
12715 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
12716#if !defined(_WIN32)
12717 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
12718 ID3D12Device4 * This);
12719
12720#else
12721 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
12722 ID3D12Device4 * This,
12723 LUID * RetVal);
12724
12725#endif
12726
12727 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
12728 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
12729 ID3D12Device4 * This,
12730 _In_reads_(BlobLength) const void *pLibraryBlob,
12731 SIZE_T BlobLength,
12732 REFIID riid,
12733 _COM_Outptr_ void **ppPipelineLibrary);
12734
12735 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
12736 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
12737 ID3D12Device4 * This,
12738 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
12739 _In_reads_(NumFences) const UINT64 *pFenceValues,
12740 UINT NumFences,
12741 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
12742 HANDLE hEvent);
12743
12744 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
12745 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
12746 ID3D12Device4 * This,
12747 UINT NumObjects,
12748 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12749 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
12750
12751 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
12752 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
12753 ID3D12Device4 * This,
12754 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
12755 REFIID riid,
12756 _COM_Outptr_ void **ppPipelineState);
12757
12758 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
12759 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
12760 ID3D12Device4 * This,
12761 _In_ const void *pAddress,
12762 REFIID riid,
12763 _COM_Outptr_ void **ppvHeap);
12764
12765 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
12766 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
12767 ID3D12Device4 * This,
12768 _In_ HANDLE hFileMapping,
12769 REFIID riid,
12770 _COM_Outptr_ void **ppvHeap);
12771
12772 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
12773 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
12774 ID3D12Device4 * This,
12775 D3D12_RESIDENCY_FLAGS Flags,
12776 UINT NumObjects,
12777 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12778 _In_ ID3D12Fence *pFenceToSignal,
12779 UINT64 FenceValueToSignal);
12780
12781 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
12782 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
12783 ID3D12Device4 * This,
12784 _In_ UINT nodeMask,
12785 _In_ D3D12_COMMAND_LIST_TYPE type,
12786 _In_ D3D12_COMMAND_LIST_FLAGS flags,
12787 REFIID riid,
12788 _COM_Outptr_ void **ppCommandList);
12789
12790 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
12791 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
12792 ID3D12Device4 * This,
12793 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
12794 _In_ REFIID riid,
12795 _COM_Outptr_ void **ppSession);
12796
12797 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
12798 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
12799 ID3D12Device4 * This,
12800 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12801 D3D12_HEAP_FLAGS HeapFlags,
12802 _In_ const D3D12_RESOURCE_DESC *pDesc,
12803 D3D12_RESOURCE_STATES InitialResourceState,
12804 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12806 REFIID riidResource,
12807 _COM_Outptr_opt_ void **ppvResource);
12808
12809 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
12810 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
12811 ID3D12Device4 * This,
12812 _In_ const D3D12_HEAP_DESC *pDesc,
12813 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12814 REFIID riid,
12815 _COM_Outptr_opt_ void **ppvHeap);
12816
12817 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
12818 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
12819 ID3D12Device4 * This,
12820 _In_ const D3D12_RESOURCE_DESC *pDesc,
12821 D3D12_RESOURCE_STATES InitialState,
12822 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12823 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12824 REFIID riid,
12825 _COM_Outptr_opt_ void **ppvResource);
12826
12827 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
12828#if !defined(_WIN32)
12829 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
12830 ID3D12Device4 * This,
12831 UINT visibleMask,
12832 UINT numResourceDescs,
12833 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12834 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
12835
12836#else
12837 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
12838 ID3D12Device4 * This,
12839 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12840 UINT visibleMask,
12841 UINT numResourceDescs,
12842 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12843 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
12844
12845#endif
12846
12847 END_INTERFACE
12848 } ID3D12Device4Vtbl;
12849
12850 interface ID3D12Device4
12851 {
12852 CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
12853 };
12854
12855
12856
12857#ifdef COBJMACROS
12858
12859
12860#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
12861 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12862
12863#define ID3D12Device4_AddRef(This) \
12864 ( (This)->lpVtbl -> AddRef(This) )
12865
12866#define ID3D12Device4_Release(This) \
12867 ( (This)->lpVtbl -> Release(This) )
12868
12869
12870#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
12871 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12872
12873#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
12874 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12875
12876#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
12877 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12878
12879#define ID3D12Device4_SetName(This,Name) \
12880 ( (This)->lpVtbl -> SetName(This,Name) )
12881
12882
12883#define ID3D12Device4_GetNodeCount(This) \
12884 ( (This)->lpVtbl -> GetNodeCount(This) )
12885
12886#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
12887 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
12888
12889#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
12890 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
12891
12892#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
12893 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
12894
12895#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
12896 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
12897
12898#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
12899 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
12900
12901#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
12902 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
12903
12904#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
12905 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
12906
12907#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
12908 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
12909
12910#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
12911 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
12912
12913#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
12914 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
12915
12916#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
12917 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
12918
12919#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
12920 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
12921
12922#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
12923 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
12924
12925#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
12926 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
12927
12928#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
12929 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
12930
12931#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
12932 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
12933
12934#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
12935 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
12936#if !defined(_WIN32)
12937
12938#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
12939 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
12940#else
12941#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
12942 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
12943#endif
12944#if !defined(_WIN32)
12945
12946#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \
12947 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
12948#else
12949#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
12950 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
12951#endif
12952
12953#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
12954 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
12955
12956#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
12957 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
12958
12959#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12960 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12961
12962#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12963 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12964
12965#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
12966 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
12967
12968#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
12969 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
12970
12971#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
12972 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
12973
12974#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
12975 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
12976
12977#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
12978 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
12979
12980#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
12981 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
12982
12983#define ID3D12Device4_GetDeviceRemovedReason(This) \
12984 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
12985
12986#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
12987 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
12988
12989#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
12990 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
12991
12992#define ID3D12Device4_SetStablePowerState(This,Enable) \
12993 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
12994
12995#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
12996 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
12997
12998#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
12999 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
13000#if !defined(_WIN32)
13001
13002#define ID3D12Device4_GetAdapterLuid(This) \
13003 ( (This)->lpVtbl -> GetAdapterLuid(This) )
13004#else
13005#define ID3D12Device4_GetAdapterLuid(This,RetVal) \
13006 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
13007#endif
13008
13009
13010#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
13011 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
13012
13013#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
13014 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
13015
13016#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
13017 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
13018
13019
13020#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
13021 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
13022
13023
13024#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
13025 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
13026
13027#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
13028 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
13029
13030#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
13031 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
13032
13033
13034#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
13035 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
13036
13037#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
13038 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
13039
13040#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
13041 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
13042
13043#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
13044 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
13045
13046#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
13047 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
13048#if !defined(_WIN32)
13049
13050#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13051 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13052#else
13053#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13054 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13055#endif
13056
13057#endif /* COBJMACROS */
13058
13059
13060#endif /* C style interface */
13061
13062
13063
13064
13065#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
13066
13067
13068/* interface __MIDL_itf_d3d12_0000_0029 */
13069/* [local] */
13070
13071typedef
13072enum D3D12_LIFETIME_STATE
13073 {
13074 D3D12_LIFETIME_STATE_IN_USE = 0,
13075 D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
13076 } D3D12_LIFETIME_STATE;
13077
13078
13079
13080
13081extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
13082extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
13083
13084#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13085#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13086
13087/* interface ID3D12LifetimeOwner */
13088/* [unique][local][object][uuid] */
13089
13090
13091EXTERN_C const IID IID_ID3D12LifetimeOwner;
13092
13093#if defined(__cplusplus) && !defined(CINTERFACE)
13094
13095 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
13096 ID3D12LifetimeOwner : public IUnknown
13097 {
13098 public:
13099 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
13100 D3D12_LIFETIME_STATE NewState) = 0;
13101
13102 };
13103
13104
13105#else /* C style interface */
13106
13107 typedef struct ID3D12LifetimeOwnerVtbl
13108 {
13109 BEGIN_INTERFACE
13110
13111 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13112 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13113 ID3D12LifetimeOwner * This,
13114 REFIID riid,
13115 _COM_Outptr_ void **ppvObject);
13116
13117 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13118 ULONG ( STDMETHODCALLTYPE *AddRef )(
13119 ID3D12LifetimeOwner * This);
13120
13121 DECLSPEC_XFGVIRT(IUnknown, Release)
13122 ULONG ( STDMETHODCALLTYPE *Release )(
13123 ID3D12LifetimeOwner * This);
13124
13125 DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated)
13126 void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
13127 ID3D12LifetimeOwner * This,
13128 D3D12_LIFETIME_STATE NewState);
13129
13130 END_INTERFACE
13131 } ID3D12LifetimeOwnerVtbl;
13132
13133 interface ID3D12LifetimeOwner
13134 {
13135 CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
13136 };
13137
13138
13139
13140#ifdef COBJMACROS
13141
13142
13143#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
13144 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13145
13146#define ID3D12LifetimeOwner_AddRef(This) \
13147 ( (This)->lpVtbl -> AddRef(This) )
13148
13149#define ID3D12LifetimeOwner_Release(This) \
13150 ( (This)->lpVtbl -> Release(This) )
13151
13152
13153#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
13154 ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
13155
13156#endif /* COBJMACROS */
13157
13158
13159#endif /* C style interface */
13160
13161
13162
13163
13164#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
13165
13166
13167#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13168#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13169
13170/* interface ID3D12SwapChainAssistant */
13171/* [unique][local][object][uuid] */
13172
13173
13174EXTERN_C const IID IID_ID3D12SwapChainAssistant;
13175
13176#if defined(__cplusplus) && !defined(CINTERFACE)
13177
13178 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
13179 ID3D12SwapChainAssistant : public IUnknown
13180 {
13181 public:
13182#if defined(_MSC_VER) || !defined(_WIN32)
13183 virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
13184#else
13185 virtual LUID *STDMETHODCALLTYPE GetLUID(
13186 LUID * RetVal) = 0;
13187#endif
13188
13189 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
13190 REFIID riid,
13191 _COM_Outptr_ void **ppv) = 0;
13192
13193 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
13194 REFIID riidResource,
13195 _COM_Outptr_ void **ppvResource,
13196 REFIID riidQueue,
13197 _COM_Outptr_ void **ppvQueue) = 0;
13198
13199 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
13200
13201 };
13202
13203
13204#else /* C style interface */
13205
13206 typedef struct ID3D12SwapChainAssistantVtbl
13207 {
13208 BEGIN_INTERFACE
13209
13210 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13211 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13212 ID3D12SwapChainAssistant * This,
13213 REFIID riid,
13214 _COM_Outptr_ void **ppvObject);
13215
13216 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13217 ULONG ( STDMETHODCALLTYPE *AddRef )(
13218 ID3D12SwapChainAssistant * This);
13219
13220 DECLSPEC_XFGVIRT(IUnknown, Release)
13221 ULONG ( STDMETHODCALLTYPE *Release )(
13222 ID3D12SwapChainAssistant * This);
13223
13224 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID)
13225#if !defined(_WIN32)
13226 LUID ( STDMETHODCALLTYPE *GetLUID )(
13227 ID3D12SwapChainAssistant * This);
13228
13229#else
13230 LUID *( STDMETHODCALLTYPE *GetLUID )(
13231 ID3D12SwapChainAssistant * This,
13232 LUID * RetVal);
13233
13234#endif
13235
13236 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject)
13237 HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
13238 ID3D12SwapChainAssistant * This,
13239 REFIID riid,
13240 _COM_Outptr_ void **ppv);
13241
13242 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue)
13243 HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
13244 ID3D12SwapChainAssistant * This,
13245 REFIID riidResource,
13246 _COM_Outptr_ void **ppvResource,
13247 REFIID riidQueue,
13248 _COM_Outptr_ void **ppvQueue);
13249
13250 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync)
13251 HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
13252 ID3D12SwapChainAssistant * This);
13253
13254 END_INTERFACE
13255 } ID3D12SwapChainAssistantVtbl;
13256
13257 interface ID3D12SwapChainAssistant
13258 {
13259 CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
13260 };
13261
13262
13263
13264#ifdef COBJMACROS
13265
13266
13267#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
13268 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13269
13270#define ID3D12SwapChainAssistant_AddRef(This) \
13271 ( (This)->lpVtbl -> AddRef(This) )
13272
13273#define ID3D12SwapChainAssistant_Release(This) \
13274 ( (This)->lpVtbl -> Release(This) )
13275
13276#if !defined(_WIN32)
13277
13278#define ID3D12SwapChainAssistant_GetLUID(This) \
13279 ( (This)->lpVtbl -> GetLUID(This) )
13280#else
13281#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \
13282 ( (This)->lpVtbl -> GetLUID(This,RetVal) )
13283#endif
13284
13285#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
13286 ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
13287
13288#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
13289 ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
13290
13291#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
13292 ( (This)->lpVtbl -> InsertImplicitSync(This) )
13293
13294#endif /* COBJMACROS */
13295
13296
13297#endif /* C style interface */
13298
13299
13300
13301
13302#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
13303
13304
13305#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13306#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13307
13308/* interface ID3D12LifetimeTracker */
13309/* [unique][local][object][uuid] */
13310
13311
13312EXTERN_C const IID IID_ID3D12LifetimeTracker;
13313
13314#if defined(__cplusplus) && !defined(CINTERFACE)
13315
13316 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
13317 ID3D12LifetimeTracker : public ID3D12DeviceChild
13318 {
13319 public:
13320 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
13321 _In_ ID3D12DeviceChild *pObject) = 0;
13322
13323 };
13324
13325
13326#else /* C style interface */
13327
13328 typedef struct ID3D12LifetimeTrackerVtbl
13329 {
13330 BEGIN_INTERFACE
13331
13332 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13333 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13334 ID3D12LifetimeTracker * This,
13335 REFIID riid,
13336 _COM_Outptr_ void **ppvObject);
13337
13338 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13339 ULONG ( STDMETHODCALLTYPE *AddRef )(
13340 ID3D12LifetimeTracker * This);
13341
13342 DECLSPEC_XFGVIRT(IUnknown, Release)
13343 ULONG ( STDMETHODCALLTYPE *Release )(
13344 ID3D12LifetimeTracker * This);
13345
13346 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13347 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13348 ID3D12LifetimeTracker * This,
13349 _In_ REFGUID guid,
13350 _Inout_ UINT *pDataSize,
13351 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13352
13353 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13354 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13355 ID3D12LifetimeTracker * This,
13356 _In_ REFGUID guid,
13357 _In_ UINT DataSize,
13358 _In_reads_bytes_opt_( DataSize ) const void *pData);
13359
13360 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13361 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13362 ID3D12LifetimeTracker * This,
13363 _In_ REFGUID guid,
13364 _In_opt_ const IUnknown *pData);
13365
13366 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13367 HRESULT ( STDMETHODCALLTYPE *SetName )(
13368 ID3D12LifetimeTracker * This,
13369 _In_z_ LPCWSTR Name);
13370
13371 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
13372 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
13373 ID3D12LifetimeTracker * This,
13374 REFIID riid,
13375 _COM_Outptr_opt_ void **ppvDevice);
13376
13377 DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject)
13378 HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
13379 ID3D12LifetimeTracker * This,
13380 _In_ ID3D12DeviceChild *pObject);
13381
13382 END_INTERFACE
13383 } ID3D12LifetimeTrackerVtbl;
13384
13385 interface ID3D12LifetimeTracker
13386 {
13387 CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
13388 };
13389
13390
13391
13392#ifdef COBJMACROS
13393
13394
13395#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
13396 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13397
13398#define ID3D12LifetimeTracker_AddRef(This) \
13399 ( (This)->lpVtbl -> AddRef(This) )
13400
13401#define ID3D12LifetimeTracker_Release(This) \
13402 ( (This)->lpVtbl -> Release(This) )
13403
13404
13405#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
13406 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
13407
13408#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
13409 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
13410
13411#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
13412 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
13413
13414#define ID3D12LifetimeTracker_SetName(This,Name) \
13415 ( (This)->lpVtbl -> SetName(This,Name) )
13416
13417
13418#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
13419 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
13420
13421
13422#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
13423 ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
13424
13425#endif /* COBJMACROS */
13426
13427
13428#endif /* C style interface */
13429
13430
13431
13432
13433#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
13434
13435
13436/* interface __MIDL_itf_d3d12_0000_0032 */
13437/* [local] */
13438
13439typedef
13440enum D3D12_META_COMMAND_PARAMETER_TYPE
13441 {
13442 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
13443 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
13444 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
13445 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
13446 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
13447 } D3D12_META_COMMAND_PARAMETER_TYPE;
13448
13449typedef
13450enum D3D12_META_COMMAND_PARAMETER_FLAGS
13451 {
13452 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
13453 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
13454 } D3D12_META_COMMAND_PARAMETER_FLAGS;
13455
13456DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )
13457typedef
13458enum D3D12_META_COMMAND_PARAMETER_STAGE
13459 {
13460 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
13461 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
13462 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
13463 } D3D12_META_COMMAND_PARAMETER_STAGE;
13464
13465typedef struct D3D12_META_COMMAND_PARAMETER_DESC
13466 {
13467 LPCWSTR Name;
13468 D3D12_META_COMMAND_PARAMETER_TYPE Type;
13469 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
13470 D3D12_RESOURCE_STATES RequiredResourceState;
13471 UINT StructureOffset;
13472 } D3D12_META_COMMAND_PARAMETER_DESC;
13473
13474typedef
13475enum D3D12_GRAPHICS_STATES
13476 {
13477 D3D12_GRAPHICS_STATE_NONE = 0,
13478 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
13479 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
13480 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
13481 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
13482 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
13483 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
13484 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
13485 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
13486 D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
13487 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
13488 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
13489 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
13490 D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
13491 D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
13492 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
13493 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
13494 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
13495 } D3D12_GRAPHICS_STATES;
13496
13497DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )
13498typedef struct D3D12_META_COMMAND_DESC
13499 {
13500 GUID Id;
13501 LPCWSTR Name;
13502 D3D12_GRAPHICS_STATES InitializationDirtyState;
13503 D3D12_GRAPHICS_STATES ExecutionDirtyState;
13504 } D3D12_META_COMMAND_DESC;
13505
13506
13507
13508extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_c_ifspec;
13509extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0032_v0_0_s_ifspec;
13510
13511#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
13512#define __ID3D12StateObject_INTERFACE_DEFINED__
13513
13514/* interface ID3D12StateObject */
13515/* [unique][local][object][uuid] */
13516
13517
13518EXTERN_C const IID IID_ID3D12StateObject;
13519
13520#if defined(__cplusplus) && !defined(CINTERFACE)
13521
13522 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
13523 ID3D12StateObject : public ID3D12Pageable
13524 {
13525 public:
13526 };
13527
13528
13529#else /* C style interface */
13530
13531 typedef struct ID3D12StateObjectVtbl
13532 {
13533 BEGIN_INTERFACE
13534
13535 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13536 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13537 ID3D12StateObject * This,
13538 REFIID riid,
13539 _COM_Outptr_ void **ppvObject);
13540
13541 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13542 ULONG ( STDMETHODCALLTYPE *AddRef )(
13543 ID3D12StateObject * This);
13544
13545 DECLSPEC_XFGVIRT(IUnknown, Release)
13546 ULONG ( STDMETHODCALLTYPE *Release )(
13547 ID3D12StateObject * This);
13548
13549 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13550 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13551 ID3D12StateObject * This,
13552 _In_ REFGUID guid,
13553 _Inout_ UINT *pDataSize,
13554 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13555
13556 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13557 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13558 ID3D12StateObject * This,
13559 _In_ REFGUID guid,
13560 _In_ UINT DataSize,
13561 _In_reads_bytes_opt_( DataSize ) const void *pData);
13562
13563 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13564 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13565 ID3D12StateObject * This,
13566 _In_ REFGUID guid,
13567 _In_opt_ const IUnknown *pData);
13568
13569 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13570 HRESULT ( STDMETHODCALLTYPE *SetName )(
13571 ID3D12StateObject * This,
13572 _In_z_ LPCWSTR Name);
13573
13574 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
13575 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
13576 ID3D12StateObject * This,
13577 REFIID riid,
13578 _COM_Outptr_opt_ void **ppvDevice);
13579
13580 END_INTERFACE
13581 } ID3D12StateObjectVtbl;
13582
13583 interface ID3D12StateObject
13584 {
13585 CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
13586 };
13587
13588
13589
13590#ifdef COBJMACROS
13591
13592
13593#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
13594 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13595
13596#define ID3D12StateObject_AddRef(This) \
13597 ( (This)->lpVtbl -> AddRef(This) )
13598
13599#define ID3D12StateObject_Release(This) \
13600 ( (This)->lpVtbl -> Release(This) )
13601
13602
13603#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
13604 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
13605
13606#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
13607 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
13608
13609#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
13610 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
13611
13612#define ID3D12StateObject_SetName(This,Name) \
13613 ( (This)->lpVtbl -> SetName(This,Name) )
13614
13615
13616#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
13617 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
13618
13619
13620
13621#endif /* COBJMACROS */
13622
13623
13624#endif /* C style interface */
13625
13626
13627
13628
13629#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
13630
13631
13632#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13633#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
13634
13635/* interface ID3D12StateObjectProperties */
13636/* [unique][local][object][uuid] */
13637
13638
13639EXTERN_C const IID IID_ID3D12StateObjectProperties;
13640
13641#if defined(__cplusplus) && !defined(CINTERFACE)
13642
13643 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
13644 ID3D12StateObjectProperties : public IUnknown
13645 {
13646 public:
13647 virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
13648 _In_ LPCWSTR pExportName) = 0;
13649
13650 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
13651 _In_ LPCWSTR pExportName) = 0;
13652
13653 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
13654
13655 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
13656 UINT64 PipelineStackSizeInBytes) = 0;
13657
13658 };
13659
13660
13661#else /* C style interface */
13662
13663 typedef struct ID3D12StateObjectPropertiesVtbl
13664 {
13665 BEGIN_INTERFACE
13666
13667 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13668 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13669 ID3D12StateObjectProperties * This,
13670 REFIID riid,
13671 _COM_Outptr_ void **ppvObject);
13672
13673 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13674 ULONG ( STDMETHODCALLTYPE *AddRef )(
13675 ID3D12StateObjectProperties * This);
13676
13677 DECLSPEC_XFGVIRT(IUnknown, Release)
13678 ULONG ( STDMETHODCALLTYPE *Release )(
13679 ID3D12StateObjectProperties * This);
13680
13681 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
13682 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
13683 ID3D12StateObjectProperties * This,
13684 _In_ LPCWSTR pExportName);
13685
13686 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
13687 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
13688 ID3D12StateObjectProperties * This,
13689 _In_ LPCWSTR pExportName);
13690
13691 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
13692 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
13693 ID3D12StateObjectProperties * This);
13694
13695 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
13696 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
13697 ID3D12StateObjectProperties * This,
13698 UINT64 PipelineStackSizeInBytes);
13699
13700 END_INTERFACE
13701 } ID3D12StateObjectPropertiesVtbl;
13702
13703 interface ID3D12StateObjectProperties
13704 {
13705 CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
13706 };
13707
13708
13709
13710#ifdef COBJMACROS
13711
13712
13713#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
13714 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13715
13716#define ID3D12StateObjectProperties_AddRef(This) \
13717 ( (This)->lpVtbl -> AddRef(This) )
13718
13719#define ID3D12StateObjectProperties_Release(This) \
13720 ( (This)->lpVtbl -> Release(This) )
13721
13722
13723#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
13724 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
13725
13726#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
13727 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
13728
13729#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
13730 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
13731
13732#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
13733 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
13734
13735#endif /* COBJMACROS */
13736
13737
13738#endif /* C style interface */
13739
13740
13741
13742
13743#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
13744
13745
13746/* interface __MIDL_itf_d3d12_0000_0034 */
13747/* [local] */
13748
13749typedef struct D3D12_PROGRAM_IDENTIFIER
13750 {
13751 UINT64 OpaqueData[ 4 ];
13752 } D3D12_PROGRAM_IDENTIFIER;
13753
13754
13755
13756extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
13757extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
13758
13759#ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
13760#define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
13761
13762/* interface ID3D12StateObjectProperties1 */
13763/* [unique][local][object][uuid] */
13764
13765
13766EXTERN_C const IID IID_ID3D12StateObjectProperties1;
13767
13768#if defined(__cplusplus) && !defined(CINTERFACE)
13769
13770 MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138")
13771 ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties
13772 {
13773 public:
13774#if defined(_MSC_VER) || !defined(_WIN32)
13775 virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier(
13776 LPCWSTR pProgramName) = 0;
13777#else
13778 virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier(
13779 D3D12_PROGRAM_IDENTIFIER * RetVal,
13780 LPCWSTR pProgramName) = 0;
13781#endif
13782
13783 };
13784
13785
13786#else /* C style interface */
13787
13788 typedef struct ID3D12StateObjectProperties1Vtbl
13789 {
13790 BEGIN_INTERFACE
13791
13792 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13793 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13794 ID3D12StateObjectProperties1 * This,
13795 REFIID riid,
13796 _COM_Outptr_ void **ppvObject);
13797
13798 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13799 ULONG ( STDMETHODCALLTYPE *AddRef )(
13800 ID3D12StateObjectProperties1 * This);
13801
13802 DECLSPEC_XFGVIRT(IUnknown, Release)
13803 ULONG ( STDMETHODCALLTYPE *Release )(
13804 ID3D12StateObjectProperties1 * This);
13805
13806 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
13807 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
13808 ID3D12StateObjectProperties1 * This,
13809 _In_ LPCWSTR pExportName);
13810
13811 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
13812 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
13813 ID3D12StateObjectProperties1 * This,
13814 _In_ LPCWSTR pExportName);
13815
13816 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
13817 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
13818 ID3D12StateObjectProperties1 * This);
13819
13820 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
13821 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
13822 ID3D12StateObjectProperties1 * This,
13823 UINT64 PipelineStackSizeInBytes);
13824
13825 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
13826#if !defined(_WIN32)
13827 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
13828 ID3D12StateObjectProperties1 * This,
13829 LPCWSTR pProgramName);
13830
13831#else
13832 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
13833 ID3D12StateObjectProperties1 * This,
13834 D3D12_PROGRAM_IDENTIFIER * RetVal,
13835 LPCWSTR pProgramName);
13836
13837#endif
13838
13839 END_INTERFACE
13840 } ID3D12StateObjectProperties1Vtbl;
13841
13842 interface ID3D12StateObjectProperties1
13843 {
13844 CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl;
13845 };
13846
13847
13848
13849#ifdef COBJMACROS
13850
13851
13852#define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \
13853 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13854
13855#define ID3D12StateObjectProperties1_AddRef(This) \
13856 ( (This)->lpVtbl -> AddRef(This) )
13857
13858#define ID3D12StateObjectProperties1_Release(This) \
13859 ( (This)->lpVtbl -> Release(This) )
13860
13861
13862#define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \
13863 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
13864
13865#define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \
13866 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
13867
13868#define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \
13869 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
13870
13871#define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
13872 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
13873
13874#if !defined(_WIN32)
13875
13876#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \
13877 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
13878#else
13879#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \
13880 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
13881#endif
13882
13883#endif /* COBJMACROS */
13884
13885
13886#endif /* C style interface */
13887
13888
13889
13890
13891#endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */
13892
13893
13894/* interface __MIDL_itf_d3d12_0000_0035 */
13895/* [local] */
13896
13897typedef struct D3D12_NODE_ID
13898 {
13899 LPCWSTR Name;
13900 UINT ArrayIndex;
13901 } D3D12_NODE_ID;
13902
13903typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS
13904 {
13905 UINT64 MinSizeInBytes;
13906 UINT64 MaxSizeInBytes;
13907 UINT SizeGranularityInBytes;
13908 } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS;
13909
13910
13911
13912extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_c_ifspec;
13913extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0035_v0_0_s_ifspec;
13914
13915#ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
13916#define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
13917
13918/* interface ID3D12WorkGraphProperties */
13919/* [unique][local][object][uuid] */
13920
13921
13922EXTERN_C const IID IID_ID3D12WorkGraphProperties;
13923
13924#if defined(__cplusplus) && !defined(CINTERFACE)
13925
13926 MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757")
13927 ID3D12WorkGraphProperties : public IUnknown
13928 {
13929 public:
13930 virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0;
13931
13932 virtual LPCWSTR STDMETHODCALLTYPE GetProgramName(
13933 UINT WorkGraphIndex) = 0;
13934
13935 virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex(
13936 LPCWSTR pProgramName) = 0;
13937
13938 virtual UINT STDMETHODCALLTYPE GetNumNodes(
13939 UINT WorkGraphIndex) = 0;
13940
13941#if defined(_MSC_VER) || !defined(_WIN32)
13942 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID(
13943 UINT WorkGraphIndex,
13944 UINT NodeIndex) = 0;
13945#else
13946 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID(
13947 D3D12_NODE_ID * RetVal,
13948 UINT WorkGraphIndex,
13949 UINT NodeIndex) = 0;
13950#endif
13951
13952 virtual UINT STDMETHODCALLTYPE GetNodeIndex(
13953 UINT WorkGraphIndex,
13954 D3D12_NODE_ID NodeID) = 0;
13955
13956 virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex(
13957 UINT WorkGraphIndex,
13958 UINT NodeIndex) = 0;
13959
13960 virtual UINT STDMETHODCALLTYPE GetNumEntrypoints(
13961 UINT WorkGraphIndex) = 0;
13962
13963#if defined(_MSC_VER) || !defined(_WIN32)
13964 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID(
13965 UINT WorkGraphIndex,
13966 UINT EntrypointIndex) = 0;
13967#else
13968 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID(
13969 D3D12_NODE_ID * RetVal,
13970 UINT WorkGraphIndex,
13971 UINT EntrypointIndex) = 0;
13972#endif
13973
13974 virtual UINT STDMETHODCALLTYPE GetEntrypointIndex(
13975 UINT WorkGraphIndex,
13976 D3D12_NODE_ID NodeID) = 0;
13977
13978 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes(
13979 UINT WorkGraphIndex,
13980 UINT EntrypointIndex) = 0;
13981
13982 virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements(
13983 UINT WorkGraphIndex,
13984 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0;
13985
13986 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes(
13987 UINT WorkGraphIndex,
13988 UINT EntrypointIndex) = 0;
13989
13990 };
13991
13992
13993#else /* C style interface */
13994
13995 typedef struct ID3D12WorkGraphPropertiesVtbl
13996 {
13997 BEGIN_INTERFACE
13998
13999 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14000 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14001 ID3D12WorkGraphProperties * This,
14002 REFIID riid,
14003 _COM_Outptr_ void **ppvObject);
14004
14005 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14006 ULONG ( STDMETHODCALLTYPE *AddRef )(
14007 ID3D12WorkGraphProperties * This);
14008
14009 DECLSPEC_XFGVIRT(IUnknown, Release)
14010 ULONG ( STDMETHODCALLTYPE *Release )(
14011 ID3D12WorkGraphProperties * This);
14012
14013 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs)
14014 UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )(
14015 ID3D12WorkGraphProperties * This);
14016
14017 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName)
14018 LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )(
14019 ID3D12WorkGraphProperties * This,
14020 UINT WorkGraphIndex);
14021
14022 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex)
14023 UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )(
14024 ID3D12WorkGraphProperties * This,
14025 LPCWSTR pProgramName);
14026
14027 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes)
14028 UINT ( STDMETHODCALLTYPE *GetNumNodes )(
14029 ID3D12WorkGraphProperties * This,
14030 UINT WorkGraphIndex);
14031
14032 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID)
14033#if !defined(_WIN32)
14034 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )(
14035 ID3D12WorkGraphProperties * This,
14036 UINT WorkGraphIndex,
14037 UINT NodeIndex);
14038
14039#else
14040 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )(
14041 ID3D12WorkGraphProperties * This,
14042 D3D12_NODE_ID * RetVal,
14043 UINT WorkGraphIndex,
14044 UINT NodeIndex);
14045
14046#endif
14047
14048 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex)
14049 UINT ( STDMETHODCALLTYPE *GetNodeIndex )(
14050 ID3D12WorkGraphProperties * This,
14051 UINT WorkGraphIndex,
14052 D3D12_NODE_ID NodeID);
14053
14054 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex)
14055 UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )(
14056 ID3D12WorkGraphProperties * This,
14057 UINT WorkGraphIndex,
14058 UINT NodeIndex);
14059
14060 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints)
14061 UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )(
14062 ID3D12WorkGraphProperties * This,
14063 UINT WorkGraphIndex);
14064
14065 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID)
14066#if !defined(_WIN32)
14067 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )(
14068 ID3D12WorkGraphProperties * This,
14069 UINT WorkGraphIndex,
14070 UINT EntrypointIndex);
14071
14072#else
14073 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )(
14074 ID3D12WorkGraphProperties * This,
14075 D3D12_NODE_ID * RetVal,
14076 UINT WorkGraphIndex,
14077 UINT EntrypointIndex);
14078
14079#endif
14080
14081 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex)
14082 UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )(
14083 ID3D12WorkGraphProperties * This,
14084 UINT WorkGraphIndex,
14085 D3D12_NODE_ID NodeID);
14086
14087 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes)
14088 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )(
14089 ID3D12WorkGraphProperties * This,
14090 UINT WorkGraphIndex,
14091 UINT EntrypointIndex);
14092
14093 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements)
14094 void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )(
14095 ID3D12WorkGraphProperties * This,
14096 UINT WorkGraphIndex,
14097 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements);
14098
14099 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes)
14100 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )(
14101 ID3D12WorkGraphProperties * This,
14102 UINT WorkGraphIndex,
14103 UINT EntrypointIndex);
14104
14105 END_INTERFACE
14106 } ID3D12WorkGraphPropertiesVtbl;
14107
14108 interface ID3D12WorkGraphProperties
14109 {
14110 CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl;
14111 };
14112
14113
14114
14115#ifdef COBJMACROS
14116
14117
14118#define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \
14119 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14120
14121#define ID3D12WorkGraphProperties_AddRef(This) \
14122 ( (This)->lpVtbl -> AddRef(This) )
14123
14124#define ID3D12WorkGraphProperties_Release(This) \
14125 ( (This)->lpVtbl -> Release(This) )
14126
14127
14128#define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \
14129 ( (This)->lpVtbl -> GetNumWorkGraphs(This) )
14130
14131#define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \
14132 ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) )
14133
14134#define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \
14135 ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) )
14136
14137#define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \
14138 ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) )
14139#if !defined(_WIN32)
14140
14141#define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \
14142 ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) )
14143#else
14144#define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \
14145 ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) )
14146#endif
14147
14148#define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \
14149 ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) )
14150
14151#define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \
14152 ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) )
14153
14154#define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \
14155 ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) )
14156#if !defined(_WIN32)
14157
14158#define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \
14159 ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) )
14160#else
14161#define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \
14162 ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) )
14163#endif
14164
14165#define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \
14166 ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) )
14167
14168#define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \
14169 ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) )
14170
14171#define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \
14172 ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) )
14173
14174#define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \
14175 ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) )
14176
14177#endif /* COBJMACROS */
14178
14179
14180#endif /* C style interface */
14181
14182
14183
14184
14185#endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */
14186
14187
14188/* interface __MIDL_itf_d3d12_0000_0036 */
14189/* [local] */
14190
14191typedef
14192enum D3D12_STATE_SUBOBJECT_TYPE
14193 {
14194 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
14195 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
14196 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
14197 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
14198 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
14199 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
14200 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
14201 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
14202 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
14203 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
14204 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
14205 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12,
14206 D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13,
14207 D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14,
14208 D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15,
14209 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16,
14210 D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17,
14211 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18,
14212 D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19,
14213 D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20,
14214 D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21,
14215 D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22,
14216 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23,
14217 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24,
14218 D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26,
14219 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27,
14220 D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28,
14221 D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29,
14222 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30,
14223 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 + 1 )
14224 } D3D12_STATE_SUBOBJECT_TYPE;
14225
14226typedef struct D3D12_STATE_SUBOBJECT
14227 {
14228 D3D12_STATE_SUBOBJECT_TYPE Type;
14229 const void *pDesc;
14230 } D3D12_STATE_SUBOBJECT;
14231
14232typedef
14233enum D3D12_STATE_OBJECT_FLAGS
14234 {
14235 D3D12_STATE_OBJECT_FLAG_NONE = 0,
14236 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
14237 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
14238 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
14239 } D3D12_STATE_OBJECT_FLAGS;
14240
14241DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )
14242typedef struct D3D12_STATE_OBJECT_CONFIG
14243 {
14244 D3D12_STATE_OBJECT_FLAGS Flags;
14245 } D3D12_STATE_OBJECT_CONFIG;
14246
14247typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
14248 {
14249 ID3D12RootSignature *pGlobalRootSignature;
14250 } D3D12_GLOBAL_ROOT_SIGNATURE;
14251
14252typedef struct D3D12_LOCAL_ROOT_SIGNATURE
14253 {
14254 ID3D12RootSignature *pLocalRootSignature;
14255 } D3D12_LOCAL_ROOT_SIGNATURE;
14256
14257typedef struct D3D12_NODE_MASK
14258 {
14259 UINT NodeMask;
14260 } D3D12_NODE_MASK;
14261
14262typedef struct D3D12_SAMPLE_MASK
14263 {
14264 UINT SampleMask;
14265 } D3D12_SAMPLE_MASK;
14266
14267typedef struct D3D12_IB_STRIP_CUT_VALUE
14268 {
14269 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue;
14270 } D3D12_IB_STRIP_CUT_VALUE;
14271
14272typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC
14273 {
14274 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology;
14275 } D3D12_PRIMITIVE_TOPOLOGY_DESC;
14276
14277typedef struct D3D12_DEPTH_STENCIL_FORMAT
14278 {
14279 DXGI_FORMAT DepthStencilFormat;
14280 } D3D12_DEPTH_STENCIL_FORMAT;
14281
14282typedef
14283enum D3D12_EXPORT_FLAGS
14284 {
14285 D3D12_EXPORT_FLAG_NONE = 0
14286 } D3D12_EXPORT_FLAGS;
14287
14288DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )
14289typedef struct D3D12_EXPORT_DESC
14290 {
14291 LPCWSTR Name;
14292 _In_opt_ LPCWSTR ExportToRename;
14293 D3D12_EXPORT_FLAGS Flags;
14294 } D3D12_EXPORT_DESC;
14295
14296typedef struct D3D12_DXIL_LIBRARY_DESC
14297 {
14298 D3D12_SHADER_BYTECODE DXILLibrary;
14299 UINT NumExports;
14300 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
14301 } D3D12_DXIL_LIBRARY_DESC;
14302
14303typedef struct D3D12_EXISTING_COLLECTION_DESC
14304 {
14305 ID3D12StateObject *pExistingCollection;
14306 UINT NumExports;
14307 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
14308 } D3D12_EXISTING_COLLECTION_DESC;
14309
14310typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
14311 {
14312 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
14313 UINT NumExports;
14314 _In_reads_(NumExports) LPCWSTR *pExports;
14315 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
14316
14317typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
14318 {
14319 LPCWSTR SubobjectToAssociate;
14320 UINT NumExports;
14321 _In_reads_(NumExports) LPCWSTR *pExports;
14322 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
14323
14324typedef
14325enum D3D12_HIT_GROUP_TYPE
14326 {
14327 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
14328 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
14329 } D3D12_HIT_GROUP_TYPE;
14330
14331typedef struct D3D12_HIT_GROUP_DESC
14332 {
14333 LPCWSTR HitGroupExport;
14334 D3D12_HIT_GROUP_TYPE Type;
14335 _In_opt_ LPCWSTR AnyHitShaderImport;
14336 _In_opt_ LPCWSTR ClosestHitShaderImport;
14337 _In_opt_ LPCWSTR IntersectionShaderImport;
14338 } D3D12_HIT_GROUP_DESC;
14339
14340typedef struct D3D12_RAYTRACING_SHADER_CONFIG
14341 {
14342 UINT MaxPayloadSizeInBytes;
14343 UINT MaxAttributeSizeInBytes;
14344 } D3D12_RAYTRACING_SHADER_CONFIG;
14345
14346typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
14347 {
14348 UINT MaxTraceRecursionDepth;
14349 } D3D12_RAYTRACING_PIPELINE_CONFIG;
14350
14351typedef
14352enum D3D12_RAYTRACING_PIPELINE_FLAGS
14353 {
14354 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0,
14355 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
14356 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
14357 } D3D12_RAYTRACING_PIPELINE_FLAGS;
14358
14359DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )
14360typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
14361 {
14362 UINT MaxTraceRecursionDepth;
14363 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
14364 } D3D12_RAYTRACING_PIPELINE_CONFIG1;
14365
14366typedef struct D3D12_NODE_OUTPUT_OVERRIDES
14367 {
14368 UINT OutputIndex;
14369 _In_opt_ const D3D12_NODE_ID *pNewName;
14370 _In_opt_ const BOOL *pAllowSparseNodes;
14371 _In_opt_ const UINT *pMaxRecords;
14372 _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex;
14373 } D3D12_NODE_OUTPUT_OVERRIDES;
14374
14375typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES
14376 {
14377 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
14378 _In_opt_ const BOOL *pProgramEntry;
14379 _In_opt_ const D3D12_NODE_ID *pNewName;
14380 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
14381 _In_reads_opt_(3) const UINT *pDispatchGrid;
14382 _In_reads_opt_(3) const UINT *pMaxDispatchGrid;
14383 UINT NumOutputOverrides;
14384 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
14385 } D3D12_BROADCASTING_LAUNCH_OVERRIDES;
14386
14387typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES
14388 {
14389 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
14390 _In_opt_ const BOOL *pProgramEntry;
14391 _In_opt_ const D3D12_NODE_ID *pNewName;
14392 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
14393 UINT NumOutputOverrides;
14394 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
14395 } D3D12_COALESCING_LAUNCH_OVERRIDES;
14396
14397typedef struct D3D12_THREAD_LAUNCH_OVERRIDES
14398 {
14399 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
14400 _In_opt_ const BOOL *pProgramEntry;
14401 _In_opt_ const D3D12_NODE_ID *pNewName;
14402 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
14403 UINT NumOutputOverrides;
14404 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
14405 } D3D12_THREAD_LAUNCH_OVERRIDES;
14406
14407typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES
14408 {
14409 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
14410 _In_opt_ const BOOL *pProgramEntry;
14411 _In_opt_ const D3D12_NODE_ID *pNewName;
14412 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
14413 UINT NumOutputOverrides;
14414 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
14415 } D3D12_COMMON_COMPUTE_NODE_OVERRIDES;
14416
14417typedef
14418enum D3D12_NODE_OVERRIDES_TYPE
14419 {
14420 D3D12_NODE_OVERRIDES_TYPE_NONE = 0,
14421 D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1,
14422 D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2,
14423 D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3,
14424 D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4
14425 } D3D12_NODE_OVERRIDES_TYPE;
14426
14427typedef struct D3D12_SHADER_NODE
14428 {
14429 LPCWSTR Shader;
14430 D3D12_NODE_OVERRIDES_TYPE OverridesType;
14431 union
14432 {
14433 const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides;
14434 const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides;
14435 const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides;
14436 const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides;
14437 } ;
14438 } D3D12_SHADER_NODE;
14439
14440typedef
14441enum D3D12_NODE_TYPE
14442 {
14443 D3D12_NODE_TYPE_SHADER = 0
14444 } D3D12_NODE_TYPE;
14445
14446typedef struct D3D12_NODE
14447 {
14448 D3D12_NODE_TYPE NodeType;
14449 union
14450 {
14451 D3D12_SHADER_NODE Shader;
14452 } ;
14453 } D3D12_NODE;
14454
14455typedef
14456enum D3D12_WORK_GRAPH_FLAGS
14457 {
14458 D3D12_WORK_GRAPH_FLAG_NONE = 0,
14459 D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1
14460 } D3D12_WORK_GRAPH_FLAGS;
14461
14462DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )
14463typedef struct D3D12_WORK_GRAPH_DESC
14464 {
14465 LPCWSTR ProgramName;
14466 D3D12_WORK_GRAPH_FLAGS Flags;
14467 UINT NumEntrypoints;
14468 _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints;
14469 UINT NumExplicitlyDefinedNodes;
14470 _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes;
14471 } D3D12_WORK_GRAPH_DESC;
14472
14473typedef struct D3D12_GENERIC_PROGRAM_DESC
14474 {
14475 LPCWSTR ProgramName;
14476 UINT NumExports;
14477 _In_reads_(NumExports) LPCWSTR *pExports;
14478 UINT NumSubobjects;
14479 _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects;
14480 } D3D12_GENERIC_PROGRAM_DESC;
14481
14482typedef
14483enum D3D12_STATE_OBJECT_TYPE
14484 {
14485 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
14486 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3,
14487 D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4
14488 } D3D12_STATE_OBJECT_TYPE;
14489
14490typedef struct D3D12_STATE_OBJECT_DESC
14491 {
14492 D3D12_STATE_OBJECT_TYPE Type;
14493 UINT NumSubobjects;
14494 _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
14495 } D3D12_STATE_OBJECT_DESC;
14496
14497typedef
14498enum D3D12_RAYTRACING_GEOMETRY_FLAGS
14499 {
14500 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
14501 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
14502 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
14503 } D3D12_RAYTRACING_GEOMETRY_FLAGS;
14504
14505DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )
14506typedef
14507enum D3D12_RAYTRACING_GEOMETRY_TYPE
14508 {
14509 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
14510 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 )
14511 } D3D12_RAYTRACING_GEOMETRY_TYPE;
14512
14513typedef
14514enum D3D12_RAYTRACING_INSTANCE_FLAGS
14515 {
14516 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
14517 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
14518 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
14519 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
14520 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
14521 } D3D12_RAYTRACING_INSTANCE_FLAGS;
14522
14523DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )
14524typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
14525 {
14526 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
14527 UINT64 StrideInBytes;
14528 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
14529
14530typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
14531 {
14532 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
14533 UINT64 SizeInBytes;
14534 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
14535
14536typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
14537 {
14538 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
14539 UINT64 SizeInBytes;
14540 UINT64 StrideInBytes;
14541 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
14542
14543typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
14544 {
14545 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
14546 DXGI_FORMAT IndexFormat;
14547 DXGI_FORMAT VertexFormat;
14548 UINT IndexCount;
14549 UINT VertexCount;
14550 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
14551 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
14552 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
14553
14554typedef struct D3D12_RAYTRACING_AABB
14555 {
14556 FLOAT MinX;
14557 FLOAT MinY;
14558 FLOAT MinZ;
14559 FLOAT MaxX;
14560 FLOAT MaxY;
14561 FLOAT MaxZ;
14562 } D3D12_RAYTRACING_AABB;
14563
14564typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
14565 {
14566 UINT64 AABBCount;
14567 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
14568 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
14569
14570typedef
14571enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
14572 {
14573 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
14574 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
14575 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
14576 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
14577 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
14578 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
14579 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
14580 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
14581
14582DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )
14583typedef
14584enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
14585 {
14586 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
14587 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
14588 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
14589 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
14590 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
14591 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
14592
14593typedef
14594enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
14595 {
14596 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
14597 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
14598 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
14599
14600typedef
14601enum D3D12_ELEMENTS_LAYOUT
14602 {
14603 D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
14604 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
14605 } D3D12_ELEMENTS_LAYOUT;
14606
14607typedef
14608enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
14609 {
14610 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
14611 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
14612 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
14613 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
14614 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
14615
14616typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
14617 {
14618 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
14619 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
14620 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
14621
14622typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
14623 {
14624 UINT64 CompactedSizeInBytes;
14625 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
14626
14627typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
14628 {
14629 UINT64 DecodedSizeInBytes;
14630 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
14631
14632typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
14633 {
14634 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
14635 UINT NumDescs;
14636 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
14637
14638// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
14639// depending on Type field, NumDescs above is followed by either:
14640// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
14641// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
14642// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
14643
14644typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
14645 {
14646 UINT64 SerializedSizeInBytes;
14647 UINT64 NumBottomLevelAccelerationStructurePointers;
14648 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
14649
14650typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
14651 {
14652 GUID DriverOpaqueGUID;
14653 BYTE DriverOpaqueVersioningData[ 16 ];
14654 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
14655
14656typedef
14657enum D3D12_SERIALIZED_DATA_TYPE
14658 {
14659 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0
14660 } D3D12_SERIALIZED_DATA_TYPE;
14661
14662typedef
14663enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
14664 {
14665 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
14666 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
14667 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
14668 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
14669 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
14670 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
14671
14672typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
14673 {
14674 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
14675 UINT64 SerializedSizeInBytesIncludingHeader;
14676 UINT64 DeserializedSizeInBytes;
14677 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
14678 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
14679
14680typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
14681 {
14682 UINT64 CurrentSizeInBytes;
14683 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
14684
14685typedef struct D3D12_RAYTRACING_INSTANCE_DESC
14686 {
14687 FLOAT Transform[ 3 ][ 4 ];
14688 UINT InstanceID : 24;
14689 UINT InstanceMask : 8;
14690 UINT InstanceContributionToHitGroupIndex : 24;
14691 UINT Flags : 8;
14692 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
14693 } D3D12_RAYTRACING_INSTANCE_DESC;
14694
14695typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
14696 {
14697 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
14698 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
14699 union
14700 {
14701 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
14702 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
14703 } ;
14704 } D3D12_RAYTRACING_GEOMETRY_DESC;
14705
14706typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
14707 {
14708 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
14709 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
14710 UINT NumDescs;
14711 D3D12_ELEMENTS_LAYOUT DescsLayout;
14712 union
14713 {
14714 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
14715 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
14716 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
14717 } ;
14718 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
14719
14720typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
14721 {
14722 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
14723 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
14724 _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
14725 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
14726 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
14727
14728typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
14729 {
14730 UINT64 ResultDataMaxSizeInBytes;
14731 UINT64 ScratchDataSizeInBytes;
14732 UINT64 UpdateScratchDataSizeInBytes;
14733 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
14734
14735typedef
14736enum D3D12_RAY_FLAGS
14737 {
14738 D3D12_RAY_FLAG_NONE = 0,
14739 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
14740 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
14741 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
14742 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
14743 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
14744 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
14745 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
14746 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
14747 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
14748 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200
14749 } D3D12_RAY_FLAGS;
14750
14751DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )
14752typedef
14753enum D3D12_HIT_KIND
14754 {
14755 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
14756 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
14757 } D3D12_HIT_KIND;
14758
14759
14760
14761extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec;
14762extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec;
14763
14764#ifndef __ID3D12Device5_INTERFACE_DEFINED__
14765#define __ID3D12Device5_INTERFACE_DEFINED__
14766
14767/* interface ID3D12Device5 */
14768/* [unique][local][object][uuid] */
14769
14770
14771EXTERN_C const IID IID_ID3D12Device5;
14772
14773#if defined(__cplusplus) && !defined(CINTERFACE)
14774
14775 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
14776 ID3D12Device5 : public ID3D12Device4
14777 {
14778 public:
14779 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
14780 _In_ ID3D12LifetimeOwner *pOwner,
14781 REFIID riid,
14782 _COM_Outptr_ void **ppvTracker) = 0;
14783
14784 virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
14785
14786 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
14787 _Inout_ UINT *pNumMetaCommands,
14788 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
14789
14790 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
14791 _In_ REFGUID CommandId,
14792 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
14793 _Out_opt_ UINT *pTotalStructureSizeInBytes,
14794 _Inout_ UINT *pParameterCount,
14795 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
14796
14797 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
14798 _In_ REFGUID CommandId,
14799 _In_ UINT NodeMask,
14800 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
14801 _In_ SIZE_T CreationParametersDataSizeInBytes,
14802 REFIID riid,
14803 _COM_Outptr_ void **ppMetaCommand) = 0;
14804
14805 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
14806 const D3D12_STATE_OBJECT_DESC *pDesc,
14807 REFIID riid,
14808 _COM_Outptr_ void **ppStateObject) = 0;
14809
14810 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
14811 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
14812 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
14813
14814 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
14815 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
14816 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
14817
14818 };
14819
14820
14821#else /* C style interface */
14822
14823 typedef struct ID3D12Device5Vtbl
14824 {
14825 BEGIN_INTERFACE
14826
14827 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14828 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14829 ID3D12Device5 * This,
14830 REFIID riid,
14831 _COM_Outptr_ void **ppvObject);
14832
14833 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14834 ULONG ( STDMETHODCALLTYPE *AddRef )(
14835 ID3D12Device5 * This);
14836
14837 DECLSPEC_XFGVIRT(IUnknown, Release)
14838 ULONG ( STDMETHODCALLTYPE *Release )(
14839 ID3D12Device5 * This);
14840
14841 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
14842 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
14843 ID3D12Device5 * This,
14844 _In_ REFGUID guid,
14845 _Inout_ UINT *pDataSize,
14846 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
14847
14848 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
14849 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
14850 ID3D12Device5 * This,
14851 _In_ REFGUID guid,
14852 _In_ UINT DataSize,
14853 _In_reads_bytes_opt_( DataSize ) const void *pData);
14854
14855 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
14856 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
14857 ID3D12Device5 * This,
14858 _In_ REFGUID guid,
14859 _In_opt_ const IUnknown *pData);
14860
14861 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
14862 HRESULT ( STDMETHODCALLTYPE *SetName )(
14863 ID3D12Device5 * This,
14864 _In_z_ LPCWSTR Name);
14865
14866 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
14867 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
14868 ID3D12Device5 * This);
14869
14870 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
14871 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
14872 ID3D12Device5 * This,
14873 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
14874 REFIID riid,
14875 _COM_Outptr_ void **ppCommandQueue);
14876
14877 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
14878 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
14879 ID3D12Device5 * This,
14880 _In_ D3D12_COMMAND_LIST_TYPE type,
14881 REFIID riid,
14882 _COM_Outptr_ void **ppCommandAllocator);
14883
14884 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
14885 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
14886 ID3D12Device5 * This,
14887 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
14888 REFIID riid,
14889 _COM_Outptr_ void **ppPipelineState);
14890
14891 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
14892 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
14893 ID3D12Device5 * This,
14894 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
14895 REFIID riid,
14896 _COM_Outptr_ void **ppPipelineState);
14897
14898 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
14899 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
14900 ID3D12Device5 * This,
14901 _In_ UINT nodeMask,
14902 _In_ D3D12_COMMAND_LIST_TYPE type,
14903 _In_ ID3D12CommandAllocator *pCommandAllocator,
14904 _In_opt_ ID3D12PipelineState *pInitialState,
14905 REFIID riid,
14906 _COM_Outptr_ void **ppCommandList);
14907
14908 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
14909 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
14910 ID3D12Device5 * This,
14911 D3D12_FEATURE Feature,
14912 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
14913 UINT FeatureSupportDataSize);
14914
14915 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
14916 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
14917 ID3D12Device5 * This,
14918 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
14919 REFIID riid,
14920 _COM_Outptr_ void **ppvHeap);
14921
14922 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
14923 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
14924 ID3D12Device5 * This,
14925 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
14926
14927 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
14928 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
14929 ID3D12Device5 * This,
14930 _In_ UINT nodeMask,
14931 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
14932 _In_ SIZE_T blobLengthInBytes,
14933 REFIID riid,
14934 _COM_Outptr_ void **ppvRootSignature);
14935
14936 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
14937 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
14938 ID3D12Device5 * This,
14939 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
14940 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14941
14942 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
14943 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
14944 ID3D12Device5 * This,
14945 _In_opt_ ID3D12Resource *pResource,
14946 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
14947 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14948
14949 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
14950 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
14951 ID3D12Device5 * This,
14952 _In_opt_ ID3D12Resource *pResource,
14953 _In_opt_ ID3D12Resource *pCounterResource,
14954 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
14955 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14956
14957 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
14958 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
14959 ID3D12Device5 * This,
14960 _In_opt_ ID3D12Resource *pResource,
14961 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
14962 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14963
14964 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
14965 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
14966 ID3D12Device5 * This,
14967 _In_opt_ ID3D12Resource *pResource,
14968 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
14969 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14970
14971 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
14972 void ( STDMETHODCALLTYPE *CreateSampler )(
14973 ID3D12Device5 * This,
14974 _In_ const D3D12_SAMPLER_DESC *pDesc,
14975 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
14976
14977 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
14978 void ( STDMETHODCALLTYPE *CopyDescriptors )(
14979 ID3D12Device5 * This,
14980 _In_ UINT NumDestDescriptorRanges,
14981 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
14982 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
14983 _In_ UINT NumSrcDescriptorRanges,
14984 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
14985 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
14986 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
14987
14988 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
14989 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
14990 ID3D12Device5 * This,
14991 _In_ UINT NumDescriptors,
14992 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
14993 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
14994 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
14995
14996 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
14997#if !defined(_WIN32)
14998 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
14999 ID3D12Device5 * This,
15000 _In_ UINT visibleMask,
15001 _In_ UINT numResourceDescs,
15002 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15003
15004#else
15005 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15006 ID3D12Device5 * This,
15007 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15008 _In_ UINT visibleMask,
15009 _In_ UINT numResourceDescs,
15010 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15011
15012#endif
15013
15014 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
15015#if !defined(_WIN32)
15016 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15017 ID3D12Device5 * This,
15018 _In_ UINT nodeMask,
15019 D3D12_HEAP_TYPE heapType);
15020
15021#else
15022 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15023 ID3D12Device5 * This,
15024 D3D12_HEAP_PROPERTIES * RetVal,
15025 _In_ UINT nodeMask,
15026 D3D12_HEAP_TYPE heapType);
15027
15028#endif
15029
15030 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
15031 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
15032 ID3D12Device5 * This,
15033 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15034 D3D12_HEAP_FLAGS HeapFlags,
15035 _In_ const D3D12_RESOURCE_DESC *pDesc,
15036 D3D12_RESOURCE_STATES InitialResourceState,
15037 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15038 REFIID riidResource,
15039 _COM_Outptr_opt_ void **ppvResource);
15040
15041 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
15042 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
15043 ID3D12Device5 * This,
15044 _In_ const D3D12_HEAP_DESC *pDesc,
15045 REFIID riid,
15046 _COM_Outptr_opt_ void **ppvHeap);
15047
15048 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
15049 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
15050 ID3D12Device5 * This,
15051 _In_ ID3D12Heap *pHeap,
15052 UINT64 HeapOffset,
15053 _In_ const D3D12_RESOURCE_DESC *pDesc,
15054 D3D12_RESOURCE_STATES InitialState,
15055 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15056 REFIID riid,
15057 _COM_Outptr_opt_ void **ppvResource);
15058
15059 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
15060 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
15061 ID3D12Device5 * This,
15062 _In_ const D3D12_RESOURCE_DESC *pDesc,
15063 D3D12_RESOURCE_STATES InitialState,
15064 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15065 REFIID riid,
15066 _COM_Outptr_opt_ void **ppvResource);
15067
15068 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
15069 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
15070 ID3D12Device5 * This,
15071 _In_ ID3D12DeviceChild *pObject,
15072 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
15073 DWORD Access,
15074 _In_opt_ LPCWSTR Name,
15075 _Out_ HANDLE *pHandle);
15076
15077 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
15078 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
15079 ID3D12Device5 * This,
15080 _In_ HANDLE NTHandle,
15081 REFIID riid,
15082 _COM_Outptr_opt_ void **ppvObj);
15083
15084 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
15085 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
15086 ID3D12Device5 * This,
15087 _In_ LPCWSTR Name,
15088 DWORD Access,
15089 /* [annotation][out] */
15090 _Out_ HANDLE *pNTHandle);
15091
15092 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
15093 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
15094 ID3D12Device5 * This,
15095 UINT NumObjects,
15096 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15097
15098 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
15099 HRESULT ( STDMETHODCALLTYPE *Evict )(
15100 ID3D12Device5 * This,
15101 UINT NumObjects,
15102 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15103
15104 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
15105 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
15106 ID3D12Device5 * This,
15107 UINT64 InitialValue,
15108 D3D12_FENCE_FLAGS Flags,
15109 REFIID riid,
15110 _COM_Outptr_ void **ppFence);
15111
15112 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
15113 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
15114 ID3D12Device5 * This);
15115
15116 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
15117 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
15118 ID3D12Device5 * This,
15119 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
15120 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
15121 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
15122 UINT64 BaseOffset,
15123 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
15124 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
15125 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
15126 _Out_opt_ UINT64 *pTotalBytes);
15127
15128 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
15129 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
15130 ID3D12Device5 * This,
15131 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
15132 REFIID riid,
15133 _COM_Outptr_opt_ void **ppvHeap);
15134
15135 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
15136 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
15137 ID3D12Device5 * This,
15138 BOOL Enable);
15139
15140 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
15141 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
15142 ID3D12Device5 * This,
15143 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
15144 _In_opt_ ID3D12RootSignature *pRootSignature,
15145 REFIID riid,
15146 _COM_Outptr_opt_ void **ppvCommandSignature);
15147
15148 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
15149 void ( STDMETHODCALLTYPE *GetResourceTiling )(
15150 ID3D12Device5 * This,
15151 _In_ ID3D12Resource *pTiledResource,
15152 _Out_opt_ UINT *pNumTilesForEntireResource,
15153 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
15154 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
15155 _Inout_opt_ UINT *pNumSubresourceTilings,
15156 _In_ UINT FirstSubresourceTilingToGet,
15157 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
15158
15159 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
15160#if !defined(_WIN32)
15161 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
15162 ID3D12Device5 * This);
15163
15164#else
15165 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
15166 ID3D12Device5 * This,
15167 LUID * RetVal);
15168
15169#endif
15170
15171 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
15172 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
15173 ID3D12Device5 * This,
15174 _In_reads_(BlobLength) const void *pLibraryBlob,
15175 SIZE_T BlobLength,
15176 REFIID riid,
15177 _COM_Outptr_ void **ppPipelineLibrary);
15178
15179 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
15180 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
15181 ID3D12Device5 * This,
15182 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
15183 _In_reads_(NumFences) const UINT64 *pFenceValues,
15184 UINT NumFences,
15185 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
15186 HANDLE hEvent);
15187
15188 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
15189 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
15190 ID3D12Device5 * This,
15191 UINT NumObjects,
15192 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
15193 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
15194
15195 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
15196 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
15197 ID3D12Device5 * This,
15198 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
15199 REFIID riid,
15200 _COM_Outptr_ void **ppPipelineState);
15201
15202 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
15203 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
15204 ID3D12Device5 * This,
15205 _In_ const void *pAddress,
15206 REFIID riid,
15207 _COM_Outptr_ void **ppvHeap);
15208
15209 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
15210 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
15211 ID3D12Device5 * This,
15212 _In_ HANDLE hFileMapping,
15213 REFIID riid,
15214 _COM_Outptr_ void **ppvHeap);
15215
15216 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
15217 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
15218 ID3D12Device5 * This,
15219 D3D12_RESIDENCY_FLAGS Flags,
15220 UINT NumObjects,
15221 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
15222 _In_ ID3D12Fence *pFenceToSignal,
15223 UINT64 FenceValueToSignal);
15224
15225 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
15226 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
15227 ID3D12Device5 * This,
15228 _In_ UINT nodeMask,
15229 _In_ D3D12_COMMAND_LIST_TYPE type,
15230 _In_ D3D12_COMMAND_LIST_FLAGS flags,
15231 REFIID riid,
15232 _COM_Outptr_ void **ppCommandList);
15233
15234 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
15235 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
15236 ID3D12Device5 * This,
15237 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
15238 _In_ REFIID riid,
15239 _COM_Outptr_ void **ppSession);
15240
15241 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
15242 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
15243 ID3D12Device5 * This,
15244 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15245 D3D12_HEAP_FLAGS HeapFlags,
15246 _In_ const D3D12_RESOURCE_DESC *pDesc,
15247 D3D12_RESOURCE_STATES InitialResourceState,
15248 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15249 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15250 REFIID riidResource,
15251 _COM_Outptr_opt_ void **ppvResource);
15252
15253 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
15254 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
15255 ID3D12Device5 * This,
15256 _In_ const D3D12_HEAP_DESC *pDesc,
15257 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15258 REFIID riid,
15259 _COM_Outptr_opt_ void **ppvHeap);
15260
15261 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
15262 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
15263 ID3D12Device5 * This,
15264 _In_ const D3D12_RESOURCE_DESC *pDesc,
15265 D3D12_RESOURCE_STATES InitialState,
15266 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15267 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
15268 REFIID riid,
15269 _COM_Outptr_opt_ void **ppvResource);
15270
15271 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
15272#if !defined(_WIN32)
15273 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
15274 ID3D12Device5 * This,
15275 UINT visibleMask,
15276 UINT numResourceDescs,
15277 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
15278 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
15279
15280#else
15281 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
15282 ID3D12Device5 * This,
15283 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15284 UINT visibleMask,
15285 UINT numResourceDescs,
15286 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
15287 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
15288
15289#endif
15290
15291 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
15292 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
15293 ID3D12Device5 * This,
15294 _In_ ID3D12LifetimeOwner *pOwner,
15295 REFIID riid,
15296 _COM_Outptr_ void **ppvTracker);
15297
15298 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
15299 void ( STDMETHODCALLTYPE *RemoveDevice )(
15300 ID3D12Device5 * This);
15301
15302 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
15303 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
15304 ID3D12Device5 * This,
15305 _Inout_ UINT *pNumMetaCommands,
15306 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
15307
15308 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
15309 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
15310 ID3D12Device5 * This,
15311 _In_ REFGUID CommandId,
15312 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
15313 _Out_opt_ UINT *pTotalStructureSizeInBytes,
15314 _Inout_ UINT *pParameterCount,
15315 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
15316
15317 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
15318 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
15319 ID3D12Device5 * This,
15320 _In_ REFGUID CommandId,
15321 _In_ UINT NodeMask,
15322 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
15323 _In_ SIZE_T CreationParametersDataSizeInBytes,
15324 REFIID riid,
15325 _COM_Outptr_ void **ppMetaCommand);
15326
15327 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
15328 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
15329 ID3D12Device5 * This,
15330 const D3D12_STATE_OBJECT_DESC *pDesc,
15331 REFIID riid,
15332 _COM_Outptr_ void **ppStateObject);
15333
15334 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
15335 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
15336 ID3D12Device5 * This,
15337 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
15338 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
15339
15340 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
15341 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
15342 ID3D12Device5 * This,
15343 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
15344 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
15345
15346 END_INTERFACE
15347 } ID3D12Device5Vtbl;
15348
15349 interface ID3D12Device5
15350 {
15351 CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
15352 };
15353
15354
15355
15356#ifdef COBJMACROS
15357
15358
15359#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
15360 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15361
15362#define ID3D12Device5_AddRef(This) \
15363 ( (This)->lpVtbl -> AddRef(This) )
15364
15365#define ID3D12Device5_Release(This) \
15366 ( (This)->lpVtbl -> Release(This) )
15367
15368
15369#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
15370 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
15371
15372#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
15373 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
15374
15375#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
15376 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
15377
15378#define ID3D12Device5_SetName(This,Name) \
15379 ( (This)->lpVtbl -> SetName(This,Name) )
15380
15381
15382#define ID3D12Device5_GetNodeCount(This) \
15383 ( (This)->lpVtbl -> GetNodeCount(This) )
15384
15385#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
15386 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
15387
15388#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
15389 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
15390
15391#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
15392 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
15393
15394#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
15395 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
15396
15397#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
15398 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
15399
15400#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
15401 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
15402
15403#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
15404 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
15405
15406#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
15407 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
15408
15409#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
15410 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
15411
15412#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
15413 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
15414
15415#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
15416 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
15417
15418#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
15419 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
15420
15421#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
15422 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
15423
15424#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
15425 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
15426
15427#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
15428 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
15429
15430#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
15431 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
15432
15433#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
15434 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
15435#if !defined(_WIN32)
15436
15437#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
15438 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
15439#else
15440#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
15441 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
15442#endif
15443#if !defined(_WIN32)
15444
15445#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \
15446 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
15447#else
15448#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
15449 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
15450#endif
15451
15452#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
15453 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
15454
15455#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
15456 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
15457
15458#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
15459 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
15460
15461#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
15462 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
15463
15464#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
15465 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
15466
15467#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
15468 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
15469
15470#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
15471 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
15472
15473#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
15474 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
15475
15476#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
15477 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
15478
15479#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
15480 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
15481
15482#define ID3D12Device5_GetDeviceRemovedReason(This) \
15483 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
15484
15485#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
15486 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
15487
15488#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
15489 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
15490
15491#define ID3D12Device5_SetStablePowerState(This,Enable) \
15492 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
15493
15494#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
15495 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
15496
15497#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
15498 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
15499#if !defined(_WIN32)
15500
15501#define ID3D12Device5_GetAdapterLuid(This) \
15502 ( (This)->lpVtbl -> GetAdapterLuid(This) )
15503#else
15504#define ID3D12Device5_GetAdapterLuid(This,RetVal) \
15505 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
15506#endif
15507
15508
15509#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
15510 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
15511
15512#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
15513 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
15514
15515#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
15516 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
15517
15518
15519#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
15520 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
15521
15522
15523#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
15524 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
15525
15526#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
15527 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
15528
15529#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
15530 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
15531
15532
15533#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
15534 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
15535
15536#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
15537 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
15538
15539#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
15540 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
15541
15542#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
15543 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
15544
15545#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
15546 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
15547#if !defined(_WIN32)
15548
15549#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
15550 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
15551#else
15552#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
15553 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
15554#endif
15555
15556
15557#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
15558 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
15559
15560#define ID3D12Device5_RemoveDevice(This) \
15561 ( (This)->lpVtbl -> RemoveDevice(This) )
15562
15563#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
15564 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
15565
15566#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
15567 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
15568
15569#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
15570 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
15571
15572#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
15573 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
15574
15575#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
15576 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
15577
15578#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
15579 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
15580
15581#endif /* COBJMACROS */
15582
15583
15584#endif /* C style interface */
15585
15586
15587
15588
15589#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
15590
15591
15592/* interface __MIDL_itf_d3d12_0000_0037 */
15593/* [local] */
15594
15595typedef
15596enum D3D12_AUTO_BREADCRUMB_OP
15597 {
15598 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0,
15599 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1,
15600 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2,
15601 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3,
15602 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4,
15603 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5,
15604 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6,
15605 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7,
15606 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8,
15607 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9,
15608 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10,
15609 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11,
15610 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12,
15611 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13,
15612 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14,
15613 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15,
15614 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16,
15615 D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17,
15616 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18,
15617 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19,
15618 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20,
15619 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21,
15620 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22,
15621 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23,
15622 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24,
15623 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25,
15624 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26,
15625 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27,
15626 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28,
15627 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29,
15628 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30,
15629 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
15630 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
15631 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
15632 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34,
15633 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35,
15634 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36,
15635 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37,
15636 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38,
15637 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39,
15638 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40,
15639 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41,
15640 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42,
15641 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43,
15642 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44,
15643 D3D12_AUTO_BREADCRUMB_OP_BARRIER = 45,
15644 D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = 46,
15645 D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = 47,
15646 D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = 48
15647 } D3D12_AUTO_BREADCRUMB_OP;
15648
15649typedef struct D3D12_AUTO_BREADCRUMB_NODE
15650 {
15651 const char *pCommandListDebugNameA;
15652 const wchar_t *pCommandListDebugNameW;
15653 const char *pCommandQueueDebugNameA;
15654 const wchar_t *pCommandQueueDebugNameW;
15655 ID3D12GraphicsCommandList *pCommandList;
15656 ID3D12CommandQueue *pCommandQueue;
15657 UINT32 BreadcrumbCount;
15658 const UINT32 *pLastBreadcrumbValue;
15659 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
15660 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
15661 } D3D12_AUTO_BREADCRUMB_NODE;
15662
15663typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
15664 {
15665 UINT BreadcrumbIndex;
15666 const wchar_t *pContextString;
15667 } D3D12_DRED_BREADCRUMB_CONTEXT;
15668
15669typedef struct D3D12_AUTO_BREADCRUMB_NODE1
15670 {
15671 const char *pCommandListDebugNameA;
15672 const wchar_t *pCommandListDebugNameW;
15673 const char *pCommandQueueDebugNameA;
15674 const wchar_t *pCommandQueueDebugNameW;
15675 ID3D12GraphicsCommandList *pCommandList;
15676 ID3D12CommandQueue *pCommandQueue;
15677 UINT BreadcrumbCount;
15678 const UINT *pLastBreadcrumbValue;
15679 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
15680 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
15681 UINT BreadcrumbContextsCount;
15682 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
15683 } D3D12_AUTO_BREADCRUMB_NODE1;
15684
15685typedef
15686enum D3D12_DRED_VERSION
15687 {
15688 D3D12_DRED_VERSION_1_0 = 0x1,
15689 D3D12_DRED_VERSION_1_1 = 0x2,
15690 D3D12_DRED_VERSION_1_2 = 0x3,
15691 D3D12_DRED_VERSION_1_3 = 0x4
15692 } D3D12_DRED_VERSION;
15693
15694typedef
15695enum D3D12_DRED_FLAGS
15696 {
15697 D3D12_DRED_FLAG_NONE = 0,
15698 D3D12_DRED_FLAG_FORCE_ENABLE = 1,
15699 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
15700 } D3D12_DRED_FLAGS;
15701
15702DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )
15703typedef
15704enum D3D12_DRED_ENABLEMENT
15705 {
15706 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
15707 D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
15708 D3D12_DRED_ENABLEMENT_FORCED_ON = 2
15709 } D3D12_DRED_ENABLEMENT;
15710
15711typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
15712 {
15713 _In_ D3D12_DRED_FLAGS Flags;
15714 _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
15715 } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
15716
15717typedef
15718enum D3D12_DRED_ALLOCATION_TYPE
15719 {
15720 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
15721 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
15722 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
15723 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
15724 D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
15725 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
15726 D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
15727 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
15728 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
15729 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
15730 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
15731 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
15732 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
15733 D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
15734 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
15735 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
15736 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
15737 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
15738 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
15739 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
15740 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
15741 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
15742 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
15743 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
15744 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
15745 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
15746 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
15747 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
15748 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
15749 } D3D12_DRED_ALLOCATION_TYPE;
15750
15751typedef struct D3D12_DRED_ALLOCATION_NODE
15752 {
15753 const char *ObjectNameA;
15754 const wchar_t *ObjectNameW;
15755 D3D12_DRED_ALLOCATION_TYPE AllocationType;
15756 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
15757 } D3D12_DRED_ALLOCATION_NODE;
15758
15759typedef struct D3D12_DRED_ALLOCATION_NODE1
15760 {
15761 const char *ObjectNameA;
15762 const wchar_t *ObjectNameW;
15763 D3D12_DRED_ALLOCATION_TYPE AllocationType;
15764 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
15765 const IUnknown *pObject;
15766 } D3D12_DRED_ALLOCATION_NODE1;
15767
15768typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
15769 {
15770 _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
15771 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
15772
15773typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
15774 {
15775 _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
15776 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
15777
15778typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
15779 {
15780 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
15781 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
15782 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
15783 } D3D12_DRED_PAGE_FAULT_OUTPUT;
15784
15785typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
15786 {
15787 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
15788 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
15789 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
15790 } D3D12_DRED_PAGE_FAULT_OUTPUT1;
15791
15792typedef
15793enum D3D12_DRED_PAGE_FAULT_FLAGS
15794 {
15795 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0
15796 } D3D12_DRED_PAGE_FAULT_FLAGS;
15797
15798DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )
15799typedef
15800enum D3D12_DRED_DEVICE_STATE
15801 {
15802 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0,
15803 D3D12_DRED_DEVICE_STATE_HUNG = 3,
15804 D3D12_DRED_DEVICE_STATE_FAULT = 6,
15805 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7
15806 } D3D12_DRED_DEVICE_STATE;
15807
15808typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
15809 {
15810 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
15811 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
15812 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
15813 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
15814 } D3D12_DRED_PAGE_FAULT_OUTPUT2;
15815
15816typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
15817 {
15818 HRESULT DeviceRemovedReason;
15819 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
15820 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
15821 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
15822
15823typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
15824 {
15825 HRESULT DeviceRemovedReason;
15826 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
15827 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
15828 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
15829
15830typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
15831 {
15832 HRESULT DeviceRemovedReason;
15833 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
15834 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
15835 D3D12_DRED_DEVICE_STATE DeviceState;
15836 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
15837
15838typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
15839 {
15840 D3D12_DRED_VERSION Version;
15841 union
15842 {
15843 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
15844 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
15845 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
15846 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
15847 } ;
15848 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
15849
15850
15851
15852extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_c_ifspec;
15853extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0037_v0_0_s_ifspec;
15854
15855#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
15856#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
15857
15858/* interface ID3D12DeviceRemovedExtendedDataSettings */
15859/* [unique][local][object][uuid] */
15860
15861
15862EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings;
15863
15864#if defined(__cplusplus) && !defined(CINTERFACE)
15865
15866 MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63")
15867 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
15868 {
15869 public:
15870 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
15871 D3D12_DRED_ENABLEMENT Enablement) = 0;
15872
15873 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
15874 D3D12_DRED_ENABLEMENT Enablement) = 0;
15875
15876 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
15877 D3D12_DRED_ENABLEMENT Enablement) = 0;
15878
15879 };
15880
15881
15882#else /* C style interface */
15883
15884 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl
15885 {
15886 BEGIN_INTERFACE
15887
15888 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15889 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15890 ID3D12DeviceRemovedExtendedDataSettings * This,
15891 REFIID riid,
15892 _COM_Outptr_ void **ppvObject);
15893
15894 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15895 ULONG ( STDMETHODCALLTYPE *AddRef )(
15896 ID3D12DeviceRemovedExtendedDataSettings * This);
15897
15898 DECLSPEC_XFGVIRT(IUnknown, Release)
15899 ULONG ( STDMETHODCALLTYPE *Release )(
15900 ID3D12DeviceRemovedExtendedDataSettings * This);
15901
15902 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
15903 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
15904 ID3D12DeviceRemovedExtendedDataSettings * This,
15905 D3D12_DRED_ENABLEMENT Enablement);
15906
15907 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
15908 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
15909 ID3D12DeviceRemovedExtendedDataSettings * This,
15910 D3D12_DRED_ENABLEMENT Enablement);
15911
15912 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
15913 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
15914 ID3D12DeviceRemovedExtendedDataSettings * This,
15915 D3D12_DRED_ENABLEMENT Enablement);
15916
15917 END_INTERFACE
15918 } ID3D12DeviceRemovedExtendedDataSettingsVtbl;
15919
15920 interface ID3D12DeviceRemovedExtendedDataSettings
15921 {
15922 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl;
15923 };
15924
15925
15926
15927#ifdef COBJMACROS
15928
15929
15930#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \
15931 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15932
15933#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \
15934 ( (This)->lpVtbl -> AddRef(This) )
15935
15936#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \
15937 ( (This)->lpVtbl -> Release(This) )
15938
15939
15940#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \
15941 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
15942
15943#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \
15944 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
15945
15946#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \
15947 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
15948
15949#endif /* COBJMACROS */
15950
15951
15952#endif /* C style interface */
15953
15954
15955
15956
15957#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
15958
15959
15960#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
15961#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
15962
15963/* interface ID3D12DeviceRemovedExtendedDataSettings1 */
15964/* [unique][local][object][uuid] */
15965
15966
15967EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1;
15968
15969#if defined(__cplusplus) && !defined(CINTERFACE)
15970
15971 MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B")
15972 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
15973 {
15974 public:
15975 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
15976 D3D12_DRED_ENABLEMENT Enablement) = 0;
15977
15978 };
15979
15980
15981#else /* C style interface */
15982
15983 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl
15984 {
15985 BEGIN_INTERFACE
15986
15987 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15988 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15989 ID3D12DeviceRemovedExtendedDataSettings1 * This,
15990 REFIID riid,
15991 _COM_Outptr_ void **ppvObject);
15992
15993 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15994 ULONG ( STDMETHODCALLTYPE *AddRef )(
15995 ID3D12DeviceRemovedExtendedDataSettings1 * This);
15996
15997 DECLSPEC_XFGVIRT(IUnknown, Release)
15998 ULONG ( STDMETHODCALLTYPE *Release )(
15999 ID3D12DeviceRemovedExtendedDataSettings1 * This);
16000
16001 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16002 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16003 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16004 D3D12_DRED_ENABLEMENT Enablement);
16005
16006 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16007 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16008 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16009 D3D12_DRED_ENABLEMENT Enablement);
16010
16011 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16012 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16013 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16014 D3D12_DRED_ENABLEMENT Enablement);
16015
16016 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
16017 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
16018 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16019 D3D12_DRED_ENABLEMENT Enablement);
16020
16021 END_INTERFACE
16022 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
16023
16024 interface ID3D12DeviceRemovedExtendedDataSettings1
16025 {
16026 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl;
16027 };
16028
16029
16030
16031#ifdef COBJMACROS
16032
16033
16034#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \
16035 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16036
16037#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \
16038 ( (This)->lpVtbl -> AddRef(This) )
16039
16040#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \
16041 ( (This)->lpVtbl -> Release(This) )
16042
16043
16044#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \
16045 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
16046
16047#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \
16048 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
16049
16050#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \
16051 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
16052
16053
16054#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \
16055 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
16056
16057#endif /* COBJMACROS */
16058
16059
16060#endif /* C style interface */
16061
16062
16063
16064
16065#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
16066
16067
16068#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
16069#define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
16070
16071/* interface ID3D12DeviceRemovedExtendedDataSettings2 */
16072/* [unique][local][object][uuid] */
16073
16074
16075EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2;
16076
16077#if defined(__cplusplus) && !defined(CINTERFACE)
16078
16079 MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea")
16080 ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1
16081 {
16082 public:
16083 virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs(
16084 BOOL MarkersOnly) = 0;
16085
16086 };
16087
16088
16089#else /* C style interface */
16090
16091 typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl
16092 {
16093 BEGIN_INTERFACE
16094
16095 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16096 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16097 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16098 REFIID riid,
16099 _COM_Outptr_ void **ppvObject);
16100
16101 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16102 ULONG ( STDMETHODCALLTYPE *AddRef )(
16103 ID3D12DeviceRemovedExtendedDataSettings2 * This);
16104
16105 DECLSPEC_XFGVIRT(IUnknown, Release)
16106 ULONG ( STDMETHODCALLTYPE *Release )(
16107 ID3D12DeviceRemovedExtendedDataSettings2 * This);
16108
16109 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16110 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16111 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16112 D3D12_DRED_ENABLEMENT Enablement);
16113
16114 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16115 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16116 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16117 D3D12_DRED_ENABLEMENT Enablement);
16118
16119 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16120 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16121 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16122 D3D12_DRED_ENABLEMENT Enablement);
16123
16124 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
16125 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
16126 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16127 D3D12_DRED_ENABLEMENT Enablement);
16128
16129 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs)
16130 void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )(
16131 ID3D12DeviceRemovedExtendedDataSettings2 * This,
16132 BOOL MarkersOnly);
16133
16134 END_INTERFACE
16135 } ID3D12DeviceRemovedExtendedDataSettings2Vtbl;
16136
16137 interface ID3D12DeviceRemovedExtendedDataSettings2
16138 {
16139 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl;
16140 };
16141
16142
16143
16144#ifdef COBJMACROS
16145
16146
16147#define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \
16148 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16149
16150#define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \
16151 ( (This)->lpVtbl -> AddRef(This) )
16152
16153#define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \
16154 ( (This)->lpVtbl -> Release(This) )
16155
16156
16157#define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \
16158 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
16159
16160#define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \
16161 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
16162
16163#define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \
16164 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
16165
16166
16167#define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \
16168 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
16169
16170
16171#define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \
16172 ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) )
16173
16174#endif /* COBJMACROS */
16175
16176
16177#endif /* C style interface */
16178
16179
16180
16181
16182#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */
16183
16184
16185#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
16186#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
16187
16188/* interface ID3D12DeviceRemovedExtendedData */
16189/* [unique][local][object][uuid] */
16190
16191
16192EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData;
16193
16194#if defined(__cplusplus) && !defined(CINTERFACE)
16195
16196 MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71")
16197 ID3D12DeviceRemovedExtendedData : public IUnknown
16198 {
16199 public:
16200 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
16201 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0;
16202
16203 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
16204 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0;
16205
16206 };
16207
16208
16209#else /* C style interface */
16210
16211 typedef struct ID3D12DeviceRemovedExtendedDataVtbl
16212 {
16213 BEGIN_INTERFACE
16214
16215 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16216 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16217 ID3D12DeviceRemovedExtendedData * This,
16218 REFIID riid,
16219 _COM_Outptr_ void **ppvObject);
16220
16221 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16222 ULONG ( STDMETHODCALLTYPE *AddRef )(
16223 ID3D12DeviceRemovedExtendedData * This);
16224
16225 DECLSPEC_XFGVIRT(IUnknown, Release)
16226 ULONG ( STDMETHODCALLTYPE *Release )(
16227 ID3D12DeviceRemovedExtendedData * This);
16228
16229 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
16230 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
16231 ID3D12DeviceRemovedExtendedData * This,
16232 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
16233
16234 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
16235 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
16236 ID3D12DeviceRemovedExtendedData * This,
16237 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
16238
16239 END_INTERFACE
16240 } ID3D12DeviceRemovedExtendedDataVtbl;
16241
16242 interface ID3D12DeviceRemovedExtendedData
16243 {
16244 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl;
16245 };
16246
16247
16248
16249#ifdef COBJMACROS
16250
16251
16252#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \
16253 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16254
16255#define ID3D12DeviceRemovedExtendedData_AddRef(This) \
16256 ( (This)->lpVtbl -> AddRef(This) )
16257
16258#define ID3D12DeviceRemovedExtendedData_Release(This) \
16259 ( (This)->lpVtbl -> Release(This) )
16260
16261
16262#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \
16263 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
16264
16265#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \
16266 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
16267
16268#endif /* COBJMACROS */
16269
16270
16271#endif /* C style interface */
16272
16273
16274
16275
16276#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
16277
16278
16279#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
16280#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
16281
16282/* interface ID3D12DeviceRemovedExtendedData1 */
16283/* [unique][local][object][uuid] */
16284
16285
16286EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1;
16287
16288#if defined(__cplusplus) && !defined(CINTERFACE)
16289
16290 MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506")
16291 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
16292 {
16293 public:
16294 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
16295 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0;
16296
16297 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
16298 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0;
16299
16300 };
16301
16302
16303#else /* C style interface */
16304
16305 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl
16306 {
16307 BEGIN_INTERFACE
16308
16309 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16310 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16311 ID3D12DeviceRemovedExtendedData1 * This,
16312 REFIID riid,
16313 _COM_Outptr_ void **ppvObject);
16314
16315 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16316 ULONG ( STDMETHODCALLTYPE *AddRef )(
16317 ID3D12DeviceRemovedExtendedData1 * This);
16318
16319 DECLSPEC_XFGVIRT(IUnknown, Release)
16320 ULONG ( STDMETHODCALLTYPE *Release )(
16321 ID3D12DeviceRemovedExtendedData1 * This);
16322
16323 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
16324 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
16325 ID3D12DeviceRemovedExtendedData1 * This,
16326 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
16327
16328 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
16329 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
16330 ID3D12DeviceRemovedExtendedData1 * This,
16331 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
16332
16333 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
16334 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
16335 ID3D12DeviceRemovedExtendedData1 * This,
16336 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
16337
16338 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
16339 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
16340 ID3D12DeviceRemovedExtendedData1 * This,
16341 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
16342
16343 END_INTERFACE
16344 } ID3D12DeviceRemovedExtendedData1Vtbl;
16345
16346 interface ID3D12DeviceRemovedExtendedData1
16347 {
16348 CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl;
16349 };
16350
16351
16352
16353#ifdef COBJMACROS
16354
16355
16356#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \
16357 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16358
16359#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \
16360 ( (This)->lpVtbl -> AddRef(This) )
16361
16362#define ID3D12DeviceRemovedExtendedData1_Release(This) \
16363 ( (This)->lpVtbl -> Release(This) )
16364
16365
16366#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \
16367 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
16368
16369#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \
16370 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
16371
16372
16373#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \
16374 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
16375
16376#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \
16377 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
16378
16379#endif /* COBJMACROS */
16380
16381
16382#endif /* C style interface */
16383
16384
16385
16386
16387#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
16388
16389
16390#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
16391#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
16392
16393/* interface ID3D12DeviceRemovedExtendedData2 */
16394/* [unique][local][object][uuid] */
16395
16396
16397EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2;
16398
16399#if defined(__cplusplus) && !defined(CINTERFACE)
16400
16401 MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54")
16402 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
16403 {
16404 public:
16405 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
16406 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0;
16407
16408 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0;
16409
16410 };
16411
16412
16413#else /* C style interface */
16414
16415 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl
16416 {
16417 BEGIN_INTERFACE
16418
16419 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16420 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16421 ID3D12DeviceRemovedExtendedData2 * This,
16422 REFIID riid,
16423 _COM_Outptr_ void **ppvObject);
16424
16425 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16426 ULONG ( STDMETHODCALLTYPE *AddRef )(
16427 ID3D12DeviceRemovedExtendedData2 * This);
16428
16429 DECLSPEC_XFGVIRT(IUnknown, Release)
16430 ULONG ( STDMETHODCALLTYPE *Release )(
16431 ID3D12DeviceRemovedExtendedData2 * This);
16432
16433 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
16434 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
16435 ID3D12DeviceRemovedExtendedData2 * This,
16436 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
16437
16438 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
16439 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
16440 ID3D12DeviceRemovedExtendedData2 * This,
16441 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
16442
16443 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
16444 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
16445 ID3D12DeviceRemovedExtendedData2 * This,
16446 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
16447
16448 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
16449 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
16450 ID3D12DeviceRemovedExtendedData2 * This,
16451 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
16452
16453 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2)
16454 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )(
16455 ID3D12DeviceRemovedExtendedData2 * This,
16456 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
16457
16458 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState)
16459 D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )(
16460 ID3D12DeviceRemovedExtendedData2 * This);
16461
16462 END_INTERFACE
16463 } ID3D12DeviceRemovedExtendedData2Vtbl;
16464
16465 interface ID3D12DeviceRemovedExtendedData2
16466 {
16467 CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl;
16468 };
16469
16470
16471
16472#ifdef COBJMACROS
16473
16474
16475#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \
16476 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16477
16478#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \
16479 ( (This)->lpVtbl -> AddRef(This) )
16480
16481#define ID3D12DeviceRemovedExtendedData2_Release(This) \
16482 ( (This)->lpVtbl -> Release(This) )
16483
16484
16485#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \
16486 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
16487
16488#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \
16489 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
16490
16491
16492#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \
16493 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
16494
16495#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \
16496 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
16497
16498
16499#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \
16500 ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) )
16501
16502#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \
16503 ( (This)->lpVtbl -> GetDeviceState(This) )
16504
16505#endif /* COBJMACROS */
16506
16507
16508#endif /* C style interface */
16509
16510
16511
16512
16513#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
16514
16515
16516/* interface __MIDL_itf_d3d12_0000_0043 */
16517/* [local] */
16518
16519typedef
16520enum D3D12_BACKGROUND_PROCESSING_MODE
16521 {
16522 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
16523 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) ,
16524 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) ,
16525 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 )
16526 } D3D12_BACKGROUND_PROCESSING_MODE;
16527
16528typedef
16529enum D3D12_MEASUREMENTS_ACTION
16530 {
16531 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
16532 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) ,
16533 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) ,
16534 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 )
16535 } D3D12_MEASUREMENTS_ACTION;
16536
16537
16538
16539extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_c_ifspec;
16540extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0043_v0_0_s_ifspec;
16541
16542#ifndef __ID3D12Device6_INTERFACE_DEFINED__
16543#define __ID3D12Device6_INTERFACE_DEFINED__
16544
16545/* interface ID3D12Device6 */
16546/* [unique][local][object][uuid] */
16547
16548
16549EXTERN_C const IID IID_ID3D12Device6;
16550
16551#if defined(__cplusplus) && !defined(CINTERFACE)
16552
16553 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
16554 ID3D12Device6 : public ID3D12Device5
16555 {
16556 public:
16557 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
16558 D3D12_BACKGROUND_PROCESSING_MODE Mode,
16559 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
16560 _In_opt_ HANDLE hEventToSignalUponCompletion,
16561 _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0;
16562
16563 };
16564
16565
16566#else /* C style interface */
16567
16568 typedef struct ID3D12Device6Vtbl
16569 {
16570 BEGIN_INTERFACE
16571
16572 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16573 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16574 ID3D12Device6 * This,
16575 REFIID riid,
16576 _COM_Outptr_ void **ppvObject);
16577
16578 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16579 ULONG ( STDMETHODCALLTYPE *AddRef )(
16580 ID3D12Device6 * This);
16581
16582 DECLSPEC_XFGVIRT(IUnknown, Release)
16583 ULONG ( STDMETHODCALLTYPE *Release )(
16584 ID3D12Device6 * This);
16585
16586 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
16587 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
16588 ID3D12Device6 * This,
16589 _In_ REFGUID guid,
16590 _Inout_ UINT *pDataSize,
16591 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
16592
16593 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
16594 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
16595 ID3D12Device6 * This,
16596 _In_ REFGUID guid,
16597 _In_ UINT DataSize,
16598 _In_reads_bytes_opt_( DataSize ) const void *pData);
16599
16600 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
16601 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
16602 ID3D12Device6 * This,
16603 _In_ REFGUID guid,
16604 _In_opt_ const IUnknown *pData);
16605
16606 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
16607 HRESULT ( STDMETHODCALLTYPE *SetName )(
16608 ID3D12Device6 * This,
16609 _In_z_ LPCWSTR Name);
16610
16611 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
16612 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
16613 ID3D12Device6 * This);
16614
16615 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
16616 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
16617 ID3D12Device6 * This,
16618 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
16619 REFIID riid,
16620 _COM_Outptr_ void **ppCommandQueue);
16621
16622 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
16623 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
16624 ID3D12Device6 * This,
16625 _In_ D3D12_COMMAND_LIST_TYPE type,
16626 REFIID riid,
16627 _COM_Outptr_ void **ppCommandAllocator);
16628
16629 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
16630 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
16631 ID3D12Device6 * This,
16632 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
16633 REFIID riid,
16634 _COM_Outptr_ void **ppPipelineState);
16635
16636 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
16637 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
16638 ID3D12Device6 * This,
16639 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
16640 REFIID riid,
16641 _COM_Outptr_ void **ppPipelineState);
16642
16643 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
16644 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
16645 ID3D12Device6 * This,
16646 _In_ UINT nodeMask,
16647 _In_ D3D12_COMMAND_LIST_TYPE type,
16648 _In_ ID3D12CommandAllocator *pCommandAllocator,
16649 _In_opt_ ID3D12PipelineState *pInitialState,
16650 REFIID riid,
16651 _COM_Outptr_ void **ppCommandList);
16652
16653 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
16654 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
16655 ID3D12Device6 * This,
16656 D3D12_FEATURE Feature,
16657 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
16658 UINT FeatureSupportDataSize);
16659
16660 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
16661 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
16662 ID3D12Device6 * This,
16663 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
16664 REFIID riid,
16665 _COM_Outptr_ void **ppvHeap);
16666
16667 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
16668 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
16669 ID3D12Device6 * This,
16670 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
16671
16672 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
16673 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
16674 ID3D12Device6 * This,
16675 _In_ UINT nodeMask,
16676 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
16677 _In_ SIZE_T blobLengthInBytes,
16678 REFIID riid,
16679 _COM_Outptr_ void **ppvRootSignature);
16680
16681 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
16682 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
16683 ID3D12Device6 * This,
16684 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
16685 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16686
16687 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
16688 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
16689 ID3D12Device6 * This,
16690 _In_opt_ ID3D12Resource *pResource,
16691 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
16692 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16693
16694 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
16695 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
16696 ID3D12Device6 * This,
16697 _In_opt_ ID3D12Resource *pResource,
16698 _In_opt_ ID3D12Resource *pCounterResource,
16699 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
16700 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16701
16702 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
16703 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
16704 ID3D12Device6 * This,
16705 _In_opt_ ID3D12Resource *pResource,
16706 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
16707 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16708
16709 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
16710 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
16711 ID3D12Device6 * This,
16712 _In_opt_ ID3D12Resource *pResource,
16713 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
16714 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16715
16716 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
16717 void ( STDMETHODCALLTYPE *CreateSampler )(
16718 ID3D12Device6 * This,
16719 _In_ const D3D12_SAMPLER_DESC *pDesc,
16720 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
16721
16722 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
16723 void ( STDMETHODCALLTYPE *CopyDescriptors )(
16724 ID3D12Device6 * This,
16725 _In_ UINT NumDestDescriptorRanges,
16726 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
16727 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
16728 _In_ UINT NumSrcDescriptorRanges,
16729 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
16730 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
16731 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16732
16733 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
16734 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
16735 ID3D12Device6 * This,
16736 _In_ UINT NumDescriptors,
16737 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
16738 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
16739 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
16740
16741 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
16742#if !defined(_WIN32)
16743 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
16744 ID3D12Device6 * This,
16745 _In_ UINT visibleMask,
16746 _In_ UINT numResourceDescs,
16747 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
16748
16749#else
16750 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
16751 ID3D12Device6 * This,
16752 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16753 _In_ UINT visibleMask,
16754 _In_ UINT numResourceDescs,
16755 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
16756
16757#endif
16758
16759 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
16760#if !defined(_WIN32)
16761 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
16762 ID3D12Device6 * This,
16763 _In_ UINT nodeMask,
16764 D3D12_HEAP_TYPE heapType);
16765
16766#else
16767 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
16768 ID3D12Device6 * This,
16769 D3D12_HEAP_PROPERTIES * RetVal,
16770 _In_ UINT nodeMask,
16771 D3D12_HEAP_TYPE heapType);
16772
16773#endif
16774
16775 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
16776 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
16777 ID3D12Device6 * This,
16778 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16779 D3D12_HEAP_FLAGS HeapFlags,
16780 _In_ const D3D12_RESOURCE_DESC *pDesc,
16781 D3D12_RESOURCE_STATES InitialResourceState,
16782 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16783 REFIID riidResource,
16784 _COM_Outptr_opt_ void **ppvResource);
16785
16786 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
16787 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
16788 ID3D12Device6 * This,
16789 _In_ const D3D12_HEAP_DESC *pDesc,
16790 REFIID riid,
16791 _COM_Outptr_opt_ void **ppvHeap);
16792
16793 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
16794 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
16795 ID3D12Device6 * This,
16796 _In_ ID3D12Heap *pHeap,
16797 UINT64 HeapOffset,
16798 _In_ const D3D12_RESOURCE_DESC *pDesc,
16799 D3D12_RESOURCE_STATES InitialState,
16800 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16801 REFIID riid,
16802 _COM_Outptr_opt_ void **ppvResource);
16803
16804 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
16805 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
16806 ID3D12Device6 * This,
16807 _In_ const D3D12_RESOURCE_DESC *pDesc,
16808 D3D12_RESOURCE_STATES InitialState,
16809 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16810 REFIID riid,
16811 _COM_Outptr_opt_ void **ppvResource);
16812
16813 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
16814 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
16815 ID3D12Device6 * This,
16816 _In_ ID3D12DeviceChild *pObject,
16817 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
16818 DWORD Access,
16819 _In_opt_ LPCWSTR Name,
16820 _Out_ HANDLE *pHandle);
16821
16822 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
16823 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
16824 ID3D12Device6 * This,
16825 _In_ HANDLE NTHandle,
16826 REFIID riid,
16827 _COM_Outptr_opt_ void **ppvObj);
16828
16829 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
16830 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
16831 ID3D12Device6 * This,
16832 _In_ LPCWSTR Name,
16833 DWORD Access,
16834 /* [annotation][out] */
16835 _Out_ HANDLE *pNTHandle);
16836
16837 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
16838 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
16839 ID3D12Device6 * This,
16840 UINT NumObjects,
16841 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16842
16843 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
16844 HRESULT ( STDMETHODCALLTYPE *Evict )(
16845 ID3D12Device6 * This,
16846 UINT NumObjects,
16847 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16848
16849 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
16850 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
16851 ID3D12Device6 * This,
16852 UINT64 InitialValue,
16853 D3D12_FENCE_FLAGS Flags,
16854 REFIID riid,
16855 _COM_Outptr_ void **ppFence);
16856
16857 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
16858 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
16859 ID3D12Device6 * This);
16860
16861 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
16862 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
16863 ID3D12Device6 * This,
16864 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
16865 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16866 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16867 UINT64 BaseOffset,
16868 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16869 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16870 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16871 _Out_opt_ UINT64 *pTotalBytes);
16872
16873 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
16874 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
16875 ID3D12Device6 * This,
16876 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
16877 REFIID riid,
16878 _COM_Outptr_opt_ void **ppvHeap);
16879
16880 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
16881 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
16882 ID3D12Device6 * This,
16883 BOOL Enable);
16884
16885 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
16886 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
16887 ID3D12Device6 * This,
16888 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
16889 _In_opt_ ID3D12RootSignature *pRootSignature,
16890 REFIID riid,
16891 _COM_Outptr_opt_ void **ppvCommandSignature);
16892
16893 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
16894 void ( STDMETHODCALLTYPE *GetResourceTiling )(
16895 ID3D12Device6 * This,
16896 _In_ ID3D12Resource *pTiledResource,
16897 _Out_opt_ UINT *pNumTilesForEntireResource,
16898 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
16899 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
16900 _Inout_opt_ UINT *pNumSubresourceTilings,
16901 _In_ UINT FirstSubresourceTilingToGet,
16902 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
16903
16904 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
16905#if !defined(_WIN32)
16906 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
16907 ID3D12Device6 * This);
16908
16909#else
16910 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
16911 ID3D12Device6 * This,
16912 LUID * RetVal);
16913
16914#endif
16915
16916 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
16917 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
16918 ID3D12Device6 * This,
16919 _In_reads_(BlobLength) const void *pLibraryBlob,
16920 SIZE_T BlobLength,
16921 REFIID riid,
16922 _COM_Outptr_ void **ppPipelineLibrary);
16923
16924 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
16925 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
16926 ID3D12Device6 * This,
16927 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
16928 _In_reads_(NumFences) const UINT64 *pFenceValues,
16929 UINT NumFences,
16930 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
16931 HANDLE hEvent);
16932
16933 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
16934 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
16935 ID3D12Device6 * This,
16936 UINT NumObjects,
16937 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16938 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
16939
16940 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
16941 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
16942 ID3D12Device6 * This,
16943 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
16944 REFIID riid,
16945 _COM_Outptr_ void **ppPipelineState);
16946
16947 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
16948 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
16949 ID3D12Device6 * This,
16950 _In_ const void *pAddress,
16951 REFIID riid,
16952 _COM_Outptr_ void **ppvHeap);
16953
16954 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
16955 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
16956 ID3D12Device6 * This,
16957 _In_ HANDLE hFileMapping,
16958 REFIID riid,
16959 _COM_Outptr_ void **ppvHeap);
16960
16961 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
16962 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
16963 ID3D12Device6 * This,
16964 D3D12_RESIDENCY_FLAGS Flags,
16965 UINT NumObjects,
16966 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16967 _In_ ID3D12Fence *pFenceToSignal,
16968 UINT64 FenceValueToSignal);
16969
16970 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
16971 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
16972 ID3D12Device6 * This,
16973 _In_ UINT nodeMask,
16974 _In_ D3D12_COMMAND_LIST_TYPE type,
16975 _In_ D3D12_COMMAND_LIST_FLAGS flags,
16976 REFIID riid,
16977 _COM_Outptr_ void **ppCommandList);
16978
16979 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
16980 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
16981 ID3D12Device6 * This,
16982 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
16983 _In_ REFIID riid,
16984 _COM_Outptr_ void **ppSession);
16985
16986 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
16987 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
16988 ID3D12Device6 * This,
16989 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16990 D3D12_HEAP_FLAGS HeapFlags,
16991 _In_ const D3D12_RESOURCE_DESC *pDesc,
16992 D3D12_RESOURCE_STATES InitialResourceState,
16993 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16994 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16995 REFIID riidResource,
16996 _COM_Outptr_opt_ void **ppvResource);
16997
16998 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
16999 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
17000 ID3D12Device6 * This,
17001 _In_ const D3D12_HEAP_DESC *pDesc,
17002 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17003 REFIID riid,
17004 _COM_Outptr_opt_ void **ppvHeap);
17005
17006 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
17007 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
17008 ID3D12Device6 * This,
17009 _In_ const D3D12_RESOURCE_DESC *pDesc,
17010 D3D12_RESOURCE_STATES InitialState,
17011 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17012 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17013 REFIID riid,
17014 _COM_Outptr_opt_ void **ppvResource);
17015
17016 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
17017#if !defined(_WIN32)
17018 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17019 ID3D12Device6 * This,
17020 UINT visibleMask,
17021 UINT numResourceDescs,
17022 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17023 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17024
17025#else
17026 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17027 ID3D12Device6 * This,
17028 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17029 UINT visibleMask,
17030 UINT numResourceDescs,
17031 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17032 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17033
17034#endif
17035
17036 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
17037 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
17038 ID3D12Device6 * This,
17039 _In_ ID3D12LifetimeOwner *pOwner,
17040 REFIID riid,
17041 _COM_Outptr_ void **ppvTracker);
17042
17043 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
17044 void ( STDMETHODCALLTYPE *RemoveDevice )(
17045 ID3D12Device6 * This);
17046
17047 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
17048 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
17049 ID3D12Device6 * This,
17050 _Inout_ UINT *pNumMetaCommands,
17051 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
17052
17053 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
17054 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
17055 ID3D12Device6 * This,
17056 _In_ REFGUID CommandId,
17057 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
17058 _Out_opt_ UINT *pTotalStructureSizeInBytes,
17059 _Inout_ UINT *pParameterCount,
17060 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
17061
17062 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
17063 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
17064 ID3D12Device6 * This,
17065 _In_ REFGUID CommandId,
17066 _In_ UINT NodeMask,
17067 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
17068 _In_ SIZE_T CreationParametersDataSizeInBytes,
17069 REFIID riid,
17070 _COM_Outptr_ void **ppMetaCommand);
17071
17072 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
17073 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
17074 ID3D12Device6 * This,
17075 const D3D12_STATE_OBJECT_DESC *pDesc,
17076 REFIID riid,
17077 _COM_Outptr_ void **ppStateObject);
17078
17079 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
17080 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
17081 ID3D12Device6 * This,
17082 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
17083 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
17084
17085 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
17086 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
17087 ID3D12Device6 * This,
17088 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
17089 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
17090
17091 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
17092 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
17093 ID3D12Device6 * This,
17094 D3D12_BACKGROUND_PROCESSING_MODE Mode,
17095 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
17096 _In_opt_ HANDLE hEventToSignalUponCompletion,
17097 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
17098
17099 END_INTERFACE
17100 } ID3D12Device6Vtbl;
17101
17102 interface ID3D12Device6
17103 {
17104 CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl;
17105 };
17106
17107
17108
17109#ifdef COBJMACROS
17110
17111
17112#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \
17113 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17114
17115#define ID3D12Device6_AddRef(This) \
17116 ( (This)->lpVtbl -> AddRef(This) )
17117
17118#define ID3D12Device6_Release(This) \
17119 ( (This)->lpVtbl -> Release(This) )
17120
17121
17122#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \
17123 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
17124
17125#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \
17126 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
17127
17128#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \
17129 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
17130
17131#define ID3D12Device6_SetName(This,Name) \
17132 ( (This)->lpVtbl -> SetName(This,Name) )
17133
17134
17135#define ID3D12Device6_GetNodeCount(This) \
17136 ( (This)->lpVtbl -> GetNodeCount(This) )
17137
17138#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
17139 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
17140
17141#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
17142 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
17143
17144#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
17145 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
17146
17147#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
17148 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
17149
17150#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
17151 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
17152
17153#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
17154 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
17155
17156#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
17157 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
17158
17159#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
17160 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
17161
17162#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
17163 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
17164
17165#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \
17166 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
17167
17168#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
17169 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
17170
17171#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
17172 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
17173
17174#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
17175 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
17176
17177#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
17178 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
17179
17180#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \
17181 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
17182
17183#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
17184 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
17185
17186#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
17187 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
17188#if !defined(_WIN32)
17189
17190#define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
17191 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
17192#else
17193#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
17194 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
17195#endif
17196#if !defined(_WIN32)
17197
17198#define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \
17199 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
17200#else
17201#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
17202 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
17203#endif
17204
17205#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
17206 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
17207
17208#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \
17209 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
17210
17211#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
17212 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
17213
17214#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
17215 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
17216
17217#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
17218 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
17219
17220#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
17221 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
17222
17223#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
17224 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
17225
17226#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \
17227 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
17228
17229#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \
17230 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
17231
17232#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \
17233 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
17234
17235#define ID3D12Device6_GetDeviceRemovedReason(This) \
17236 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
17237
17238#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
17239 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
17240
17241#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
17242 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
17243
17244#define ID3D12Device6_SetStablePowerState(This,Enable) \
17245 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
17246
17247#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
17248 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
17249
17250#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
17251 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
17252#if !defined(_WIN32)
17253
17254#define ID3D12Device6_GetAdapterLuid(This) \
17255 ( (This)->lpVtbl -> GetAdapterLuid(This) )
17256#else
17257#define ID3D12Device6_GetAdapterLuid(This,RetVal) \
17258 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
17259#endif
17260
17261
17262#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
17263 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
17264
17265#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
17266 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
17267
17268#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
17269 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
17270
17271
17272#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
17273 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
17274
17275
17276#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
17277 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
17278
17279#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
17280 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
17281
17282#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
17283 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
17284
17285
17286#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
17287 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
17288
17289#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
17290 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
17291
17292#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
17293 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
17294
17295#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
17296 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
17297
17298#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
17299 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
17300#if !defined(_WIN32)
17301
17302#define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
17303 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
17304#else
17305#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
17306 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
17307#endif
17308
17309
17310#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
17311 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
17312
17313#define ID3D12Device6_RemoveDevice(This) \
17314 ( (This)->lpVtbl -> RemoveDevice(This) )
17315
17316#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
17317 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
17318
17319#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
17320 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
17321
17322#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
17323 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
17324
17325#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \
17326 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
17327
17328#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
17329 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
17330
17331#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
17332 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
17333
17334
17335#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
17336 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
17337
17338#endif /* COBJMACROS */
17339
17340
17341#endif /* C style interface */
17342
17343
17344
17345
17346#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
17347
17348
17349/* interface __MIDL_itf_d3d12_0000_0044 */
17350/* [local] */
17351
17352DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82);
17353typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
17354 {
17355 UINT NodeIndex;
17356 UINT Count;
17357 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
17358
17359typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
17360 {
17361 UINT NodeIndex;
17362 UINT Count;
17363 GUID *pTypes;
17364 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
17365
17366typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
17367 {
17368 UINT NodeMask;
17369 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
17370 GUID ProtectionType;
17371 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
17372
17373
17374
17375extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_c_ifspec;
17376extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0044_v0_0_s_ifspec;
17377
17378#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
17379#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
17380
17381/* interface ID3D12ProtectedResourceSession1 */
17382/* [unique][local][object][uuid] */
17383
17384
17385EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
17386
17387#if defined(__cplusplus) && !defined(CINTERFACE)
17388
17389 MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409")
17390 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
17391 {
17392 public:
17393#if defined(_MSC_VER) || !defined(_WIN32)
17394 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
17395#else
17396 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1(
17397 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0;
17398#endif
17399
17400 };
17401
17402
17403#else /* C style interface */
17404
17405 typedef struct ID3D12ProtectedResourceSession1Vtbl
17406 {
17407 BEGIN_INTERFACE
17408
17409 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17410 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17411 ID3D12ProtectedResourceSession1 * This,
17412 REFIID riid,
17413 _COM_Outptr_ void **ppvObject);
17414
17415 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17416 ULONG ( STDMETHODCALLTYPE *AddRef )(
17417 ID3D12ProtectedResourceSession1 * This);
17418
17419 DECLSPEC_XFGVIRT(IUnknown, Release)
17420 ULONG ( STDMETHODCALLTYPE *Release )(
17421 ID3D12ProtectedResourceSession1 * This);
17422
17423 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17424 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17425 ID3D12ProtectedResourceSession1 * This,
17426 _In_ REFGUID guid,
17427 _Inout_ UINT *pDataSize,
17428 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17429
17430 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17431 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17432 ID3D12ProtectedResourceSession1 * This,
17433 _In_ REFGUID guid,
17434 _In_ UINT DataSize,
17435 _In_reads_bytes_opt_( DataSize ) const void *pData);
17436
17437 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17438 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17439 ID3D12ProtectedResourceSession1 * This,
17440 _In_ REFGUID guid,
17441 _In_opt_ const IUnknown *pData);
17442
17443 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17444 HRESULT ( STDMETHODCALLTYPE *SetName )(
17445 ID3D12ProtectedResourceSession1 * This,
17446 _In_z_ LPCWSTR Name);
17447
17448 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
17449 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
17450 ID3D12ProtectedResourceSession1 * This,
17451 REFIID riid,
17452 _COM_Outptr_opt_ void **ppvDevice);
17453
17454 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
17455 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
17456 ID3D12ProtectedResourceSession1 * This,
17457 REFIID riid,
17458 _COM_Outptr_opt_ void **ppFence);
17459
17460 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
17461 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
17462 ID3D12ProtectedResourceSession1 * This);
17463
17464 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
17465#if !defined(_WIN32)
17466 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
17467 ID3D12ProtectedResourceSession1 * This);
17468
17469#else
17470 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
17471 ID3D12ProtectedResourceSession1 * This,
17472 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
17473
17474#endif
17475
17476 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1)
17477#if !defined(_WIN32)
17478 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
17479 ID3D12ProtectedResourceSession1 * This);
17480
17481#else
17482 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
17483 ID3D12ProtectedResourceSession1 * This,
17484 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal);
17485
17486#endif
17487
17488 END_INTERFACE
17489 } ID3D12ProtectedResourceSession1Vtbl;
17490
17491 interface ID3D12ProtectedResourceSession1
17492 {
17493 CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl;
17494 };
17495
17496
17497
17498#ifdef COBJMACROS
17499
17500
17501#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \
17502 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17503
17504#define ID3D12ProtectedResourceSession1_AddRef(This) \
17505 ( (This)->lpVtbl -> AddRef(This) )
17506
17507#define ID3D12ProtectedResourceSession1_Release(This) \
17508 ( (This)->lpVtbl -> Release(This) )
17509
17510
17511#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \
17512 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
17513
17514#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \
17515 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
17516
17517#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \
17518 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
17519
17520#define ID3D12ProtectedResourceSession1_SetName(This,Name) \
17521 ( (This)->lpVtbl -> SetName(This,Name) )
17522
17523
17524#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \
17525 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
17526
17527
17528#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \
17529 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
17530
17531#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \
17532 ( (This)->lpVtbl -> GetSessionStatus(This) )
17533
17534#if !defined(_WIN32)
17535
17536#define ID3D12ProtectedResourceSession1_GetDesc(This) \
17537 ( (This)->lpVtbl -> GetDesc(This) )
17538#else
17539#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \
17540 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
17541#endif
17542
17543#if !defined(_WIN32)
17544
17545#define ID3D12ProtectedResourceSession1_GetDesc1(This) \
17546 ( (This)->lpVtbl -> GetDesc1(This) )
17547#else
17548#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \
17549 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
17550#endif
17551
17552#endif /* COBJMACROS */
17553
17554
17555#endif /* C style interface */
17556
17557
17558
17559
17560#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
17561
17562
17563#ifndef __ID3D12Device7_INTERFACE_DEFINED__
17564#define __ID3D12Device7_INTERFACE_DEFINED__
17565
17566/* interface ID3D12Device7 */
17567/* [unique][local][object][uuid] */
17568
17569
17570EXTERN_C const IID IID_ID3D12Device7;
17571
17572#if defined(__cplusplus) && !defined(CINTERFACE)
17573
17574 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
17575 ID3D12Device7 : public ID3D12Device6
17576 {
17577 public:
17578 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
17579 const D3D12_STATE_OBJECT_DESC *pAddition,
17580 ID3D12StateObject *pStateObjectToGrowFrom,
17581 REFIID riid,
17582 _COM_Outptr_ void **ppNewStateObject) = 0;
17583
17584 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
17585 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
17586 _In_ REFIID riid,
17587 _COM_Outptr_ void **ppSession) = 0;
17588
17589 };
17590
17591
17592#else /* C style interface */
17593
17594 typedef struct ID3D12Device7Vtbl
17595 {
17596 BEGIN_INTERFACE
17597
17598 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17599 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17600 ID3D12Device7 * This,
17601 REFIID riid,
17602 _COM_Outptr_ void **ppvObject);
17603
17604 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17605 ULONG ( STDMETHODCALLTYPE *AddRef )(
17606 ID3D12Device7 * This);
17607
17608 DECLSPEC_XFGVIRT(IUnknown, Release)
17609 ULONG ( STDMETHODCALLTYPE *Release )(
17610 ID3D12Device7 * This);
17611
17612 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17613 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17614 ID3D12Device7 * This,
17615 _In_ REFGUID guid,
17616 _Inout_ UINT *pDataSize,
17617 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17618
17619 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17620 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17621 ID3D12Device7 * This,
17622 _In_ REFGUID guid,
17623 _In_ UINT DataSize,
17624 _In_reads_bytes_opt_( DataSize ) const void *pData);
17625
17626 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17627 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17628 ID3D12Device7 * This,
17629 _In_ REFGUID guid,
17630 _In_opt_ const IUnknown *pData);
17631
17632 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17633 HRESULT ( STDMETHODCALLTYPE *SetName )(
17634 ID3D12Device7 * This,
17635 _In_z_ LPCWSTR Name);
17636
17637 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
17638 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
17639 ID3D12Device7 * This);
17640
17641 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
17642 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
17643 ID3D12Device7 * This,
17644 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
17645 REFIID riid,
17646 _COM_Outptr_ void **ppCommandQueue);
17647
17648 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
17649 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
17650 ID3D12Device7 * This,
17651 _In_ D3D12_COMMAND_LIST_TYPE type,
17652 REFIID riid,
17653 _COM_Outptr_ void **ppCommandAllocator);
17654
17655 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
17656 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
17657 ID3D12Device7 * This,
17658 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
17659 REFIID riid,
17660 _COM_Outptr_ void **ppPipelineState);
17661
17662 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
17663 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
17664 ID3D12Device7 * This,
17665 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
17666 REFIID riid,
17667 _COM_Outptr_ void **ppPipelineState);
17668
17669 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
17670 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
17671 ID3D12Device7 * This,
17672 _In_ UINT nodeMask,
17673 _In_ D3D12_COMMAND_LIST_TYPE type,
17674 _In_ ID3D12CommandAllocator *pCommandAllocator,
17675 _In_opt_ ID3D12PipelineState *pInitialState,
17676 REFIID riid,
17677 _COM_Outptr_ void **ppCommandList);
17678
17679 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
17680 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
17681 ID3D12Device7 * This,
17682 D3D12_FEATURE Feature,
17683 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
17684 UINT FeatureSupportDataSize);
17685
17686 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
17687 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
17688 ID3D12Device7 * This,
17689 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
17690 REFIID riid,
17691 _COM_Outptr_ void **ppvHeap);
17692
17693 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
17694 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
17695 ID3D12Device7 * This,
17696 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
17697
17698 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
17699 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
17700 ID3D12Device7 * This,
17701 _In_ UINT nodeMask,
17702 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
17703 _In_ SIZE_T blobLengthInBytes,
17704 REFIID riid,
17705 _COM_Outptr_ void **ppvRootSignature);
17706
17707 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
17708 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
17709 ID3D12Device7 * This,
17710 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
17711 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17712
17713 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
17714 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
17715 ID3D12Device7 * This,
17716 _In_opt_ ID3D12Resource *pResource,
17717 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
17718 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17719
17720 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
17721 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
17722 ID3D12Device7 * This,
17723 _In_opt_ ID3D12Resource *pResource,
17724 _In_opt_ ID3D12Resource *pCounterResource,
17725 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
17726 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17727
17728 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
17729 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
17730 ID3D12Device7 * This,
17731 _In_opt_ ID3D12Resource *pResource,
17732 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
17733 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17734
17735 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
17736 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
17737 ID3D12Device7 * This,
17738 _In_opt_ ID3D12Resource *pResource,
17739 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
17740 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17741
17742 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
17743 void ( STDMETHODCALLTYPE *CreateSampler )(
17744 ID3D12Device7 * This,
17745 _In_ const D3D12_SAMPLER_DESC *pDesc,
17746 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17747
17748 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
17749 void ( STDMETHODCALLTYPE *CopyDescriptors )(
17750 ID3D12Device7 * This,
17751 _In_ UINT NumDestDescriptorRanges,
17752 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
17753 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
17754 _In_ UINT NumSrcDescriptorRanges,
17755 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
17756 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
17757 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17758
17759 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
17760 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
17761 ID3D12Device7 * This,
17762 _In_ UINT NumDescriptors,
17763 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
17764 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
17765 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17766
17767 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
17768#if !defined(_WIN32)
17769 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17770 ID3D12Device7 * This,
17771 _In_ UINT visibleMask,
17772 _In_ UINT numResourceDescs,
17773 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17774
17775#else
17776 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17777 ID3D12Device7 * This,
17778 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17779 _In_ UINT visibleMask,
17780 _In_ UINT numResourceDescs,
17781 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17782
17783#endif
17784
17785 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
17786#if !defined(_WIN32)
17787 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17788 ID3D12Device7 * This,
17789 _In_ UINT nodeMask,
17790 D3D12_HEAP_TYPE heapType);
17791
17792#else
17793 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17794 ID3D12Device7 * This,
17795 D3D12_HEAP_PROPERTIES * RetVal,
17796 _In_ UINT nodeMask,
17797 D3D12_HEAP_TYPE heapType);
17798
17799#endif
17800
17801 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
17802 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
17803 ID3D12Device7 * This,
17804 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17805 D3D12_HEAP_FLAGS HeapFlags,
17806 _In_ const D3D12_RESOURCE_DESC *pDesc,
17807 D3D12_RESOURCE_STATES InitialResourceState,
17808 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17809 REFIID riidResource,
17810 _COM_Outptr_opt_ void **ppvResource);
17811
17812 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
17813 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
17814 ID3D12Device7 * This,
17815 _In_ const D3D12_HEAP_DESC *pDesc,
17816 REFIID riid,
17817 _COM_Outptr_opt_ void **ppvHeap);
17818
17819 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
17820 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
17821 ID3D12Device7 * This,
17822 _In_ ID3D12Heap *pHeap,
17823 UINT64 HeapOffset,
17824 _In_ const D3D12_RESOURCE_DESC *pDesc,
17825 D3D12_RESOURCE_STATES InitialState,
17826 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17827 REFIID riid,
17828 _COM_Outptr_opt_ void **ppvResource);
17829
17830 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
17831 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
17832 ID3D12Device7 * This,
17833 _In_ const D3D12_RESOURCE_DESC *pDesc,
17834 D3D12_RESOURCE_STATES InitialState,
17835 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17836 REFIID riid,
17837 _COM_Outptr_opt_ void **ppvResource);
17838
17839 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
17840 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
17841 ID3D12Device7 * This,
17842 _In_ ID3D12DeviceChild *pObject,
17843 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
17844 DWORD Access,
17845 _In_opt_ LPCWSTR Name,
17846 _Out_ HANDLE *pHandle);
17847
17848 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
17849 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
17850 ID3D12Device7 * This,
17851 _In_ HANDLE NTHandle,
17852 REFIID riid,
17853 _COM_Outptr_opt_ void **ppvObj);
17854
17855 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
17856 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
17857 ID3D12Device7 * This,
17858 _In_ LPCWSTR Name,
17859 DWORD Access,
17860 /* [annotation][out] */
17861 _Out_ HANDLE *pNTHandle);
17862
17863 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
17864 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
17865 ID3D12Device7 * This,
17866 UINT NumObjects,
17867 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17868
17869 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
17870 HRESULT ( STDMETHODCALLTYPE *Evict )(
17871 ID3D12Device7 * This,
17872 UINT NumObjects,
17873 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17874
17875 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
17876 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
17877 ID3D12Device7 * This,
17878 UINT64 InitialValue,
17879 D3D12_FENCE_FLAGS Flags,
17880 REFIID riid,
17881 _COM_Outptr_ void **ppFence);
17882
17883 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
17884 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
17885 ID3D12Device7 * This);
17886
17887 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
17888 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
17889 ID3D12Device7 * This,
17890 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
17891 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
17892 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
17893 UINT64 BaseOffset,
17894 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
17895 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
17896 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
17897 _Out_opt_ UINT64 *pTotalBytes);
17898
17899 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
17900 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
17901 ID3D12Device7 * This,
17902 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
17903 REFIID riid,
17904 _COM_Outptr_opt_ void **ppvHeap);
17905
17906 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
17907 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
17908 ID3D12Device7 * This,
17909 BOOL Enable);
17910
17911 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
17912 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
17913 ID3D12Device7 * This,
17914 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
17915 _In_opt_ ID3D12RootSignature *pRootSignature,
17916 REFIID riid,
17917 _COM_Outptr_opt_ void **ppvCommandSignature);
17918
17919 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
17920 void ( STDMETHODCALLTYPE *GetResourceTiling )(
17921 ID3D12Device7 * This,
17922 _In_ ID3D12Resource *pTiledResource,
17923 _Out_opt_ UINT *pNumTilesForEntireResource,
17924 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
17925 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
17926 _Inout_opt_ UINT *pNumSubresourceTilings,
17927 _In_ UINT FirstSubresourceTilingToGet,
17928 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
17929
17930 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
17931#if !defined(_WIN32)
17932 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
17933 ID3D12Device7 * This);
17934
17935#else
17936 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
17937 ID3D12Device7 * This,
17938 LUID * RetVal);
17939
17940#endif
17941
17942 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
17943 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
17944 ID3D12Device7 * This,
17945 _In_reads_(BlobLength) const void *pLibraryBlob,
17946 SIZE_T BlobLength,
17947 REFIID riid,
17948 _COM_Outptr_ void **ppPipelineLibrary);
17949
17950 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
17951 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
17952 ID3D12Device7 * This,
17953 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
17954 _In_reads_(NumFences) const UINT64 *pFenceValues,
17955 UINT NumFences,
17956 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
17957 HANDLE hEvent);
17958
17959 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
17960 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
17961 ID3D12Device7 * This,
17962 UINT NumObjects,
17963 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17964 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
17965
17966 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
17967 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
17968 ID3D12Device7 * This,
17969 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
17970 REFIID riid,
17971 _COM_Outptr_ void **ppPipelineState);
17972
17973 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
17974 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
17975 ID3D12Device7 * This,
17976 _In_ const void *pAddress,
17977 REFIID riid,
17978 _COM_Outptr_ void **ppvHeap);
17979
17980 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
17981 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
17982 ID3D12Device7 * This,
17983 _In_ HANDLE hFileMapping,
17984 REFIID riid,
17985 _COM_Outptr_ void **ppvHeap);
17986
17987 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
17988 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
17989 ID3D12Device7 * This,
17990 D3D12_RESIDENCY_FLAGS Flags,
17991 UINT NumObjects,
17992 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17993 _In_ ID3D12Fence *pFenceToSignal,
17994 UINT64 FenceValueToSignal);
17995
17996 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
17997 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
17998 ID3D12Device7 * This,
17999 _In_ UINT nodeMask,
18000 _In_ D3D12_COMMAND_LIST_TYPE type,
18001 _In_ D3D12_COMMAND_LIST_FLAGS flags,
18002 REFIID riid,
18003 _COM_Outptr_ void **ppCommandList);
18004
18005 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
18006 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
18007 ID3D12Device7 * This,
18008 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
18009 _In_ REFIID riid,
18010 _COM_Outptr_ void **ppSession);
18011
18012 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
18013 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
18014 ID3D12Device7 * This,
18015 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18016 D3D12_HEAP_FLAGS HeapFlags,
18017 _In_ const D3D12_RESOURCE_DESC *pDesc,
18018 D3D12_RESOURCE_STATES InitialResourceState,
18019 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18020 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18021 REFIID riidResource,
18022 _COM_Outptr_opt_ void **ppvResource);
18023
18024 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
18025 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
18026 ID3D12Device7 * This,
18027 _In_ const D3D12_HEAP_DESC *pDesc,
18028 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18029 REFIID riid,
18030 _COM_Outptr_opt_ void **ppvHeap);
18031
18032 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
18033 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
18034 ID3D12Device7 * This,
18035 _In_ const D3D12_RESOURCE_DESC *pDesc,
18036 D3D12_RESOURCE_STATES InitialState,
18037 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18038 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18039 REFIID riid,
18040 _COM_Outptr_opt_ void **ppvResource);
18041
18042 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
18043#if !defined(_WIN32)
18044 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
18045 ID3D12Device7 * This,
18046 UINT visibleMask,
18047 UINT numResourceDescs,
18048 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
18049 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
18050
18051#else
18052 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
18053 ID3D12Device7 * This,
18054 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18055 UINT visibleMask,
18056 UINT numResourceDescs,
18057 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
18058 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
18059
18060#endif
18061
18062 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
18063 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
18064 ID3D12Device7 * This,
18065 _In_ ID3D12LifetimeOwner *pOwner,
18066 REFIID riid,
18067 _COM_Outptr_ void **ppvTracker);
18068
18069 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
18070 void ( STDMETHODCALLTYPE *RemoveDevice )(
18071 ID3D12Device7 * This);
18072
18073 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
18074 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
18075 ID3D12Device7 * This,
18076 _Inout_ UINT *pNumMetaCommands,
18077 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
18078
18079 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
18080 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
18081 ID3D12Device7 * This,
18082 _In_ REFGUID CommandId,
18083 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18084 _Out_opt_ UINT *pTotalStructureSizeInBytes,
18085 _Inout_ UINT *pParameterCount,
18086 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
18087
18088 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
18089 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
18090 ID3D12Device7 * This,
18091 _In_ REFGUID CommandId,
18092 _In_ UINT NodeMask,
18093 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
18094 _In_ SIZE_T CreationParametersDataSizeInBytes,
18095 REFIID riid,
18096 _COM_Outptr_ void **ppMetaCommand);
18097
18098 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
18099 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
18100 ID3D12Device7 * This,
18101 const D3D12_STATE_OBJECT_DESC *pDesc,
18102 REFIID riid,
18103 _COM_Outptr_ void **ppStateObject);
18104
18105 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
18106 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
18107 ID3D12Device7 * This,
18108 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
18109 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
18110
18111 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
18112 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
18113 ID3D12Device7 * This,
18114 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
18115 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
18116
18117 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
18118 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
18119 ID3D12Device7 * This,
18120 D3D12_BACKGROUND_PROCESSING_MODE Mode,
18121 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
18122 _In_opt_ HANDLE hEventToSignalUponCompletion,
18123 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
18124
18125 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
18126 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
18127 ID3D12Device7 * This,
18128 const D3D12_STATE_OBJECT_DESC *pAddition,
18129 ID3D12StateObject *pStateObjectToGrowFrom,
18130 REFIID riid,
18131 _COM_Outptr_ void **ppNewStateObject);
18132
18133 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
18134 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
18135 ID3D12Device7 * This,
18136 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
18137 _In_ REFIID riid,
18138 _COM_Outptr_ void **ppSession);
18139
18140 END_INTERFACE
18141 } ID3D12Device7Vtbl;
18142
18143 interface ID3D12Device7
18144 {
18145 CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl;
18146 };
18147
18148
18149
18150#ifdef COBJMACROS
18151
18152
18153#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \
18154 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18155
18156#define ID3D12Device7_AddRef(This) \
18157 ( (This)->lpVtbl -> AddRef(This) )
18158
18159#define ID3D12Device7_Release(This) \
18160 ( (This)->lpVtbl -> Release(This) )
18161
18162
18163#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \
18164 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18165
18166#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \
18167 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18168
18169#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \
18170 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18171
18172#define ID3D12Device7_SetName(This,Name) \
18173 ( (This)->lpVtbl -> SetName(This,Name) )
18174
18175
18176#define ID3D12Device7_GetNodeCount(This) \
18177 ( (This)->lpVtbl -> GetNodeCount(This) )
18178
18179#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
18180 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
18181
18182#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
18183 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
18184
18185#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
18186 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
18187
18188#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
18189 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
18190
18191#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
18192 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
18193
18194#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
18195 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
18196
18197#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
18198 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
18199
18200#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
18201 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
18202
18203#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
18204 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
18205
18206#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \
18207 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
18208
18209#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
18210 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
18211
18212#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
18213 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
18214
18215#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
18216 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
18217
18218#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
18219 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
18220
18221#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \
18222 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
18223
18224#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
18225 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
18226
18227#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
18228 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
18229#if !defined(_WIN32)
18230
18231#define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
18232 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
18233#else
18234#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
18235 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
18236#endif
18237#if !defined(_WIN32)
18238
18239#define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \
18240 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
18241#else
18242#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
18243 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
18244#endif
18245
18246#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
18247 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
18248
18249#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \
18250 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
18251
18252#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18253 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18254
18255#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18256 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18257
18258#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
18259 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
18260
18261#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
18262 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
18263
18264#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
18265 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
18266
18267#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \
18268 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
18269
18270#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \
18271 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
18272
18273#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \
18274 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
18275
18276#define ID3D12Device7_GetDeviceRemovedReason(This) \
18277 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
18278
18279#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
18280 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
18281
18282#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
18283 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
18284
18285#define ID3D12Device7_SetStablePowerState(This,Enable) \
18286 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
18287
18288#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
18289 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
18290
18291#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
18292 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
18293#if !defined(_WIN32)
18294
18295#define ID3D12Device7_GetAdapterLuid(This) \
18296 ( (This)->lpVtbl -> GetAdapterLuid(This) )
18297#else
18298#define ID3D12Device7_GetAdapterLuid(This,RetVal) \
18299 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
18300#endif
18301
18302
18303#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
18304 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
18305
18306#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
18307 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
18308
18309#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
18310 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
18311
18312
18313#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
18314 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
18315
18316
18317#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
18318 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
18319
18320#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
18321 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
18322
18323#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
18324 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
18325
18326
18327#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
18328 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
18329
18330#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
18331 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
18332
18333#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
18334 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
18335
18336#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
18337 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
18338
18339#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
18340 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
18341#if !defined(_WIN32)
18342
18343#define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18344 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18345#else
18346#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18347 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18348#endif
18349
18350
18351#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
18352 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
18353
18354#define ID3D12Device7_RemoveDevice(This) \
18355 ( (This)->lpVtbl -> RemoveDevice(This) )
18356
18357#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
18358 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
18359
18360#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
18361 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
18362
18363#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
18364 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
18365
18366#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \
18367 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
18368
18369#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
18370 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
18371
18372#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
18373 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
18374
18375
18376#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
18377 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
18378
18379
18380#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
18381 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
18382
18383#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
18384 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
18385
18386#endif /* COBJMACROS */
18387
18388
18389#endif /* C style interface */
18390
18391
18392
18393
18394#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
18395
18396
18397#ifndef __ID3D12Device8_INTERFACE_DEFINED__
18398#define __ID3D12Device8_INTERFACE_DEFINED__
18399
18400/* interface ID3D12Device8 */
18401/* [unique][local][object][uuid] */
18402
18403
18404EXTERN_C const IID IID_ID3D12Device8;
18405
18406#if defined(__cplusplus) && !defined(CINTERFACE)
18407
18408 MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3")
18409 ID3D12Device8 : public ID3D12Device7
18410 {
18411 public:
18412#if defined(_MSC_VER) || !defined(_WIN32)
18413 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
18414 UINT visibleMask,
18415 UINT numResourceDescs,
18416 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
18417 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
18418#else
18419 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2(
18420 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18421 UINT visibleMask,
18422 UINT numResourceDescs,
18423 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
18424 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
18425#endif
18426
18427 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
18428 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18429 D3D12_HEAP_FLAGS HeapFlags,
18430 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
18431 D3D12_RESOURCE_STATES InitialResourceState,
18432 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18433 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18434 REFIID riidResource,
18435 _COM_Outptr_opt_ void **ppvResource) = 0;
18436
18437 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
18438 _In_ ID3D12Heap *pHeap,
18439 UINT64 HeapOffset,
18440 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
18441 D3D12_RESOURCE_STATES InitialState,
18442 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18443 REFIID riid,
18444 _COM_Outptr_opt_ void **ppvResource) = 0;
18445
18446 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
18447 _In_opt_ ID3D12Resource *pTargetedResource,
18448 _In_opt_ ID3D12Resource *pFeedbackResource,
18449 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
18450
18451 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
18452 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
18453 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
18454 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
18455 UINT64 BaseOffset,
18456 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
18457 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
18458 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
18459 _Out_opt_ UINT64 *pTotalBytes) = 0;
18460
18461 };
18462
18463
18464#else /* C style interface */
18465
18466 typedef struct ID3D12Device8Vtbl
18467 {
18468 BEGIN_INTERFACE
18469
18470 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18471 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18472 ID3D12Device8 * This,
18473 REFIID riid,
18474 _COM_Outptr_ void **ppvObject);
18475
18476 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18477 ULONG ( STDMETHODCALLTYPE *AddRef )(
18478 ID3D12Device8 * This);
18479
18480 DECLSPEC_XFGVIRT(IUnknown, Release)
18481 ULONG ( STDMETHODCALLTYPE *Release )(
18482 ID3D12Device8 * This);
18483
18484 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18485 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18486 ID3D12Device8 * This,
18487 _In_ REFGUID guid,
18488 _Inout_ UINT *pDataSize,
18489 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18490
18491 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18492 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18493 ID3D12Device8 * This,
18494 _In_ REFGUID guid,
18495 _In_ UINT DataSize,
18496 _In_reads_bytes_opt_( DataSize ) const void *pData);
18497
18498 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18499 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18500 ID3D12Device8 * This,
18501 _In_ REFGUID guid,
18502 _In_opt_ const IUnknown *pData);
18503
18504 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18505 HRESULT ( STDMETHODCALLTYPE *SetName )(
18506 ID3D12Device8 * This,
18507 _In_z_ LPCWSTR Name);
18508
18509 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
18510 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
18511 ID3D12Device8 * This);
18512
18513 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
18514 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
18515 ID3D12Device8 * This,
18516 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
18517 REFIID riid,
18518 _COM_Outptr_ void **ppCommandQueue);
18519
18520 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
18521 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
18522 ID3D12Device8 * This,
18523 _In_ D3D12_COMMAND_LIST_TYPE type,
18524 REFIID riid,
18525 _COM_Outptr_ void **ppCommandAllocator);
18526
18527 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
18528 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
18529 ID3D12Device8 * This,
18530 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
18531 REFIID riid,
18532 _COM_Outptr_ void **ppPipelineState);
18533
18534 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
18535 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
18536 ID3D12Device8 * This,
18537 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
18538 REFIID riid,
18539 _COM_Outptr_ void **ppPipelineState);
18540
18541 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
18542 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
18543 ID3D12Device8 * This,
18544 _In_ UINT nodeMask,
18545 _In_ D3D12_COMMAND_LIST_TYPE type,
18546 _In_ ID3D12CommandAllocator *pCommandAllocator,
18547 _In_opt_ ID3D12PipelineState *pInitialState,
18548 REFIID riid,
18549 _COM_Outptr_ void **ppCommandList);
18550
18551 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
18552 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
18553 ID3D12Device8 * This,
18554 D3D12_FEATURE Feature,
18555 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
18556 UINT FeatureSupportDataSize);
18557
18558 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
18559 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
18560 ID3D12Device8 * This,
18561 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
18562 REFIID riid,
18563 _COM_Outptr_ void **ppvHeap);
18564
18565 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
18566 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
18567 ID3D12Device8 * This,
18568 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
18569
18570 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
18571 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
18572 ID3D12Device8 * This,
18573 _In_ UINT nodeMask,
18574 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
18575 _In_ SIZE_T blobLengthInBytes,
18576 REFIID riid,
18577 _COM_Outptr_ void **ppvRootSignature);
18578
18579 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
18580 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
18581 ID3D12Device8 * This,
18582 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
18583 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18584
18585 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
18586 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
18587 ID3D12Device8 * This,
18588 _In_opt_ ID3D12Resource *pResource,
18589 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
18590 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18591
18592 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
18593 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
18594 ID3D12Device8 * This,
18595 _In_opt_ ID3D12Resource *pResource,
18596 _In_opt_ ID3D12Resource *pCounterResource,
18597 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
18598 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18599
18600 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
18601 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
18602 ID3D12Device8 * This,
18603 _In_opt_ ID3D12Resource *pResource,
18604 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
18605 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18606
18607 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
18608 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
18609 ID3D12Device8 * This,
18610 _In_opt_ ID3D12Resource *pResource,
18611 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
18612 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18613
18614 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
18615 void ( STDMETHODCALLTYPE *CreateSampler )(
18616 ID3D12Device8 * This,
18617 _In_ const D3D12_SAMPLER_DESC *pDesc,
18618 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18619
18620 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
18621 void ( STDMETHODCALLTYPE *CopyDescriptors )(
18622 ID3D12Device8 * This,
18623 _In_ UINT NumDestDescriptorRanges,
18624 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
18625 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
18626 _In_ UINT NumSrcDescriptorRanges,
18627 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
18628 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
18629 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18630
18631 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
18632 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
18633 ID3D12Device8 * This,
18634 _In_ UINT NumDescriptors,
18635 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
18636 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
18637 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18638
18639 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
18640#if !defined(_WIN32)
18641 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18642 ID3D12Device8 * This,
18643 _In_ UINT visibleMask,
18644 _In_ UINT numResourceDescs,
18645 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18646
18647#else
18648 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18649 ID3D12Device8 * This,
18650 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18651 _In_ UINT visibleMask,
18652 _In_ UINT numResourceDescs,
18653 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18654
18655#endif
18656
18657 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
18658#if !defined(_WIN32)
18659 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18660 ID3D12Device8 * This,
18661 _In_ UINT nodeMask,
18662 D3D12_HEAP_TYPE heapType);
18663
18664#else
18665 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18666 ID3D12Device8 * This,
18667 D3D12_HEAP_PROPERTIES * RetVal,
18668 _In_ UINT nodeMask,
18669 D3D12_HEAP_TYPE heapType);
18670
18671#endif
18672
18673 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
18674 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
18675 ID3D12Device8 * This,
18676 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18677 D3D12_HEAP_FLAGS HeapFlags,
18678 _In_ const D3D12_RESOURCE_DESC *pDesc,
18679 D3D12_RESOURCE_STATES InitialResourceState,
18680 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18681 REFIID riidResource,
18682 _COM_Outptr_opt_ void **ppvResource);
18683
18684 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
18685 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
18686 ID3D12Device8 * This,
18687 _In_ const D3D12_HEAP_DESC *pDesc,
18688 REFIID riid,
18689 _COM_Outptr_opt_ void **ppvHeap);
18690
18691 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
18692 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
18693 ID3D12Device8 * This,
18694 _In_ ID3D12Heap *pHeap,
18695 UINT64 HeapOffset,
18696 _In_ const D3D12_RESOURCE_DESC *pDesc,
18697 D3D12_RESOURCE_STATES InitialState,
18698 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18699 REFIID riid,
18700 _COM_Outptr_opt_ void **ppvResource);
18701
18702 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
18703 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
18704 ID3D12Device8 * This,
18705 _In_ const D3D12_RESOURCE_DESC *pDesc,
18706 D3D12_RESOURCE_STATES InitialState,
18707 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18708 REFIID riid,
18709 _COM_Outptr_opt_ void **ppvResource);
18710
18711 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
18712 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
18713 ID3D12Device8 * This,
18714 _In_ ID3D12DeviceChild *pObject,
18715 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
18716 DWORD Access,
18717 _In_opt_ LPCWSTR Name,
18718 _Out_ HANDLE *pHandle);
18719
18720 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
18721 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
18722 ID3D12Device8 * This,
18723 _In_ HANDLE NTHandle,
18724 REFIID riid,
18725 _COM_Outptr_opt_ void **ppvObj);
18726
18727 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
18728 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
18729 ID3D12Device8 * This,
18730 _In_ LPCWSTR Name,
18731 DWORD Access,
18732 /* [annotation][out] */
18733 _Out_ HANDLE *pNTHandle);
18734
18735 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
18736 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
18737 ID3D12Device8 * This,
18738 UINT NumObjects,
18739 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18740
18741 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
18742 HRESULT ( STDMETHODCALLTYPE *Evict )(
18743 ID3D12Device8 * This,
18744 UINT NumObjects,
18745 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18746
18747 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
18748 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
18749 ID3D12Device8 * This,
18750 UINT64 InitialValue,
18751 D3D12_FENCE_FLAGS Flags,
18752 REFIID riid,
18753 _COM_Outptr_ void **ppFence);
18754
18755 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
18756 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
18757 ID3D12Device8 * This);
18758
18759 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
18760 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
18761 ID3D12Device8 * This,
18762 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
18763 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
18764 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
18765 UINT64 BaseOffset,
18766 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
18767 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
18768 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
18769 _Out_opt_ UINT64 *pTotalBytes);
18770
18771 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
18772 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
18773 ID3D12Device8 * This,
18774 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
18775 REFIID riid,
18776 _COM_Outptr_opt_ void **ppvHeap);
18777
18778 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
18779 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
18780 ID3D12Device8 * This,
18781 BOOL Enable);
18782
18783 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
18784 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
18785 ID3D12Device8 * This,
18786 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
18787 _In_opt_ ID3D12RootSignature *pRootSignature,
18788 REFIID riid,
18789 _COM_Outptr_opt_ void **ppvCommandSignature);
18790
18791 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
18792 void ( STDMETHODCALLTYPE *GetResourceTiling )(
18793 ID3D12Device8 * This,
18794 _In_ ID3D12Resource *pTiledResource,
18795 _Out_opt_ UINT *pNumTilesForEntireResource,
18796 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
18797 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
18798 _Inout_opt_ UINT *pNumSubresourceTilings,
18799 _In_ UINT FirstSubresourceTilingToGet,
18800 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
18801
18802 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
18803#if !defined(_WIN32)
18804 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
18805 ID3D12Device8 * This);
18806
18807#else
18808 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
18809 ID3D12Device8 * This,
18810 LUID * RetVal);
18811
18812#endif
18813
18814 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
18815 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
18816 ID3D12Device8 * This,
18817 _In_reads_(BlobLength) const void *pLibraryBlob,
18818 SIZE_T BlobLength,
18819 REFIID riid,
18820 _COM_Outptr_ void **ppPipelineLibrary);
18821
18822 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
18823 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
18824 ID3D12Device8 * This,
18825 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
18826 _In_reads_(NumFences) const UINT64 *pFenceValues,
18827 UINT NumFences,
18828 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
18829 HANDLE hEvent);
18830
18831 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
18832 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
18833 ID3D12Device8 * This,
18834 UINT NumObjects,
18835 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18836 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
18837
18838 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
18839 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
18840 ID3D12Device8 * This,
18841 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
18842 REFIID riid,
18843 _COM_Outptr_ void **ppPipelineState);
18844
18845 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
18846 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
18847 ID3D12Device8 * This,
18848 _In_ const void *pAddress,
18849 REFIID riid,
18850 _COM_Outptr_ void **ppvHeap);
18851
18852 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
18853 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
18854 ID3D12Device8 * This,
18855 _In_ HANDLE hFileMapping,
18856 REFIID riid,
18857 _COM_Outptr_ void **ppvHeap);
18858
18859 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
18860 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
18861 ID3D12Device8 * This,
18862 D3D12_RESIDENCY_FLAGS Flags,
18863 UINT NumObjects,
18864 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18865 _In_ ID3D12Fence *pFenceToSignal,
18866 UINT64 FenceValueToSignal);
18867
18868 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
18869 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
18870 ID3D12Device8 * This,
18871 _In_ UINT nodeMask,
18872 _In_ D3D12_COMMAND_LIST_TYPE type,
18873 _In_ D3D12_COMMAND_LIST_FLAGS flags,
18874 REFIID riid,
18875 _COM_Outptr_ void **ppCommandList);
18876
18877 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
18878 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
18879 ID3D12Device8 * This,
18880 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
18881 _In_ REFIID riid,
18882 _COM_Outptr_ void **ppSession);
18883
18884 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
18885 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
18886 ID3D12Device8 * This,
18887 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18888 D3D12_HEAP_FLAGS HeapFlags,
18889 _In_ const D3D12_RESOURCE_DESC *pDesc,
18890 D3D12_RESOURCE_STATES InitialResourceState,
18891 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18892 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18893 REFIID riidResource,
18894 _COM_Outptr_opt_ void **ppvResource);
18895
18896 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
18897 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
18898 ID3D12Device8 * This,
18899 _In_ const D3D12_HEAP_DESC *pDesc,
18900 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18901 REFIID riid,
18902 _COM_Outptr_opt_ void **ppvHeap);
18903
18904 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
18905 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
18906 ID3D12Device8 * This,
18907 _In_ const D3D12_RESOURCE_DESC *pDesc,
18908 D3D12_RESOURCE_STATES InitialState,
18909 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18910 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18911 REFIID riid,
18912 _COM_Outptr_opt_ void **ppvResource);
18913
18914 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
18915#if !defined(_WIN32)
18916 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
18917 ID3D12Device8 * This,
18918 UINT visibleMask,
18919 UINT numResourceDescs,
18920 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
18921 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
18922
18923#else
18924 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
18925 ID3D12Device8 * This,
18926 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18927 UINT visibleMask,
18928 UINT numResourceDescs,
18929 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
18930 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
18931
18932#endif
18933
18934 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
18935 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
18936 ID3D12Device8 * This,
18937 _In_ ID3D12LifetimeOwner *pOwner,
18938 REFIID riid,
18939 _COM_Outptr_ void **ppvTracker);
18940
18941 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
18942 void ( STDMETHODCALLTYPE *RemoveDevice )(
18943 ID3D12Device8 * This);
18944
18945 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
18946 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
18947 ID3D12Device8 * This,
18948 _Inout_ UINT *pNumMetaCommands,
18949 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
18950
18951 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
18952 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
18953 ID3D12Device8 * This,
18954 _In_ REFGUID CommandId,
18955 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18956 _Out_opt_ UINT *pTotalStructureSizeInBytes,
18957 _Inout_ UINT *pParameterCount,
18958 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
18959
18960 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
18961 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
18962 ID3D12Device8 * This,
18963 _In_ REFGUID CommandId,
18964 _In_ UINT NodeMask,
18965 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
18966 _In_ SIZE_T CreationParametersDataSizeInBytes,
18967 REFIID riid,
18968 _COM_Outptr_ void **ppMetaCommand);
18969
18970 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
18971 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
18972 ID3D12Device8 * This,
18973 const D3D12_STATE_OBJECT_DESC *pDesc,
18974 REFIID riid,
18975 _COM_Outptr_ void **ppStateObject);
18976
18977 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
18978 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
18979 ID3D12Device8 * This,
18980 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
18981 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
18982
18983 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
18984 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
18985 ID3D12Device8 * This,
18986 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
18987 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
18988
18989 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
18990 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
18991 ID3D12Device8 * This,
18992 D3D12_BACKGROUND_PROCESSING_MODE Mode,
18993 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
18994 _In_opt_ HANDLE hEventToSignalUponCompletion,
18995 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
18996
18997 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
18998 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
18999 ID3D12Device8 * This,
19000 const D3D12_STATE_OBJECT_DESC *pAddition,
19001 ID3D12StateObject *pStateObjectToGrowFrom,
19002 REFIID riid,
19003 _COM_Outptr_ void **ppNewStateObject);
19004
19005 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
19006 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
19007 ID3D12Device8 * This,
19008 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
19009 _In_ REFIID riid,
19010 _COM_Outptr_ void **ppSession);
19011
19012 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
19013#if !defined(_WIN32)
19014 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19015 ID3D12Device8 * This,
19016 UINT visibleMask,
19017 UINT numResourceDescs,
19018 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19019 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19020
19021#else
19022 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19023 ID3D12Device8 * This,
19024 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19025 UINT visibleMask,
19026 UINT numResourceDescs,
19027 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19028 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19029
19030#endif
19031
19032 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
19033 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
19034 ID3D12Device8 * This,
19035 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19036 D3D12_HEAP_FLAGS HeapFlags,
19037 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19038 D3D12_RESOURCE_STATES InitialResourceState,
19039 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19040 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19041 REFIID riidResource,
19042 _COM_Outptr_opt_ void **ppvResource);
19043
19044 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
19045 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
19046 ID3D12Device8 * This,
19047 _In_ ID3D12Heap *pHeap,
19048 UINT64 HeapOffset,
19049 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19050 D3D12_RESOURCE_STATES InitialState,
19051 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19052 REFIID riid,
19053 _COM_Outptr_opt_ void **ppvResource);
19054
19055 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
19056 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
19057 ID3D12Device8 * This,
19058 _In_opt_ ID3D12Resource *pTargetedResource,
19059 _In_opt_ ID3D12Resource *pFeedbackResource,
19060 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19061
19062 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
19063 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
19064 ID3D12Device8 * This,
19065 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
19066 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
19067 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
19068 UINT64 BaseOffset,
19069 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
19070 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
19071 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
19072 _Out_opt_ UINT64 *pTotalBytes);
19073
19074 END_INTERFACE
19075 } ID3D12Device8Vtbl;
19076
19077 interface ID3D12Device8
19078 {
19079 CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl;
19080 };
19081
19082
19083
19084#ifdef COBJMACROS
19085
19086
19087#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \
19088 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19089
19090#define ID3D12Device8_AddRef(This) \
19091 ( (This)->lpVtbl -> AddRef(This) )
19092
19093#define ID3D12Device8_Release(This) \
19094 ( (This)->lpVtbl -> Release(This) )
19095
19096
19097#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \
19098 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19099
19100#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \
19101 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19102
19103#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \
19104 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19105
19106#define ID3D12Device8_SetName(This,Name) \
19107 ( (This)->lpVtbl -> SetName(This,Name) )
19108
19109
19110#define ID3D12Device8_GetNodeCount(This) \
19111 ( (This)->lpVtbl -> GetNodeCount(This) )
19112
19113#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
19114 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
19115
19116#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
19117 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
19118
19119#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
19120 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
19121
19122#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
19123 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
19124
19125#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
19126 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
19127
19128#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
19129 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
19130
19131#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
19132 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
19133
19134#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
19135 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
19136
19137#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
19138 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
19139
19140#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \
19141 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
19142
19143#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
19144 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
19145
19146#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
19147 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
19148
19149#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
19150 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
19151
19152#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
19153 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
19154
19155#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \
19156 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
19157
19158#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
19159 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
19160
19161#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
19162 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
19163#if !defined(_WIN32)
19164
19165#define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
19166 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
19167#else
19168#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
19169 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
19170#endif
19171#if !defined(_WIN32)
19172
19173#define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \
19174 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
19175#else
19176#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
19177 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
19178#endif
19179
19180#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
19181 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
19182
19183#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \
19184 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
19185
19186#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19187 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19188
19189#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19190 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19191
19192#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
19193 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
19194
19195#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
19196 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
19197
19198#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
19199 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
19200
19201#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \
19202 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
19203
19204#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \
19205 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
19206
19207#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \
19208 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
19209
19210#define ID3D12Device8_GetDeviceRemovedReason(This) \
19211 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
19212
19213#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
19214 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
19215
19216#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
19217 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
19218
19219#define ID3D12Device8_SetStablePowerState(This,Enable) \
19220 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
19221
19222#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
19223 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
19224
19225#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
19226 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
19227#if !defined(_WIN32)
19228
19229#define ID3D12Device8_GetAdapterLuid(This) \
19230 ( (This)->lpVtbl -> GetAdapterLuid(This) )
19231#else
19232#define ID3D12Device8_GetAdapterLuid(This,RetVal) \
19233 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
19234#endif
19235
19236
19237#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
19238 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
19239
19240#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
19241 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
19242
19243#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
19244 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
19245
19246
19247#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
19248 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
19249
19250
19251#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
19252 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
19253
19254#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
19255 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
19256
19257#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
19258 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
19259
19260
19261#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
19262 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
19263
19264#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
19265 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
19266
19267#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
19268 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
19269
19270#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
19271 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
19272
19273#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
19274 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
19275#if !defined(_WIN32)
19276
19277#define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19278 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19279#else
19280#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19281 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19282#endif
19283
19284
19285#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
19286 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
19287
19288#define ID3D12Device8_RemoveDevice(This) \
19289 ( (This)->lpVtbl -> RemoveDevice(This) )
19290
19291#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
19292 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
19293
19294#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
19295 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
19296
19297#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
19298 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
19299
19300#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \
19301 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
19302
19303#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
19304 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
19305
19306#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
19307 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
19308
19309
19310#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
19311 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
19312
19313
19314#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
19315 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
19316
19317#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
19318 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
19319
19320#if !defined(_WIN32)
19321
19322#define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19323 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19324#else
19325#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19326 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19327#endif
19328
19329#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
19330 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
19331
19332#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19333 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19334
19335#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
19336 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
19337
19338#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
19339 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
19340
19341#endif /* COBJMACROS */
19342
19343
19344#endif /* C style interface */
19345
19346
19347
19348
19349#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
19350
19351
19352#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
19353#define __ID3D12Resource1_INTERFACE_DEFINED__
19354
19355/* interface ID3D12Resource1 */
19356/* [unique][local][object][uuid] */
19357
19358
19359EXTERN_C const IID IID_ID3D12Resource1;
19360
19361#if defined(__cplusplus) && !defined(CINTERFACE)
19362
19363 MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
19364 ID3D12Resource1 : public ID3D12Resource
19365 {
19366 public:
19367 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
19368 REFIID riid,
19369 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
19370
19371 };
19372
19373
19374#else /* C style interface */
19375
19376 typedef struct ID3D12Resource1Vtbl
19377 {
19378 BEGIN_INTERFACE
19379
19380 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19381 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19382 ID3D12Resource1 * This,
19383 REFIID riid,
19384 _COM_Outptr_ void **ppvObject);
19385
19386 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19387 ULONG ( STDMETHODCALLTYPE *AddRef )(
19388 ID3D12Resource1 * This);
19389
19390 DECLSPEC_XFGVIRT(IUnknown, Release)
19391 ULONG ( STDMETHODCALLTYPE *Release )(
19392 ID3D12Resource1 * This);
19393
19394 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19395 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19396 ID3D12Resource1 * This,
19397 _In_ REFGUID guid,
19398 _Inout_ UINT *pDataSize,
19399 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19400
19401 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19402 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19403 ID3D12Resource1 * This,
19404 _In_ REFGUID guid,
19405 _In_ UINT DataSize,
19406 _In_reads_bytes_opt_( DataSize ) const void *pData);
19407
19408 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19409 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19410 ID3D12Resource1 * This,
19411 _In_ REFGUID guid,
19412 _In_opt_ const IUnknown *pData);
19413
19414 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19415 HRESULT ( STDMETHODCALLTYPE *SetName )(
19416 ID3D12Resource1 * This,
19417 _In_z_ LPCWSTR Name);
19418
19419 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
19420 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
19421 ID3D12Resource1 * This,
19422 REFIID riid,
19423 _COM_Outptr_opt_ void **ppvDevice);
19424
19425 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
19426 HRESULT ( STDMETHODCALLTYPE *Map )(
19427 ID3D12Resource1 * This,
19428 UINT Subresource,
19429 _In_opt_ const D3D12_RANGE *pReadRange,
19430 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
19431
19432 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
19433 void ( STDMETHODCALLTYPE *Unmap )(
19434 ID3D12Resource1 * This,
19435 UINT Subresource,
19436 _In_opt_ const D3D12_RANGE *pWrittenRange);
19437
19438 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
19439#if !defined(_WIN32)
19440 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
19441 ID3D12Resource1 * This);
19442
19443#else
19444 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
19445 ID3D12Resource1 * This,
19446 D3D12_RESOURCE_DESC * RetVal);
19447
19448#endif
19449
19450 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
19451 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
19452 ID3D12Resource1 * This);
19453
19454 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
19455 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
19456 ID3D12Resource1 * This,
19457 UINT DstSubresource,
19458 _In_opt_ const D3D12_BOX *pDstBox,
19459 _In_ const void *pSrcData,
19460 UINT SrcRowPitch,
19461 UINT SrcDepthPitch);
19462
19463 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
19464 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
19465 ID3D12Resource1 * This,
19466 _Out_ void *pDstData,
19467 UINT DstRowPitch,
19468 UINT DstDepthPitch,
19469 UINT SrcSubresource,
19470 _In_opt_ const D3D12_BOX *pSrcBox);
19471
19472 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
19473 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
19474 ID3D12Resource1 * This,
19475 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
19476 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
19477
19478 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
19479 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
19480 ID3D12Resource1 * This,
19481 REFIID riid,
19482 _COM_Outptr_opt_ void **ppProtectedSession);
19483
19484 END_INTERFACE
19485 } ID3D12Resource1Vtbl;
19486
19487 interface ID3D12Resource1
19488 {
19489 CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
19490 };
19491
19492
19493
19494#ifdef COBJMACROS
19495
19496
19497#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
19498 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19499
19500#define ID3D12Resource1_AddRef(This) \
19501 ( (This)->lpVtbl -> AddRef(This) )
19502
19503#define ID3D12Resource1_Release(This) \
19504 ( (This)->lpVtbl -> Release(This) )
19505
19506
19507#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
19508 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19509
19510#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
19511 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19512
19513#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
19514 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19515
19516#define ID3D12Resource1_SetName(This,Name) \
19517 ( (This)->lpVtbl -> SetName(This,Name) )
19518
19519
19520#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
19521 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
19522
19523
19524
19525#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
19526 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
19527
19528#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
19529 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
19530#if !defined(_WIN32)
19531
19532#define ID3D12Resource1_GetDesc(This) \
19533 ( (This)->lpVtbl -> GetDesc(This) )
19534#else
19535#define ID3D12Resource1_GetDesc(This,RetVal) \
19536 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
19537#endif
19538
19539#define ID3D12Resource1_GetGPUVirtualAddress(This) \
19540 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
19541
19542#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
19543 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
19544
19545#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
19546 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
19547
19548#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
19549 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
19550
19551
19552#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
19553 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
19554
19555#endif /* COBJMACROS */
19556
19557
19558#endif /* C style interface */
19559
19560
19561
19562
19563#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
19564
19565
19566#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
19567#define __ID3D12Resource2_INTERFACE_DEFINED__
19568
19569/* interface ID3D12Resource2 */
19570/* [unique][local][object][uuid] */
19571
19572
19573EXTERN_C const IID IID_ID3D12Resource2;
19574
19575#if defined(__cplusplus) && !defined(CINTERFACE)
19576
19577 MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495")
19578 ID3D12Resource2 : public ID3D12Resource1
19579 {
19580 public:
19581#if defined(_MSC_VER) || !defined(_WIN32)
19582 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
19583#else
19584 virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1(
19585 D3D12_RESOURCE_DESC1 * RetVal) = 0;
19586#endif
19587
19588 };
19589
19590
19591#else /* C style interface */
19592
19593 typedef struct ID3D12Resource2Vtbl
19594 {
19595 BEGIN_INTERFACE
19596
19597 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19598 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19599 ID3D12Resource2 * This,
19600 REFIID riid,
19601 _COM_Outptr_ void **ppvObject);
19602
19603 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19604 ULONG ( STDMETHODCALLTYPE *AddRef )(
19605 ID3D12Resource2 * This);
19606
19607 DECLSPEC_XFGVIRT(IUnknown, Release)
19608 ULONG ( STDMETHODCALLTYPE *Release )(
19609 ID3D12Resource2 * This);
19610
19611 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19612 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19613 ID3D12Resource2 * This,
19614 _In_ REFGUID guid,
19615 _Inout_ UINT *pDataSize,
19616 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19617
19618 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19619 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19620 ID3D12Resource2 * This,
19621 _In_ REFGUID guid,
19622 _In_ UINT DataSize,
19623 _In_reads_bytes_opt_( DataSize ) const void *pData);
19624
19625 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19626 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19627 ID3D12Resource2 * This,
19628 _In_ REFGUID guid,
19629 _In_opt_ const IUnknown *pData);
19630
19631 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19632 HRESULT ( STDMETHODCALLTYPE *SetName )(
19633 ID3D12Resource2 * This,
19634 _In_z_ LPCWSTR Name);
19635
19636 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
19637 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
19638 ID3D12Resource2 * This,
19639 REFIID riid,
19640 _COM_Outptr_opt_ void **ppvDevice);
19641
19642 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
19643 HRESULT ( STDMETHODCALLTYPE *Map )(
19644 ID3D12Resource2 * This,
19645 UINT Subresource,
19646 _In_opt_ const D3D12_RANGE *pReadRange,
19647 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
19648
19649 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
19650 void ( STDMETHODCALLTYPE *Unmap )(
19651 ID3D12Resource2 * This,
19652 UINT Subresource,
19653 _In_opt_ const D3D12_RANGE *pWrittenRange);
19654
19655 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
19656#if !defined(_WIN32)
19657 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
19658 ID3D12Resource2 * This);
19659
19660#else
19661 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
19662 ID3D12Resource2 * This,
19663 D3D12_RESOURCE_DESC * RetVal);
19664
19665#endif
19666
19667 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
19668 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
19669 ID3D12Resource2 * This);
19670
19671 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
19672 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
19673 ID3D12Resource2 * This,
19674 UINT DstSubresource,
19675 _In_opt_ const D3D12_BOX *pDstBox,
19676 _In_ const void *pSrcData,
19677 UINT SrcRowPitch,
19678 UINT SrcDepthPitch);
19679
19680 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
19681 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
19682 ID3D12Resource2 * This,
19683 _Out_ void *pDstData,
19684 UINT DstRowPitch,
19685 UINT DstDepthPitch,
19686 UINT SrcSubresource,
19687 _In_opt_ const D3D12_BOX *pSrcBox);
19688
19689 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
19690 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
19691 ID3D12Resource2 * This,
19692 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
19693 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
19694
19695 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
19696 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
19697 ID3D12Resource2 * This,
19698 REFIID riid,
19699 _COM_Outptr_opt_ void **ppProtectedSession);
19700
19701 DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1)
19702#if !defined(_WIN32)
19703 D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
19704 ID3D12Resource2 * This);
19705
19706#else
19707 D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
19708 ID3D12Resource2 * This,
19709 D3D12_RESOURCE_DESC1 * RetVal);
19710
19711#endif
19712
19713 END_INTERFACE
19714 } ID3D12Resource2Vtbl;
19715
19716 interface ID3D12Resource2
19717 {
19718 CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl;
19719 };
19720
19721
19722
19723#ifdef COBJMACROS
19724
19725
19726#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \
19727 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19728
19729#define ID3D12Resource2_AddRef(This) \
19730 ( (This)->lpVtbl -> AddRef(This) )
19731
19732#define ID3D12Resource2_Release(This) \
19733 ( (This)->lpVtbl -> Release(This) )
19734
19735
19736#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \
19737 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19738
19739#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \
19740 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19741
19742#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \
19743 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19744
19745#define ID3D12Resource2_SetName(This,Name) \
19746 ( (This)->lpVtbl -> SetName(This,Name) )
19747
19748
19749#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \
19750 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
19751
19752
19753
19754#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \
19755 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
19756
19757#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \
19758 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
19759#if !defined(_WIN32)
19760
19761#define ID3D12Resource2_GetDesc(This) \
19762 ( (This)->lpVtbl -> GetDesc(This) )
19763#else
19764#define ID3D12Resource2_GetDesc(This,RetVal) \
19765 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
19766#endif
19767
19768#define ID3D12Resource2_GetGPUVirtualAddress(This) \
19769 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
19770
19771#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
19772 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
19773
19774#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
19775 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
19776
19777#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
19778 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
19779
19780
19781#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \
19782 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
19783
19784#if !defined(_WIN32)
19785
19786#define ID3D12Resource2_GetDesc1(This) \
19787 ( (This)->lpVtbl -> GetDesc1(This) )
19788#else
19789#define ID3D12Resource2_GetDesc1(This,RetVal) \
19790 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
19791#endif
19792
19793#endif /* COBJMACROS */
19794
19795
19796#endif /* C style interface */
19797
19798
19799
19800
19801#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
19802
19803
19804#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
19805#define __ID3D12Heap1_INTERFACE_DEFINED__
19806
19807/* interface ID3D12Heap1 */
19808/* [unique][local][object][uuid] */
19809
19810
19811EXTERN_C const IID IID_ID3D12Heap1;
19812
19813#if defined(__cplusplus) && !defined(CINTERFACE)
19814
19815 MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
19816 ID3D12Heap1 : public ID3D12Heap
19817 {
19818 public:
19819 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
19820 REFIID riid,
19821 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
19822
19823 };
19824
19825
19826#else /* C style interface */
19827
19828 typedef struct ID3D12Heap1Vtbl
19829 {
19830 BEGIN_INTERFACE
19831
19832 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19833 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19834 ID3D12Heap1 * This,
19835 REFIID riid,
19836 _COM_Outptr_ void **ppvObject);
19837
19838 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19839 ULONG ( STDMETHODCALLTYPE *AddRef )(
19840 ID3D12Heap1 * This);
19841
19842 DECLSPEC_XFGVIRT(IUnknown, Release)
19843 ULONG ( STDMETHODCALLTYPE *Release )(
19844 ID3D12Heap1 * This);
19845
19846 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19847 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19848 ID3D12Heap1 * This,
19849 _In_ REFGUID guid,
19850 _Inout_ UINT *pDataSize,
19851 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19852
19853 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19854 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19855 ID3D12Heap1 * This,
19856 _In_ REFGUID guid,
19857 _In_ UINT DataSize,
19858 _In_reads_bytes_opt_( DataSize ) const void *pData);
19859
19860 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19861 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19862 ID3D12Heap1 * This,
19863 _In_ REFGUID guid,
19864 _In_opt_ const IUnknown *pData);
19865
19866 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19867 HRESULT ( STDMETHODCALLTYPE *SetName )(
19868 ID3D12Heap1 * This,
19869 _In_z_ LPCWSTR Name);
19870
19871 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
19872 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
19873 ID3D12Heap1 * This,
19874 REFIID riid,
19875 _COM_Outptr_opt_ void **ppvDevice);
19876
19877 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
19878#if !defined(_WIN32)
19879 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
19880 ID3D12Heap1 * This);
19881
19882#else
19883 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
19884 ID3D12Heap1 * This,
19885 D3D12_HEAP_DESC * RetVal);
19886
19887#endif
19888
19889 DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession)
19890 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
19891 ID3D12Heap1 * This,
19892 REFIID riid,
19893 _COM_Outptr_opt_ void **ppProtectedSession);
19894
19895 END_INTERFACE
19896 } ID3D12Heap1Vtbl;
19897
19898 interface ID3D12Heap1
19899 {
19900 CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
19901 };
19902
19903
19904
19905#ifdef COBJMACROS
19906
19907
19908#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
19909 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19910
19911#define ID3D12Heap1_AddRef(This) \
19912 ( (This)->lpVtbl -> AddRef(This) )
19913
19914#define ID3D12Heap1_Release(This) \
19915 ( (This)->lpVtbl -> Release(This) )
19916
19917
19918#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
19919 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19920
19921#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
19922 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19923
19924#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
19925 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19926
19927#define ID3D12Heap1_SetName(This,Name) \
19928 ( (This)->lpVtbl -> SetName(This,Name) )
19929
19930
19931#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
19932 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
19933
19934
19935#if !defined(_WIN32)
19936
19937#define ID3D12Heap1_GetDesc(This) \
19938 ( (This)->lpVtbl -> GetDesc(This) )
19939#else
19940#define ID3D12Heap1_GetDesc(This,RetVal) \
19941 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
19942#endif
19943
19944
19945#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
19946 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
19947
19948#endif /* COBJMACROS */
19949
19950
19951#endif /* C style interface */
19952
19953
19954
19955
19956#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
19957
19958
19959#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
19960#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
19961
19962/* interface ID3D12GraphicsCommandList3 */
19963/* [unique][local][object][uuid] */
19964
19965
19966EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
19967
19968#if defined(__cplusplus) && !defined(CINTERFACE)
19969
19970 MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
19971 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
19972 {
19973 public:
19974 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
19975 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
19976
19977 };
19978
19979
19980#else /* C style interface */
19981
19982 typedef struct ID3D12GraphicsCommandList3Vtbl
19983 {
19984 BEGIN_INTERFACE
19985
19986 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19987 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19988 ID3D12GraphicsCommandList3 * This,
19989 REFIID riid,
19990 _COM_Outptr_ void **ppvObject);
19991
19992 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19993 ULONG ( STDMETHODCALLTYPE *AddRef )(
19994 ID3D12GraphicsCommandList3 * This);
19995
19996 DECLSPEC_XFGVIRT(IUnknown, Release)
19997 ULONG ( STDMETHODCALLTYPE *Release )(
19998 ID3D12GraphicsCommandList3 * This);
19999
20000 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20001 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20002 ID3D12GraphicsCommandList3 * This,
20003 _In_ REFGUID guid,
20004 _Inout_ UINT *pDataSize,
20005 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20006
20007 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20008 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20009 ID3D12GraphicsCommandList3 * This,
20010 _In_ REFGUID guid,
20011 _In_ UINT DataSize,
20012 _In_reads_bytes_opt_( DataSize ) const void *pData);
20013
20014 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20015 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20016 ID3D12GraphicsCommandList3 * This,
20017 _In_ REFGUID guid,
20018 _In_opt_ const IUnknown *pData);
20019
20020 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20021 HRESULT ( STDMETHODCALLTYPE *SetName )(
20022 ID3D12GraphicsCommandList3 * This,
20023 _In_z_ LPCWSTR Name);
20024
20025 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20026 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20027 ID3D12GraphicsCommandList3 * This,
20028 REFIID riid,
20029 _COM_Outptr_opt_ void **ppvDevice);
20030
20031 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
20032 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
20033 ID3D12GraphicsCommandList3 * This);
20034
20035 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
20036 HRESULT ( STDMETHODCALLTYPE *Close )(
20037 ID3D12GraphicsCommandList3 * This);
20038
20039 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
20040 HRESULT ( STDMETHODCALLTYPE *Reset )(
20041 ID3D12GraphicsCommandList3 * This,
20042 _In_ ID3D12CommandAllocator *pAllocator,
20043 _In_opt_ ID3D12PipelineState *pInitialState);
20044
20045 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
20046 void ( STDMETHODCALLTYPE *ClearState )(
20047 ID3D12GraphicsCommandList3 * This,
20048 _In_opt_ ID3D12PipelineState *pPipelineState);
20049
20050 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
20051 void ( STDMETHODCALLTYPE *DrawInstanced )(
20052 ID3D12GraphicsCommandList3 * This,
20053 _In_ UINT VertexCountPerInstance,
20054 _In_ UINT InstanceCount,
20055 _In_ UINT StartVertexLocation,
20056 _In_ UINT StartInstanceLocation);
20057
20058 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
20059 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
20060 ID3D12GraphicsCommandList3 * This,
20061 _In_ UINT IndexCountPerInstance,
20062 _In_ UINT InstanceCount,
20063 _In_ UINT StartIndexLocation,
20064 _In_ INT BaseVertexLocation,
20065 _In_ UINT StartInstanceLocation);
20066
20067 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
20068 void ( STDMETHODCALLTYPE *Dispatch )(
20069 ID3D12GraphicsCommandList3 * This,
20070 _In_ UINT ThreadGroupCountX,
20071 _In_ UINT ThreadGroupCountY,
20072 _In_ UINT ThreadGroupCountZ);
20073
20074 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
20075 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
20076 ID3D12GraphicsCommandList3 * This,
20077 _In_ ID3D12Resource *pDstBuffer,
20078 UINT64 DstOffset,
20079 _In_ ID3D12Resource *pSrcBuffer,
20080 UINT64 SrcOffset,
20081 UINT64 NumBytes);
20082
20083 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
20084 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
20085 ID3D12GraphicsCommandList3 * This,
20086 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
20087 UINT DstX,
20088 UINT DstY,
20089 UINT DstZ,
20090 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
20091 _In_opt_ const D3D12_BOX *pSrcBox);
20092
20093 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
20094 void ( STDMETHODCALLTYPE *CopyResource )(
20095 ID3D12GraphicsCommandList3 * This,
20096 _In_ ID3D12Resource *pDstResource,
20097 _In_ ID3D12Resource *pSrcResource);
20098
20099 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
20100 void ( STDMETHODCALLTYPE *CopyTiles )(
20101 ID3D12GraphicsCommandList3 * This,
20102 _In_ ID3D12Resource *pTiledResource,
20103 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
20104 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
20105 _In_ ID3D12Resource *pBuffer,
20106 UINT64 BufferStartOffsetInBytes,
20107 D3D12_TILE_COPY_FLAGS Flags);
20108
20109 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
20110 void ( STDMETHODCALLTYPE *ResolveSubresource )(
20111 ID3D12GraphicsCommandList3 * This,
20112 _In_ ID3D12Resource *pDstResource,
20113 _In_ UINT DstSubresource,
20114 _In_ ID3D12Resource *pSrcResource,
20115 _In_ UINT SrcSubresource,
20116 _In_ DXGI_FORMAT Format);
20117
20118 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
20119 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
20120 ID3D12GraphicsCommandList3 * This,
20121 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
20122
20123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
20124 void ( STDMETHODCALLTYPE *RSSetViewports )(
20125 ID3D12GraphicsCommandList3 * This,
20126 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
20127 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
20128
20129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
20130 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
20131 ID3D12GraphicsCommandList3 * This,
20132 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
20133 _In_reads_( NumRects) const D3D12_RECT *pRects);
20134
20135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
20136 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
20137 ID3D12GraphicsCommandList3 * This,
20138 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
20139
20140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
20141 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
20142 ID3D12GraphicsCommandList3 * This,
20143 _In_ UINT StencilRef);
20144
20145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
20146 void ( STDMETHODCALLTYPE *SetPipelineState )(
20147 ID3D12GraphicsCommandList3 * This,
20148 _In_ ID3D12PipelineState *pPipelineState);
20149
20150 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
20151 void ( STDMETHODCALLTYPE *ResourceBarrier )(
20152 ID3D12GraphicsCommandList3 * This,
20153 _In_ UINT NumBarriers,
20154 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
20155
20156 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
20157 void ( STDMETHODCALLTYPE *ExecuteBundle )(
20158 ID3D12GraphicsCommandList3 * This,
20159 _In_ ID3D12GraphicsCommandList *pCommandList);
20160
20161 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
20162 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
20163 ID3D12GraphicsCommandList3 * This,
20164 _In_ UINT NumDescriptorHeaps,
20165 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
20166
20167 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
20168 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
20169 ID3D12GraphicsCommandList3 * This,
20170 _In_opt_ ID3D12RootSignature *pRootSignature);
20171
20172 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
20173 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
20174 ID3D12GraphicsCommandList3 * This,
20175 _In_opt_ ID3D12RootSignature *pRootSignature);
20176
20177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
20178 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
20179 ID3D12GraphicsCommandList3 * This,
20180 _In_ UINT RootParameterIndex,
20181 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
20182
20183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
20184 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
20185 ID3D12GraphicsCommandList3 * This,
20186 _In_ UINT RootParameterIndex,
20187 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
20188
20189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
20190 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
20191 ID3D12GraphicsCommandList3 * This,
20192 _In_ UINT RootParameterIndex,
20193 _In_ UINT SrcData,
20194 _In_ UINT DestOffsetIn32BitValues);
20195
20196 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
20197 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
20198 ID3D12GraphicsCommandList3 * This,
20199 _In_ UINT RootParameterIndex,
20200 _In_ UINT SrcData,
20201 _In_ UINT DestOffsetIn32BitValues);
20202
20203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
20204 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
20205 ID3D12GraphicsCommandList3 * This,
20206 _In_ UINT RootParameterIndex,
20207 _In_ UINT Num32BitValuesToSet,
20208 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
20209 _In_ UINT DestOffsetIn32BitValues);
20210
20211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
20212 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
20213 ID3D12GraphicsCommandList3 * This,
20214 _In_ UINT RootParameterIndex,
20215 _In_ UINT Num32BitValuesToSet,
20216 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
20217 _In_ UINT DestOffsetIn32BitValues);
20218
20219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
20220 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
20221 ID3D12GraphicsCommandList3 * This,
20222 _In_ UINT RootParameterIndex,
20223 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20224
20225 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
20226 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
20227 ID3D12GraphicsCommandList3 * This,
20228 _In_ UINT RootParameterIndex,
20229 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20230
20231 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
20232 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
20233 ID3D12GraphicsCommandList3 * This,
20234 _In_ UINT RootParameterIndex,
20235 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20236
20237 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
20238 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
20239 ID3D12GraphicsCommandList3 * This,
20240 _In_ UINT RootParameterIndex,
20241 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20242
20243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
20244 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
20245 ID3D12GraphicsCommandList3 * This,
20246 _In_ UINT RootParameterIndex,
20247 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20248
20249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
20250 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
20251 ID3D12GraphicsCommandList3 * This,
20252 _In_ UINT RootParameterIndex,
20253 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
20254
20255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
20256 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
20257 ID3D12GraphicsCommandList3 * This,
20258 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
20259
20260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
20261 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
20262 ID3D12GraphicsCommandList3 * This,
20263 _In_ UINT StartSlot,
20264 _In_ UINT NumViews,
20265 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
20266
20267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
20268 void ( STDMETHODCALLTYPE *SOSetTargets )(
20269 ID3D12GraphicsCommandList3 * This,
20270 _In_ UINT StartSlot,
20271 _In_ UINT NumViews,
20272 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
20273
20274 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
20275 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
20276 ID3D12GraphicsCommandList3 * This,
20277 _In_ UINT NumRenderTargetDescriptors,
20278 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
20279 _In_ BOOL RTsSingleHandleToDescriptorRange,
20280 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
20281
20282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
20283 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
20284 ID3D12GraphicsCommandList3 * This,
20285 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
20286 _In_ D3D12_CLEAR_FLAGS ClearFlags,
20287 _In_ FLOAT Depth,
20288 _In_ UINT8 Stencil,
20289 _In_ UINT NumRects,
20290 _In_reads_(NumRects) const D3D12_RECT *pRects);
20291
20292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
20293 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
20294 ID3D12GraphicsCommandList3 * This,
20295 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
20296 _In_ const FLOAT ColorRGBA[ 4 ],
20297 _In_ UINT NumRects,
20298 _In_reads_(NumRects) const D3D12_RECT *pRects);
20299
20300 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
20301 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
20302 ID3D12GraphicsCommandList3 * This,
20303 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
20304 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
20305 _In_ ID3D12Resource *pResource,
20306 _In_ const UINT Values[ 4 ],
20307 _In_ UINT NumRects,
20308 _In_reads_(NumRects) const D3D12_RECT *pRects);
20309
20310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
20311 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
20312 ID3D12GraphicsCommandList3 * This,
20313 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
20314 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
20315 _In_ ID3D12Resource *pResource,
20316 _In_ const FLOAT Values[ 4 ],
20317 _In_ UINT NumRects,
20318 _In_reads_(NumRects) const D3D12_RECT *pRects);
20319
20320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
20321 void ( STDMETHODCALLTYPE *DiscardResource )(
20322 ID3D12GraphicsCommandList3 * This,
20323 _In_ ID3D12Resource *pResource,
20324 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
20325
20326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
20327 void ( STDMETHODCALLTYPE *BeginQuery )(
20328 ID3D12GraphicsCommandList3 * This,
20329 _In_ ID3D12QueryHeap *pQueryHeap,
20330 _In_ D3D12_QUERY_TYPE Type,
20331 _In_ UINT Index);
20332
20333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
20334 void ( STDMETHODCALLTYPE *EndQuery )(
20335 ID3D12GraphicsCommandList3 * This,
20336 _In_ ID3D12QueryHeap *pQueryHeap,
20337 _In_ D3D12_QUERY_TYPE Type,
20338 _In_ UINT Index);
20339
20340 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
20341 void ( STDMETHODCALLTYPE *ResolveQueryData )(
20342 ID3D12GraphicsCommandList3 * This,
20343 _In_ ID3D12QueryHeap *pQueryHeap,
20344 _In_ D3D12_QUERY_TYPE Type,
20345 _In_ UINT StartIndex,
20346 _In_ UINT NumQueries,
20347 _In_ ID3D12Resource *pDestinationBuffer,
20348 _In_ UINT64 AlignedDestinationBufferOffset);
20349
20350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
20351 void ( STDMETHODCALLTYPE *SetPredication )(
20352 ID3D12GraphicsCommandList3 * This,
20353 _In_opt_ ID3D12Resource *pBuffer,
20354 _In_ UINT64 AlignedBufferOffset,
20355 _In_ D3D12_PREDICATION_OP Operation);
20356
20357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
20358 void ( STDMETHODCALLTYPE *SetMarker )(
20359 ID3D12GraphicsCommandList3 * This,
20360 UINT Metadata,
20361 _In_reads_bytes_opt_(Size) const void *pData,
20362 UINT Size);
20363
20364 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
20365 void ( STDMETHODCALLTYPE *BeginEvent )(
20366 ID3D12GraphicsCommandList3 * This,
20367 UINT Metadata,
20368 _In_reads_bytes_opt_(Size) const void *pData,
20369 UINT Size);
20370
20371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
20372 void ( STDMETHODCALLTYPE *EndEvent )(
20373 ID3D12GraphicsCommandList3 * This);
20374
20375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
20376 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
20377 ID3D12GraphicsCommandList3 * This,
20378 _In_ ID3D12CommandSignature *pCommandSignature,
20379 _In_ UINT MaxCommandCount,
20380 _In_ ID3D12Resource *pArgumentBuffer,
20381 _In_ UINT64 ArgumentBufferOffset,
20382 _In_opt_ ID3D12Resource *pCountBuffer,
20383 _In_ UINT64 CountBufferOffset);
20384
20385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
20386 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
20387 ID3D12GraphicsCommandList3 * This,
20388 _In_ ID3D12Resource *pDstBuffer,
20389 UINT64 DstOffset,
20390 _In_ ID3D12Resource *pSrcBuffer,
20391 UINT64 SrcOffset,
20392 UINT Dependencies,
20393 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
20394 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
20395
20396 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
20397 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
20398 ID3D12GraphicsCommandList3 * This,
20399 _In_ ID3D12Resource *pDstBuffer,
20400 UINT64 DstOffset,
20401 _In_ ID3D12Resource *pSrcBuffer,
20402 UINT64 SrcOffset,
20403 UINT Dependencies,
20404 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
20405 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
20406
20407 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
20408 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
20409 ID3D12GraphicsCommandList3 * This,
20410 _In_ FLOAT Min,
20411 _In_ FLOAT Max);
20412
20413 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
20414 void ( STDMETHODCALLTYPE *SetSamplePositions )(
20415 ID3D12GraphicsCommandList3 * This,
20416 _In_ UINT NumSamplesPerPixel,
20417 _In_ UINT NumPixels,
20418 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
20419
20420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
20421 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
20422 ID3D12GraphicsCommandList3 * This,
20423 _In_ ID3D12Resource *pDstResource,
20424 _In_ UINT DstSubresource,
20425 _In_ UINT DstX,
20426 _In_ UINT DstY,
20427 _In_ ID3D12Resource *pSrcResource,
20428 _In_ UINT SrcSubresource,
20429 _In_opt_ D3D12_RECT *pSrcRect,
20430 _In_ DXGI_FORMAT Format,
20431 _In_ D3D12_RESOLVE_MODE ResolveMode);
20432
20433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
20434 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
20435 ID3D12GraphicsCommandList3 * This,
20436 _In_ UINT Mask);
20437
20438 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
20439 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
20440 ID3D12GraphicsCommandList3 * This,
20441 UINT Count,
20442 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
20443 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
20444
20445 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
20446 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
20447 ID3D12GraphicsCommandList3 * This,
20448 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
20449
20450 END_INTERFACE
20451 } ID3D12GraphicsCommandList3Vtbl;
20452
20453 interface ID3D12GraphicsCommandList3
20454 {
20455 CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
20456 };
20457
20458
20459
20460#ifdef COBJMACROS
20461
20462
20463#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
20464 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20465
20466#define ID3D12GraphicsCommandList3_AddRef(This) \
20467 ( (This)->lpVtbl -> AddRef(This) )
20468
20469#define ID3D12GraphicsCommandList3_Release(This) \
20470 ( (This)->lpVtbl -> Release(This) )
20471
20472
20473#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
20474 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20475
20476#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
20477 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20478
20479#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
20480 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20481
20482#define ID3D12GraphicsCommandList3_SetName(This,Name) \
20483 ( (This)->lpVtbl -> SetName(This,Name) )
20484
20485
20486#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
20487 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20488
20489
20490#define ID3D12GraphicsCommandList3_GetType(This) \
20491 ( (This)->lpVtbl -> GetType(This) )
20492
20493
20494#define ID3D12GraphicsCommandList3_Close(This) \
20495 ( (This)->lpVtbl -> Close(This) )
20496
20497#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
20498 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
20499
20500#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
20501 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
20502
20503#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
20504 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
20505
20506#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
20507 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
20508
20509#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
20510 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
20511
20512#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
20513 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
20514
20515#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
20516 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
20517
20518#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
20519 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
20520
20521#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
20522 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
20523
20524#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
20525 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
20526
20527#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
20528 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
20529
20530#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
20531 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
20532
20533#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
20534 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
20535
20536#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
20537 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
20538
20539#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
20540 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
20541
20542#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
20543 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
20544
20545#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
20546 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
20547
20548#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
20549 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
20550
20551#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
20552 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
20553
20554#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
20555 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
20556
20557#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
20558 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
20559
20560#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
20561 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
20562
20563#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
20564 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
20565
20566#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
20567 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
20568
20569#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
20570 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
20571
20572#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
20573 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
20574
20575#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
20576 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
20577
20578#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
20579 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
20580
20581#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
20582 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
20583
20584#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
20585 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
20586
20587#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
20588 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
20589
20590#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
20591 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
20592
20593#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
20594 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
20595
20596#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
20597 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
20598
20599#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
20600 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
20601
20602#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
20603 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
20604
20605#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
20606 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
20607
20608#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
20609 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
20610
20611#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
20612 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
20613
20614#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
20615 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
20616
20617#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
20618 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
20619
20620#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
20621 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
20622
20623#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
20624 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
20625
20626#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
20627 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
20628
20629#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
20630 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
20631
20632#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
20633 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
20634
20635#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
20636 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
20637
20638#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
20639 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
20640
20641#define ID3D12GraphicsCommandList3_EndEvent(This) \
20642 ( (This)->lpVtbl -> EndEvent(This) )
20643
20644#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
20645 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
20646
20647
20648#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
20649 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
20650
20651#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
20652 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
20653
20654#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
20655 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
20656
20657#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
20658 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
20659
20660#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
20661 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
20662
20663#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
20664 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
20665
20666
20667#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
20668 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
20669
20670
20671#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
20672 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
20673
20674#endif /* COBJMACROS */
20675
20676
20677#endif /* C style interface */
20678
20679
20680
20681
20682#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
20683
20684
20685/* interface __MIDL_itf_d3d12_0000_0051 */
20686/* [local] */
20687
20688typedef
20689enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
20690 {
20691 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
20692 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
20693 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
20694 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) ,
20695 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
20696 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
20697 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
20698 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
20699
20700typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
20701 {
20702 D3D12_CLEAR_VALUE ClearValue;
20703 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
20704
20705typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS
20706 {
20707 UINT AdditionalWidth;
20708 UINT AdditionalHeight;
20709 } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
20710
20711typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
20712 {
20713 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
20714 union
20715 {
20716 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
20717 D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
20718 } ;
20719 } D3D12_RENDER_PASS_BEGINNING_ACCESS;
20720
20721typedef
20722enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
20723 {
20724 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
20725 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
20726 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
20727 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) ,
20728 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
20729 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
20730 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
20731 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
20732
20733typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
20734 {
20735 UINT SrcSubresource;
20736 UINT DstSubresource;
20737 UINT DstX;
20738 UINT DstY;
20739 D3D12_RECT SrcRect;
20740 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
20741
20742typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
20743 {
20744 ID3D12Resource *pSrcResource;
20745 ID3D12Resource *pDstResource;
20746 UINT SubresourceCount;
20747 _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
20748 DXGI_FORMAT Format;
20749 D3D12_RESOLVE_MODE ResolveMode;
20750 BOOL PreserveResolveSource;
20751 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
20752
20753typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS
20754 {
20755 UINT AdditionalWidth;
20756 UINT AdditionalHeight;
20757 } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
20758
20759typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
20760 {
20761 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
20762 union
20763 {
20764 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
20765 D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
20766 } ;
20767 } D3D12_RENDER_PASS_ENDING_ACCESS;
20768
20769typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
20770 {
20771 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
20772 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
20773 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
20774 } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
20775
20776typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
20777 {
20778 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
20779 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
20780 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
20781 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
20782 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
20783 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
20784
20785typedef
20786enum D3D12_RENDER_PASS_FLAGS
20787 {
20788 D3D12_RENDER_PASS_FLAG_NONE = 0,
20789 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
20790 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
20791 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
20792 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8,
20793 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10
20794 } D3D12_RENDER_PASS_FLAGS;
20795
20796DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )
20797
20798
20799extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_c_ifspec;
20800extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0051_v0_0_s_ifspec;
20801
20802#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
20803#define __ID3D12MetaCommand_INTERFACE_DEFINED__
20804
20805/* interface ID3D12MetaCommand */
20806/* [unique][local][object][uuid] */
20807
20808
20809EXTERN_C const IID IID_ID3D12MetaCommand;
20810
20811#if defined(__cplusplus) && !defined(CINTERFACE)
20812
20813 MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
20814 ID3D12MetaCommand : public ID3D12Pageable
20815 {
20816 public:
20817 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
20818 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
20819 _In_ UINT ParameterIndex) = 0;
20820
20821 };
20822
20823
20824#else /* C style interface */
20825
20826 typedef struct ID3D12MetaCommandVtbl
20827 {
20828 BEGIN_INTERFACE
20829
20830 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20831 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20832 ID3D12MetaCommand * This,
20833 REFIID riid,
20834 _COM_Outptr_ void **ppvObject);
20835
20836 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20837 ULONG ( STDMETHODCALLTYPE *AddRef )(
20838 ID3D12MetaCommand * This);
20839
20840 DECLSPEC_XFGVIRT(IUnknown, Release)
20841 ULONG ( STDMETHODCALLTYPE *Release )(
20842 ID3D12MetaCommand * This);
20843
20844 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20845 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20846 ID3D12MetaCommand * This,
20847 _In_ REFGUID guid,
20848 _Inout_ UINT *pDataSize,
20849 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20850
20851 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20852 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20853 ID3D12MetaCommand * This,
20854 _In_ REFGUID guid,
20855 _In_ UINT DataSize,
20856 _In_reads_bytes_opt_( DataSize ) const void *pData);
20857
20858 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20859 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20860 ID3D12MetaCommand * This,
20861 _In_ REFGUID guid,
20862 _In_opt_ const IUnknown *pData);
20863
20864 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20865 HRESULT ( STDMETHODCALLTYPE *SetName )(
20866 ID3D12MetaCommand * This,
20867 _In_z_ LPCWSTR Name);
20868
20869 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20870 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20871 ID3D12MetaCommand * This,
20872 REFIID riid,
20873 _COM_Outptr_opt_ void **ppvDevice);
20874
20875 DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize)
20876 UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
20877 ID3D12MetaCommand * This,
20878 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
20879 _In_ UINT ParameterIndex);
20880
20881 END_INTERFACE
20882 } ID3D12MetaCommandVtbl;
20883
20884 interface ID3D12MetaCommand
20885 {
20886 CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
20887 };
20888
20889
20890
20891#ifdef COBJMACROS
20892
20893
20894#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
20895 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20896
20897#define ID3D12MetaCommand_AddRef(This) \
20898 ( (This)->lpVtbl -> AddRef(This) )
20899
20900#define ID3D12MetaCommand_Release(This) \
20901 ( (This)->lpVtbl -> Release(This) )
20902
20903
20904#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
20905 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20906
20907#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
20908 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20909
20910#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
20911 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20912
20913#define ID3D12MetaCommand_SetName(This,Name) \
20914 ( (This)->lpVtbl -> SetName(This,Name) )
20915
20916
20917#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
20918 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20919
20920
20921
20922#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
20923 ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
20924
20925#endif /* COBJMACROS */
20926
20927
20928#endif /* C style interface */
20929
20930
20931
20932
20933#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
20934
20935
20936/* interface __MIDL_itf_d3d12_0000_0052 */
20937/* [local] */
20938
20939typedef struct D3D12_DISPATCH_RAYS_DESC
20940 {
20941 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
20942 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
20943 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
20944 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
20945 UINT Width;
20946 UINT Height;
20947 UINT Depth;
20948 } D3D12_DISPATCH_RAYS_DESC;
20949
20950typedef
20951enum D3D12_SET_WORK_GRAPH_FLAGS
20952 {
20953 D3D12_SET_WORK_GRAPH_FLAG_NONE = 0,
20954 D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1
20955 } D3D12_SET_WORK_GRAPH_FLAGS;
20956
20957DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )
20958typedef struct D3D12_SET_WORK_GRAPH_DESC
20959 {
20960 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
20961 D3D12_SET_WORK_GRAPH_FLAGS Flags;
20962 D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory;
20963 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable;
20964 } D3D12_SET_WORK_GRAPH_DESC;
20965
20966typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC
20967 {
20968 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
20969 } D3D12_SET_RAYTRACING_PIPELINE_DESC;
20970
20971typedef struct D3D12_SET_GENERIC_PIPELINE_DESC
20972 {
20973 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
20974 } D3D12_SET_GENERIC_PIPELINE_DESC;
20975
20976typedef
20977enum D3D12_PROGRAM_TYPE
20978 {
20979 D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1,
20980 D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4,
20981 D3D12_PROGRAM_TYPE_WORK_GRAPH = 5
20982 } D3D12_PROGRAM_TYPE;
20983
20984typedef struct D3D12_SET_PROGRAM_DESC
20985 {
20986 D3D12_PROGRAM_TYPE Type;
20987 union
20988 {
20989 D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline;
20990 D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline;
20991 D3D12_SET_WORK_GRAPH_DESC WorkGraph;
20992 } ;
20993 } D3D12_SET_PROGRAM_DESC;
20994
20995typedef
20996enum D3D12_DISPATCH_MODE
20997 {
20998 D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0,
20999 D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1,
21000 D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2,
21001 D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3
21002 } D3D12_DISPATCH_MODE;
21003
21004typedef struct D3D12_NODE_CPU_INPUT
21005 {
21006 UINT EntrypointIndex;
21007 UINT NumRecords;
21008 const void *pRecords;
21009 UINT64 RecordStrideInBytes;
21010 } D3D12_NODE_CPU_INPUT;
21011
21012typedef struct D3D12_NODE_GPU_INPUT
21013 {
21014 UINT EntrypointIndex;
21015 UINT NumRecords;
21016 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records;
21017 } D3D12_NODE_GPU_INPUT;
21018
21019typedef struct D3D12_MULTI_NODE_CPU_INPUT
21020 {
21021 UINT NumNodeInputs;
21022 const D3D12_NODE_CPU_INPUT *pNodeInputs;
21023 UINT64 NodeInputStrideInBytes;
21024 } D3D12_MULTI_NODE_CPU_INPUT;
21025
21026typedef struct D3D12_MULTI_NODE_GPU_INPUT
21027 {
21028 UINT NumNodeInputs;
21029 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs;
21030 } D3D12_MULTI_NODE_GPU_INPUT;
21031
21032typedef struct D3D12_DISPATCH_GRAPH_DESC
21033 {
21034 D3D12_DISPATCH_MODE Mode;
21035 union
21036 {
21037 D3D12_NODE_CPU_INPUT NodeCPUInput;
21038 D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput;
21039 D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput;
21040 D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput;
21041 } ;
21042 } D3D12_DISPATCH_GRAPH_DESC;
21043
21044
21045
21046extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_c_ifspec;
21047extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0052_v0_0_s_ifspec;
21048
21049#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
21050#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
21051
21052/* interface ID3D12GraphicsCommandList4 */
21053/* [unique][local][object][uuid] */
21054
21055
21056EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
21057
21058#if defined(__cplusplus) && !defined(CINTERFACE)
21059
21060 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
21061 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
21062 {
21063 public:
21064 virtual void STDMETHODCALLTYPE BeginRenderPass(
21065 _In_ UINT NumRenderTargets,
21066 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
21067 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
21068 D3D12_RENDER_PASS_FLAGS Flags) = 0;
21069
21070 virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
21071
21072 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
21073 _In_ ID3D12MetaCommand *pMetaCommand,
21074 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
21075 _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
21076
21077 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
21078 _In_ ID3D12MetaCommand *pMetaCommand,
21079 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
21080 _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
21081
21082 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
21083 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
21084 _In_ UINT NumPostbuildInfoDescs,
21085 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
21086
21087 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
21088 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
21089 _In_ UINT NumSourceAccelerationStructures,
21090 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
21091
21092 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
21093 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
21094 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
21095 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
21096
21097 virtual void STDMETHODCALLTYPE SetPipelineState1(
21098 _In_ ID3D12StateObject *pStateObject) = 0;
21099
21100 virtual void STDMETHODCALLTYPE DispatchRays(
21101 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
21102
21103 };
21104
21105
21106#else /* C style interface */
21107
21108 typedef struct ID3D12GraphicsCommandList4Vtbl
21109 {
21110 BEGIN_INTERFACE
21111
21112 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21113 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21114 ID3D12GraphicsCommandList4 * This,
21115 REFIID riid,
21116 _COM_Outptr_ void **ppvObject);
21117
21118 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21119 ULONG ( STDMETHODCALLTYPE *AddRef )(
21120 ID3D12GraphicsCommandList4 * This);
21121
21122 DECLSPEC_XFGVIRT(IUnknown, Release)
21123 ULONG ( STDMETHODCALLTYPE *Release )(
21124 ID3D12GraphicsCommandList4 * This);
21125
21126 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
21127 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
21128 ID3D12GraphicsCommandList4 * This,
21129 _In_ REFGUID guid,
21130 _Inout_ UINT *pDataSize,
21131 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
21132
21133 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
21134 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
21135 ID3D12GraphicsCommandList4 * This,
21136 _In_ REFGUID guid,
21137 _In_ UINT DataSize,
21138 _In_reads_bytes_opt_( DataSize ) const void *pData);
21139
21140 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
21141 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
21142 ID3D12GraphicsCommandList4 * This,
21143 _In_ REFGUID guid,
21144 _In_opt_ const IUnknown *pData);
21145
21146 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
21147 HRESULT ( STDMETHODCALLTYPE *SetName )(
21148 ID3D12GraphicsCommandList4 * This,
21149 _In_z_ LPCWSTR Name);
21150
21151 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
21152 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
21153 ID3D12GraphicsCommandList4 * This,
21154 REFIID riid,
21155 _COM_Outptr_opt_ void **ppvDevice);
21156
21157 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
21158 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
21159 ID3D12GraphicsCommandList4 * This);
21160
21161 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
21162 HRESULT ( STDMETHODCALLTYPE *Close )(
21163 ID3D12GraphicsCommandList4 * This);
21164
21165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
21166 HRESULT ( STDMETHODCALLTYPE *Reset )(
21167 ID3D12GraphicsCommandList4 * This,
21168 _In_ ID3D12CommandAllocator *pAllocator,
21169 _In_opt_ ID3D12PipelineState *pInitialState);
21170
21171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
21172 void ( STDMETHODCALLTYPE *ClearState )(
21173 ID3D12GraphicsCommandList4 * This,
21174 _In_opt_ ID3D12PipelineState *pPipelineState);
21175
21176 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
21177 void ( STDMETHODCALLTYPE *DrawInstanced )(
21178 ID3D12GraphicsCommandList4 * This,
21179 _In_ UINT VertexCountPerInstance,
21180 _In_ UINT InstanceCount,
21181 _In_ UINT StartVertexLocation,
21182 _In_ UINT StartInstanceLocation);
21183
21184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
21185 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
21186 ID3D12GraphicsCommandList4 * This,
21187 _In_ UINT IndexCountPerInstance,
21188 _In_ UINT InstanceCount,
21189 _In_ UINT StartIndexLocation,
21190 _In_ INT BaseVertexLocation,
21191 _In_ UINT StartInstanceLocation);
21192
21193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
21194 void ( STDMETHODCALLTYPE *Dispatch )(
21195 ID3D12GraphicsCommandList4 * This,
21196 _In_ UINT ThreadGroupCountX,
21197 _In_ UINT ThreadGroupCountY,
21198 _In_ UINT ThreadGroupCountZ);
21199
21200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
21201 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
21202 ID3D12GraphicsCommandList4 * This,
21203 _In_ ID3D12Resource *pDstBuffer,
21204 UINT64 DstOffset,
21205 _In_ ID3D12Resource *pSrcBuffer,
21206 UINT64 SrcOffset,
21207 UINT64 NumBytes);
21208
21209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
21210 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
21211 ID3D12GraphicsCommandList4 * This,
21212 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
21213 UINT DstX,
21214 UINT DstY,
21215 UINT DstZ,
21216 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
21217 _In_opt_ const D3D12_BOX *pSrcBox);
21218
21219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
21220 void ( STDMETHODCALLTYPE *CopyResource )(
21221 ID3D12GraphicsCommandList4 * This,
21222 _In_ ID3D12Resource *pDstResource,
21223 _In_ ID3D12Resource *pSrcResource);
21224
21225 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
21226 void ( STDMETHODCALLTYPE *CopyTiles )(
21227 ID3D12GraphicsCommandList4 * This,
21228 _In_ ID3D12Resource *pTiledResource,
21229 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
21230 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
21231 _In_ ID3D12Resource *pBuffer,
21232 UINT64 BufferStartOffsetInBytes,
21233 D3D12_TILE_COPY_FLAGS Flags);
21234
21235 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
21236 void ( STDMETHODCALLTYPE *ResolveSubresource )(
21237 ID3D12GraphicsCommandList4 * This,
21238 _In_ ID3D12Resource *pDstResource,
21239 _In_ UINT DstSubresource,
21240 _In_ ID3D12Resource *pSrcResource,
21241 _In_ UINT SrcSubresource,
21242 _In_ DXGI_FORMAT Format);
21243
21244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
21245 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
21246 ID3D12GraphicsCommandList4 * This,
21247 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
21248
21249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
21250 void ( STDMETHODCALLTYPE *RSSetViewports )(
21251 ID3D12GraphicsCommandList4 * This,
21252 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
21253 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
21254
21255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
21256 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
21257 ID3D12GraphicsCommandList4 * This,
21258 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
21259 _In_reads_( NumRects) const D3D12_RECT *pRects);
21260
21261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
21262 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
21263 ID3D12GraphicsCommandList4 * This,
21264 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
21265
21266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
21267 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
21268 ID3D12GraphicsCommandList4 * This,
21269 _In_ UINT StencilRef);
21270
21271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
21272 void ( STDMETHODCALLTYPE *SetPipelineState )(
21273 ID3D12GraphicsCommandList4 * This,
21274 _In_ ID3D12PipelineState *pPipelineState);
21275
21276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
21277 void ( STDMETHODCALLTYPE *ResourceBarrier )(
21278 ID3D12GraphicsCommandList4 * This,
21279 _In_ UINT NumBarriers,
21280 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
21281
21282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
21283 void ( STDMETHODCALLTYPE *ExecuteBundle )(
21284 ID3D12GraphicsCommandList4 * This,
21285 _In_ ID3D12GraphicsCommandList *pCommandList);
21286
21287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
21288 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
21289 ID3D12GraphicsCommandList4 * This,
21290 _In_ UINT NumDescriptorHeaps,
21291 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
21292
21293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
21294 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
21295 ID3D12GraphicsCommandList4 * This,
21296 _In_opt_ ID3D12RootSignature *pRootSignature);
21297
21298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
21299 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
21300 ID3D12GraphicsCommandList4 * This,
21301 _In_opt_ ID3D12RootSignature *pRootSignature);
21302
21303 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
21304 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
21305 ID3D12GraphicsCommandList4 * This,
21306 _In_ UINT RootParameterIndex,
21307 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21308
21309 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
21310 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
21311 ID3D12GraphicsCommandList4 * This,
21312 _In_ UINT RootParameterIndex,
21313 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21314
21315 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
21316 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
21317 ID3D12GraphicsCommandList4 * This,
21318 _In_ UINT RootParameterIndex,
21319 _In_ UINT SrcData,
21320 _In_ UINT DestOffsetIn32BitValues);
21321
21322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
21323 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
21324 ID3D12GraphicsCommandList4 * This,
21325 _In_ UINT RootParameterIndex,
21326 _In_ UINT SrcData,
21327 _In_ UINT DestOffsetIn32BitValues);
21328
21329 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
21330 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
21331 ID3D12GraphicsCommandList4 * This,
21332 _In_ UINT RootParameterIndex,
21333 _In_ UINT Num32BitValuesToSet,
21334 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21335 _In_ UINT DestOffsetIn32BitValues);
21336
21337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
21338 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
21339 ID3D12GraphicsCommandList4 * This,
21340 _In_ UINT RootParameterIndex,
21341 _In_ UINT Num32BitValuesToSet,
21342 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21343 _In_ UINT DestOffsetIn32BitValues);
21344
21345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
21346 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
21347 ID3D12GraphicsCommandList4 * This,
21348 _In_ UINT RootParameterIndex,
21349 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21350
21351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
21352 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
21353 ID3D12GraphicsCommandList4 * This,
21354 _In_ UINT RootParameterIndex,
21355 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21356
21357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
21358 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
21359 ID3D12GraphicsCommandList4 * This,
21360 _In_ UINT RootParameterIndex,
21361 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21362
21363 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
21364 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
21365 ID3D12GraphicsCommandList4 * This,
21366 _In_ UINT RootParameterIndex,
21367 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21368
21369 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
21370 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
21371 ID3D12GraphicsCommandList4 * This,
21372 _In_ UINT RootParameterIndex,
21373 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21374
21375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
21376 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
21377 ID3D12GraphicsCommandList4 * This,
21378 _In_ UINT RootParameterIndex,
21379 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21380
21381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
21382 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
21383 ID3D12GraphicsCommandList4 * This,
21384 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
21385
21386 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
21387 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
21388 ID3D12GraphicsCommandList4 * This,
21389 _In_ UINT StartSlot,
21390 _In_ UINT NumViews,
21391 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
21392
21393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
21394 void ( STDMETHODCALLTYPE *SOSetTargets )(
21395 ID3D12GraphicsCommandList4 * This,
21396 _In_ UINT StartSlot,
21397 _In_ UINT NumViews,
21398 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
21399
21400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
21401 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
21402 ID3D12GraphicsCommandList4 * This,
21403 _In_ UINT NumRenderTargetDescriptors,
21404 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
21405 _In_ BOOL RTsSingleHandleToDescriptorRange,
21406 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
21407
21408 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
21409 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
21410 ID3D12GraphicsCommandList4 * This,
21411 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
21412 _In_ D3D12_CLEAR_FLAGS ClearFlags,
21413 _In_ FLOAT Depth,
21414 _In_ UINT8 Stencil,
21415 _In_ UINT NumRects,
21416 _In_reads_(NumRects) const D3D12_RECT *pRects);
21417
21418 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
21419 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
21420 ID3D12GraphicsCommandList4 * This,
21421 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
21422 _In_ const FLOAT ColorRGBA[ 4 ],
21423 _In_ UINT NumRects,
21424 _In_reads_(NumRects) const D3D12_RECT *pRects);
21425
21426 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
21427 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
21428 ID3D12GraphicsCommandList4 * This,
21429 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21430 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21431 _In_ ID3D12Resource *pResource,
21432 _In_ const UINT Values[ 4 ],
21433 _In_ UINT NumRects,
21434 _In_reads_(NumRects) const D3D12_RECT *pRects);
21435
21436 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
21437 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
21438 ID3D12GraphicsCommandList4 * This,
21439 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21440 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21441 _In_ ID3D12Resource *pResource,
21442 _In_ const FLOAT Values[ 4 ],
21443 _In_ UINT NumRects,
21444 _In_reads_(NumRects) const D3D12_RECT *pRects);
21445
21446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
21447 void ( STDMETHODCALLTYPE *DiscardResource )(
21448 ID3D12GraphicsCommandList4 * This,
21449 _In_ ID3D12Resource *pResource,
21450 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
21451
21452 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
21453 void ( STDMETHODCALLTYPE *BeginQuery )(
21454 ID3D12GraphicsCommandList4 * This,
21455 _In_ ID3D12QueryHeap *pQueryHeap,
21456 _In_ D3D12_QUERY_TYPE Type,
21457 _In_ UINT Index);
21458
21459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
21460 void ( STDMETHODCALLTYPE *EndQuery )(
21461 ID3D12GraphicsCommandList4 * This,
21462 _In_ ID3D12QueryHeap *pQueryHeap,
21463 _In_ D3D12_QUERY_TYPE Type,
21464 _In_ UINT Index);
21465
21466 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
21467 void ( STDMETHODCALLTYPE *ResolveQueryData )(
21468 ID3D12GraphicsCommandList4 * This,
21469 _In_ ID3D12QueryHeap *pQueryHeap,
21470 _In_ D3D12_QUERY_TYPE Type,
21471 _In_ UINT StartIndex,
21472 _In_ UINT NumQueries,
21473 _In_ ID3D12Resource *pDestinationBuffer,
21474 _In_ UINT64 AlignedDestinationBufferOffset);
21475
21476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
21477 void ( STDMETHODCALLTYPE *SetPredication )(
21478 ID3D12GraphicsCommandList4 * This,
21479 _In_opt_ ID3D12Resource *pBuffer,
21480 _In_ UINT64 AlignedBufferOffset,
21481 _In_ D3D12_PREDICATION_OP Operation);
21482
21483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
21484 void ( STDMETHODCALLTYPE *SetMarker )(
21485 ID3D12GraphicsCommandList4 * This,
21486 UINT Metadata,
21487 _In_reads_bytes_opt_(Size) const void *pData,
21488 UINT Size);
21489
21490 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
21491 void ( STDMETHODCALLTYPE *BeginEvent )(
21492 ID3D12GraphicsCommandList4 * This,
21493 UINT Metadata,
21494 _In_reads_bytes_opt_(Size) const void *pData,
21495 UINT Size);
21496
21497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
21498 void ( STDMETHODCALLTYPE *EndEvent )(
21499 ID3D12GraphicsCommandList4 * This);
21500
21501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
21502 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
21503 ID3D12GraphicsCommandList4 * This,
21504 _In_ ID3D12CommandSignature *pCommandSignature,
21505 _In_ UINT MaxCommandCount,
21506 _In_ ID3D12Resource *pArgumentBuffer,
21507 _In_ UINT64 ArgumentBufferOffset,
21508 _In_opt_ ID3D12Resource *pCountBuffer,
21509 _In_ UINT64 CountBufferOffset);
21510
21511 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
21512 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
21513 ID3D12GraphicsCommandList4 * This,
21514 _In_ ID3D12Resource *pDstBuffer,
21515 UINT64 DstOffset,
21516 _In_ ID3D12Resource *pSrcBuffer,
21517 UINT64 SrcOffset,
21518 UINT Dependencies,
21519 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21520 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21521
21522 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
21523 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
21524 ID3D12GraphicsCommandList4 * This,
21525 _In_ ID3D12Resource *pDstBuffer,
21526 UINT64 DstOffset,
21527 _In_ ID3D12Resource *pSrcBuffer,
21528 UINT64 SrcOffset,
21529 UINT Dependencies,
21530 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21531 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21532
21533 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
21534 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
21535 ID3D12GraphicsCommandList4 * This,
21536 _In_ FLOAT Min,
21537 _In_ FLOAT Max);
21538
21539 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
21540 void ( STDMETHODCALLTYPE *SetSamplePositions )(
21541 ID3D12GraphicsCommandList4 * This,
21542 _In_ UINT NumSamplesPerPixel,
21543 _In_ UINT NumPixels,
21544 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
21545
21546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
21547 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
21548 ID3D12GraphicsCommandList4 * This,
21549 _In_ ID3D12Resource *pDstResource,
21550 _In_ UINT DstSubresource,
21551 _In_ UINT DstX,
21552 _In_ UINT DstY,
21553 _In_ ID3D12Resource *pSrcResource,
21554 _In_ UINT SrcSubresource,
21555 _In_opt_ D3D12_RECT *pSrcRect,
21556 _In_ DXGI_FORMAT Format,
21557 _In_ D3D12_RESOLVE_MODE ResolveMode);
21558
21559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
21560 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
21561 ID3D12GraphicsCommandList4 * This,
21562 _In_ UINT Mask);
21563
21564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
21565 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
21566 ID3D12GraphicsCommandList4 * This,
21567 UINT Count,
21568 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
21569 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
21570
21571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
21572 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
21573 ID3D12GraphicsCommandList4 * This,
21574 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
21575
21576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
21577 void ( STDMETHODCALLTYPE *BeginRenderPass )(
21578 ID3D12GraphicsCommandList4 * This,
21579 _In_ UINT NumRenderTargets,
21580 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
21581 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
21582 D3D12_RENDER_PASS_FLAGS Flags);
21583
21584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
21585 void ( STDMETHODCALLTYPE *EndRenderPass )(
21586 ID3D12GraphicsCommandList4 * This);
21587
21588 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
21589 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
21590 ID3D12GraphicsCommandList4 * This,
21591 _In_ ID3D12MetaCommand *pMetaCommand,
21592 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
21593 _In_ SIZE_T InitializationParametersDataSizeInBytes);
21594
21595 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
21596 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
21597 ID3D12GraphicsCommandList4 * This,
21598 _In_ ID3D12MetaCommand *pMetaCommand,
21599 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
21600 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
21601
21602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
21603 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
21604 ID3D12GraphicsCommandList4 * This,
21605 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
21606 _In_ UINT NumPostbuildInfoDescs,
21607 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
21608
21609 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
21610 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
21611 ID3D12GraphicsCommandList4 * This,
21612 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
21613 _In_ UINT NumSourceAccelerationStructures,
21614 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
21615
21616 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
21617 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
21618 ID3D12GraphicsCommandList4 * This,
21619 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
21620 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
21621 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
21622
21623 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
21624 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
21625 ID3D12GraphicsCommandList4 * This,
21626 _In_ ID3D12StateObject *pStateObject);
21627
21628 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
21629 void ( STDMETHODCALLTYPE *DispatchRays )(
21630 ID3D12GraphicsCommandList4 * This,
21631 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
21632
21633 END_INTERFACE
21634 } ID3D12GraphicsCommandList4Vtbl;
21635
21636 interface ID3D12GraphicsCommandList4
21637 {
21638 CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
21639 };
21640
21641
21642
21643#ifdef COBJMACROS
21644
21645
21646#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
21647 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21648
21649#define ID3D12GraphicsCommandList4_AddRef(This) \
21650 ( (This)->lpVtbl -> AddRef(This) )
21651
21652#define ID3D12GraphicsCommandList4_Release(This) \
21653 ( (This)->lpVtbl -> Release(This) )
21654
21655
21656#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
21657 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21658
21659#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
21660 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21661
21662#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
21663 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21664
21665#define ID3D12GraphicsCommandList4_SetName(This,Name) \
21666 ( (This)->lpVtbl -> SetName(This,Name) )
21667
21668
21669#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
21670 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21671
21672
21673#define ID3D12GraphicsCommandList4_GetType(This) \
21674 ( (This)->lpVtbl -> GetType(This) )
21675
21676
21677#define ID3D12GraphicsCommandList4_Close(This) \
21678 ( (This)->lpVtbl -> Close(This) )
21679
21680#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
21681 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
21682
21683#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
21684 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
21685
21686#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
21687 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
21688
21689#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
21690 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
21691
21692#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
21693 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
21694
21695#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
21696 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
21697
21698#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
21699 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
21700
21701#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
21702 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
21703
21704#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
21705 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
21706
21707#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
21708 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
21709
21710#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
21711 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
21712
21713#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
21714 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
21715
21716#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
21717 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
21718
21719#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
21720 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
21721
21722#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
21723 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
21724
21725#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
21726 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
21727
21728#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
21729 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
21730
21731#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
21732 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
21733
21734#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
21735 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
21736
21737#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
21738 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
21739
21740#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
21741 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
21742
21743#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21744 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21745
21746#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21747 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21748
21749#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21750 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21751
21752#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21753 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21754
21755#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21756 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21757
21758#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21759 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21760
21761#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21762 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21763
21764#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21765 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21766
21767#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21768 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21769
21770#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21771 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21772
21773#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21774 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21775
21776#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21777 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21778
21779#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
21780 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
21781
21782#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
21783 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
21784
21785#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
21786 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
21787
21788#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
21789 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
21790
21791#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
21792 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
21793
21794#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
21795 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
21796
21797#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21798 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21799
21800#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21801 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21802
21803#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
21804 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
21805
21806#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
21807 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
21808
21809#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
21810 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
21811
21812#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
21813 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
21814
21815#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
21816 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
21817
21818#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
21819 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
21820
21821#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
21822 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
21823
21824#define ID3D12GraphicsCommandList4_EndEvent(This) \
21825 ( (This)->lpVtbl -> EndEvent(This) )
21826
21827#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
21828 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
21829
21830
21831#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21832 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21833
21834#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21835 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21836
21837#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
21838 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
21839
21840#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
21841 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
21842
21843#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
21844 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
21845
21846#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
21847 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
21848
21849
21850#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
21851 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
21852
21853
21854#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
21855 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
21856
21857
21858#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
21859 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
21860
21861#define ID3D12GraphicsCommandList4_EndRenderPass(This) \
21862 ( (This)->lpVtbl -> EndRenderPass(This) )
21863
21864#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
21865 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
21866
21867#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
21868 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
21869
21870#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
21871 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
21872
21873#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
21874 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
21875
21876#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
21877 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
21878
21879#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
21880 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
21881
21882#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
21883 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
21884
21885#endif /* COBJMACROS */
21886
21887
21888#endif /* C style interface */
21889
21890
21891
21892
21893#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
21894
21895
21896/* interface __MIDL_itf_d3d12_0000_0053 */
21897/* [local] */
21898
21899typedef
21900enum D3D12_SHADER_CACHE_MODE
21901 {
21902 D3D12_SHADER_CACHE_MODE_MEMORY = 0,
21903 D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 )
21904 } D3D12_SHADER_CACHE_MODE;
21905
21906typedef
21907enum D3D12_SHADER_CACHE_FLAGS
21908 {
21909 D3D12_SHADER_CACHE_FLAG_NONE = 0,
21910 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
21911 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
21912 } D3D12_SHADER_CACHE_FLAGS;
21913
21914DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )
21915typedef struct D3D12_SHADER_CACHE_SESSION_DESC
21916 {
21917 GUID Identifier;
21918 D3D12_SHADER_CACHE_MODE Mode;
21919 D3D12_SHADER_CACHE_FLAGS Flags;
21920 UINT MaximumInMemoryCacheSizeBytes;
21921 UINT MaximumInMemoryCacheEntries;
21922 UINT MaximumValueFileSizeBytes;
21923 UINT64 Version;
21924 } D3D12_SHADER_CACHE_SESSION_DESC;
21925
21926typedef
21927enum D3D12_BARRIER_LAYOUT
21928 {
21929 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
21930 D3D12_BARRIER_LAYOUT_COMMON = 0,
21931 D3D12_BARRIER_LAYOUT_PRESENT = 0,
21932 D3D12_BARRIER_LAYOUT_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_PRESENT + 1 ) ,
21933 D3D12_BARRIER_LAYOUT_RENDER_TARGET = ( D3D12_BARRIER_LAYOUT_GENERIC_READ + 1 ) ,
21934 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_RENDER_TARGET + 1 ) ,
21935 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = ( D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS + 1 ) ,
21936 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE + 1 ) ,
21937 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ + 1 ) ,
21938 D3D12_BARRIER_LAYOUT_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_SHADER_RESOURCE + 1 ) ,
21939 D3D12_BARRIER_LAYOUT_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COPY_SOURCE + 1 ) ,
21940 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = ( D3D12_BARRIER_LAYOUT_COPY_DEST + 1 ) ,
21941 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = ( D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE + 1 ) ,
21942 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = ( D3D12_BARRIER_LAYOUT_RESOLVE_DEST + 1 ) ,
21943 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = ( D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE + 1 ) ,
21944 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ + 1 ) ,
21945 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE + 1 ) ,
21946 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ + 1 ) ,
21947 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = ( D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE + 1 ) ,
21948 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ + 1 ) ,
21949 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE + 1 ) ,
21950 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON + 1 ) ,
21951 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ + 1 ) ,
21952 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS + 1 ) ,
21953 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE + 1 ) ,
21954 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE + 1 ) ,
21955 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST + 1 ) ,
21956 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON + 1 ) ,
21957 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ + 1 ) ,
21958 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS + 1 ) ,
21959 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE + 1 ) ,
21960 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE + 1 ) ,
21961 D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON = ( D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST + 1 )
21962 } D3D12_BARRIER_LAYOUT;
21963
21964typedef
21965enum D3D12_BARRIER_SYNC
21966 {
21967 D3D12_BARRIER_SYNC_NONE = 0,
21968 D3D12_BARRIER_SYNC_ALL = 0x1,
21969 D3D12_BARRIER_SYNC_DRAW = 0x2,
21970 D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
21971 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
21972 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
21973 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
21974 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
21975 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
21976 D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
21977 D3D12_BARRIER_SYNC_COPY = 0x200,
21978 D3D12_BARRIER_SYNC_RESOLVE = 0x400,
21979 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
21980 D3D12_BARRIER_SYNC_PREDICATION = 0x800,
21981 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
21982 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
21983 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
21984 D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
21985 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
21986 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
21987 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
21988 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
21989 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
21990 D3D12_BARRIER_SYNC_SPLIT = 0x80000000
21991 } D3D12_BARRIER_SYNC;
21992
21993DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )
21994typedef
21995enum D3D12_BARRIER_ACCESS
21996 {
21997 D3D12_BARRIER_ACCESS_COMMON = 0,
21998 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
21999 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
22000 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
22001 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
22002 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
22003 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
22004 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
22005 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
22006 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
22007 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
22008 D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
22009 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
22010 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
22011 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
22012 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
22013 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
22014 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
22015 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
22016 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
22017 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
22018 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
22019 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
22020 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
22021 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
22022 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
22023 } D3D12_BARRIER_ACCESS;
22024
22025DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )
22026typedef
22027enum D3D12_BARRIER_TYPE
22028 {
22029 D3D12_BARRIER_TYPE_GLOBAL = 0,
22030 D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) ,
22031 D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 )
22032 } D3D12_BARRIER_TYPE;
22033
22034typedef
22035enum D3D12_TEXTURE_BARRIER_FLAGS
22036 {
22037 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0,
22038 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
22039 } D3D12_TEXTURE_BARRIER_FLAGS;
22040
22041DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )
22042typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE
22043 {
22044 UINT IndexOrFirstMipLevel;
22045 UINT NumMipLevels;
22046 UINT FirstArraySlice;
22047 UINT NumArraySlices;
22048 UINT FirstPlane;
22049 UINT NumPlanes;
22050 } D3D12_BARRIER_SUBRESOURCE_RANGE;
22051
22052typedef struct D3D12_GLOBAL_BARRIER
22053 {
22054 D3D12_BARRIER_SYNC SyncBefore;
22055 D3D12_BARRIER_SYNC SyncAfter;
22056 D3D12_BARRIER_ACCESS AccessBefore;
22057 D3D12_BARRIER_ACCESS AccessAfter;
22058 } D3D12_GLOBAL_BARRIER;
22059
22060typedef struct D3D12_TEXTURE_BARRIER
22061 {
22062 D3D12_BARRIER_SYNC SyncBefore;
22063 D3D12_BARRIER_SYNC SyncAfter;
22064 D3D12_BARRIER_ACCESS AccessBefore;
22065 D3D12_BARRIER_ACCESS AccessAfter;
22066 D3D12_BARRIER_LAYOUT LayoutBefore;
22067 D3D12_BARRIER_LAYOUT LayoutAfter;
22068 _In_ ID3D12Resource *pResource;
22069 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
22070 D3D12_TEXTURE_BARRIER_FLAGS Flags;
22071 } D3D12_TEXTURE_BARRIER;
22072
22073typedef struct D3D12_BUFFER_BARRIER
22074 {
22075 D3D12_BARRIER_SYNC SyncBefore;
22076 D3D12_BARRIER_SYNC SyncAfter;
22077 D3D12_BARRIER_ACCESS AccessBefore;
22078 D3D12_BARRIER_ACCESS AccessAfter;
22079 _In_ ID3D12Resource *pResource;
22080 UINT64 Offset;
22081 UINT64 Size;
22082 } D3D12_BUFFER_BARRIER;
22083
22084typedef struct D3D12_BARRIER_GROUP
22085 {
22086 D3D12_BARRIER_TYPE Type;
22087 UINT32 NumBarriers;
22088 union
22089 {
22090 _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
22091 _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers;
22092 _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers;
22093 } ;
22094 } D3D12_BARRIER_GROUP;
22095
22096
22097
22098extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_c_ifspec;
22099extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0053_v0_0_s_ifspec;
22100
22101#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
22102#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
22103
22104/* interface ID3D12ShaderCacheSession */
22105/* [unique][local][object][uuid] */
22106
22107
22108EXTERN_C const IID IID_ID3D12ShaderCacheSession;
22109
22110#if defined(__cplusplus) && !defined(CINTERFACE)
22111
22112 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
22113 ID3D12ShaderCacheSession : public ID3D12DeviceChild
22114 {
22115 public:
22116 virtual HRESULT STDMETHODCALLTYPE FindValue(
22117 /* [annotation][in] */
22118 _In_reads_bytes_(KeySize) const void *pKey,
22119 UINT KeySize,
22120 /* [annotation][out] */
22121 _Out_writes_bytes_(*pValueSize) void *pValue,
22122 _Inout_ UINT *pValueSize) = 0;
22123
22124 virtual HRESULT STDMETHODCALLTYPE StoreValue(
22125 /* [annotation][in] */
22126 _In_reads_bytes_(KeySize) const void *pKey,
22127 UINT KeySize,
22128 /* [annotation][in] */
22129 _In_reads_bytes_(ValueSize) const void *pValue,
22130 UINT ValueSize) = 0;
22131
22132 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0;
22133
22134#if defined(_MSC_VER) || !defined(_WIN32)
22135 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
22136#else
22137 virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
22138 D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0;
22139#endif
22140
22141 };
22142
22143
22144#else /* C style interface */
22145
22146 typedef struct ID3D12ShaderCacheSessionVtbl
22147 {
22148 BEGIN_INTERFACE
22149
22150 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
22151 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
22152 ID3D12ShaderCacheSession * This,
22153 REFIID riid,
22154 _COM_Outptr_ void **ppvObject);
22155
22156 DECLSPEC_XFGVIRT(IUnknown, AddRef)
22157 ULONG ( STDMETHODCALLTYPE *AddRef )(
22158 ID3D12ShaderCacheSession * This);
22159
22160 DECLSPEC_XFGVIRT(IUnknown, Release)
22161 ULONG ( STDMETHODCALLTYPE *Release )(
22162 ID3D12ShaderCacheSession * This);
22163
22164 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
22165 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
22166 ID3D12ShaderCacheSession * This,
22167 _In_ REFGUID guid,
22168 _Inout_ UINT *pDataSize,
22169 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
22170
22171 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
22172 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
22173 ID3D12ShaderCacheSession * This,
22174 _In_ REFGUID guid,
22175 _In_ UINT DataSize,
22176 _In_reads_bytes_opt_( DataSize ) const void *pData);
22177
22178 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
22179 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
22180 ID3D12ShaderCacheSession * This,
22181 _In_ REFGUID guid,
22182 _In_opt_ const IUnknown *pData);
22183
22184 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
22185 HRESULT ( STDMETHODCALLTYPE *SetName )(
22186 ID3D12ShaderCacheSession * This,
22187 _In_z_ LPCWSTR Name);
22188
22189 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
22190 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
22191 ID3D12ShaderCacheSession * This,
22192 REFIID riid,
22193 _COM_Outptr_opt_ void **ppvDevice);
22194
22195 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue)
22196 HRESULT ( STDMETHODCALLTYPE *FindValue )(
22197 ID3D12ShaderCacheSession * This,
22198 /* [annotation][in] */
22199 _In_reads_bytes_(KeySize) const void *pKey,
22200 UINT KeySize,
22201 /* [annotation][out] */
22202 _Out_writes_bytes_(*pValueSize) void *pValue,
22203 _Inout_ UINT *pValueSize);
22204
22205 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue)
22206 HRESULT ( STDMETHODCALLTYPE *StoreValue )(
22207 ID3D12ShaderCacheSession * This,
22208 /* [annotation][in] */
22209 _In_reads_bytes_(KeySize) const void *pKey,
22210 UINT KeySize,
22211 /* [annotation][in] */
22212 _In_reads_bytes_(ValueSize) const void *pValue,
22213 UINT ValueSize);
22214
22215 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy)
22216 void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )(
22217 ID3D12ShaderCacheSession * This);
22218
22219 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc)
22220#if !defined(_WIN32)
22221 D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
22222 ID3D12ShaderCacheSession * This);
22223
22224#else
22225 D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
22226 ID3D12ShaderCacheSession * This,
22227 D3D12_SHADER_CACHE_SESSION_DESC * RetVal);
22228
22229#endif
22230
22231 END_INTERFACE
22232 } ID3D12ShaderCacheSessionVtbl;
22233
22234 interface ID3D12ShaderCacheSession
22235 {
22236 CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl;
22237 };
22238
22239
22240
22241#ifdef COBJMACROS
22242
22243
22244#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \
22245 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
22246
22247#define ID3D12ShaderCacheSession_AddRef(This) \
22248 ( (This)->lpVtbl -> AddRef(This) )
22249
22250#define ID3D12ShaderCacheSession_Release(This) \
22251 ( (This)->lpVtbl -> Release(This) )
22252
22253
22254#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \
22255 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
22256
22257#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \
22258 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
22259
22260#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \
22261 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
22262
22263#define ID3D12ShaderCacheSession_SetName(This,Name) \
22264 ( (This)->lpVtbl -> SetName(This,Name) )
22265
22266
22267#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \
22268 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
22269
22270
22271#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \
22272 ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) )
22273
22274#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \
22275 ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) )
22276
22277#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \
22278 ( (This)->lpVtbl -> SetDeleteOnDestroy(This) )
22279#if !defined(_WIN32)
22280
22281#define ID3D12ShaderCacheSession_GetDesc(This) \
22282 ( (This)->lpVtbl -> GetDesc(This) )
22283#else
22284#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \
22285 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
22286#endif
22287
22288#endif /* COBJMACROS */
22289
22290
22291#endif /* C style interface */
22292
22293
22294
22295
22296#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
22297
22298
22299/* interface __MIDL_itf_d3d12_0000_0054 */
22300/* [local] */
22301
22302typedef
22303enum D3D12_SHADER_CACHE_KIND_FLAGS
22304 {
22305 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
22306 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
22307 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
22308 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
22309 } D3D12_SHADER_CACHE_KIND_FLAGS;
22310
22311DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )
22312typedef
22313enum D3D12_SHADER_CACHE_CONTROL_FLAGS
22314 {
22315 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
22316 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
22317 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
22318 } D3D12_SHADER_CACHE_CONTROL_FLAGS;
22319
22320DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )
22321
22322
22323extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec;
22324extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec;
22325
22326#ifndef __ID3D12Device9_INTERFACE_DEFINED__
22327#define __ID3D12Device9_INTERFACE_DEFINED__
22328
22329/* interface ID3D12Device9 */
22330/* [unique][local][object][uuid] */
22331
22332
22333EXTERN_C const IID IID_ID3D12Device9;
22334
22335#if defined(__cplusplus) && !defined(CINTERFACE)
22336
22337 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
22338 ID3D12Device9 : public ID3D12Device8
22339 {
22340 public:
22341 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
22342 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
22343 REFIID riid,
22344 _COM_Outptr_opt_ void **ppvSession) = 0;
22345
22346 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
22347 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
22348 D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0;
22349
22350 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
22351 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
22352 REFIID CreatorID,
22353 REFIID riid,
22354 _COM_Outptr_ void **ppCommandQueue) = 0;
22355
22356 };
22357
22358
22359#else /* C style interface */
22360
22361 typedef struct ID3D12Device9Vtbl
22362 {
22363 BEGIN_INTERFACE
22364
22365 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
22366 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
22367 ID3D12Device9 * This,
22368 REFIID riid,
22369 _COM_Outptr_ void **ppvObject);
22370
22371 DECLSPEC_XFGVIRT(IUnknown, AddRef)
22372 ULONG ( STDMETHODCALLTYPE *AddRef )(
22373 ID3D12Device9 * This);
22374
22375 DECLSPEC_XFGVIRT(IUnknown, Release)
22376 ULONG ( STDMETHODCALLTYPE *Release )(
22377 ID3D12Device9 * This);
22378
22379 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
22380 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
22381 ID3D12Device9 * This,
22382 _In_ REFGUID guid,
22383 _Inout_ UINT *pDataSize,
22384 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
22385
22386 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
22387 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
22388 ID3D12Device9 * This,
22389 _In_ REFGUID guid,
22390 _In_ UINT DataSize,
22391 _In_reads_bytes_opt_( DataSize ) const void *pData);
22392
22393 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
22394 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
22395 ID3D12Device9 * This,
22396 _In_ REFGUID guid,
22397 _In_opt_ const IUnknown *pData);
22398
22399 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
22400 HRESULT ( STDMETHODCALLTYPE *SetName )(
22401 ID3D12Device9 * This,
22402 _In_z_ LPCWSTR Name);
22403
22404 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
22405 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
22406 ID3D12Device9 * This);
22407
22408 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
22409 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
22410 ID3D12Device9 * This,
22411 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
22412 REFIID riid,
22413 _COM_Outptr_ void **ppCommandQueue);
22414
22415 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
22416 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
22417 ID3D12Device9 * This,
22418 _In_ D3D12_COMMAND_LIST_TYPE type,
22419 REFIID riid,
22420 _COM_Outptr_ void **ppCommandAllocator);
22421
22422 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
22423 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
22424 ID3D12Device9 * This,
22425 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
22426 REFIID riid,
22427 _COM_Outptr_ void **ppPipelineState);
22428
22429 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
22430 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
22431 ID3D12Device9 * This,
22432 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
22433 REFIID riid,
22434 _COM_Outptr_ void **ppPipelineState);
22435
22436 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
22437 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
22438 ID3D12Device9 * This,
22439 _In_ UINT nodeMask,
22440 _In_ D3D12_COMMAND_LIST_TYPE type,
22441 _In_ ID3D12CommandAllocator *pCommandAllocator,
22442 _In_opt_ ID3D12PipelineState *pInitialState,
22443 REFIID riid,
22444 _COM_Outptr_ void **ppCommandList);
22445
22446 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
22447 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
22448 ID3D12Device9 * This,
22449 D3D12_FEATURE Feature,
22450 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
22451 UINT FeatureSupportDataSize);
22452
22453 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
22454 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
22455 ID3D12Device9 * This,
22456 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
22457 REFIID riid,
22458 _COM_Outptr_ void **ppvHeap);
22459
22460 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
22461 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
22462 ID3D12Device9 * This,
22463 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
22464
22465 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
22466 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
22467 ID3D12Device9 * This,
22468 _In_ UINT nodeMask,
22469 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
22470 _In_ SIZE_T blobLengthInBytes,
22471 REFIID riid,
22472 _COM_Outptr_ void **ppvRootSignature);
22473
22474 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
22475 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
22476 ID3D12Device9 * This,
22477 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
22478 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22479
22480 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
22481 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
22482 ID3D12Device9 * This,
22483 _In_opt_ ID3D12Resource *pResource,
22484 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
22485 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22486
22487 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
22488 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
22489 ID3D12Device9 * This,
22490 _In_opt_ ID3D12Resource *pResource,
22491 _In_opt_ ID3D12Resource *pCounterResource,
22492 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
22493 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22494
22495 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
22496 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
22497 ID3D12Device9 * This,
22498 _In_opt_ ID3D12Resource *pResource,
22499 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
22500 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22501
22502 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
22503 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
22504 ID3D12Device9 * This,
22505 _In_opt_ ID3D12Resource *pResource,
22506 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
22507 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22508
22509 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
22510 void ( STDMETHODCALLTYPE *CreateSampler )(
22511 ID3D12Device9 * This,
22512 _In_ const D3D12_SAMPLER_DESC *pDesc,
22513 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22514
22515 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
22516 void ( STDMETHODCALLTYPE *CopyDescriptors )(
22517 ID3D12Device9 * This,
22518 _In_ UINT NumDestDescriptorRanges,
22519 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
22520 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
22521 _In_ UINT NumSrcDescriptorRanges,
22522 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
22523 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
22524 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
22525
22526 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
22527 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
22528 ID3D12Device9 * This,
22529 _In_ UINT NumDescriptors,
22530 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
22531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
22532 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
22533
22534 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
22535#if !defined(_WIN32)
22536 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
22537 ID3D12Device9 * This,
22538 _In_ UINT visibleMask,
22539 _In_ UINT numResourceDescs,
22540 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
22541
22542#else
22543 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
22544 ID3D12Device9 * This,
22545 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
22546 _In_ UINT visibleMask,
22547 _In_ UINT numResourceDescs,
22548 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
22549
22550#endif
22551
22552 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
22553#if !defined(_WIN32)
22554 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
22555 ID3D12Device9 * This,
22556 _In_ UINT nodeMask,
22557 D3D12_HEAP_TYPE heapType);
22558
22559#else
22560 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
22561 ID3D12Device9 * This,
22562 D3D12_HEAP_PROPERTIES * RetVal,
22563 _In_ UINT nodeMask,
22564 D3D12_HEAP_TYPE heapType);
22565
22566#endif
22567
22568 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
22569 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
22570 ID3D12Device9 * This,
22571 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
22572 D3D12_HEAP_FLAGS HeapFlags,
22573 _In_ const D3D12_RESOURCE_DESC *pDesc,
22574 D3D12_RESOURCE_STATES InitialResourceState,
22575 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22576 REFIID riidResource,
22577 _COM_Outptr_opt_ void **ppvResource);
22578
22579 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
22580 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
22581 ID3D12Device9 * This,
22582 _In_ const D3D12_HEAP_DESC *pDesc,
22583 REFIID riid,
22584 _COM_Outptr_opt_ void **ppvHeap);
22585
22586 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
22587 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
22588 ID3D12Device9 * This,
22589 _In_ ID3D12Heap *pHeap,
22590 UINT64 HeapOffset,
22591 _In_ const D3D12_RESOURCE_DESC *pDesc,
22592 D3D12_RESOURCE_STATES InitialState,
22593 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22594 REFIID riid,
22595 _COM_Outptr_opt_ void **ppvResource);
22596
22597 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
22598 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
22599 ID3D12Device9 * This,
22600 _In_ const D3D12_RESOURCE_DESC *pDesc,
22601 D3D12_RESOURCE_STATES InitialState,
22602 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22603 REFIID riid,
22604 _COM_Outptr_opt_ void **ppvResource);
22605
22606 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
22607 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
22608 ID3D12Device9 * This,
22609 _In_ ID3D12DeviceChild *pObject,
22610 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
22611 DWORD Access,
22612 _In_opt_ LPCWSTR Name,
22613 _Out_ HANDLE *pHandle);
22614
22615 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
22616 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
22617 ID3D12Device9 * This,
22618 _In_ HANDLE NTHandle,
22619 REFIID riid,
22620 _COM_Outptr_opt_ void **ppvObj);
22621
22622 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
22623 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
22624 ID3D12Device9 * This,
22625 _In_ LPCWSTR Name,
22626 DWORD Access,
22627 /* [annotation][out] */
22628 _Out_ HANDLE *pNTHandle);
22629
22630 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
22631 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
22632 ID3D12Device9 * This,
22633 UINT NumObjects,
22634 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
22635
22636 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
22637 HRESULT ( STDMETHODCALLTYPE *Evict )(
22638 ID3D12Device9 * This,
22639 UINT NumObjects,
22640 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
22641
22642 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
22643 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
22644 ID3D12Device9 * This,
22645 UINT64 InitialValue,
22646 D3D12_FENCE_FLAGS Flags,
22647 REFIID riid,
22648 _COM_Outptr_ void **ppFence);
22649
22650 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
22651 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
22652 ID3D12Device9 * This);
22653
22654 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
22655 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
22656 ID3D12Device9 * This,
22657 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
22658 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
22659 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
22660 UINT64 BaseOffset,
22661 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
22662 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
22663 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
22664 _Out_opt_ UINT64 *pTotalBytes);
22665
22666 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
22667 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
22668 ID3D12Device9 * This,
22669 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
22670 REFIID riid,
22671 _COM_Outptr_opt_ void **ppvHeap);
22672
22673 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
22674 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
22675 ID3D12Device9 * This,
22676 BOOL Enable);
22677
22678 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
22679 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
22680 ID3D12Device9 * This,
22681 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
22682 _In_opt_ ID3D12RootSignature *pRootSignature,
22683 REFIID riid,
22684 _COM_Outptr_opt_ void **ppvCommandSignature);
22685
22686 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
22687 void ( STDMETHODCALLTYPE *GetResourceTiling )(
22688 ID3D12Device9 * This,
22689 _In_ ID3D12Resource *pTiledResource,
22690 _Out_opt_ UINT *pNumTilesForEntireResource,
22691 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
22692 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
22693 _Inout_opt_ UINT *pNumSubresourceTilings,
22694 _In_ UINT FirstSubresourceTilingToGet,
22695 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
22696
22697 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
22698#if !defined(_WIN32)
22699 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
22700 ID3D12Device9 * This);
22701
22702#else
22703 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
22704 ID3D12Device9 * This,
22705 LUID * RetVal);
22706
22707#endif
22708
22709 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
22710 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
22711 ID3D12Device9 * This,
22712 _In_reads_(BlobLength) const void *pLibraryBlob,
22713 SIZE_T BlobLength,
22714 REFIID riid,
22715 _COM_Outptr_ void **ppPipelineLibrary);
22716
22717 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
22718 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
22719 ID3D12Device9 * This,
22720 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
22721 _In_reads_(NumFences) const UINT64 *pFenceValues,
22722 UINT NumFences,
22723 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
22724 HANDLE hEvent);
22725
22726 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
22727 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
22728 ID3D12Device9 * This,
22729 UINT NumObjects,
22730 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
22731 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
22732
22733 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
22734 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
22735 ID3D12Device9 * This,
22736 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
22737 REFIID riid,
22738 _COM_Outptr_ void **ppPipelineState);
22739
22740 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
22741 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
22742 ID3D12Device9 * This,
22743 _In_ const void *pAddress,
22744 REFIID riid,
22745 _COM_Outptr_ void **ppvHeap);
22746
22747 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
22748 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
22749 ID3D12Device9 * This,
22750 _In_ HANDLE hFileMapping,
22751 REFIID riid,
22752 _COM_Outptr_ void **ppvHeap);
22753
22754 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
22755 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
22756 ID3D12Device9 * This,
22757 D3D12_RESIDENCY_FLAGS Flags,
22758 UINT NumObjects,
22759 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
22760 _In_ ID3D12Fence *pFenceToSignal,
22761 UINT64 FenceValueToSignal);
22762
22763 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
22764 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
22765 ID3D12Device9 * This,
22766 _In_ UINT nodeMask,
22767 _In_ D3D12_COMMAND_LIST_TYPE type,
22768 _In_ D3D12_COMMAND_LIST_FLAGS flags,
22769 REFIID riid,
22770 _COM_Outptr_ void **ppCommandList);
22771
22772 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
22773 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
22774 ID3D12Device9 * This,
22775 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
22776 _In_ REFIID riid,
22777 _COM_Outptr_ void **ppSession);
22778
22779 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
22780 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
22781 ID3D12Device9 * This,
22782 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
22783 D3D12_HEAP_FLAGS HeapFlags,
22784 _In_ const D3D12_RESOURCE_DESC *pDesc,
22785 D3D12_RESOURCE_STATES InitialResourceState,
22786 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22787 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
22788 REFIID riidResource,
22789 _COM_Outptr_opt_ void **ppvResource);
22790
22791 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
22792 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
22793 ID3D12Device9 * This,
22794 _In_ const D3D12_HEAP_DESC *pDesc,
22795 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
22796 REFIID riid,
22797 _COM_Outptr_opt_ void **ppvHeap);
22798
22799 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
22800 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
22801 ID3D12Device9 * This,
22802 _In_ const D3D12_RESOURCE_DESC *pDesc,
22803 D3D12_RESOURCE_STATES InitialState,
22804 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
22806 REFIID riid,
22807 _COM_Outptr_opt_ void **ppvResource);
22808
22809 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
22810#if !defined(_WIN32)
22811 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
22812 ID3D12Device9 * This,
22813 UINT visibleMask,
22814 UINT numResourceDescs,
22815 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
22816 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
22817
22818#else
22819 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
22820 ID3D12Device9 * This,
22821 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
22822 UINT visibleMask,
22823 UINT numResourceDescs,
22824 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
22825 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
22826
22827#endif
22828
22829 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
22830 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
22831 ID3D12Device9 * This,
22832 _In_ ID3D12LifetimeOwner *pOwner,
22833 REFIID riid,
22834 _COM_Outptr_ void **ppvTracker);
22835
22836 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
22837 void ( STDMETHODCALLTYPE *RemoveDevice )(
22838 ID3D12Device9 * This);
22839
22840 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
22841 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
22842 ID3D12Device9 * This,
22843 _Inout_ UINT *pNumMetaCommands,
22844 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
22845
22846 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
22847 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
22848 ID3D12Device9 * This,
22849 _In_ REFGUID CommandId,
22850 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
22851 _Out_opt_ UINT *pTotalStructureSizeInBytes,
22852 _Inout_ UINT *pParameterCount,
22853 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
22854
22855 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
22856 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
22857 ID3D12Device9 * This,
22858 _In_ REFGUID CommandId,
22859 _In_ UINT NodeMask,
22860 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
22861 _In_ SIZE_T CreationParametersDataSizeInBytes,
22862 REFIID riid,
22863 _COM_Outptr_ void **ppMetaCommand);
22864
22865 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
22866 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
22867 ID3D12Device9 * This,
22868 const D3D12_STATE_OBJECT_DESC *pDesc,
22869 REFIID riid,
22870 _COM_Outptr_ void **ppStateObject);
22871
22872 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
22873 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
22874 ID3D12Device9 * This,
22875 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
22876 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
22877
22878 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
22879 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
22880 ID3D12Device9 * This,
22881 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
22882 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
22883
22884 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
22885 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
22886 ID3D12Device9 * This,
22887 D3D12_BACKGROUND_PROCESSING_MODE Mode,
22888 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
22889 _In_opt_ HANDLE hEventToSignalUponCompletion,
22890 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
22891
22892 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
22893 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
22894 ID3D12Device9 * This,
22895 const D3D12_STATE_OBJECT_DESC *pAddition,
22896 ID3D12StateObject *pStateObjectToGrowFrom,
22897 REFIID riid,
22898 _COM_Outptr_ void **ppNewStateObject);
22899
22900 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
22901 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
22902 ID3D12Device9 * This,
22903 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
22904 _In_ REFIID riid,
22905 _COM_Outptr_ void **ppSession);
22906
22907 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
22908#if !defined(_WIN32)
22909 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
22910 ID3D12Device9 * This,
22911 UINT visibleMask,
22912 UINT numResourceDescs,
22913 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
22914 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
22915
22916#else
22917 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
22918 ID3D12Device9 * This,
22919 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
22920 UINT visibleMask,
22921 UINT numResourceDescs,
22922 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
22923 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
22924
22925#endif
22926
22927 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
22928 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
22929 ID3D12Device9 * This,
22930 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
22931 D3D12_HEAP_FLAGS HeapFlags,
22932 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
22933 D3D12_RESOURCE_STATES InitialResourceState,
22934 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22935 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
22936 REFIID riidResource,
22937 _COM_Outptr_opt_ void **ppvResource);
22938
22939 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
22940 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
22941 ID3D12Device9 * This,
22942 _In_ ID3D12Heap *pHeap,
22943 UINT64 HeapOffset,
22944 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
22945 D3D12_RESOURCE_STATES InitialState,
22946 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
22947 REFIID riid,
22948 _COM_Outptr_opt_ void **ppvResource);
22949
22950 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
22951 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
22952 ID3D12Device9 * This,
22953 _In_opt_ ID3D12Resource *pTargetedResource,
22954 _In_opt_ ID3D12Resource *pFeedbackResource,
22955 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
22956
22957 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
22958 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
22959 ID3D12Device9 * This,
22960 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
22961 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
22962 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
22963 UINT64 BaseOffset,
22964 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
22965 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
22966 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
22967 _Out_opt_ UINT64 *pTotalBytes);
22968
22969 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
22970 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
22971 ID3D12Device9 * This,
22972 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
22973 REFIID riid,
22974 _COM_Outptr_opt_ void **ppvSession);
22975
22976 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
22977 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
22978 ID3D12Device9 * This,
22979 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
22980 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
22981
22982 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
22983 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
22984 ID3D12Device9 * This,
22985 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
22986 REFIID CreatorID,
22987 REFIID riid,
22988 _COM_Outptr_ void **ppCommandQueue);
22989
22990 END_INTERFACE
22991 } ID3D12Device9Vtbl;
22992
22993 interface ID3D12Device9
22994 {
22995 CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl;
22996 };
22997
22998
22999
23000#ifdef COBJMACROS
23001
23002
23003#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \
23004 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
23005
23006#define ID3D12Device9_AddRef(This) \
23007 ( (This)->lpVtbl -> AddRef(This) )
23008
23009#define ID3D12Device9_Release(This) \
23010 ( (This)->lpVtbl -> Release(This) )
23011
23012
23013#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \
23014 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
23015
23016#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \
23017 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
23018
23019#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \
23020 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
23021
23022#define ID3D12Device9_SetName(This,Name) \
23023 ( (This)->lpVtbl -> SetName(This,Name) )
23024
23025
23026#define ID3D12Device9_GetNodeCount(This) \
23027 ( (This)->lpVtbl -> GetNodeCount(This) )
23028
23029#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
23030 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
23031
23032#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
23033 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
23034
23035#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
23036 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
23037
23038#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
23039 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
23040
23041#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
23042 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
23043
23044#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
23045 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
23046
23047#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
23048 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
23049
23050#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
23051 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
23052
23053#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
23054 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
23055
23056#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \
23057 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
23058
23059#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
23060 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
23061
23062#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
23063 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
23064
23065#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
23066 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
23067
23068#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
23069 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
23070
23071#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \
23072 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
23073
23074#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
23075 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
23076
23077#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
23078 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
23079#if !defined(_WIN32)
23080
23081#define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
23082 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
23083#else
23084#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
23085 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
23086#endif
23087#if !defined(_WIN32)
23088
23089#define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \
23090 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
23091#else
23092#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
23093 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
23094#endif
23095
23096#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
23097 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
23098
23099#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \
23100 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
23101
23102#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
23103 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
23104
23105#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
23106 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
23107
23108#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
23109 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
23110
23111#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
23112 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
23113
23114#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
23115 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
23116
23117#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \
23118 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
23119
23120#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \
23121 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
23122
23123#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \
23124 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
23125
23126#define ID3D12Device9_GetDeviceRemovedReason(This) \
23127 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
23128
23129#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
23130 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
23131
23132#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
23133 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
23134
23135#define ID3D12Device9_SetStablePowerState(This,Enable) \
23136 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
23137
23138#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
23139 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
23140
23141#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
23142 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
23143#if !defined(_WIN32)
23144
23145#define ID3D12Device9_GetAdapterLuid(This) \
23146 ( (This)->lpVtbl -> GetAdapterLuid(This) )
23147#else
23148#define ID3D12Device9_GetAdapterLuid(This,RetVal) \
23149 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
23150#endif
23151
23152
23153#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
23154 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
23155
23156#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
23157 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
23158
23159#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
23160 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
23161
23162
23163#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
23164 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
23165
23166
23167#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
23168 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
23169
23170#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
23171 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
23172
23173#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
23174 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
23175
23176
23177#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
23178 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
23179
23180#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
23181 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
23182
23183#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
23184 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
23185
23186#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
23187 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
23188
23189#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
23190 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
23191#if !defined(_WIN32)
23192
23193#define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
23194 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
23195#else
23196#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
23197 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
23198#endif
23199
23200
23201#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
23202 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
23203
23204#define ID3D12Device9_RemoveDevice(This) \
23205 ( (This)->lpVtbl -> RemoveDevice(This) )
23206
23207#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
23208 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
23209
23210#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
23211 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
23212
23213#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
23214 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
23215
23216#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \
23217 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
23218
23219#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
23220 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
23221
23222#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
23223 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
23224
23225
23226#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
23227 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
23228
23229
23230#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
23231 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
23232
23233#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
23234 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
23235
23236#if !defined(_WIN32)
23237
23238#define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
23239 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
23240#else
23241#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
23242 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
23243#endif
23244
23245#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
23246 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
23247
23248#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
23249 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
23250
23251#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
23252 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
23253
23254#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
23255 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
23256
23257
23258#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
23259 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
23260
23261#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \
23262 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
23263
23264#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
23265 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
23266
23267#endif /* COBJMACROS */
23268
23269
23270#endif /* C style interface */
23271
23272
23273
23274
23275#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
23276
23277
23278#ifndef __ID3D12Device10_INTERFACE_DEFINED__
23279#define __ID3D12Device10_INTERFACE_DEFINED__
23280
23281/* interface ID3D12Device10 */
23282/* [unique][local][object][uuid] */
23283
23284
23285EXTERN_C const IID IID_ID3D12Device10;
23286
23287#if defined(__cplusplus) && !defined(CINTERFACE)
23288
23289 MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
23290 ID3D12Device10 : public ID3D12Device9
23291 {
23292 public:
23293 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
23294 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23295 D3D12_HEAP_FLAGS HeapFlags,
23296 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23297 D3D12_BARRIER_LAYOUT InitialLayout,
23298 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23299 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23300 UINT32 NumCastableFormats,
23301 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23302 REFIID riidResource,
23303 _COM_Outptr_opt_ void **ppvResource) = 0;
23304
23305 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
23306 _In_ ID3D12Heap *pHeap,
23307 UINT64 HeapOffset,
23308 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23309 D3D12_BARRIER_LAYOUT InitialLayout,
23310 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23311 UINT32 NumCastableFormats,
23312 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23313 REFIID riid,
23314 _COM_Outptr_opt_ void **ppvResource) = 0;
23315
23316 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
23317 _In_ const D3D12_RESOURCE_DESC *pDesc,
23318 D3D12_BARRIER_LAYOUT InitialLayout,
23319 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23320 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23321 UINT32 NumCastableFormats,
23322 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23323 REFIID riid,
23324 _COM_Outptr_opt_ void **ppvResource) = 0;
23325
23326 };
23327
23328
23329#else /* C style interface */
23330
23331 typedef struct ID3D12Device10Vtbl
23332 {
23333 BEGIN_INTERFACE
23334
23335 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
23336 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
23337 ID3D12Device10 * This,
23338 REFIID riid,
23339 _COM_Outptr_ void **ppvObject);
23340
23341 DECLSPEC_XFGVIRT(IUnknown, AddRef)
23342 ULONG ( STDMETHODCALLTYPE *AddRef )(
23343 ID3D12Device10 * This);
23344
23345 DECLSPEC_XFGVIRT(IUnknown, Release)
23346 ULONG ( STDMETHODCALLTYPE *Release )(
23347 ID3D12Device10 * This);
23348
23349 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
23350 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
23351 ID3D12Device10 * This,
23352 _In_ REFGUID guid,
23353 _Inout_ UINT *pDataSize,
23354 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
23355
23356 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
23357 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
23358 ID3D12Device10 * This,
23359 _In_ REFGUID guid,
23360 _In_ UINT DataSize,
23361 _In_reads_bytes_opt_( DataSize ) const void *pData);
23362
23363 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
23364 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
23365 ID3D12Device10 * This,
23366 _In_ REFGUID guid,
23367 _In_opt_ const IUnknown *pData);
23368
23369 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
23370 HRESULT ( STDMETHODCALLTYPE *SetName )(
23371 ID3D12Device10 * This,
23372 _In_z_ LPCWSTR Name);
23373
23374 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
23375 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
23376 ID3D12Device10 * This);
23377
23378 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
23379 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
23380 ID3D12Device10 * This,
23381 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23382 REFIID riid,
23383 _COM_Outptr_ void **ppCommandQueue);
23384
23385 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
23386 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
23387 ID3D12Device10 * This,
23388 _In_ D3D12_COMMAND_LIST_TYPE type,
23389 REFIID riid,
23390 _COM_Outptr_ void **ppCommandAllocator);
23391
23392 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
23393 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
23394 ID3D12Device10 * This,
23395 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
23396 REFIID riid,
23397 _COM_Outptr_ void **ppPipelineState);
23398
23399 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
23400 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
23401 ID3D12Device10 * This,
23402 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
23403 REFIID riid,
23404 _COM_Outptr_ void **ppPipelineState);
23405
23406 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
23407 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
23408 ID3D12Device10 * This,
23409 _In_ UINT nodeMask,
23410 _In_ D3D12_COMMAND_LIST_TYPE type,
23411 _In_ ID3D12CommandAllocator *pCommandAllocator,
23412 _In_opt_ ID3D12PipelineState *pInitialState,
23413 REFIID riid,
23414 _COM_Outptr_ void **ppCommandList);
23415
23416 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
23417 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
23418 ID3D12Device10 * This,
23419 D3D12_FEATURE Feature,
23420 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
23421 UINT FeatureSupportDataSize);
23422
23423 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
23424 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
23425 ID3D12Device10 * This,
23426 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
23427 REFIID riid,
23428 _COM_Outptr_ void **ppvHeap);
23429
23430 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
23431 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
23432 ID3D12Device10 * This,
23433 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
23434
23435 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
23436 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
23437 ID3D12Device10 * This,
23438 _In_ UINT nodeMask,
23439 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
23440 _In_ SIZE_T blobLengthInBytes,
23441 REFIID riid,
23442 _COM_Outptr_ void **ppvRootSignature);
23443
23444 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
23445 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
23446 ID3D12Device10 * This,
23447 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
23448 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23449
23450 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
23451 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
23452 ID3D12Device10 * This,
23453 _In_opt_ ID3D12Resource *pResource,
23454 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
23455 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23456
23457 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
23458 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
23459 ID3D12Device10 * This,
23460 _In_opt_ ID3D12Resource *pResource,
23461 _In_opt_ ID3D12Resource *pCounterResource,
23462 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
23463 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23464
23465 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
23466 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
23467 ID3D12Device10 * This,
23468 _In_opt_ ID3D12Resource *pResource,
23469 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
23470 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23471
23472 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
23473 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
23474 ID3D12Device10 * This,
23475 _In_opt_ ID3D12Resource *pResource,
23476 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
23477 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23478
23479 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
23480 void ( STDMETHODCALLTYPE *CreateSampler )(
23481 ID3D12Device10 * This,
23482 _In_ const D3D12_SAMPLER_DESC *pDesc,
23483 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23484
23485 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
23486 void ( STDMETHODCALLTYPE *CopyDescriptors )(
23487 ID3D12Device10 * This,
23488 _In_ UINT NumDestDescriptorRanges,
23489 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
23490 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
23491 _In_ UINT NumSrcDescriptorRanges,
23492 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
23493 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
23494 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23495
23496 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
23497 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
23498 ID3D12Device10 * This,
23499 _In_ UINT NumDescriptors,
23500 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
23501 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
23502 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23503
23504 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
23505#if !defined(_WIN32)
23506 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23507 ID3D12Device10 * This,
23508 _In_ UINT visibleMask,
23509 _In_ UINT numResourceDescs,
23510 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23511
23512#else
23513 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23514 ID3D12Device10 * This,
23515 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23516 _In_ UINT visibleMask,
23517 _In_ UINT numResourceDescs,
23518 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23519
23520#endif
23521
23522 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
23523#if !defined(_WIN32)
23524 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23525 ID3D12Device10 * This,
23526 _In_ UINT nodeMask,
23527 D3D12_HEAP_TYPE heapType);
23528
23529#else
23530 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23531 ID3D12Device10 * This,
23532 D3D12_HEAP_PROPERTIES * RetVal,
23533 _In_ UINT nodeMask,
23534 D3D12_HEAP_TYPE heapType);
23535
23536#endif
23537
23538 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
23539 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
23540 ID3D12Device10 * This,
23541 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23542 D3D12_HEAP_FLAGS HeapFlags,
23543 _In_ const D3D12_RESOURCE_DESC *pDesc,
23544 D3D12_RESOURCE_STATES InitialResourceState,
23545 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23546 REFIID riidResource,
23547 _COM_Outptr_opt_ void **ppvResource);
23548
23549 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
23550 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
23551 ID3D12Device10 * This,
23552 _In_ const D3D12_HEAP_DESC *pDesc,
23553 REFIID riid,
23554 _COM_Outptr_opt_ void **ppvHeap);
23555
23556 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
23557 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
23558 ID3D12Device10 * This,
23559 _In_ ID3D12Heap *pHeap,
23560 UINT64 HeapOffset,
23561 _In_ const D3D12_RESOURCE_DESC *pDesc,
23562 D3D12_RESOURCE_STATES InitialState,
23563 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23564 REFIID riid,
23565 _COM_Outptr_opt_ void **ppvResource);
23566
23567 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
23568 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
23569 ID3D12Device10 * This,
23570 _In_ const D3D12_RESOURCE_DESC *pDesc,
23571 D3D12_RESOURCE_STATES InitialState,
23572 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23573 REFIID riid,
23574 _COM_Outptr_opt_ void **ppvResource);
23575
23576 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
23577 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
23578 ID3D12Device10 * This,
23579 _In_ ID3D12DeviceChild *pObject,
23580 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
23581 DWORD Access,
23582 _In_opt_ LPCWSTR Name,
23583 _Out_ HANDLE *pHandle);
23584
23585 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
23586 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
23587 ID3D12Device10 * This,
23588 _In_ HANDLE NTHandle,
23589 REFIID riid,
23590 _COM_Outptr_opt_ void **ppvObj);
23591
23592 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
23593 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
23594 ID3D12Device10 * This,
23595 _In_ LPCWSTR Name,
23596 DWORD Access,
23597 /* [annotation][out] */
23598 _Out_ HANDLE *pNTHandle);
23599
23600 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
23601 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
23602 ID3D12Device10 * This,
23603 UINT NumObjects,
23604 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23605
23606 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
23607 HRESULT ( STDMETHODCALLTYPE *Evict )(
23608 ID3D12Device10 * This,
23609 UINT NumObjects,
23610 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23611
23612 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
23613 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
23614 ID3D12Device10 * This,
23615 UINT64 InitialValue,
23616 D3D12_FENCE_FLAGS Flags,
23617 REFIID riid,
23618 _COM_Outptr_ void **ppFence);
23619
23620 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
23621 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
23622 ID3D12Device10 * This);
23623
23624 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
23625 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
23626 ID3D12Device10 * This,
23627 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
23628 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23629 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23630 UINT64 BaseOffset,
23631 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23632 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23633 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23634 _Out_opt_ UINT64 *pTotalBytes);
23635
23636 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
23637 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
23638 ID3D12Device10 * This,
23639 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
23640 REFIID riid,
23641 _COM_Outptr_opt_ void **ppvHeap);
23642
23643 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
23644 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
23645 ID3D12Device10 * This,
23646 BOOL Enable);
23647
23648 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
23649 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
23650 ID3D12Device10 * This,
23651 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
23652 _In_opt_ ID3D12RootSignature *pRootSignature,
23653 REFIID riid,
23654 _COM_Outptr_opt_ void **ppvCommandSignature);
23655
23656 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
23657 void ( STDMETHODCALLTYPE *GetResourceTiling )(
23658 ID3D12Device10 * This,
23659 _In_ ID3D12Resource *pTiledResource,
23660 _Out_opt_ UINT *pNumTilesForEntireResource,
23661 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
23662 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
23663 _Inout_opt_ UINT *pNumSubresourceTilings,
23664 _In_ UINT FirstSubresourceTilingToGet,
23665 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
23666
23667 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
23668#if !defined(_WIN32)
23669 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
23670 ID3D12Device10 * This);
23671
23672#else
23673 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
23674 ID3D12Device10 * This,
23675 LUID * RetVal);
23676
23677#endif
23678
23679 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
23680 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
23681 ID3D12Device10 * This,
23682 _In_reads_(BlobLength) const void *pLibraryBlob,
23683 SIZE_T BlobLength,
23684 REFIID riid,
23685 _COM_Outptr_ void **ppPipelineLibrary);
23686
23687 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
23688 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
23689 ID3D12Device10 * This,
23690 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
23691 _In_reads_(NumFences) const UINT64 *pFenceValues,
23692 UINT NumFences,
23693 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
23694 HANDLE hEvent);
23695
23696 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
23697 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
23698 ID3D12Device10 * This,
23699 UINT NumObjects,
23700 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23701 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
23702
23703 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
23704 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
23705 ID3D12Device10 * This,
23706 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
23707 REFIID riid,
23708 _COM_Outptr_ void **ppPipelineState);
23709
23710 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
23711 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
23712 ID3D12Device10 * This,
23713 _In_ const void *pAddress,
23714 REFIID riid,
23715 _COM_Outptr_ void **ppvHeap);
23716
23717 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
23718 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
23719 ID3D12Device10 * This,
23720 _In_ HANDLE hFileMapping,
23721 REFIID riid,
23722 _COM_Outptr_ void **ppvHeap);
23723
23724 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
23725 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
23726 ID3D12Device10 * This,
23727 D3D12_RESIDENCY_FLAGS Flags,
23728 UINT NumObjects,
23729 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23730 _In_ ID3D12Fence *pFenceToSignal,
23731 UINT64 FenceValueToSignal);
23732
23733 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
23734 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
23735 ID3D12Device10 * This,
23736 _In_ UINT nodeMask,
23737 _In_ D3D12_COMMAND_LIST_TYPE type,
23738 _In_ D3D12_COMMAND_LIST_FLAGS flags,
23739 REFIID riid,
23740 _COM_Outptr_ void **ppCommandList);
23741
23742 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
23743 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
23744 ID3D12Device10 * This,
23745 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
23746 _In_ REFIID riid,
23747 _COM_Outptr_ void **ppSession);
23748
23749 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
23750 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
23751 ID3D12Device10 * This,
23752 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23753 D3D12_HEAP_FLAGS HeapFlags,
23754 _In_ const D3D12_RESOURCE_DESC *pDesc,
23755 D3D12_RESOURCE_STATES InitialResourceState,
23756 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23757 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23758 REFIID riidResource,
23759 _COM_Outptr_opt_ void **ppvResource);
23760
23761 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
23762 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
23763 ID3D12Device10 * This,
23764 _In_ const D3D12_HEAP_DESC *pDesc,
23765 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23766 REFIID riid,
23767 _COM_Outptr_opt_ void **ppvHeap);
23768
23769 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
23770 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
23771 ID3D12Device10 * This,
23772 _In_ const D3D12_RESOURCE_DESC *pDesc,
23773 D3D12_RESOURCE_STATES InitialState,
23774 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23775 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23776 REFIID riid,
23777 _COM_Outptr_opt_ void **ppvResource);
23778
23779 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
23780#if !defined(_WIN32)
23781 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23782 ID3D12Device10 * This,
23783 UINT visibleMask,
23784 UINT numResourceDescs,
23785 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23786 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23787
23788#else
23789 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23790 ID3D12Device10 * This,
23791 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23792 UINT visibleMask,
23793 UINT numResourceDescs,
23794 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23795 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23796
23797#endif
23798
23799 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
23800 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
23801 ID3D12Device10 * This,
23802 _In_ ID3D12LifetimeOwner *pOwner,
23803 REFIID riid,
23804 _COM_Outptr_ void **ppvTracker);
23805
23806 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
23807 void ( STDMETHODCALLTYPE *RemoveDevice )(
23808 ID3D12Device10 * This);
23809
23810 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
23811 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
23812 ID3D12Device10 * This,
23813 _Inout_ UINT *pNumMetaCommands,
23814 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
23815
23816 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
23817 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
23818 ID3D12Device10 * This,
23819 _In_ REFGUID CommandId,
23820 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
23821 _Out_opt_ UINT *pTotalStructureSizeInBytes,
23822 _Inout_ UINT *pParameterCount,
23823 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
23824
23825 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
23826 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
23827 ID3D12Device10 * This,
23828 _In_ REFGUID CommandId,
23829 _In_ UINT NodeMask,
23830 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
23831 _In_ SIZE_T CreationParametersDataSizeInBytes,
23832 REFIID riid,
23833 _COM_Outptr_ void **ppMetaCommand);
23834
23835 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
23836 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
23837 ID3D12Device10 * This,
23838 const D3D12_STATE_OBJECT_DESC *pDesc,
23839 REFIID riid,
23840 _COM_Outptr_ void **ppStateObject);
23841
23842 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
23843 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
23844 ID3D12Device10 * This,
23845 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
23846 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
23847
23848 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
23849 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
23850 ID3D12Device10 * This,
23851 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
23852 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
23853
23854 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
23855 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
23856 ID3D12Device10 * This,
23857 D3D12_BACKGROUND_PROCESSING_MODE Mode,
23858 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
23859 _In_opt_ HANDLE hEventToSignalUponCompletion,
23860 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
23861
23862 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
23863 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
23864 ID3D12Device10 * This,
23865 const D3D12_STATE_OBJECT_DESC *pAddition,
23866 ID3D12StateObject *pStateObjectToGrowFrom,
23867 REFIID riid,
23868 _COM_Outptr_ void **ppNewStateObject);
23869
23870 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
23871 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
23872 ID3D12Device10 * This,
23873 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
23874 _In_ REFIID riid,
23875 _COM_Outptr_ void **ppSession);
23876
23877 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
23878#if !defined(_WIN32)
23879 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23880 ID3D12Device10 * This,
23881 UINT visibleMask,
23882 UINT numResourceDescs,
23883 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23884 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23885
23886#else
23887 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23888 ID3D12Device10 * This,
23889 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23890 UINT visibleMask,
23891 UINT numResourceDescs,
23892 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23893 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23894
23895#endif
23896
23897 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
23898 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
23899 ID3D12Device10 * This,
23900 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23901 D3D12_HEAP_FLAGS HeapFlags,
23902 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23903 D3D12_RESOURCE_STATES InitialResourceState,
23904 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23905 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23906 REFIID riidResource,
23907 _COM_Outptr_opt_ void **ppvResource);
23908
23909 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
23910 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
23911 ID3D12Device10 * This,
23912 _In_ ID3D12Heap *pHeap,
23913 UINT64 HeapOffset,
23914 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23915 D3D12_RESOURCE_STATES InitialState,
23916 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23917 REFIID riid,
23918 _COM_Outptr_opt_ void **ppvResource);
23919
23920 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
23921 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
23922 ID3D12Device10 * This,
23923 _In_opt_ ID3D12Resource *pTargetedResource,
23924 _In_opt_ ID3D12Resource *pFeedbackResource,
23925 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23926
23927 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
23928 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
23929 ID3D12Device10 * This,
23930 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
23931 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23932 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23933 UINT64 BaseOffset,
23934 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23935 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23936 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23937 _Out_opt_ UINT64 *pTotalBytes);
23938
23939 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
23940 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
23941 ID3D12Device10 * This,
23942 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
23943 REFIID riid,
23944 _COM_Outptr_opt_ void **ppvSession);
23945
23946 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
23947 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
23948 ID3D12Device10 * This,
23949 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
23950 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
23951
23952 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
23953 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
23954 ID3D12Device10 * This,
23955 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23956 REFIID CreatorID,
23957 REFIID riid,
23958 _COM_Outptr_ void **ppCommandQueue);
23959
23960 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
23961 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
23962 ID3D12Device10 * This,
23963 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23964 D3D12_HEAP_FLAGS HeapFlags,
23965 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23966 D3D12_BARRIER_LAYOUT InitialLayout,
23967 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23968 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23969 UINT32 NumCastableFormats,
23970 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23971 REFIID riidResource,
23972 _COM_Outptr_opt_ void **ppvResource);
23973
23974 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
23975 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
23976 ID3D12Device10 * This,
23977 _In_ ID3D12Heap *pHeap,
23978 UINT64 HeapOffset,
23979 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23980 D3D12_BARRIER_LAYOUT InitialLayout,
23981 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23982 UINT32 NumCastableFormats,
23983 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23984 REFIID riid,
23985 _COM_Outptr_opt_ void **ppvResource);
23986
23987 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
23988 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
23989 ID3D12Device10 * This,
23990 _In_ const D3D12_RESOURCE_DESC *pDesc,
23991 D3D12_BARRIER_LAYOUT InitialLayout,
23992 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23993 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23994 UINT32 NumCastableFormats,
23995 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
23996 REFIID riid,
23997 _COM_Outptr_opt_ void **ppvResource);
23998
23999 END_INTERFACE
24000 } ID3D12Device10Vtbl;
24001
24002 interface ID3D12Device10
24003 {
24004 CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl;
24005 };
24006
24007
24008
24009#ifdef COBJMACROS
24010
24011
24012#define ID3D12Device10_QueryInterface(This,riid,ppvObject) \
24013 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
24014
24015#define ID3D12Device10_AddRef(This) \
24016 ( (This)->lpVtbl -> AddRef(This) )
24017
24018#define ID3D12Device10_Release(This) \
24019 ( (This)->lpVtbl -> Release(This) )
24020
24021
24022#define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \
24023 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
24024
24025#define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \
24026 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
24027
24028#define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \
24029 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
24030
24031#define ID3D12Device10_SetName(This,Name) \
24032 ( (This)->lpVtbl -> SetName(This,Name) )
24033
24034
24035#define ID3D12Device10_GetNodeCount(This) \
24036 ( (This)->lpVtbl -> GetNodeCount(This) )
24037
24038#define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
24039 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
24040
24041#define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
24042 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
24043
24044#define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
24045 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
24046
24047#define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
24048 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
24049
24050#define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
24051 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
24052
24053#define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
24054 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
24055
24056#define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
24057 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
24058
24059#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
24060 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
24061
24062#define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
24063 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
24064
24065#define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \
24066 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
24067
24068#define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
24069 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
24070
24071#define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
24072 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
24073
24074#define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
24075 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
24076
24077#define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
24078 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
24079
24080#define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \
24081 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
24082
24083#define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
24084 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
24085
24086#define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
24087 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
24088#if !defined(_WIN32)
24089
24090#define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
24091 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
24092#else
24093#define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
24094 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
24095#endif
24096#if !defined(_WIN32)
24097
24098#define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \
24099 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
24100#else
24101#define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
24102 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
24103#endif
24104
24105#define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
24106 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
24107
24108#define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \
24109 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
24110
24111#define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24112 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24113
24114#define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24115 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24116
24117#define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
24118 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
24119
24120#define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
24121 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
24122
24123#define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
24124 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
24125
24126#define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \
24127 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
24128
24129#define ID3D12Device10_Evict(This,NumObjects,ppObjects) \
24130 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
24131
24132#define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \
24133 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
24134
24135#define ID3D12Device10_GetDeviceRemovedReason(This) \
24136 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
24137
24138#define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24139 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24140
24141#define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
24142 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
24143
24144#define ID3D12Device10_SetStablePowerState(This,Enable) \
24145 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
24146
24147#define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
24148 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
24149
24150#define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
24151 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
24152#if !defined(_WIN32)
24153
24154#define ID3D12Device10_GetAdapterLuid(This) \
24155 ( (This)->lpVtbl -> GetAdapterLuid(This) )
24156#else
24157#define ID3D12Device10_GetAdapterLuid(This,RetVal) \
24158 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
24159#endif
24160
24161
24162#define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
24163 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
24164
24165#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
24166 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
24167
24168#define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
24169 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
24170
24171
24172#define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
24173 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
24174
24175
24176#define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
24177 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
24178
24179#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
24180 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
24181
24182#define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
24183 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
24184
24185
24186#define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
24187 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
24188
24189#define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
24190 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
24191
24192#define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24193 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24194
24195#define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
24196 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
24197
24198#define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
24199 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
24200#if !defined(_WIN32)
24201
24202#define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24203 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24204#else
24205#define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24206 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24207#endif
24208
24209
24210#define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
24211 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
24212
24213#define ID3D12Device10_RemoveDevice(This) \
24214 ( (This)->lpVtbl -> RemoveDevice(This) )
24215
24216#define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
24217 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
24218
24219#define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
24220 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
24221
24222#define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
24223 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
24224
24225#define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \
24226 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
24227
24228#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
24229 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
24230
24231#define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
24232 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
24233
24234
24235#define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
24236 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
24237
24238
24239#define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
24240 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
24241
24242#define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
24243 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
24244
24245#if !defined(_WIN32)
24246
24247#define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24248 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24249#else
24250#define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24251 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24252#endif
24253
24254#define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24255 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24256
24257#define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24258 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24259
24260#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
24261 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
24262
24263#define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24264 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24265
24266
24267#define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
24268 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
24269
24270#define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \
24271 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
24272
24273#define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
24274 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
24275
24276
24277#define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
24278 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
24279
24280#define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
24281 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
24282
24283#define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
24284 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
24285
24286#endif /* COBJMACROS */
24287
24288
24289#endif /* C style interface */
24290
24291
24292
24293
24294#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
24295
24296
24297#ifndef __ID3D12Device11_INTERFACE_DEFINED__
24298#define __ID3D12Device11_INTERFACE_DEFINED__
24299
24300/* interface ID3D12Device11 */
24301/* [unique][local][object][uuid] */
24302
24303
24304EXTERN_C const IID IID_ID3D12Device11;
24305
24306#if defined(__cplusplus) && !defined(CINTERFACE)
24307
24308 MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39")
24309 ID3D12Device11 : public ID3D12Device10
24310 {
24311 public:
24312 virtual void STDMETHODCALLTYPE CreateSampler2(
24313 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
24314 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
24315
24316 };
24317
24318
24319#else /* C style interface */
24320
24321 typedef struct ID3D12Device11Vtbl
24322 {
24323 BEGIN_INTERFACE
24324
24325 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
24326 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
24327 ID3D12Device11 * This,
24328 REFIID riid,
24329 _COM_Outptr_ void **ppvObject);
24330
24331 DECLSPEC_XFGVIRT(IUnknown, AddRef)
24332 ULONG ( STDMETHODCALLTYPE *AddRef )(
24333 ID3D12Device11 * This);
24334
24335 DECLSPEC_XFGVIRT(IUnknown, Release)
24336 ULONG ( STDMETHODCALLTYPE *Release )(
24337 ID3D12Device11 * This);
24338
24339 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
24340 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
24341 ID3D12Device11 * This,
24342 _In_ REFGUID guid,
24343 _Inout_ UINT *pDataSize,
24344 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
24345
24346 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
24347 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
24348 ID3D12Device11 * This,
24349 _In_ REFGUID guid,
24350 _In_ UINT DataSize,
24351 _In_reads_bytes_opt_( DataSize ) const void *pData);
24352
24353 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
24354 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
24355 ID3D12Device11 * This,
24356 _In_ REFGUID guid,
24357 _In_opt_ const IUnknown *pData);
24358
24359 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
24360 HRESULT ( STDMETHODCALLTYPE *SetName )(
24361 ID3D12Device11 * This,
24362 _In_z_ LPCWSTR Name);
24363
24364 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
24365 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
24366 ID3D12Device11 * This);
24367
24368 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
24369 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
24370 ID3D12Device11 * This,
24371 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24372 REFIID riid,
24373 _COM_Outptr_ void **ppCommandQueue);
24374
24375 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
24376 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
24377 ID3D12Device11 * This,
24378 _In_ D3D12_COMMAND_LIST_TYPE type,
24379 REFIID riid,
24380 _COM_Outptr_ void **ppCommandAllocator);
24381
24382 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
24383 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
24384 ID3D12Device11 * This,
24385 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
24386 REFIID riid,
24387 _COM_Outptr_ void **ppPipelineState);
24388
24389 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
24390 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
24391 ID3D12Device11 * This,
24392 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
24393 REFIID riid,
24394 _COM_Outptr_ void **ppPipelineState);
24395
24396 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
24397 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
24398 ID3D12Device11 * This,
24399 _In_ UINT nodeMask,
24400 _In_ D3D12_COMMAND_LIST_TYPE type,
24401 _In_ ID3D12CommandAllocator *pCommandAllocator,
24402 _In_opt_ ID3D12PipelineState *pInitialState,
24403 REFIID riid,
24404 _COM_Outptr_ void **ppCommandList);
24405
24406 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
24407 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
24408 ID3D12Device11 * This,
24409 D3D12_FEATURE Feature,
24410 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
24411 UINT FeatureSupportDataSize);
24412
24413 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
24414 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
24415 ID3D12Device11 * This,
24416 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
24417 REFIID riid,
24418 _COM_Outptr_ void **ppvHeap);
24419
24420 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
24421 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
24422 ID3D12Device11 * This,
24423 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
24424
24425 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
24426 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
24427 ID3D12Device11 * This,
24428 _In_ UINT nodeMask,
24429 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
24430 _In_ SIZE_T blobLengthInBytes,
24431 REFIID riid,
24432 _COM_Outptr_ void **ppvRootSignature);
24433
24434 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
24435 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
24436 ID3D12Device11 * This,
24437 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
24438 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24439
24440 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
24441 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
24442 ID3D12Device11 * This,
24443 _In_opt_ ID3D12Resource *pResource,
24444 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
24445 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24446
24447 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
24448 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
24449 ID3D12Device11 * This,
24450 _In_opt_ ID3D12Resource *pResource,
24451 _In_opt_ ID3D12Resource *pCounterResource,
24452 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
24453 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24454
24455 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
24456 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
24457 ID3D12Device11 * This,
24458 _In_opt_ ID3D12Resource *pResource,
24459 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
24460 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24461
24462 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
24463 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
24464 ID3D12Device11 * This,
24465 _In_opt_ ID3D12Resource *pResource,
24466 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
24467 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24468
24469 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
24470 void ( STDMETHODCALLTYPE *CreateSampler )(
24471 ID3D12Device11 * This,
24472 _In_ const D3D12_SAMPLER_DESC *pDesc,
24473 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24474
24475 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
24476 void ( STDMETHODCALLTYPE *CopyDescriptors )(
24477 ID3D12Device11 * This,
24478 _In_ UINT NumDestDescriptorRanges,
24479 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
24480 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
24481 _In_ UINT NumSrcDescriptorRanges,
24482 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
24483 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
24484 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24485
24486 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
24487 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
24488 ID3D12Device11 * This,
24489 _In_ UINT NumDescriptors,
24490 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
24491 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
24492 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24493
24494 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
24495#if !defined(_WIN32)
24496 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24497 ID3D12Device11 * This,
24498 _In_ UINT visibleMask,
24499 _In_ UINT numResourceDescs,
24500 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24501
24502#else
24503 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24504 ID3D12Device11 * This,
24505 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24506 _In_ UINT visibleMask,
24507 _In_ UINT numResourceDescs,
24508 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24509
24510#endif
24511
24512 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
24513#if !defined(_WIN32)
24514 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24515 ID3D12Device11 * This,
24516 _In_ UINT nodeMask,
24517 D3D12_HEAP_TYPE heapType);
24518
24519#else
24520 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24521 ID3D12Device11 * This,
24522 D3D12_HEAP_PROPERTIES * RetVal,
24523 _In_ UINT nodeMask,
24524 D3D12_HEAP_TYPE heapType);
24525
24526#endif
24527
24528 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
24529 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
24530 ID3D12Device11 * This,
24531 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24532 D3D12_HEAP_FLAGS HeapFlags,
24533 _In_ const D3D12_RESOURCE_DESC *pDesc,
24534 D3D12_RESOURCE_STATES InitialResourceState,
24535 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24536 REFIID riidResource,
24537 _COM_Outptr_opt_ void **ppvResource);
24538
24539 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
24540 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
24541 ID3D12Device11 * This,
24542 _In_ const D3D12_HEAP_DESC *pDesc,
24543 REFIID riid,
24544 _COM_Outptr_opt_ void **ppvHeap);
24545
24546 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
24547 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
24548 ID3D12Device11 * This,
24549 _In_ ID3D12Heap *pHeap,
24550 UINT64 HeapOffset,
24551 _In_ const D3D12_RESOURCE_DESC *pDesc,
24552 D3D12_RESOURCE_STATES InitialState,
24553 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24554 REFIID riid,
24555 _COM_Outptr_opt_ void **ppvResource);
24556
24557 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
24558 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
24559 ID3D12Device11 * This,
24560 _In_ const D3D12_RESOURCE_DESC *pDesc,
24561 D3D12_RESOURCE_STATES InitialState,
24562 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24563 REFIID riid,
24564 _COM_Outptr_opt_ void **ppvResource);
24565
24566 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
24567 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
24568 ID3D12Device11 * This,
24569 _In_ ID3D12DeviceChild *pObject,
24570 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
24571 DWORD Access,
24572 _In_opt_ LPCWSTR Name,
24573 _Out_ HANDLE *pHandle);
24574
24575 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
24576 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
24577 ID3D12Device11 * This,
24578 _In_ HANDLE NTHandle,
24579 REFIID riid,
24580 _COM_Outptr_opt_ void **ppvObj);
24581
24582 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
24583 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
24584 ID3D12Device11 * This,
24585 _In_ LPCWSTR Name,
24586 DWORD Access,
24587 /* [annotation][out] */
24588 _Out_ HANDLE *pNTHandle);
24589
24590 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
24591 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
24592 ID3D12Device11 * This,
24593 UINT NumObjects,
24594 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24595
24596 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
24597 HRESULT ( STDMETHODCALLTYPE *Evict )(
24598 ID3D12Device11 * This,
24599 UINT NumObjects,
24600 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24601
24602 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
24603 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
24604 ID3D12Device11 * This,
24605 UINT64 InitialValue,
24606 D3D12_FENCE_FLAGS Flags,
24607 REFIID riid,
24608 _COM_Outptr_ void **ppFence);
24609
24610 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
24611 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
24612 ID3D12Device11 * This);
24613
24614 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
24615 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
24616 ID3D12Device11 * This,
24617 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
24618 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24619 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24620 UINT64 BaseOffset,
24621 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24622 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24623 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24624 _Out_opt_ UINT64 *pTotalBytes);
24625
24626 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
24627 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
24628 ID3D12Device11 * This,
24629 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
24630 REFIID riid,
24631 _COM_Outptr_opt_ void **ppvHeap);
24632
24633 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
24634 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
24635 ID3D12Device11 * This,
24636 BOOL Enable);
24637
24638 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
24639 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
24640 ID3D12Device11 * This,
24641 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
24642 _In_opt_ ID3D12RootSignature *pRootSignature,
24643 REFIID riid,
24644 _COM_Outptr_opt_ void **ppvCommandSignature);
24645
24646 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
24647 void ( STDMETHODCALLTYPE *GetResourceTiling )(
24648 ID3D12Device11 * This,
24649 _In_ ID3D12Resource *pTiledResource,
24650 _Out_opt_ UINT *pNumTilesForEntireResource,
24651 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
24652 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
24653 _Inout_opt_ UINT *pNumSubresourceTilings,
24654 _In_ UINT FirstSubresourceTilingToGet,
24655 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
24656
24657 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
24658#if !defined(_WIN32)
24659 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
24660 ID3D12Device11 * This);
24661
24662#else
24663 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
24664 ID3D12Device11 * This,
24665 LUID * RetVal);
24666
24667#endif
24668
24669 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
24670 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
24671 ID3D12Device11 * This,
24672 _In_reads_(BlobLength) const void *pLibraryBlob,
24673 SIZE_T BlobLength,
24674 REFIID riid,
24675 _COM_Outptr_ void **ppPipelineLibrary);
24676
24677 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
24678 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
24679 ID3D12Device11 * This,
24680 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
24681 _In_reads_(NumFences) const UINT64 *pFenceValues,
24682 UINT NumFences,
24683 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
24684 HANDLE hEvent);
24685
24686 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
24687 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
24688 ID3D12Device11 * This,
24689 UINT NumObjects,
24690 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24691 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
24692
24693 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
24694 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
24695 ID3D12Device11 * This,
24696 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
24697 REFIID riid,
24698 _COM_Outptr_ void **ppPipelineState);
24699
24700 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
24701 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
24702 ID3D12Device11 * This,
24703 _In_ const void *pAddress,
24704 REFIID riid,
24705 _COM_Outptr_ void **ppvHeap);
24706
24707 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
24708 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
24709 ID3D12Device11 * This,
24710 _In_ HANDLE hFileMapping,
24711 REFIID riid,
24712 _COM_Outptr_ void **ppvHeap);
24713
24714 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
24715 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
24716 ID3D12Device11 * This,
24717 D3D12_RESIDENCY_FLAGS Flags,
24718 UINT NumObjects,
24719 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24720 _In_ ID3D12Fence *pFenceToSignal,
24721 UINT64 FenceValueToSignal);
24722
24723 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
24724 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
24725 ID3D12Device11 * This,
24726 _In_ UINT nodeMask,
24727 _In_ D3D12_COMMAND_LIST_TYPE type,
24728 _In_ D3D12_COMMAND_LIST_FLAGS flags,
24729 REFIID riid,
24730 _COM_Outptr_ void **ppCommandList);
24731
24732 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
24733 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
24734 ID3D12Device11 * This,
24735 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
24736 _In_ REFIID riid,
24737 _COM_Outptr_ void **ppSession);
24738
24739 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
24740 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
24741 ID3D12Device11 * This,
24742 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24743 D3D12_HEAP_FLAGS HeapFlags,
24744 _In_ const D3D12_RESOURCE_DESC *pDesc,
24745 D3D12_RESOURCE_STATES InitialResourceState,
24746 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24747 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24748 REFIID riidResource,
24749 _COM_Outptr_opt_ void **ppvResource);
24750
24751 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
24752 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
24753 ID3D12Device11 * This,
24754 _In_ const D3D12_HEAP_DESC *pDesc,
24755 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24756 REFIID riid,
24757 _COM_Outptr_opt_ void **ppvHeap);
24758
24759 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
24760 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
24761 ID3D12Device11 * This,
24762 _In_ const D3D12_RESOURCE_DESC *pDesc,
24763 D3D12_RESOURCE_STATES InitialState,
24764 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24765 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24766 REFIID riid,
24767 _COM_Outptr_opt_ void **ppvResource);
24768
24769 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
24770#if !defined(_WIN32)
24771 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24772 ID3D12Device11 * This,
24773 UINT visibleMask,
24774 UINT numResourceDescs,
24775 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24776 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24777
24778#else
24779 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24780 ID3D12Device11 * This,
24781 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24782 UINT visibleMask,
24783 UINT numResourceDescs,
24784 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24785 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24786
24787#endif
24788
24789 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
24790 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
24791 ID3D12Device11 * This,
24792 _In_ ID3D12LifetimeOwner *pOwner,
24793 REFIID riid,
24794 _COM_Outptr_ void **ppvTracker);
24795
24796 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
24797 void ( STDMETHODCALLTYPE *RemoveDevice )(
24798 ID3D12Device11 * This);
24799
24800 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
24801 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
24802 ID3D12Device11 * This,
24803 _Inout_ UINT *pNumMetaCommands,
24804 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
24805
24806 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
24807 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
24808 ID3D12Device11 * This,
24809 _In_ REFGUID CommandId,
24810 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
24811 _Out_opt_ UINT *pTotalStructureSizeInBytes,
24812 _Inout_ UINT *pParameterCount,
24813 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
24814
24815 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
24816 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
24817 ID3D12Device11 * This,
24818 _In_ REFGUID CommandId,
24819 _In_ UINT NodeMask,
24820 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
24821 _In_ SIZE_T CreationParametersDataSizeInBytes,
24822 REFIID riid,
24823 _COM_Outptr_ void **ppMetaCommand);
24824
24825 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
24826 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
24827 ID3D12Device11 * This,
24828 const D3D12_STATE_OBJECT_DESC *pDesc,
24829 REFIID riid,
24830 _COM_Outptr_ void **ppStateObject);
24831
24832 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
24833 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
24834 ID3D12Device11 * This,
24835 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
24836 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
24837
24838 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
24839 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
24840 ID3D12Device11 * This,
24841 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
24842 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
24843
24844 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
24845 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
24846 ID3D12Device11 * This,
24847 D3D12_BACKGROUND_PROCESSING_MODE Mode,
24848 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
24849 _In_opt_ HANDLE hEventToSignalUponCompletion,
24850 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
24851
24852 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
24853 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
24854 ID3D12Device11 * This,
24855 const D3D12_STATE_OBJECT_DESC *pAddition,
24856 ID3D12StateObject *pStateObjectToGrowFrom,
24857 REFIID riid,
24858 _COM_Outptr_ void **ppNewStateObject);
24859
24860 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
24861 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
24862 ID3D12Device11 * This,
24863 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
24864 _In_ REFIID riid,
24865 _COM_Outptr_ void **ppSession);
24866
24867 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
24868#if !defined(_WIN32)
24869 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24870 ID3D12Device11 * This,
24871 UINT visibleMask,
24872 UINT numResourceDescs,
24873 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24874 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24875
24876#else
24877 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24878 ID3D12Device11 * This,
24879 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24880 UINT visibleMask,
24881 UINT numResourceDescs,
24882 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24883 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24884
24885#endif
24886
24887 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
24888 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
24889 ID3D12Device11 * This,
24890 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24891 D3D12_HEAP_FLAGS HeapFlags,
24892 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24893 D3D12_RESOURCE_STATES InitialResourceState,
24894 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24895 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24896 REFIID riidResource,
24897 _COM_Outptr_opt_ void **ppvResource);
24898
24899 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
24900 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
24901 ID3D12Device11 * This,
24902 _In_ ID3D12Heap *pHeap,
24903 UINT64 HeapOffset,
24904 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24905 D3D12_RESOURCE_STATES InitialState,
24906 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24907 REFIID riid,
24908 _COM_Outptr_opt_ void **ppvResource);
24909
24910 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
24911 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
24912 ID3D12Device11 * This,
24913 _In_opt_ ID3D12Resource *pTargetedResource,
24914 _In_opt_ ID3D12Resource *pFeedbackResource,
24915 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24916
24917 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
24918 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
24919 ID3D12Device11 * This,
24920 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
24921 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24922 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24923 UINT64 BaseOffset,
24924 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24925 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24926 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24927 _Out_opt_ UINT64 *pTotalBytes);
24928
24929 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
24930 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
24931 ID3D12Device11 * This,
24932 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
24933 REFIID riid,
24934 _COM_Outptr_opt_ void **ppvSession);
24935
24936 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
24937 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
24938 ID3D12Device11 * This,
24939 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
24940 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
24941
24942 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
24943 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
24944 ID3D12Device11 * This,
24945 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24946 REFIID CreatorID,
24947 REFIID riid,
24948 _COM_Outptr_ void **ppCommandQueue);
24949
24950 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
24951 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
24952 ID3D12Device11 * This,
24953 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24954 D3D12_HEAP_FLAGS HeapFlags,
24955 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24956 D3D12_BARRIER_LAYOUT InitialLayout,
24957 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24958 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24959 UINT32 NumCastableFormats,
24960 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24961 REFIID riidResource,
24962 _COM_Outptr_opt_ void **ppvResource);
24963
24964 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
24965 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
24966 ID3D12Device11 * This,
24967 _In_ ID3D12Heap *pHeap,
24968 UINT64 HeapOffset,
24969 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24970 D3D12_BARRIER_LAYOUT InitialLayout,
24971 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24972 UINT32 NumCastableFormats,
24973 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24974 REFIID riid,
24975 _COM_Outptr_opt_ void **ppvResource);
24976
24977 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
24978 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
24979 ID3D12Device11 * This,
24980 _In_ const D3D12_RESOURCE_DESC *pDesc,
24981 D3D12_BARRIER_LAYOUT InitialLayout,
24982 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24983 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24984 UINT32 NumCastableFormats,
24985 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24986 REFIID riid,
24987 _COM_Outptr_opt_ void **ppvResource);
24988
24989 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
24990 void ( STDMETHODCALLTYPE *CreateSampler2 )(
24991 ID3D12Device11 * This,
24992 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
24993 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24994
24995 END_INTERFACE
24996 } ID3D12Device11Vtbl;
24997
24998 interface ID3D12Device11
24999 {
25000 CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl;
25001 };
25002
25003
25004
25005#ifdef COBJMACROS
25006
25007
25008#define ID3D12Device11_QueryInterface(This,riid,ppvObject) \
25009 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
25010
25011#define ID3D12Device11_AddRef(This) \
25012 ( (This)->lpVtbl -> AddRef(This) )
25013
25014#define ID3D12Device11_Release(This) \
25015 ( (This)->lpVtbl -> Release(This) )
25016
25017
25018#define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \
25019 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
25020
25021#define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \
25022 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
25023
25024#define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \
25025 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
25026
25027#define ID3D12Device11_SetName(This,Name) \
25028 ( (This)->lpVtbl -> SetName(This,Name) )
25029
25030
25031#define ID3D12Device11_GetNodeCount(This) \
25032 ( (This)->lpVtbl -> GetNodeCount(This) )
25033
25034#define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
25035 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
25036
25037#define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
25038 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
25039
25040#define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
25041 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
25042
25043#define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
25044 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
25045
25046#define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
25047 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
25048
25049#define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
25050 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
25051
25052#define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
25053 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
25054
25055#define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
25056 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
25057
25058#define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
25059 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
25060
25061#define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \
25062 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
25063
25064#define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
25065 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
25066
25067#define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
25068 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
25069
25070#define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
25071 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
25072
25073#define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
25074 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
25075
25076#define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \
25077 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
25078
25079#define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
25080 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
25081
25082#define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
25083 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
25084#if !defined(_WIN32)
25085
25086#define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
25087 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
25088#else
25089#define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
25090 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
25091#endif
25092#if !defined(_WIN32)
25093
25094#define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \
25095 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
25096#else
25097#define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
25098 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
25099#endif
25100
25101#define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
25102 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
25103
25104#define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \
25105 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
25106
25107#define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25108 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25109
25110#define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25111 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25112
25113#define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
25114 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
25115
25116#define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
25117 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
25118
25119#define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
25120 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
25121
25122#define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \
25123 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
25124
25125#define ID3D12Device11_Evict(This,NumObjects,ppObjects) \
25126 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
25127
25128#define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \
25129 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
25130
25131#define ID3D12Device11_GetDeviceRemovedReason(This) \
25132 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
25133
25134#define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25135 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25136
25137#define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
25138 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
25139
25140#define ID3D12Device11_SetStablePowerState(This,Enable) \
25141 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
25142
25143#define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
25144 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
25145
25146#define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
25147 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
25148#if !defined(_WIN32)
25149
25150#define ID3D12Device11_GetAdapterLuid(This) \
25151 ( (This)->lpVtbl -> GetAdapterLuid(This) )
25152#else
25153#define ID3D12Device11_GetAdapterLuid(This,RetVal) \
25154 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
25155#endif
25156
25157
25158#define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
25159 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
25160
25161#define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
25162 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
25163
25164#define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
25165 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
25166
25167
25168#define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
25169 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
25170
25171
25172#define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
25173 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
25174
25175#define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
25176 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
25177
25178#define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
25179 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
25180
25181
25182#define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
25183 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
25184
25185#define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
25186 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
25187
25188#define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25189 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25190
25191#define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
25192 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
25193
25194#define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
25195 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
25196#if !defined(_WIN32)
25197
25198#define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25199 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25200#else
25201#define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25202 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25203#endif
25204
25205
25206#define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
25207 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
25208
25209#define ID3D12Device11_RemoveDevice(This) \
25210 ( (This)->lpVtbl -> RemoveDevice(This) )
25211
25212#define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
25213 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
25214
25215#define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
25216 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
25217
25218#define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
25219 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
25220
25221#define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \
25222 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
25223
25224#define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
25225 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
25226
25227#define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
25228 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
25229
25230
25231#define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
25232 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
25233
25234
25235#define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
25236 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
25237
25238#define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
25239 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
25240
25241#if !defined(_WIN32)
25242
25243#define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25244 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25245#else
25246#define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25247 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25248#endif
25249
25250#define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25251 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25252
25253#define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25254 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25255
25256#define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
25257 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
25258
25259#define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25260 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25261
25262
25263#define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
25264 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
25265
25266#define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \
25267 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
25268
25269#define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
25270 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
25271
25272
25273#define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
25274 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
25275
25276#define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25277 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25278
25279#define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25280 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25281
25282
25283#define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \
25284 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
25285
25286#endif /* COBJMACROS */
25287
25288
25289#endif /* C style interface */
25290
25291
25292
25293
25294#endif /* __ID3D12Device11_INTERFACE_DEFINED__ */
25295
25296
25297#ifndef __ID3D12Device12_INTERFACE_DEFINED__
25298#define __ID3D12Device12_INTERFACE_DEFINED__
25299
25300/* interface ID3D12Device12 */
25301/* [unique][local][object][uuid] */
25302
25303
25304EXTERN_C const IID IID_ID3D12Device12;
25305
25306#if defined(__cplusplus) && !defined(CINTERFACE)
25307
25308 MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5")
25309 ID3D12Device12 : public ID3D12Device11
25310 {
25311 public:
25312#if defined(_MSC_VER) || !defined(_WIN32)
25313 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3(
25314 UINT visibleMask,
25315 UINT numResourceDescs,
25316 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25317 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
25318 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
25319 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
25320#else
25321 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3(
25322 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25323 UINT visibleMask,
25324 UINT numResourceDescs,
25325 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25326 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
25327 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
25328 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
25329#endif
25330
25331 };
25332
25333
25334#else /* C style interface */
25335
25336 typedef struct ID3D12Device12Vtbl
25337 {
25338 BEGIN_INTERFACE
25339
25340 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
25341 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
25342 ID3D12Device12 * This,
25343 REFIID riid,
25344 _COM_Outptr_ void **ppvObject);
25345
25346 DECLSPEC_XFGVIRT(IUnknown, AddRef)
25347 ULONG ( STDMETHODCALLTYPE *AddRef )(
25348 ID3D12Device12 * This);
25349
25350 DECLSPEC_XFGVIRT(IUnknown, Release)
25351 ULONG ( STDMETHODCALLTYPE *Release )(
25352 ID3D12Device12 * This);
25353
25354 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
25355 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
25356 ID3D12Device12 * This,
25357 _In_ REFGUID guid,
25358 _Inout_ UINT *pDataSize,
25359 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
25360
25361 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
25362 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
25363 ID3D12Device12 * This,
25364 _In_ REFGUID guid,
25365 _In_ UINT DataSize,
25366 _In_reads_bytes_opt_( DataSize ) const void *pData);
25367
25368 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
25369 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
25370 ID3D12Device12 * This,
25371 _In_ REFGUID guid,
25372 _In_opt_ const IUnknown *pData);
25373
25374 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
25375 HRESULT ( STDMETHODCALLTYPE *SetName )(
25376 ID3D12Device12 * This,
25377 _In_z_ LPCWSTR Name);
25378
25379 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
25380 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
25381 ID3D12Device12 * This);
25382
25383 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
25384 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
25385 ID3D12Device12 * This,
25386 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25387 REFIID riid,
25388 _COM_Outptr_ void **ppCommandQueue);
25389
25390 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
25391 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
25392 ID3D12Device12 * This,
25393 _In_ D3D12_COMMAND_LIST_TYPE type,
25394 REFIID riid,
25395 _COM_Outptr_ void **ppCommandAllocator);
25396
25397 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
25398 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
25399 ID3D12Device12 * This,
25400 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
25401 REFIID riid,
25402 _COM_Outptr_ void **ppPipelineState);
25403
25404 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
25405 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
25406 ID3D12Device12 * This,
25407 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
25408 REFIID riid,
25409 _COM_Outptr_ void **ppPipelineState);
25410
25411 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
25412 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
25413 ID3D12Device12 * This,
25414 _In_ UINT nodeMask,
25415 _In_ D3D12_COMMAND_LIST_TYPE type,
25416 _In_ ID3D12CommandAllocator *pCommandAllocator,
25417 _In_opt_ ID3D12PipelineState *pInitialState,
25418 REFIID riid,
25419 _COM_Outptr_ void **ppCommandList);
25420
25421 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
25422 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
25423 ID3D12Device12 * This,
25424 D3D12_FEATURE Feature,
25425 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
25426 UINT FeatureSupportDataSize);
25427
25428 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
25429 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
25430 ID3D12Device12 * This,
25431 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
25432 REFIID riid,
25433 _COM_Outptr_ void **ppvHeap);
25434
25435 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
25436 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
25437 ID3D12Device12 * This,
25438 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
25439
25440 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
25441 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
25442 ID3D12Device12 * This,
25443 _In_ UINT nodeMask,
25444 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
25445 _In_ SIZE_T blobLengthInBytes,
25446 REFIID riid,
25447 _COM_Outptr_ void **ppvRootSignature);
25448
25449 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
25450 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
25451 ID3D12Device12 * This,
25452 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
25453 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25454
25455 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
25456 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
25457 ID3D12Device12 * This,
25458 _In_opt_ ID3D12Resource *pResource,
25459 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
25460 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25461
25462 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
25463 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
25464 ID3D12Device12 * This,
25465 _In_opt_ ID3D12Resource *pResource,
25466 _In_opt_ ID3D12Resource *pCounterResource,
25467 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
25468 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25469
25470 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
25471 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
25472 ID3D12Device12 * This,
25473 _In_opt_ ID3D12Resource *pResource,
25474 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
25475 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25476
25477 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
25478 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
25479 ID3D12Device12 * This,
25480 _In_opt_ ID3D12Resource *pResource,
25481 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
25482 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25483
25484 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
25485 void ( STDMETHODCALLTYPE *CreateSampler )(
25486 ID3D12Device12 * This,
25487 _In_ const D3D12_SAMPLER_DESC *pDesc,
25488 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25489
25490 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
25491 void ( STDMETHODCALLTYPE *CopyDescriptors )(
25492 ID3D12Device12 * This,
25493 _In_ UINT NumDestDescriptorRanges,
25494 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
25495 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
25496 _In_ UINT NumSrcDescriptorRanges,
25497 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
25498 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
25499 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25500
25501 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
25502 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
25503 ID3D12Device12 * This,
25504 _In_ UINT NumDescriptors,
25505 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
25506 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
25507 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25508
25509 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
25510#if !defined(_WIN32)
25511 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25512 ID3D12Device12 * This,
25513 _In_ UINT visibleMask,
25514 _In_ UINT numResourceDescs,
25515 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25516
25517#else
25518 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25519 ID3D12Device12 * This,
25520 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25521 _In_ UINT visibleMask,
25522 _In_ UINT numResourceDescs,
25523 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25524
25525#endif
25526
25527 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
25528#if !defined(_WIN32)
25529 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25530 ID3D12Device12 * This,
25531 _In_ UINT nodeMask,
25532 D3D12_HEAP_TYPE heapType);
25533
25534#else
25535 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25536 ID3D12Device12 * This,
25537 D3D12_HEAP_PROPERTIES * RetVal,
25538 _In_ UINT nodeMask,
25539 D3D12_HEAP_TYPE heapType);
25540
25541#endif
25542
25543 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
25544 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
25545 ID3D12Device12 * This,
25546 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25547 D3D12_HEAP_FLAGS HeapFlags,
25548 _In_ const D3D12_RESOURCE_DESC *pDesc,
25549 D3D12_RESOURCE_STATES InitialResourceState,
25550 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25551 REFIID riidResource,
25552 _COM_Outptr_opt_ void **ppvResource);
25553
25554 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
25555 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
25556 ID3D12Device12 * This,
25557 _In_ const D3D12_HEAP_DESC *pDesc,
25558 REFIID riid,
25559 _COM_Outptr_opt_ void **ppvHeap);
25560
25561 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
25562 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
25563 ID3D12Device12 * This,
25564 _In_ ID3D12Heap *pHeap,
25565 UINT64 HeapOffset,
25566 _In_ const D3D12_RESOURCE_DESC *pDesc,
25567 D3D12_RESOURCE_STATES InitialState,
25568 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25569 REFIID riid,
25570 _COM_Outptr_opt_ void **ppvResource);
25571
25572 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
25573 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
25574 ID3D12Device12 * This,
25575 _In_ const D3D12_RESOURCE_DESC *pDesc,
25576 D3D12_RESOURCE_STATES InitialState,
25577 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25578 REFIID riid,
25579 _COM_Outptr_opt_ void **ppvResource);
25580
25581 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
25582 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
25583 ID3D12Device12 * This,
25584 _In_ ID3D12DeviceChild *pObject,
25585 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
25586 DWORD Access,
25587 _In_opt_ LPCWSTR Name,
25588 _Out_ HANDLE *pHandle);
25589
25590 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
25591 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
25592 ID3D12Device12 * This,
25593 _In_ HANDLE NTHandle,
25594 REFIID riid,
25595 _COM_Outptr_opt_ void **ppvObj);
25596
25597 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
25598 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
25599 ID3D12Device12 * This,
25600 _In_ LPCWSTR Name,
25601 DWORD Access,
25602 /* [annotation][out] */
25603 _Out_ HANDLE *pNTHandle);
25604
25605 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
25606 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
25607 ID3D12Device12 * This,
25608 UINT NumObjects,
25609 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25610
25611 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
25612 HRESULT ( STDMETHODCALLTYPE *Evict )(
25613 ID3D12Device12 * This,
25614 UINT NumObjects,
25615 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25616
25617 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
25618 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
25619 ID3D12Device12 * This,
25620 UINT64 InitialValue,
25621 D3D12_FENCE_FLAGS Flags,
25622 REFIID riid,
25623 _COM_Outptr_ void **ppFence);
25624
25625 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
25626 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
25627 ID3D12Device12 * This);
25628
25629 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
25630 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
25631 ID3D12Device12 * This,
25632 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
25633 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25634 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25635 UINT64 BaseOffset,
25636 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25637 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25638 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25639 _Out_opt_ UINT64 *pTotalBytes);
25640
25641 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
25642 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
25643 ID3D12Device12 * This,
25644 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
25645 REFIID riid,
25646 _COM_Outptr_opt_ void **ppvHeap);
25647
25648 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
25649 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
25650 ID3D12Device12 * This,
25651 BOOL Enable);
25652
25653 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
25654 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
25655 ID3D12Device12 * This,
25656 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
25657 _In_opt_ ID3D12RootSignature *pRootSignature,
25658 REFIID riid,
25659 _COM_Outptr_opt_ void **ppvCommandSignature);
25660
25661 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
25662 void ( STDMETHODCALLTYPE *GetResourceTiling )(
25663 ID3D12Device12 * This,
25664 _In_ ID3D12Resource *pTiledResource,
25665 _Out_opt_ UINT *pNumTilesForEntireResource,
25666 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
25667 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
25668 _Inout_opt_ UINT *pNumSubresourceTilings,
25669 _In_ UINT FirstSubresourceTilingToGet,
25670 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
25671
25672 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
25673#if !defined(_WIN32)
25674 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
25675 ID3D12Device12 * This);
25676
25677#else
25678 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
25679 ID3D12Device12 * This,
25680 LUID * RetVal);
25681
25682#endif
25683
25684 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
25685 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
25686 ID3D12Device12 * This,
25687 _In_reads_(BlobLength) const void *pLibraryBlob,
25688 SIZE_T BlobLength,
25689 REFIID riid,
25690 _COM_Outptr_ void **ppPipelineLibrary);
25691
25692 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
25693 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
25694 ID3D12Device12 * This,
25695 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
25696 _In_reads_(NumFences) const UINT64 *pFenceValues,
25697 UINT NumFences,
25698 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
25699 HANDLE hEvent);
25700
25701 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
25702 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
25703 ID3D12Device12 * This,
25704 UINT NumObjects,
25705 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25706 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
25707
25708 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
25709 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
25710 ID3D12Device12 * This,
25711 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
25712 REFIID riid,
25713 _COM_Outptr_ void **ppPipelineState);
25714
25715 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
25716 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
25717 ID3D12Device12 * This,
25718 _In_ const void *pAddress,
25719 REFIID riid,
25720 _COM_Outptr_ void **ppvHeap);
25721
25722 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
25723 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
25724 ID3D12Device12 * This,
25725 _In_ HANDLE hFileMapping,
25726 REFIID riid,
25727 _COM_Outptr_ void **ppvHeap);
25728
25729 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
25730 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
25731 ID3D12Device12 * This,
25732 D3D12_RESIDENCY_FLAGS Flags,
25733 UINT NumObjects,
25734 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25735 _In_ ID3D12Fence *pFenceToSignal,
25736 UINT64 FenceValueToSignal);
25737
25738 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
25739 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
25740 ID3D12Device12 * This,
25741 _In_ UINT nodeMask,
25742 _In_ D3D12_COMMAND_LIST_TYPE type,
25743 _In_ D3D12_COMMAND_LIST_FLAGS flags,
25744 REFIID riid,
25745 _COM_Outptr_ void **ppCommandList);
25746
25747 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
25748 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
25749 ID3D12Device12 * This,
25750 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
25751 _In_ REFIID riid,
25752 _COM_Outptr_ void **ppSession);
25753
25754 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
25755 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
25756 ID3D12Device12 * This,
25757 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25758 D3D12_HEAP_FLAGS HeapFlags,
25759 _In_ const D3D12_RESOURCE_DESC *pDesc,
25760 D3D12_RESOURCE_STATES InitialResourceState,
25761 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25762 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25763 REFIID riidResource,
25764 _COM_Outptr_opt_ void **ppvResource);
25765
25766 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
25767 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
25768 ID3D12Device12 * This,
25769 _In_ const D3D12_HEAP_DESC *pDesc,
25770 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25771 REFIID riid,
25772 _COM_Outptr_opt_ void **ppvHeap);
25773
25774 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
25775 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
25776 ID3D12Device12 * This,
25777 _In_ const D3D12_RESOURCE_DESC *pDesc,
25778 D3D12_RESOURCE_STATES InitialState,
25779 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25780 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25781 REFIID riid,
25782 _COM_Outptr_opt_ void **ppvResource);
25783
25784 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
25785#if !defined(_WIN32)
25786 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25787 ID3D12Device12 * This,
25788 UINT visibleMask,
25789 UINT numResourceDescs,
25790 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25791 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25792
25793#else
25794 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25795 ID3D12Device12 * This,
25796 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25797 UINT visibleMask,
25798 UINT numResourceDescs,
25799 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25800 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25801
25802#endif
25803
25804 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
25805 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
25806 ID3D12Device12 * This,
25807 _In_ ID3D12LifetimeOwner *pOwner,
25808 REFIID riid,
25809 _COM_Outptr_ void **ppvTracker);
25810
25811 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
25812 void ( STDMETHODCALLTYPE *RemoveDevice )(
25813 ID3D12Device12 * This);
25814
25815 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
25816 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
25817 ID3D12Device12 * This,
25818 _Inout_ UINT *pNumMetaCommands,
25819 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
25820
25821 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
25822 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
25823 ID3D12Device12 * This,
25824 _In_ REFGUID CommandId,
25825 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
25826 _Out_opt_ UINT *pTotalStructureSizeInBytes,
25827 _Inout_ UINT *pParameterCount,
25828 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
25829
25830 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
25831 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
25832 ID3D12Device12 * This,
25833 _In_ REFGUID CommandId,
25834 _In_ UINT NodeMask,
25835 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
25836 _In_ SIZE_T CreationParametersDataSizeInBytes,
25837 REFIID riid,
25838 _COM_Outptr_ void **ppMetaCommand);
25839
25840 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
25841 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
25842 ID3D12Device12 * This,
25843 const D3D12_STATE_OBJECT_DESC *pDesc,
25844 REFIID riid,
25845 _COM_Outptr_ void **ppStateObject);
25846
25847 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
25848 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
25849 ID3D12Device12 * This,
25850 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
25851 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
25852
25853 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
25854 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
25855 ID3D12Device12 * This,
25856 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
25857 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
25858
25859 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
25860 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
25861 ID3D12Device12 * This,
25862 D3D12_BACKGROUND_PROCESSING_MODE Mode,
25863 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
25864 _In_opt_ HANDLE hEventToSignalUponCompletion,
25865 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
25866
25867 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
25868 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
25869 ID3D12Device12 * This,
25870 const D3D12_STATE_OBJECT_DESC *pAddition,
25871 ID3D12StateObject *pStateObjectToGrowFrom,
25872 REFIID riid,
25873 _COM_Outptr_ void **ppNewStateObject);
25874
25875 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
25876 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
25877 ID3D12Device12 * This,
25878 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
25879 _In_ REFIID riid,
25880 _COM_Outptr_ void **ppSession);
25881
25882 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
25883#if !defined(_WIN32)
25884 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25885 ID3D12Device12 * This,
25886 UINT visibleMask,
25887 UINT numResourceDescs,
25888 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25889 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25890
25891#else
25892 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25893 ID3D12Device12 * This,
25894 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25895 UINT visibleMask,
25896 UINT numResourceDescs,
25897 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25898 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25899
25900#endif
25901
25902 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
25903 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
25904 ID3D12Device12 * This,
25905 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25906 D3D12_HEAP_FLAGS HeapFlags,
25907 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25908 D3D12_RESOURCE_STATES InitialResourceState,
25909 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25910 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25911 REFIID riidResource,
25912 _COM_Outptr_opt_ void **ppvResource);
25913
25914 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
25915 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
25916 ID3D12Device12 * This,
25917 _In_ ID3D12Heap *pHeap,
25918 UINT64 HeapOffset,
25919 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25920 D3D12_RESOURCE_STATES InitialState,
25921 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25922 REFIID riid,
25923 _COM_Outptr_opt_ void **ppvResource);
25924
25925 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
25926 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
25927 ID3D12Device12 * This,
25928 _In_opt_ ID3D12Resource *pTargetedResource,
25929 _In_opt_ ID3D12Resource *pFeedbackResource,
25930 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25931
25932 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
25933 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
25934 ID3D12Device12 * This,
25935 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
25936 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25937 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25938 UINT64 BaseOffset,
25939 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25940 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25941 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25942 _Out_opt_ UINT64 *pTotalBytes);
25943
25944 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
25945 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
25946 ID3D12Device12 * This,
25947 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
25948 REFIID riid,
25949 _COM_Outptr_opt_ void **ppvSession);
25950
25951 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
25952 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
25953 ID3D12Device12 * This,
25954 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
25955 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
25956
25957 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
25958 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
25959 ID3D12Device12 * This,
25960 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25961 REFIID CreatorID,
25962 REFIID riid,
25963 _COM_Outptr_ void **ppCommandQueue);
25964
25965 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
25966 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
25967 ID3D12Device12 * This,
25968 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25969 D3D12_HEAP_FLAGS HeapFlags,
25970 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25971 D3D12_BARRIER_LAYOUT InitialLayout,
25972 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25973 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25974 UINT32 NumCastableFormats,
25975 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25976 REFIID riidResource,
25977 _COM_Outptr_opt_ void **ppvResource);
25978
25979 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
25980 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
25981 ID3D12Device12 * This,
25982 _In_ ID3D12Heap *pHeap,
25983 UINT64 HeapOffset,
25984 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25985 D3D12_BARRIER_LAYOUT InitialLayout,
25986 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25987 UINT32 NumCastableFormats,
25988 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25989 REFIID riid,
25990 _COM_Outptr_opt_ void **ppvResource);
25991
25992 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
25993 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
25994 ID3D12Device12 * This,
25995 _In_ const D3D12_RESOURCE_DESC *pDesc,
25996 D3D12_BARRIER_LAYOUT InitialLayout,
25997 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25998 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25999 UINT32 NumCastableFormats,
26000 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26001 REFIID riid,
26002 _COM_Outptr_opt_ void **ppvResource);
26003
26004 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
26005 void ( STDMETHODCALLTYPE *CreateSampler2 )(
26006 ID3D12Device12 * This,
26007 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
26008 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26009
26010 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
26011#if !defined(_WIN32)
26012 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26013 ID3D12Device12 * This,
26014 UINT visibleMask,
26015 UINT numResourceDescs,
26016 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26017 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26018 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26019 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26020
26021#else
26022 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26023 ID3D12Device12 * This,
26024 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26025 UINT visibleMask,
26026 UINT numResourceDescs,
26027 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26028 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26029 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26030 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26031
26032#endif
26033
26034 END_INTERFACE
26035 } ID3D12Device12Vtbl;
26036
26037 interface ID3D12Device12
26038 {
26039 CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl;
26040 };
26041
26042
26043
26044#ifdef COBJMACROS
26045
26046
26047#define ID3D12Device12_QueryInterface(This,riid,ppvObject) \
26048 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
26049
26050#define ID3D12Device12_AddRef(This) \
26051 ( (This)->lpVtbl -> AddRef(This) )
26052
26053#define ID3D12Device12_Release(This) \
26054 ( (This)->lpVtbl -> Release(This) )
26055
26056
26057#define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \
26058 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
26059
26060#define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \
26061 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
26062
26063#define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \
26064 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
26065
26066#define ID3D12Device12_SetName(This,Name) \
26067 ( (This)->lpVtbl -> SetName(This,Name) )
26068
26069
26070#define ID3D12Device12_GetNodeCount(This) \
26071 ( (This)->lpVtbl -> GetNodeCount(This) )
26072
26073#define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
26074 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
26075
26076#define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
26077 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
26078
26079#define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
26080 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
26081
26082#define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
26083 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
26084
26085#define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
26086 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
26087
26088#define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
26089 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
26090
26091#define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
26092 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
26093
26094#define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
26095 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
26096
26097#define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
26098 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
26099
26100#define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \
26101 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
26102
26103#define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
26104 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
26105
26106#define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
26107 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
26108
26109#define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
26110 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
26111
26112#define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
26113 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
26114
26115#define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \
26116 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
26117
26118#define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
26119 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
26120
26121#define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
26122 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
26123#if !defined(_WIN32)
26124
26125#define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
26126 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
26127#else
26128#define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
26129 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
26130#endif
26131#if !defined(_WIN32)
26132
26133#define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \
26134 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
26135#else
26136#define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
26137 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
26138#endif
26139
26140#define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
26141 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
26142
26143#define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \
26144 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
26145
26146#define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26147 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26148
26149#define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26150 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26151
26152#define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
26153 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
26154
26155#define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
26156 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
26157
26158#define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
26159 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
26160
26161#define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \
26162 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
26163
26164#define ID3D12Device12_Evict(This,NumObjects,ppObjects) \
26165 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
26166
26167#define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \
26168 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
26169
26170#define ID3D12Device12_GetDeviceRemovedReason(This) \
26171 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
26172
26173#define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26174 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26175
26176#define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
26177 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
26178
26179#define ID3D12Device12_SetStablePowerState(This,Enable) \
26180 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
26181
26182#define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
26183 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
26184
26185#define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
26186 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
26187#if !defined(_WIN32)
26188
26189#define ID3D12Device12_GetAdapterLuid(This) \
26190 ( (This)->lpVtbl -> GetAdapterLuid(This) )
26191#else
26192#define ID3D12Device12_GetAdapterLuid(This,RetVal) \
26193 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
26194#endif
26195
26196
26197#define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
26198 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
26199
26200#define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
26201 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
26202
26203#define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
26204 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
26205
26206
26207#define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
26208 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
26209
26210
26211#define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
26212 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
26213
26214#define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
26215 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
26216
26217#define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
26218 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
26219
26220
26221#define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
26222 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
26223
26224#define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
26225 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
26226
26227#define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26228 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26229
26230#define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
26231 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
26232
26233#define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
26234 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
26235#if !defined(_WIN32)
26236
26237#define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26238 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26239#else
26240#define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26241 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26242#endif
26243
26244
26245#define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
26246 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
26247
26248#define ID3D12Device12_RemoveDevice(This) \
26249 ( (This)->lpVtbl -> RemoveDevice(This) )
26250
26251#define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
26252 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
26253
26254#define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
26255 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
26256
26257#define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
26258 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
26259
26260#define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \
26261 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
26262
26263#define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
26264 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
26265
26266#define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
26267 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
26268
26269
26270#define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
26271 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
26272
26273
26274#define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
26275 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
26276
26277#define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
26278 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
26279
26280#if !defined(_WIN32)
26281
26282#define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26283 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26284#else
26285#define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26286 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26287#endif
26288
26289#define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26290 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26291
26292#define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26293 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26294
26295#define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
26296 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
26297
26298#define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26299 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26300
26301
26302#define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
26303 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
26304
26305#define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \
26306 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
26307
26308#define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
26309 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
26310
26311
26312#define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
26313 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
26314
26315#define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26316 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26317
26318#define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26319 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26320
26321
26322#define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \
26323 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
26324
26325#if !defined(_WIN32)
26326
26327#define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
26328 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
26329#else
26330#define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
26331 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
26332#endif
26333
26334#endif /* COBJMACROS */
26335
26336
26337#endif /* C style interface */
26338
26339
26340
26341
26342#endif /* __ID3D12Device12_INTERFACE_DEFINED__ */
26343
26344
26345#ifndef __ID3D12Device13_INTERFACE_DEFINED__
26346#define __ID3D12Device13_INTERFACE_DEFINED__
26347
26348/* interface ID3D12Device13 */
26349/* [unique][local][object][uuid] */
26350
26351
26352EXTERN_C const IID IID_ID3D12Device13;
26353
26354#if defined(__cplusplus) && !defined(CINTERFACE)
26355
26356 MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e")
26357 ID3D12Device13 : public ID3D12Device12
26358 {
26359 public:
26360 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1(
26361 _In_ const void *pAddress,
26362 SIZE_T size,
26363 REFIID riid,
26364 _COM_Outptr_ void **ppvHeap) = 0;
26365
26366 };
26367
26368
26369#else /* C style interface */
26370
26371 typedef struct ID3D12Device13Vtbl
26372 {
26373 BEGIN_INTERFACE
26374
26375 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
26376 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
26377 ID3D12Device13 * This,
26378 REFIID riid,
26379 _COM_Outptr_ void **ppvObject);
26380
26381 DECLSPEC_XFGVIRT(IUnknown, AddRef)
26382 ULONG ( STDMETHODCALLTYPE *AddRef )(
26383 ID3D12Device13 * This);
26384
26385 DECLSPEC_XFGVIRT(IUnknown, Release)
26386 ULONG ( STDMETHODCALLTYPE *Release )(
26387 ID3D12Device13 * This);
26388
26389 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
26390 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
26391 ID3D12Device13 * This,
26392 _In_ REFGUID guid,
26393 _Inout_ UINT *pDataSize,
26394 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
26395
26396 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
26397 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
26398 ID3D12Device13 * This,
26399 _In_ REFGUID guid,
26400 _In_ UINT DataSize,
26401 _In_reads_bytes_opt_( DataSize ) const void *pData);
26402
26403 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
26404 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
26405 ID3D12Device13 * This,
26406 _In_ REFGUID guid,
26407 _In_opt_ const IUnknown *pData);
26408
26409 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
26410 HRESULT ( STDMETHODCALLTYPE *SetName )(
26411 ID3D12Device13 * This,
26412 _In_z_ LPCWSTR Name);
26413
26414 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
26415 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
26416 ID3D12Device13 * This);
26417
26418 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
26419 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
26420 ID3D12Device13 * This,
26421 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26422 REFIID riid,
26423 _COM_Outptr_ void **ppCommandQueue);
26424
26425 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
26426 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
26427 ID3D12Device13 * This,
26428 _In_ D3D12_COMMAND_LIST_TYPE type,
26429 REFIID riid,
26430 _COM_Outptr_ void **ppCommandAllocator);
26431
26432 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
26433 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
26434 ID3D12Device13 * This,
26435 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
26436 REFIID riid,
26437 _COM_Outptr_ void **ppPipelineState);
26438
26439 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
26440 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
26441 ID3D12Device13 * This,
26442 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
26443 REFIID riid,
26444 _COM_Outptr_ void **ppPipelineState);
26445
26446 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
26447 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
26448 ID3D12Device13 * This,
26449 _In_ UINT nodeMask,
26450 _In_ D3D12_COMMAND_LIST_TYPE type,
26451 _In_ ID3D12CommandAllocator *pCommandAllocator,
26452 _In_opt_ ID3D12PipelineState *pInitialState,
26453 REFIID riid,
26454 _COM_Outptr_ void **ppCommandList);
26455
26456 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
26457 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
26458 ID3D12Device13 * This,
26459 D3D12_FEATURE Feature,
26460 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
26461 UINT FeatureSupportDataSize);
26462
26463 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
26464 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
26465 ID3D12Device13 * This,
26466 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
26467 REFIID riid,
26468 _COM_Outptr_ void **ppvHeap);
26469
26470 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
26471 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
26472 ID3D12Device13 * This,
26473 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
26474
26475 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
26476 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
26477 ID3D12Device13 * This,
26478 _In_ UINT nodeMask,
26479 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
26480 _In_ SIZE_T blobLengthInBytes,
26481 REFIID riid,
26482 _COM_Outptr_ void **ppvRootSignature);
26483
26484 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
26485 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
26486 ID3D12Device13 * This,
26487 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
26488 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26489
26490 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
26491 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
26492 ID3D12Device13 * This,
26493 _In_opt_ ID3D12Resource *pResource,
26494 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
26495 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26496
26497 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
26498 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
26499 ID3D12Device13 * This,
26500 _In_opt_ ID3D12Resource *pResource,
26501 _In_opt_ ID3D12Resource *pCounterResource,
26502 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
26503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26504
26505 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
26506 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
26507 ID3D12Device13 * This,
26508 _In_opt_ ID3D12Resource *pResource,
26509 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
26510 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26511
26512 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
26513 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
26514 ID3D12Device13 * This,
26515 _In_opt_ ID3D12Resource *pResource,
26516 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
26517 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26518
26519 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
26520 void ( STDMETHODCALLTYPE *CreateSampler )(
26521 ID3D12Device13 * This,
26522 _In_ const D3D12_SAMPLER_DESC *pDesc,
26523 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26524
26525 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
26526 void ( STDMETHODCALLTYPE *CopyDescriptors )(
26527 ID3D12Device13 * This,
26528 _In_ UINT NumDestDescriptorRanges,
26529 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
26530 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
26531 _In_ UINT NumSrcDescriptorRanges,
26532 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
26533 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
26534 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26535
26536 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
26537 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
26538 ID3D12Device13 * This,
26539 _In_ UINT NumDescriptors,
26540 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
26541 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
26542 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26543
26544 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
26545#if !defined(_WIN32)
26546 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26547 ID3D12Device13 * This,
26548 _In_ UINT visibleMask,
26549 _In_ UINT numResourceDescs,
26550 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26551
26552#else
26553 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26554 ID3D12Device13 * This,
26555 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26556 _In_ UINT visibleMask,
26557 _In_ UINT numResourceDescs,
26558 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26559
26560#endif
26561
26562 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
26563#if !defined(_WIN32)
26564 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26565 ID3D12Device13 * This,
26566 _In_ UINT nodeMask,
26567 D3D12_HEAP_TYPE heapType);
26568
26569#else
26570 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26571 ID3D12Device13 * This,
26572 D3D12_HEAP_PROPERTIES * RetVal,
26573 _In_ UINT nodeMask,
26574 D3D12_HEAP_TYPE heapType);
26575
26576#endif
26577
26578 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
26579 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
26580 ID3D12Device13 * This,
26581 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26582 D3D12_HEAP_FLAGS HeapFlags,
26583 _In_ const D3D12_RESOURCE_DESC *pDesc,
26584 D3D12_RESOURCE_STATES InitialResourceState,
26585 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26586 REFIID riidResource,
26587 _COM_Outptr_opt_ void **ppvResource);
26588
26589 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
26590 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
26591 ID3D12Device13 * This,
26592 _In_ const D3D12_HEAP_DESC *pDesc,
26593 REFIID riid,
26594 _COM_Outptr_opt_ void **ppvHeap);
26595
26596 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
26597 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
26598 ID3D12Device13 * This,
26599 _In_ ID3D12Heap *pHeap,
26600 UINT64 HeapOffset,
26601 _In_ const D3D12_RESOURCE_DESC *pDesc,
26602 D3D12_RESOURCE_STATES InitialState,
26603 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26604 REFIID riid,
26605 _COM_Outptr_opt_ void **ppvResource);
26606
26607 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
26608 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
26609 ID3D12Device13 * This,
26610 _In_ const D3D12_RESOURCE_DESC *pDesc,
26611 D3D12_RESOURCE_STATES InitialState,
26612 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26613 REFIID riid,
26614 _COM_Outptr_opt_ void **ppvResource);
26615
26616 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
26617 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
26618 ID3D12Device13 * This,
26619 _In_ ID3D12DeviceChild *pObject,
26620 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
26621 DWORD Access,
26622 _In_opt_ LPCWSTR Name,
26623 _Out_ HANDLE *pHandle);
26624
26625 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
26626 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
26627 ID3D12Device13 * This,
26628 _In_ HANDLE NTHandle,
26629 REFIID riid,
26630 _COM_Outptr_opt_ void **ppvObj);
26631
26632 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
26633 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
26634 ID3D12Device13 * This,
26635 _In_ LPCWSTR Name,
26636 DWORD Access,
26637 /* [annotation][out] */
26638 _Out_ HANDLE *pNTHandle);
26639
26640 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
26641 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
26642 ID3D12Device13 * This,
26643 UINT NumObjects,
26644 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26645
26646 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
26647 HRESULT ( STDMETHODCALLTYPE *Evict )(
26648 ID3D12Device13 * This,
26649 UINT NumObjects,
26650 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26651
26652 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
26653 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
26654 ID3D12Device13 * This,
26655 UINT64 InitialValue,
26656 D3D12_FENCE_FLAGS Flags,
26657 REFIID riid,
26658 _COM_Outptr_ void **ppFence);
26659
26660 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
26661 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
26662 ID3D12Device13 * This);
26663
26664 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
26665 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
26666 ID3D12Device13 * This,
26667 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
26668 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26669 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26670 UINT64 BaseOffset,
26671 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26672 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26673 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26674 _Out_opt_ UINT64 *pTotalBytes);
26675
26676 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
26677 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
26678 ID3D12Device13 * This,
26679 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
26680 REFIID riid,
26681 _COM_Outptr_opt_ void **ppvHeap);
26682
26683 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
26684 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
26685 ID3D12Device13 * This,
26686 BOOL Enable);
26687
26688 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
26689 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
26690 ID3D12Device13 * This,
26691 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
26692 _In_opt_ ID3D12RootSignature *pRootSignature,
26693 REFIID riid,
26694 _COM_Outptr_opt_ void **ppvCommandSignature);
26695
26696 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
26697 void ( STDMETHODCALLTYPE *GetResourceTiling )(
26698 ID3D12Device13 * This,
26699 _In_ ID3D12Resource *pTiledResource,
26700 _Out_opt_ UINT *pNumTilesForEntireResource,
26701 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
26702 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
26703 _Inout_opt_ UINT *pNumSubresourceTilings,
26704 _In_ UINT FirstSubresourceTilingToGet,
26705 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
26706
26707 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
26708#if !defined(_WIN32)
26709 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
26710 ID3D12Device13 * This);
26711
26712#else
26713 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
26714 ID3D12Device13 * This,
26715 LUID * RetVal);
26716
26717#endif
26718
26719 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
26720 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
26721 ID3D12Device13 * This,
26722 _In_reads_(BlobLength) const void *pLibraryBlob,
26723 SIZE_T BlobLength,
26724 REFIID riid,
26725 _COM_Outptr_ void **ppPipelineLibrary);
26726
26727 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
26728 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
26729 ID3D12Device13 * This,
26730 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
26731 _In_reads_(NumFences) const UINT64 *pFenceValues,
26732 UINT NumFences,
26733 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
26734 HANDLE hEvent);
26735
26736 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
26737 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
26738 ID3D12Device13 * This,
26739 UINT NumObjects,
26740 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26741 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
26742
26743 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
26744 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
26745 ID3D12Device13 * This,
26746 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
26747 REFIID riid,
26748 _COM_Outptr_ void **ppPipelineState);
26749
26750 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
26751 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
26752 ID3D12Device13 * This,
26753 _In_ const void *pAddress,
26754 REFIID riid,
26755 _COM_Outptr_ void **ppvHeap);
26756
26757 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
26758 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
26759 ID3D12Device13 * This,
26760 _In_ HANDLE hFileMapping,
26761 REFIID riid,
26762 _COM_Outptr_ void **ppvHeap);
26763
26764 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
26765 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
26766 ID3D12Device13 * This,
26767 D3D12_RESIDENCY_FLAGS Flags,
26768 UINT NumObjects,
26769 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26770 _In_ ID3D12Fence *pFenceToSignal,
26771 UINT64 FenceValueToSignal);
26772
26773 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
26774 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
26775 ID3D12Device13 * This,
26776 _In_ UINT nodeMask,
26777 _In_ D3D12_COMMAND_LIST_TYPE type,
26778 _In_ D3D12_COMMAND_LIST_FLAGS flags,
26779 REFIID riid,
26780 _COM_Outptr_ void **ppCommandList);
26781
26782 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
26783 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
26784 ID3D12Device13 * This,
26785 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
26786 _In_ REFIID riid,
26787 _COM_Outptr_ void **ppSession);
26788
26789 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
26790 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
26791 ID3D12Device13 * This,
26792 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26793 D3D12_HEAP_FLAGS HeapFlags,
26794 _In_ const D3D12_RESOURCE_DESC *pDesc,
26795 D3D12_RESOURCE_STATES InitialResourceState,
26796 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26797 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26798 REFIID riidResource,
26799 _COM_Outptr_opt_ void **ppvResource);
26800
26801 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
26802 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
26803 ID3D12Device13 * This,
26804 _In_ const D3D12_HEAP_DESC *pDesc,
26805 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26806 REFIID riid,
26807 _COM_Outptr_opt_ void **ppvHeap);
26808
26809 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
26810 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
26811 ID3D12Device13 * This,
26812 _In_ const D3D12_RESOURCE_DESC *pDesc,
26813 D3D12_RESOURCE_STATES InitialState,
26814 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26815 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26816 REFIID riid,
26817 _COM_Outptr_opt_ void **ppvResource);
26818
26819 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
26820#if !defined(_WIN32)
26821 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26822 ID3D12Device13 * This,
26823 UINT visibleMask,
26824 UINT numResourceDescs,
26825 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26826 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26827
26828#else
26829 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26830 ID3D12Device13 * This,
26831 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26832 UINT visibleMask,
26833 UINT numResourceDescs,
26834 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26835 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26836
26837#endif
26838
26839 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
26840 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
26841 ID3D12Device13 * This,
26842 _In_ ID3D12LifetimeOwner *pOwner,
26843 REFIID riid,
26844 _COM_Outptr_ void **ppvTracker);
26845
26846 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
26847 void ( STDMETHODCALLTYPE *RemoveDevice )(
26848 ID3D12Device13 * This);
26849
26850 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
26851 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
26852 ID3D12Device13 * This,
26853 _Inout_ UINT *pNumMetaCommands,
26854 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
26855
26856 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
26857 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
26858 ID3D12Device13 * This,
26859 _In_ REFGUID CommandId,
26860 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
26861 _Out_opt_ UINT *pTotalStructureSizeInBytes,
26862 _Inout_ UINT *pParameterCount,
26863 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
26864
26865 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
26866 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
26867 ID3D12Device13 * This,
26868 _In_ REFGUID CommandId,
26869 _In_ UINT NodeMask,
26870 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
26871 _In_ SIZE_T CreationParametersDataSizeInBytes,
26872 REFIID riid,
26873 _COM_Outptr_ void **ppMetaCommand);
26874
26875 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
26876 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
26877 ID3D12Device13 * This,
26878 const D3D12_STATE_OBJECT_DESC *pDesc,
26879 REFIID riid,
26880 _COM_Outptr_ void **ppStateObject);
26881
26882 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
26883 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
26884 ID3D12Device13 * This,
26885 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
26886 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
26887
26888 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
26889 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
26890 ID3D12Device13 * This,
26891 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
26892 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
26893
26894 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
26895 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
26896 ID3D12Device13 * This,
26897 D3D12_BACKGROUND_PROCESSING_MODE Mode,
26898 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
26899 _In_opt_ HANDLE hEventToSignalUponCompletion,
26900 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
26901
26902 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
26903 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
26904 ID3D12Device13 * This,
26905 const D3D12_STATE_OBJECT_DESC *pAddition,
26906 ID3D12StateObject *pStateObjectToGrowFrom,
26907 REFIID riid,
26908 _COM_Outptr_ void **ppNewStateObject);
26909
26910 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
26911 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
26912 ID3D12Device13 * This,
26913 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
26914 _In_ REFIID riid,
26915 _COM_Outptr_ void **ppSession);
26916
26917 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
26918#if !defined(_WIN32)
26919 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26920 ID3D12Device13 * This,
26921 UINT visibleMask,
26922 UINT numResourceDescs,
26923 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26924 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26925
26926#else
26927 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26928 ID3D12Device13 * This,
26929 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26930 UINT visibleMask,
26931 UINT numResourceDescs,
26932 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26933 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26934
26935#endif
26936
26937 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
26938 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
26939 ID3D12Device13 * This,
26940 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26941 D3D12_HEAP_FLAGS HeapFlags,
26942 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26943 D3D12_RESOURCE_STATES InitialResourceState,
26944 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26945 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26946 REFIID riidResource,
26947 _COM_Outptr_opt_ void **ppvResource);
26948
26949 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
26950 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
26951 ID3D12Device13 * This,
26952 _In_ ID3D12Heap *pHeap,
26953 UINT64 HeapOffset,
26954 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26955 D3D12_RESOURCE_STATES InitialState,
26956 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26957 REFIID riid,
26958 _COM_Outptr_opt_ void **ppvResource);
26959
26960 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
26961 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
26962 ID3D12Device13 * This,
26963 _In_opt_ ID3D12Resource *pTargetedResource,
26964 _In_opt_ ID3D12Resource *pFeedbackResource,
26965 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26966
26967 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
26968 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
26969 ID3D12Device13 * This,
26970 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
26971 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26972 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26973 UINT64 BaseOffset,
26974 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26975 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26976 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26977 _Out_opt_ UINT64 *pTotalBytes);
26978
26979 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
26980 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
26981 ID3D12Device13 * This,
26982 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
26983 REFIID riid,
26984 _COM_Outptr_opt_ void **ppvSession);
26985
26986 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
26987 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
26988 ID3D12Device13 * This,
26989 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
26990 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
26991
26992 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
26993 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
26994 ID3D12Device13 * This,
26995 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26996 REFIID CreatorID,
26997 REFIID riid,
26998 _COM_Outptr_ void **ppCommandQueue);
26999
27000 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
27001 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
27002 ID3D12Device13 * This,
27003 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27004 D3D12_HEAP_FLAGS HeapFlags,
27005 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27006 D3D12_BARRIER_LAYOUT InitialLayout,
27007 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27008 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27009 UINT32 NumCastableFormats,
27010 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27011 REFIID riidResource,
27012 _COM_Outptr_opt_ void **ppvResource);
27013
27014 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
27015 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
27016 ID3D12Device13 * This,
27017 _In_ ID3D12Heap *pHeap,
27018 UINT64 HeapOffset,
27019 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27020 D3D12_BARRIER_LAYOUT InitialLayout,
27021 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27022 UINT32 NumCastableFormats,
27023 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27024 REFIID riid,
27025 _COM_Outptr_opt_ void **ppvResource);
27026
27027 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
27028 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
27029 ID3D12Device13 * This,
27030 _In_ const D3D12_RESOURCE_DESC *pDesc,
27031 D3D12_BARRIER_LAYOUT InitialLayout,
27032 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27033 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27034 UINT32 NumCastableFormats,
27035 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27036 REFIID riid,
27037 _COM_Outptr_opt_ void **ppvResource);
27038
27039 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
27040 void ( STDMETHODCALLTYPE *CreateSampler2 )(
27041 ID3D12Device13 * This,
27042 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
27043 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27044
27045 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
27046#if !defined(_WIN32)
27047 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
27048 ID3D12Device13 * This,
27049 UINT visibleMask,
27050 UINT numResourceDescs,
27051 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27052 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
27053 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
27054 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27055
27056#else
27057 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
27058 ID3D12Device13 * This,
27059 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27060 UINT visibleMask,
27061 UINT numResourceDescs,
27062 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27063 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
27064 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
27065 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27066
27067#endif
27068
27069 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
27070 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
27071 ID3D12Device13 * This,
27072 _In_ const void *pAddress,
27073 SIZE_T size,
27074 REFIID riid,
27075 _COM_Outptr_ void **ppvHeap);
27076
27077 END_INTERFACE
27078 } ID3D12Device13Vtbl;
27079
27080 interface ID3D12Device13
27081 {
27082 CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl;
27083 };
27084
27085
27086
27087#ifdef COBJMACROS
27088
27089
27090#define ID3D12Device13_QueryInterface(This,riid,ppvObject) \
27091 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
27092
27093#define ID3D12Device13_AddRef(This) \
27094 ( (This)->lpVtbl -> AddRef(This) )
27095
27096#define ID3D12Device13_Release(This) \
27097 ( (This)->lpVtbl -> Release(This) )
27098
27099
27100#define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \
27101 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
27102
27103#define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \
27104 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
27105
27106#define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \
27107 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
27108
27109#define ID3D12Device13_SetName(This,Name) \
27110 ( (This)->lpVtbl -> SetName(This,Name) )
27111
27112
27113#define ID3D12Device13_GetNodeCount(This) \
27114 ( (This)->lpVtbl -> GetNodeCount(This) )
27115
27116#define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
27117 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
27118
27119#define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
27120 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
27121
27122#define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
27123 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
27124
27125#define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
27126 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
27127
27128#define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
27129 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
27130
27131#define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
27132 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
27133
27134#define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
27135 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
27136
27137#define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
27138 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
27139
27140#define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
27141 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
27142
27143#define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \
27144 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
27145
27146#define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
27147 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
27148
27149#define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
27150 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
27151
27152#define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
27153 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
27154
27155#define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
27156 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
27157
27158#define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \
27159 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
27160
27161#define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
27162 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
27163
27164#define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
27165 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
27166#if !defined(_WIN32)
27167
27168#define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
27169 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
27170#else
27171#define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
27172 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
27173#endif
27174#if !defined(_WIN32)
27175
27176#define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \
27177 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
27178#else
27179#define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
27180 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
27181#endif
27182
27183#define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
27184 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
27185
27186#define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \
27187 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
27188
27189#define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27190 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27191
27192#define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27193 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27194
27195#define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
27196 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
27197
27198#define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
27199 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
27200
27201#define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
27202 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
27203
27204#define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \
27205 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
27206
27207#define ID3D12Device13_Evict(This,NumObjects,ppObjects) \
27208 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
27209
27210#define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \
27211 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
27212
27213#define ID3D12Device13_GetDeviceRemovedReason(This) \
27214 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
27215
27216#define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27217 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27218
27219#define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
27220 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
27221
27222#define ID3D12Device13_SetStablePowerState(This,Enable) \
27223 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
27224
27225#define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
27226 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
27227
27228#define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
27229 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
27230#if !defined(_WIN32)
27231
27232#define ID3D12Device13_GetAdapterLuid(This) \
27233 ( (This)->lpVtbl -> GetAdapterLuid(This) )
27234#else
27235#define ID3D12Device13_GetAdapterLuid(This,RetVal) \
27236 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
27237#endif
27238
27239
27240#define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
27241 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
27242
27243#define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
27244 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
27245
27246#define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
27247 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
27248
27249
27250#define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
27251 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
27252
27253
27254#define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
27255 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
27256
27257#define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
27258 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
27259
27260#define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
27261 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
27262
27263
27264#define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
27265 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
27266
27267#define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
27268 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
27269
27270#define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27271 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27272
27273#define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
27274 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
27275
27276#define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
27277 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
27278#if !defined(_WIN32)
27279
27280#define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27281 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27282#else
27283#define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27284 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27285#endif
27286
27287
27288#define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
27289 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
27290
27291#define ID3D12Device13_RemoveDevice(This) \
27292 ( (This)->lpVtbl -> RemoveDevice(This) )
27293
27294#define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
27295 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
27296
27297#define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
27298 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
27299
27300#define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
27301 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
27302
27303#define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \
27304 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
27305
27306#define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
27307 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
27308
27309#define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
27310 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
27311
27312
27313#define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
27314 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
27315
27316
27317#define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
27318 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
27319
27320#define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
27321 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
27322
27323#if !defined(_WIN32)
27324
27325#define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27326 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27327#else
27328#define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27329 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27330#endif
27331
27332#define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27333 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27334
27335#define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27336 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27337
27338#define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
27339 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
27340
27341#define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27342 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27343
27344
27345#define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
27346 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
27347
27348#define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \
27349 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
27350
27351#define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
27352 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
27353
27354
27355#define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
27356 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
27357
27358#define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27359 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27360
27361#define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27362 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27363
27364
27365#define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \
27366 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
27367
27368#if !defined(_WIN32)
27369
27370#define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27371 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27372#else
27373#define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27374 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27375#endif
27376
27377
27378#define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
27379 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
27380
27381#endif /* COBJMACROS */
27382
27383
27384#endif /* C style interface */
27385
27386
27387
27388
27389#endif /* __ID3D12Device13_INTERFACE_DEFINED__ */
27390
27391
27392#ifndef __ID3D12Device14_INTERFACE_DEFINED__
27393#define __ID3D12Device14_INTERFACE_DEFINED__
27394
27395/* interface ID3D12Device14 */
27396/* [unique][local][object][uuid] */
27397
27398
27399EXTERN_C const IID IID_ID3D12Device14;
27400
27401#if defined(__cplusplus) && !defined(CINTERFACE)
27402
27403 MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323")
27404 ID3D12Device14 : public ID3D12Device13
27405 {
27406 public:
27407 virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary(
27408 _In_ UINT nodeMask,
27409 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
27410 _In_ SIZE_T blobLengthInBytes,
27411 _In_opt_ LPCWSTR subobjectName,
27412 REFIID riid,
27413 _COM_Outptr_ void **ppvRootSignature) = 0;
27414
27415 };
27416
27417
27418#else /* C style interface */
27419
27420 typedef struct ID3D12Device14Vtbl
27421 {
27422 BEGIN_INTERFACE
27423
27424 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
27425 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
27426 ID3D12Device14 * This,
27427 REFIID riid,
27428 _COM_Outptr_ void **ppvObject);
27429
27430 DECLSPEC_XFGVIRT(IUnknown, AddRef)
27431 ULONG ( STDMETHODCALLTYPE *AddRef )(
27432 ID3D12Device14 * This);
27433
27434 DECLSPEC_XFGVIRT(IUnknown, Release)
27435 ULONG ( STDMETHODCALLTYPE *Release )(
27436 ID3D12Device14 * This);
27437
27438 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
27439 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
27440 ID3D12Device14 * This,
27441 _In_ REFGUID guid,
27442 _Inout_ UINT *pDataSize,
27443 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
27444
27445 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
27446 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
27447 ID3D12Device14 * This,
27448 _In_ REFGUID guid,
27449 _In_ UINT DataSize,
27450 _In_reads_bytes_opt_( DataSize ) const void *pData);
27451
27452 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
27453 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
27454 ID3D12Device14 * This,
27455 _In_ REFGUID guid,
27456 _In_opt_ const IUnknown *pData);
27457
27458 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
27459 HRESULT ( STDMETHODCALLTYPE *SetName )(
27460 ID3D12Device14 * This,
27461 _In_z_ LPCWSTR Name);
27462
27463 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
27464 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
27465 ID3D12Device14 * This);
27466
27467 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
27468 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
27469 ID3D12Device14 * This,
27470 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
27471 REFIID riid,
27472 _COM_Outptr_ void **ppCommandQueue);
27473
27474 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
27475 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
27476 ID3D12Device14 * This,
27477 _In_ D3D12_COMMAND_LIST_TYPE type,
27478 REFIID riid,
27479 _COM_Outptr_ void **ppCommandAllocator);
27480
27481 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
27482 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
27483 ID3D12Device14 * This,
27484 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
27485 REFIID riid,
27486 _COM_Outptr_ void **ppPipelineState);
27487
27488 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
27489 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
27490 ID3D12Device14 * This,
27491 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
27492 REFIID riid,
27493 _COM_Outptr_ void **ppPipelineState);
27494
27495 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
27496 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
27497 ID3D12Device14 * This,
27498 _In_ UINT nodeMask,
27499 _In_ D3D12_COMMAND_LIST_TYPE type,
27500 _In_ ID3D12CommandAllocator *pCommandAllocator,
27501 _In_opt_ ID3D12PipelineState *pInitialState,
27502 REFIID riid,
27503 _COM_Outptr_ void **ppCommandList);
27504
27505 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
27506 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
27507 ID3D12Device14 * This,
27508 D3D12_FEATURE Feature,
27509 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
27510 UINT FeatureSupportDataSize);
27511
27512 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
27513 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
27514 ID3D12Device14 * This,
27515 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
27516 REFIID riid,
27517 _COM_Outptr_ void **ppvHeap);
27518
27519 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
27520 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
27521 ID3D12Device14 * This,
27522 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
27523
27524 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
27525 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
27526 ID3D12Device14 * This,
27527 _In_ UINT nodeMask,
27528 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
27529 _In_ SIZE_T blobLengthInBytes,
27530 REFIID riid,
27531 _COM_Outptr_ void **ppvRootSignature);
27532
27533 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
27534 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
27535 ID3D12Device14 * This,
27536 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
27537 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27538
27539 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
27540 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
27541 ID3D12Device14 * This,
27542 _In_opt_ ID3D12Resource *pResource,
27543 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
27544 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27545
27546 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
27547 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
27548 ID3D12Device14 * This,
27549 _In_opt_ ID3D12Resource *pResource,
27550 _In_opt_ ID3D12Resource *pCounterResource,
27551 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
27552 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27553
27554 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
27555 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
27556 ID3D12Device14 * This,
27557 _In_opt_ ID3D12Resource *pResource,
27558 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
27559 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27560
27561 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
27562 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
27563 ID3D12Device14 * This,
27564 _In_opt_ ID3D12Resource *pResource,
27565 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
27566 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27567
27568 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
27569 void ( STDMETHODCALLTYPE *CreateSampler )(
27570 ID3D12Device14 * This,
27571 _In_ const D3D12_SAMPLER_DESC *pDesc,
27572 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27573
27574 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
27575 void ( STDMETHODCALLTYPE *CopyDescriptors )(
27576 ID3D12Device14 * This,
27577 _In_ UINT NumDestDescriptorRanges,
27578 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
27579 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
27580 _In_ UINT NumSrcDescriptorRanges,
27581 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
27582 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
27583 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27584
27585 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
27586 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
27587 ID3D12Device14 * This,
27588 _In_ UINT NumDescriptors,
27589 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
27590 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
27591 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27592
27593 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
27594#if !defined(_WIN32)
27595 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27596 ID3D12Device14 * This,
27597 _In_ UINT visibleMask,
27598 _In_ UINT numResourceDescs,
27599 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27600
27601#else
27602 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27603 ID3D12Device14 * This,
27604 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27605 _In_ UINT visibleMask,
27606 _In_ UINT numResourceDescs,
27607 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27608
27609#endif
27610
27611 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
27612#if !defined(_WIN32)
27613 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27614 ID3D12Device14 * This,
27615 _In_ UINT nodeMask,
27616 D3D12_HEAP_TYPE heapType);
27617
27618#else
27619 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27620 ID3D12Device14 * This,
27621 D3D12_HEAP_PROPERTIES * RetVal,
27622 _In_ UINT nodeMask,
27623 D3D12_HEAP_TYPE heapType);
27624
27625#endif
27626
27627 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
27628 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
27629 ID3D12Device14 * This,
27630 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27631 D3D12_HEAP_FLAGS HeapFlags,
27632 _In_ const D3D12_RESOURCE_DESC *pDesc,
27633 D3D12_RESOURCE_STATES InitialResourceState,
27634 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27635 REFIID riidResource,
27636 _COM_Outptr_opt_ void **ppvResource);
27637
27638 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
27639 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
27640 ID3D12Device14 * This,
27641 _In_ const D3D12_HEAP_DESC *pDesc,
27642 REFIID riid,
27643 _COM_Outptr_opt_ void **ppvHeap);
27644
27645 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
27646 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
27647 ID3D12Device14 * This,
27648 _In_ ID3D12Heap *pHeap,
27649 UINT64 HeapOffset,
27650 _In_ const D3D12_RESOURCE_DESC *pDesc,
27651 D3D12_RESOURCE_STATES InitialState,
27652 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27653 REFIID riid,
27654 _COM_Outptr_opt_ void **ppvResource);
27655
27656 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
27657 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
27658 ID3D12Device14 * This,
27659 _In_ const D3D12_RESOURCE_DESC *pDesc,
27660 D3D12_RESOURCE_STATES InitialState,
27661 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27662 REFIID riid,
27663 _COM_Outptr_opt_ void **ppvResource);
27664
27665 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
27666 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
27667 ID3D12Device14 * This,
27668 _In_ ID3D12DeviceChild *pObject,
27669 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
27670 DWORD Access,
27671 _In_opt_ LPCWSTR Name,
27672 _Out_ HANDLE *pHandle);
27673
27674 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
27675 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
27676 ID3D12Device14 * This,
27677 _In_ HANDLE NTHandle,
27678 REFIID riid,
27679 _COM_Outptr_opt_ void **ppvObj);
27680
27681 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
27682 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
27683 ID3D12Device14 * This,
27684 _In_ LPCWSTR Name,
27685 DWORD Access,
27686 /* [annotation][out] */
27687 _Out_ HANDLE *pNTHandle);
27688
27689 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
27690 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
27691 ID3D12Device14 * This,
27692 UINT NumObjects,
27693 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27694
27695 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
27696 HRESULT ( STDMETHODCALLTYPE *Evict )(
27697 ID3D12Device14 * This,
27698 UINT NumObjects,
27699 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27700
27701 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
27702 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
27703 ID3D12Device14 * This,
27704 UINT64 InitialValue,
27705 D3D12_FENCE_FLAGS Flags,
27706 REFIID riid,
27707 _COM_Outptr_ void **ppFence);
27708
27709 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
27710 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
27711 ID3D12Device14 * This);
27712
27713 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
27714 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
27715 ID3D12Device14 * This,
27716 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
27717 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
27718 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
27719 UINT64 BaseOffset,
27720 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
27721 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
27722 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
27723 _Out_opt_ UINT64 *pTotalBytes);
27724
27725 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
27726 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
27727 ID3D12Device14 * This,
27728 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
27729 REFIID riid,
27730 _COM_Outptr_opt_ void **ppvHeap);
27731
27732 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
27733 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
27734 ID3D12Device14 * This,
27735 BOOL Enable);
27736
27737 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
27738 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
27739 ID3D12Device14 * This,
27740 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
27741 _In_opt_ ID3D12RootSignature *pRootSignature,
27742 REFIID riid,
27743 _COM_Outptr_opt_ void **ppvCommandSignature);
27744
27745 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
27746 void ( STDMETHODCALLTYPE *GetResourceTiling )(
27747 ID3D12Device14 * This,
27748 _In_ ID3D12Resource *pTiledResource,
27749 _Out_opt_ UINT *pNumTilesForEntireResource,
27750 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
27751 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
27752 _Inout_opt_ UINT *pNumSubresourceTilings,
27753 _In_ UINT FirstSubresourceTilingToGet,
27754 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
27755
27756 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
27757#if !defined(_WIN32)
27758 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
27759 ID3D12Device14 * This);
27760
27761#else
27762 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
27763 ID3D12Device14 * This,
27764 LUID * RetVal);
27765
27766#endif
27767
27768 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
27769 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
27770 ID3D12Device14 * This,
27771 _In_reads_(BlobLength) const void *pLibraryBlob,
27772 SIZE_T BlobLength,
27773 REFIID riid,
27774 _COM_Outptr_ void **ppPipelineLibrary);
27775
27776 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
27777 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
27778 ID3D12Device14 * This,
27779 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
27780 _In_reads_(NumFences) const UINT64 *pFenceValues,
27781 UINT NumFences,
27782 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
27783 HANDLE hEvent);
27784
27785 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
27786 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
27787 ID3D12Device14 * This,
27788 UINT NumObjects,
27789 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27790 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
27791
27792 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
27793 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
27794 ID3D12Device14 * This,
27795 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
27796 REFIID riid,
27797 _COM_Outptr_ void **ppPipelineState);
27798
27799 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
27800 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
27801 ID3D12Device14 * This,
27802 _In_ const void *pAddress,
27803 REFIID riid,
27804 _COM_Outptr_ void **ppvHeap);
27805
27806 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
27807 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
27808 ID3D12Device14 * This,
27809 _In_ HANDLE hFileMapping,
27810 REFIID riid,
27811 _COM_Outptr_ void **ppvHeap);
27812
27813 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
27814 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
27815 ID3D12Device14 * This,
27816 D3D12_RESIDENCY_FLAGS Flags,
27817 UINT NumObjects,
27818 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27819 _In_ ID3D12Fence *pFenceToSignal,
27820 UINT64 FenceValueToSignal);
27821
27822 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
27823 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
27824 ID3D12Device14 * This,
27825 _In_ UINT nodeMask,
27826 _In_ D3D12_COMMAND_LIST_TYPE type,
27827 _In_ D3D12_COMMAND_LIST_FLAGS flags,
27828 REFIID riid,
27829 _COM_Outptr_ void **ppCommandList);
27830
27831 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
27832 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
27833 ID3D12Device14 * This,
27834 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
27835 _In_ REFIID riid,
27836 _COM_Outptr_ void **ppSession);
27837
27838 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
27839 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
27840 ID3D12Device14 * This,
27841 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27842 D3D12_HEAP_FLAGS HeapFlags,
27843 _In_ const D3D12_RESOURCE_DESC *pDesc,
27844 D3D12_RESOURCE_STATES InitialResourceState,
27845 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27846 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27847 REFIID riidResource,
27848 _COM_Outptr_opt_ void **ppvResource);
27849
27850 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
27851 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
27852 ID3D12Device14 * This,
27853 _In_ const D3D12_HEAP_DESC *pDesc,
27854 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27855 REFIID riid,
27856 _COM_Outptr_opt_ void **ppvHeap);
27857
27858 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
27859 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
27860 ID3D12Device14 * This,
27861 _In_ const D3D12_RESOURCE_DESC *pDesc,
27862 D3D12_RESOURCE_STATES InitialState,
27863 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27864 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27865 REFIID riid,
27866 _COM_Outptr_opt_ void **ppvResource);
27867
27868 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
27869#if !defined(_WIN32)
27870 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27871 ID3D12Device14 * This,
27872 UINT visibleMask,
27873 UINT numResourceDescs,
27874 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27875 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27876
27877#else
27878 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27879 ID3D12Device14 * This,
27880 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27881 UINT visibleMask,
27882 UINT numResourceDescs,
27883 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27884 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27885
27886#endif
27887
27888 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
27889 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
27890 ID3D12Device14 * This,
27891 _In_ ID3D12LifetimeOwner *pOwner,
27892 REFIID riid,
27893 _COM_Outptr_ void **ppvTracker);
27894
27895 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
27896 void ( STDMETHODCALLTYPE *RemoveDevice )(
27897 ID3D12Device14 * This);
27898
27899 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
27900 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
27901 ID3D12Device14 * This,
27902 _Inout_ UINT *pNumMetaCommands,
27903 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
27904
27905 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
27906 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
27907 ID3D12Device14 * This,
27908 _In_ REFGUID CommandId,
27909 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
27910 _Out_opt_ UINT *pTotalStructureSizeInBytes,
27911 _Inout_ UINT *pParameterCount,
27912 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
27913
27914 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
27915 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
27916 ID3D12Device14 * This,
27917 _In_ REFGUID CommandId,
27918 _In_ UINT NodeMask,
27919 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
27920 _In_ SIZE_T CreationParametersDataSizeInBytes,
27921 REFIID riid,
27922 _COM_Outptr_ void **ppMetaCommand);
27923
27924 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
27925 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
27926 ID3D12Device14 * This,
27927 const D3D12_STATE_OBJECT_DESC *pDesc,
27928 REFIID riid,
27929 _COM_Outptr_ void **ppStateObject);
27930
27931 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
27932 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
27933 ID3D12Device14 * This,
27934 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
27935 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
27936
27937 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
27938 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
27939 ID3D12Device14 * This,
27940 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
27941 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
27942
27943 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
27944 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
27945 ID3D12Device14 * This,
27946 D3D12_BACKGROUND_PROCESSING_MODE Mode,
27947 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
27948 _In_opt_ HANDLE hEventToSignalUponCompletion,
27949 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
27950
27951 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
27952 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
27953 ID3D12Device14 * This,
27954 const D3D12_STATE_OBJECT_DESC *pAddition,
27955 ID3D12StateObject *pStateObjectToGrowFrom,
27956 REFIID riid,
27957 _COM_Outptr_ void **ppNewStateObject);
27958
27959 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
27960 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
27961 ID3D12Device14 * This,
27962 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
27963 _In_ REFIID riid,
27964 _COM_Outptr_ void **ppSession);
27965
27966 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
27967#if !defined(_WIN32)
27968 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27969 ID3D12Device14 * This,
27970 UINT visibleMask,
27971 UINT numResourceDescs,
27972 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27973 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27974
27975#else
27976 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27977 ID3D12Device14 * This,
27978 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27979 UINT visibleMask,
27980 UINT numResourceDescs,
27981 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27982 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27983
27984#endif
27985
27986 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
27987 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
27988 ID3D12Device14 * This,
27989 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27990 D3D12_HEAP_FLAGS HeapFlags,
27991 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27992 D3D12_RESOURCE_STATES InitialResourceState,
27993 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27994 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27995 REFIID riidResource,
27996 _COM_Outptr_opt_ void **ppvResource);
27997
27998 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
27999 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
28000 ID3D12Device14 * This,
28001 _In_ ID3D12Heap *pHeap,
28002 UINT64 HeapOffset,
28003 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28004 D3D12_RESOURCE_STATES InitialState,
28005 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28006 REFIID riid,
28007 _COM_Outptr_opt_ void **ppvResource);
28008
28009 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
28010 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
28011 ID3D12Device14 * This,
28012 _In_opt_ ID3D12Resource *pTargetedResource,
28013 _In_opt_ ID3D12Resource *pFeedbackResource,
28014 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28015
28016 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
28017 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
28018 ID3D12Device14 * This,
28019 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
28020 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
28021 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
28022 UINT64 BaseOffset,
28023 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
28024 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
28025 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
28026 _Out_opt_ UINT64 *pTotalBytes);
28027
28028 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
28029 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
28030 ID3D12Device14 * This,
28031 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
28032 REFIID riid,
28033 _COM_Outptr_opt_ void **ppvSession);
28034
28035 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
28036 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
28037 ID3D12Device14 * This,
28038 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
28039 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
28040
28041 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
28042 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
28043 ID3D12Device14 * This,
28044 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
28045 REFIID CreatorID,
28046 REFIID riid,
28047 _COM_Outptr_ void **ppCommandQueue);
28048
28049 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
28050 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
28051 ID3D12Device14 * This,
28052 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28053 D3D12_HEAP_FLAGS HeapFlags,
28054 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28055 D3D12_BARRIER_LAYOUT InitialLayout,
28056 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28057 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28058 UINT32 NumCastableFormats,
28059 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
28060 REFIID riidResource,
28061 _COM_Outptr_opt_ void **ppvResource);
28062
28063 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
28064 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
28065 ID3D12Device14 * This,
28066 _In_ ID3D12Heap *pHeap,
28067 UINT64 HeapOffset,
28068 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28069 D3D12_BARRIER_LAYOUT InitialLayout,
28070 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28071 UINT32 NumCastableFormats,
28072 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
28073 REFIID riid,
28074 _COM_Outptr_opt_ void **ppvResource);
28075
28076 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
28077 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
28078 ID3D12Device14 * This,
28079 _In_ const D3D12_RESOURCE_DESC *pDesc,
28080 D3D12_BARRIER_LAYOUT InitialLayout,
28081 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28082 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28083 UINT32 NumCastableFormats,
28084 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
28085 REFIID riid,
28086 _COM_Outptr_opt_ void **ppvResource);
28087
28088 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
28089 void ( STDMETHODCALLTYPE *CreateSampler2 )(
28090 ID3D12Device14 * This,
28091 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
28092 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28093
28094 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
28095#if !defined(_WIN32)
28096 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28097 ID3D12Device14 * This,
28098 UINT visibleMask,
28099 UINT numResourceDescs,
28100 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28101 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28102 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28103 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28104
28105#else
28106 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28107 ID3D12Device14 * This,
28108 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28109 UINT visibleMask,
28110 UINT numResourceDescs,
28111 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28112 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28113 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28114 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28115
28116#endif
28117
28118 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
28119 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
28120 ID3D12Device14 * This,
28121 _In_ const void *pAddress,
28122 SIZE_T size,
28123 REFIID riid,
28124 _COM_Outptr_ void **ppvHeap);
28125
28126 DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary)
28127 HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )(
28128 ID3D12Device14 * This,
28129 _In_ UINT nodeMask,
28130 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
28131 _In_ SIZE_T blobLengthInBytes,
28132 _In_opt_ LPCWSTR subobjectName,
28133 REFIID riid,
28134 _COM_Outptr_ void **ppvRootSignature);
28135
28136 END_INTERFACE
28137 } ID3D12Device14Vtbl;
28138
28139 interface ID3D12Device14
28140 {
28141 CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl;
28142 };
28143
28144
28145
28146#ifdef COBJMACROS
28147
28148
28149#define ID3D12Device14_QueryInterface(This,riid,ppvObject) \
28150 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28151
28152#define ID3D12Device14_AddRef(This) \
28153 ( (This)->lpVtbl -> AddRef(This) )
28154
28155#define ID3D12Device14_Release(This) \
28156 ( (This)->lpVtbl -> Release(This) )
28157
28158
28159#define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \
28160 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
28161
28162#define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \
28163 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
28164
28165#define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \
28166 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
28167
28168#define ID3D12Device14_SetName(This,Name) \
28169 ( (This)->lpVtbl -> SetName(This,Name) )
28170
28171
28172#define ID3D12Device14_GetNodeCount(This) \
28173 ( (This)->lpVtbl -> GetNodeCount(This) )
28174
28175#define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
28176 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
28177
28178#define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
28179 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
28180
28181#define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
28182 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
28183
28184#define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
28185 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
28186
28187#define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
28188 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
28189
28190#define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
28191 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
28192
28193#define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
28194 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
28195
28196#define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
28197 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
28198
28199#define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
28200 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
28201
28202#define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \
28203 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
28204
28205#define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
28206 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
28207
28208#define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
28209 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
28210
28211#define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
28212 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
28213
28214#define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
28215 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
28216
28217#define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \
28218 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
28219
28220#define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
28221 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
28222
28223#define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
28224 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
28225#if !defined(_WIN32)
28226
28227#define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
28228 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
28229#else
28230#define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
28231 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
28232#endif
28233#if !defined(_WIN32)
28234
28235#define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \
28236 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
28237#else
28238#define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
28239 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
28240#endif
28241
28242#define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
28243 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
28244
28245#define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \
28246 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
28247
28248#define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28249 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28250
28251#define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28252 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28253
28254#define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
28255 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
28256
28257#define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
28258 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
28259
28260#define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
28261 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
28262
28263#define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \
28264 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
28265
28266#define ID3D12Device14_Evict(This,NumObjects,ppObjects) \
28267 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
28268
28269#define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \
28270 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
28271
28272#define ID3D12Device14_GetDeviceRemovedReason(This) \
28273 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
28274
28275#define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28276 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28277
28278#define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
28279 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
28280
28281#define ID3D12Device14_SetStablePowerState(This,Enable) \
28282 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
28283
28284#define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
28285 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
28286
28287#define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
28288 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
28289#if !defined(_WIN32)
28290
28291#define ID3D12Device14_GetAdapterLuid(This) \
28292 ( (This)->lpVtbl -> GetAdapterLuid(This) )
28293#else
28294#define ID3D12Device14_GetAdapterLuid(This,RetVal) \
28295 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
28296#endif
28297
28298
28299#define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
28300 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
28301
28302#define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
28303 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
28304
28305#define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
28306 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
28307
28308
28309#define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
28310 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
28311
28312
28313#define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
28314 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
28315
28316#define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
28317 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
28318
28319#define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
28320 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
28321
28322
28323#define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
28324 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
28325
28326#define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
28327 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
28328
28329#define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28330 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28331
28332#define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
28333 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
28334
28335#define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
28336 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
28337#if !defined(_WIN32)
28338
28339#define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28340 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28341#else
28342#define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28343 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28344#endif
28345
28346
28347#define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
28348 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
28349
28350#define ID3D12Device14_RemoveDevice(This) \
28351 ( (This)->lpVtbl -> RemoveDevice(This) )
28352
28353#define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
28354 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
28355
28356#define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
28357 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
28358
28359#define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
28360 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
28361
28362#define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \
28363 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
28364
28365#define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
28366 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
28367
28368#define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
28369 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
28370
28371
28372#define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
28373 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
28374
28375
28376#define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
28377 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
28378
28379#define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
28380 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
28381
28382#if !defined(_WIN32)
28383
28384#define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28385 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28386#else
28387#define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28388 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28389#endif
28390
28391#define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28392 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28393
28394#define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28395 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28396
28397#define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
28398 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
28399
28400#define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28401 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28402
28403
28404#define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
28405 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
28406
28407#define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \
28408 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
28409
28410#define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
28411 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
28412
28413
28414#define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
28415 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
28416
28417#define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28418 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28419
28420#define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28421 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28422
28423
28424#define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \
28425 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
28426
28427#if !defined(_WIN32)
28428
28429#define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28430 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28431#else
28432#define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28433 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28434#endif
28435
28436
28437#define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
28438 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
28439
28440
28441#define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \
28442 ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) )
28443
28444#endif /* COBJMACROS */
28445
28446
28447#endif /* C style interface */
28448
28449
28450
28451
28452#endif /* __ID3D12Device14_INTERFACE_DEFINED__ */
28453
28454
28455#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
28456#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
28457
28458/* interface ID3D12VirtualizationGuestDevice */
28459/* [unique][local][object][uuid] */
28460
28461
28462EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice;
28463
28464#if defined(__cplusplus) && !defined(CINTERFACE)
28465
28466 MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
28467 ID3D12VirtualizationGuestDevice : public IUnknown
28468 {
28469 public:
28470 virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
28471 _In_ ID3D12DeviceChild *pObject,
28472 _Out_ HANDLE *pHandle) = 0;
28473
28474 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
28475 _In_ ID3D12Fence *pFence,
28476 UINT64 FenceValue,
28477 _Out_ int *pFenceFd) = 0;
28478
28479 };
28480
28481
28482#else /* C style interface */
28483
28484 typedef struct ID3D12VirtualizationGuestDeviceVtbl
28485 {
28486 BEGIN_INTERFACE
28487
28488 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28489 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28490 ID3D12VirtualizationGuestDevice * This,
28491 REFIID riid,
28492 _COM_Outptr_ void **ppvObject);
28493
28494 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28495 ULONG ( STDMETHODCALLTYPE *AddRef )(
28496 ID3D12VirtualizationGuestDevice * This);
28497
28498 DECLSPEC_XFGVIRT(IUnknown, Release)
28499 ULONG ( STDMETHODCALLTYPE *Release )(
28500 ID3D12VirtualizationGuestDevice * This);
28501
28502 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost)
28503 HRESULT ( STDMETHODCALLTYPE *ShareWithHost )(
28504 ID3D12VirtualizationGuestDevice * This,
28505 _In_ ID3D12DeviceChild *pObject,
28506 _Out_ HANDLE *pHandle);
28507
28508 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd)
28509 HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )(
28510 ID3D12VirtualizationGuestDevice * This,
28511 _In_ ID3D12Fence *pFence,
28512 UINT64 FenceValue,
28513 _Out_ int *pFenceFd);
28514
28515 END_INTERFACE
28516 } ID3D12VirtualizationGuestDeviceVtbl;
28517
28518 interface ID3D12VirtualizationGuestDevice
28519 {
28520 CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl;
28521 };
28522
28523
28524
28525#ifdef COBJMACROS
28526
28527
28528#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \
28529 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28530
28531#define ID3D12VirtualizationGuestDevice_AddRef(This) \
28532 ( (This)->lpVtbl -> AddRef(This) )
28533
28534#define ID3D12VirtualizationGuestDevice_Release(This) \
28535 ( (This)->lpVtbl -> Release(This) )
28536
28537
28538#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \
28539 ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) )
28540
28541#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \
28542 ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) )
28543
28544#endif /* COBJMACROS */
28545
28546
28547#endif /* C style interface */
28548
28549
28550
28551
28552#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
28553
28554
28555#ifndef __ID3D12Tools_INTERFACE_DEFINED__
28556#define __ID3D12Tools_INTERFACE_DEFINED__
28557
28558/* interface ID3D12Tools */
28559/* [unique][local][object][uuid] */
28560
28561
28562EXTERN_C const IID IID_ID3D12Tools;
28563
28564#if defined(__cplusplus) && !defined(CINTERFACE)
28565
28566 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
28567 ID3D12Tools : public IUnknown
28568 {
28569 public:
28570 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
28571 BOOL bEnable) = 0;
28572
28573 virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0;
28574
28575 };
28576
28577
28578#else /* C style interface */
28579
28580 typedef struct ID3D12ToolsVtbl
28581 {
28582 BEGIN_INTERFACE
28583
28584 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28585 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28586 ID3D12Tools * This,
28587 REFIID riid,
28588 _COM_Outptr_ void **ppvObject);
28589
28590 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28591 ULONG ( STDMETHODCALLTYPE *AddRef )(
28592 ID3D12Tools * This);
28593
28594 DECLSPEC_XFGVIRT(IUnknown, Release)
28595 ULONG ( STDMETHODCALLTYPE *Release )(
28596 ID3D12Tools * This);
28597
28598 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
28599 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
28600 ID3D12Tools * This,
28601 BOOL bEnable);
28602
28603 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
28604 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
28605 ID3D12Tools * This);
28606
28607 END_INTERFACE
28608 } ID3D12ToolsVtbl;
28609
28610 interface ID3D12Tools
28611 {
28612 CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl;
28613 };
28614
28615
28616
28617#ifdef COBJMACROS
28618
28619
28620#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \
28621 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28622
28623#define ID3D12Tools_AddRef(This) \
28624 ( (This)->lpVtbl -> AddRef(This) )
28625
28626#define ID3D12Tools_Release(This) \
28627 ( (This)->lpVtbl -> Release(This) )
28628
28629
28630#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \
28631 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
28632
28633#define ID3D12Tools_ShaderInstrumentationEnabled(This) \
28634 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
28635
28636#endif /* COBJMACROS */
28637
28638
28639#endif /* C style interface */
28640
28641
28642
28643
28644#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
28645
28646
28647/* interface __MIDL_itf_d3d12_0000_0062 */
28648/* [local] */
28649
28650typedef struct D3D12_SUBRESOURCE_DATA
28651 {
28652 const void *pData;
28653 LONG_PTR RowPitch;
28654 LONG_PTR SlicePitch;
28655 } D3D12_SUBRESOURCE_DATA;
28656
28657typedef struct D3D12_MEMCPY_DEST
28658 {
28659 void *pData;
28660 SIZE_T RowPitch;
28661 SIZE_T SlicePitch;
28662 } D3D12_MEMCPY_DEST;
28663
28664#if !defined( D3D12_IGNORE_SDK_LAYERS )
28665#include "d3d12sdklayers.h"
28666#endif
28667
28668///////////////////////////////////////////////////////////////////////////
28669// D3D12CreateDevice
28670// ------------------
28671//
28672// pAdapter
28673// If NULL, D3D12CreateDevice will choose the primary adapter.
28674// If non-NULL, D3D12CreateDevice will use the provided adapter.
28675// MinimumFeatureLevel
28676// The minimum feature level required for successful device creation.
28677// riid
28678// The interface IID of the device to be returned. Expected: ID3D12Device.
28679// ppDevice
28680// Pointer to returned interface. May be NULL.
28681//
28682// Return Values
28683// Any of those documented for
28684// CreateDXGIFactory1
28685// IDXGIFactory::EnumAdapters
28686// D3D12CreateDevice
28687//
28688///////////////////////////////////////////////////////////////////////////
28689typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*,
28690 D3D_FEATURE_LEVEL,
28691 _In_ REFIID, _COM_Outptr_opt_ void** );
28692
28693HRESULT WINAPI D3D12CreateDevice(
28694 _In_opt_ IUnknown* pAdapter,
28695 D3D_FEATURE_LEVEL MinimumFeatureLevel,
28696 _In_ REFIID riid, // Expected: ID3D12Device
28697 _COM_Outptr_opt_ void** ppDevice );
28698
28699
28700typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );
28701
28702HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
28703
28704// --------------------------------------------------------------------------------------------------------------------------------
28705// D3D12EnableExperimentalFeatures
28706//
28707// Pass in a list of feature GUIDs to be enabled together.
28708//
28709// If a particular feature requires some configuration information on enablement, it will have
28710// a configuration struct that can be passed alongside the GUID.
28711//
28712// Some features might use an interface IID as the GUID. For these, once the feature is enabled via
28713// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface
28714// for manipulating the feature. This allows for control that might not cleanly be expressed by just
28715// the configuration struct that D3D12EnableExperimentalFeatures provides.
28716//
28717// If this method is called and a change to existing feature enablement is made,
28718// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one
28719// singleton device for a process. Removing the devices when configuration changes prevents
28720// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.
28721//
28722// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.
28723// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed
28724// in are known to be incompatible with each other, or other errors.
28725// Returns S_OK otherwise.
28726//
28727// --------------------------------------------------------------------------------------------------------------------------------
28728HRESULT WINAPI D3D12EnableExperimentalFeatures(
28729 UINT NumFeatures,
28730 _In_count_(NumFeatures) const IID* pIIDs,
28731 _In_opt_count_(NumFeatures) void* pConfigurationStructs,
28732 _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);
28733
28734// --------------------------------------------------------------------------------------------------------------------------------
28735// Experimental Feature: D3D12ExperimentalShaderModels
28736//
28737// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
28738// meaning shader models that haven't been finalized for use in retail.
28739//
28740// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
28741//
28742// --------------------------------------------------------------------------------------------------------------------------------
28743static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
28744 0x76f5573e,
28745 0xf13a,
28746 0x40f5,
28747 { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
28748};
28749// --------------------------------------------------------------------------------------------------------------------------------
28750// Experimental Feature: D3D12TiledResourceTier4
28751//
28752// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
28753// meaning texture tile data-inheritance is allowed.
28754//
28755// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
28756//
28757// --------------------------------------------------------------------------------------------------------------------------------
28758static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
28759 0xc9c4725f,
28760 0xa81a,
28761 0x4f56,
28762 { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
28763};
28764// --------------------------------------------------------------------------------------------------------------------------------
28765// D3D12GetInterface
28766//
28767// Retrieve Global D3D12 Interface.
28768//
28769
28770DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
28771DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
28772DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
28773DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
28774DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);
28775
28776typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );
28777
28778HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
28779
28780
28781
28782extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_c_ifspec;
28783extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0062_v0_0_s_ifspec;
28784
28785#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
28786#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
28787
28788/* interface ID3D12SDKConfiguration */
28789/* [unique][local][object][uuid] */
28790
28791
28792EXTERN_C const IID IID_ID3D12SDKConfiguration;
28793
28794#if defined(__cplusplus) && !defined(CINTERFACE)
28795
28796 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
28797 ID3D12SDKConfiguration : public IUnknown
28798 {
28799 public:
28800 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
28801 UINT SDKVersion,
28802 _In_z_ LPCSTR SDKPath) = 0;
28803
28804 };
28805
28806
28807#else /* C style interface */
28808
28809 typedef struct ID3D12SDKConfigurationVtbl
28810 {
28811 BEGIN_INTERFACE
28812
28813 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28814 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28815 ID3D12SDKConfiguration * This,
28816 REFIID riid,
28817 _COM_Outptr_ void **ppvObject);
28818
28819 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28820 ULONG ( STDMETHODCALLTYPE *AddRef )(
28821 ID3D12SDKConfiguration * This);
28822
28823 DECLSPEC_XFGVIRT(IUnknown, Release)
28824 ULONG ( STDMETHODCALLTYPE *Release )(
28825 ID3D12SDKConfiguration * This);
28826
28827 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
28828 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
28829 ID3D12SDKConfiguration * This,
28830 UINT SDKVersion,
28831 _In_z_ LPCSTR SDKPath);
28832
28833 END_INTERFACE
28834 } ID3D12SDKConfigurationVtbl;
28835
28836 interface ID3D12SDKConfiguration
28837 {
28838 CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl;
28839 };
28840
28841
28842
28843#ifdef COBJMACROS
28844
28845
28846#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \
28847 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28848
28849#define ID3D12SDKConfiguration_AddRef(This) \
28850 ( (This)->lpVtbl -> AddRef(This) )
28851
28852#define ID3D12SDKConfiguration_Release(This) \
28853 ( (This)->lpVtbl -> Release(This) )
28854
28855
28856#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \
28857 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
28858
28859#endif /* COBJMACROS */
28860
28861
28862#endif /* C style interface */
28863
28864
28865
28866
28867#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
28868
28869
28870#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
28871#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
28872
28873/* interface ID3D12SDKConfiguration1 */
28874/* [unique][local][object][uuid] */
28875
28876
28877EXTERN_C const IID IID_ID3D12SDKConfiguration1;
28878
28879#if defined(__cplusplus) && !defined(CINTERFACE)
28880
28881 MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
28882 ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
28883 {
28884 public:
28885 virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
28886 UINT SDKVersion,
28887 _In_ LPCSTR SDKPath,
28888 REFIID riid,
28889 _COM_Outptr_ void **ppvFactory) = 0;
28890
28891 virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0;
28892
28893 };
28894
28895
28896#else /* C style interface */
28897
28898 typedef struct ID3D12SDKConfiguration1Vtbl
28899 {
28900 BEGIN_INTERFACE
28901
28902 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28903 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28904 ID3D12SDKConfiguration1 * This,
28905 REFIID riid,
28906 _COM_Outptr_ void **ppvObject);
28907
28908 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28909 ULONG ( STDMETHODCALLTYPE *AddRef )(
28910 ID3D12SDKConfiguration1 * This);
28911
28912 DECLSPEC_XFGVIRT(IUnknown, Release)
28913 ULONG ( STDMETHODCALLTYPE *Release )(
28914 ID3D12SDKConfiguration1 * This);
28915
28916 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
28917 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
28918 ID3D12SDKConfiguration1 * This,
28919 UINT SDKVersion,
28920 _In_z_ LPCSTR SDKPath);
28921
28922 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory)
28923 HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )(
28924 ID3D12SDKConfiguration1 * This,
28925 UINT SDKVersion,
28926 _In_ LPCSTR SDKPath,
28927 REFIID riid,
28928 _COM_Outptr_ void **ppvFactory);
28929
28930 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs)
28931 void ( STDMETHODCALLTYPE *FreeUnusedSDKs )(
28932 ID3D12SDKConfiguration1 * This);
28933
28934 END_INTERFACE
28935 } ID3D12SDKConfiguration1Vtbl;
28936
28937 interface ID3D12SDKConfiguration1
28938 {
28939 CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl;
28940 };
28941
28942
28943
28944#ifdef COBJMACROS
28945
28946
28947#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \
28948 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28949
28950#define ID3D12SDKConfiguration1_AddRef(This) \
28951 ( (This)->lpVtbl -> AddRef(This) )
28952
28953#define ID3D12SDKConfiguration1_Release(This) \
28954 ( (This)->lpVtbl -> Release(This) )
28955
28956
28957#define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \
28958 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
28959
28960
28961#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \
28962 ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) )
28963
28964#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \
28965 ( (This)->lpVtbl -> FreeUnusedSDKs(This) )
28966
28967#endif /* COBJMACROS */
28968
28969
28970#endif /* C style interface */
28971
28972
28973
28974
28975#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
28976
28977
28978/* interface __MIDL_itf_d3d12_0000_0064 */
28979/* [local] */
28980
28981typedef
28982enum D3D12_DEVICE_FACTORY_FLAGS
28983 {
28984 D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
28985 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
28986 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
28987 D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
28988 } D3D12_DEVICE_FACTORY_FLAGS;
28989
28990DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )
28991
28992
28993extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_c_ifspec;
28994extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0064_v0_0_s_ifspec;
28995
28996#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
28997#define __ID3D12DeviceFactory_INTERFACE_DEFINED__
28998
28999/* interface ID3D12DeviceFactory */
29000/* [unique][local][object][uuid] */
29001
29002
29003EXTERN_C const IID IID_ID3D12DeviceFactory;
29004
29005#if defined(__cplusplus) && !defined(CINTERFACE)
29006
29007 MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
29008 ID3D12DeviceFactory : public IUnknown
29009 {
29010 public:
29011 virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0;
29012
29013 virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0;
29014
29015 virtual HRESULT STDMETHODCALLTYPE SetFlags(
29016 D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
29017
29018 virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0;
29019
29020 virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
29021 REFCLSID clsid,
29022 REFIID iid,
29023 _COM_Outptr_ void **ppv) = 0;
29024
29025 virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
29026 UINT NumFeatures,
29027 _In_reads_(NumFeatures) const IID *pIIDs,
29028 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
29029 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0;
29030
29031 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
29032 _In_opt_ IUnknown *adapter,
29033 D3D_FEATURE_LEVEL FeatureLevel,
29034 REFIID riid,
29035 _COM_Outptr_opt_ void **ppvDevice) = 0;
29036
29037 };
29038
29039
29040#else /* C style interface */
29041
29042 typedef struct ID3D12DeviceFactoryVtbl
29043 {
29044 BEGIN_INTERFACE
29045
29046 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29047 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29048 ID3D12DeviceFactory * This,
29049 REFIID riid,
29050 _COM_Outptr_ void **ppvObject);
29051
29052 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29053 ULONG ( STDMETHODCALLTYPE *AddRef )(
29054 ID3D12DeviceFactory * This);
29055
29056 DECLSPEC_XFGVIRT(IUnknown, Release)
29057 ULONG ( STDMETHODCALLTYPE *Release )(
29058 ID3D12DeviceFactory * This);
29059
29060 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState)
29061 HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )(
29062 ID3D12DeviceFactory * This);
29063
29064 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState)
29065 HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )(
29066 ID3D12DeviceFactory * This);
29067
29068 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags)
29069 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
29070 ID3D12DeviceFactory * This,
29071 D3D12_DEVICE_FACTORY_FLAGS flags);
29072
29073 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags)
29074 D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )(
29075 ID3D12DeviceFactory * This);
29076
29077 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface)
29078 HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )(
29079 ID3D12DeviceFactory * This,
29080 REFCLSID clsid,
29081 REFIID iid,
29082 _COM_Outptr_ void **ppv);
29083
29084 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures)
29085 HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )(
29086 ID3D12DeviceFactory * This,
29087 UINT NumFeatures,
29088 _In_reads_(NumFeatures) const IID *pIIDs,
29089 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
29090 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes);
29091
29092 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice)
29093 HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
29094 ID3D12DeviceFactory * This,
29095 _In_opt_ IUnknown *adapter,
29096 D3D_FEATURE_LEVEL FeatureLevel,
29097 REFIID riid,
29098 _COM_Outptr_opt_ void **ppvDevice);
29099
29100 END_INTERFACE
29101 } ID3D12DeviceFactoryVtbl;
29102
29103 interface ID3D12DeviceFactory
29104 {
29105 CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl;
29106 };
29107
29108
29109
29110#ifdef COBJMACROS
29111
29112
29113#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \
29114 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29115
29116#define ID3D12DeviceFactory_AddRef(This) \
29117 ( (This)->lpVtbl -> AddRef(This) )
29118
29119#define ID3D12DeviceFactory_Release(This) \
29120 ( (This)->lpVtbl -> Release(This) )
29121
29122
29123#define ID3D12DeviceFactory_InitializeFromGlobalState(This) \
29124 ( (This)->lpVtbl -> InitializeFromGlobalState(This) )
29125
29126#define ID3D12DeviceFactory_ApplyToGlobalState(This) \
29127 ( (This)->lpVtbl -> ApplyToGlobalState(This) )
29128
29129#define ID3D12DeviceFactory_SetFlags(This,flags) \
29130 ( (This)->lpVtbl -> SetFlags(This,flags) )
29131
29132#define ID3D12DeviceFactory_GetFlags(This) \
29133 ( (This)->lpVtbl -> GetFlags(This) )
29134
29135#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \
29136 ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) )
29137
29138#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \
29139 ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) )
29140
29141#define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \
29142 ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) )
29143
29144#endif /* COBJMACROS */
29145
29146
29147#endif /* C style interface */
29148
29149
29150
29151
29152#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
29153
29154
29155/* interface __MIDL_itf_d3d12_0000_0065 */
29156/* [local] */
29157
29158typedef
29159enum D3D12_DEVICE_FLAGS
29160 {
29161 D3D12_DEVICE_FLAG_NONE = 0,
29162 D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
29163 D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
29164 D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
29165 D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
29166 D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
29167 D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
29168 D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
29169 D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
29170 D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
29171 D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
29172 D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
29173 } D3D12_DEVICE_FLAGS;
29174
29175DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )
29176typedef struct D3D12_DEVICE_CONFIGURATION_DESC
29177 {
29178 D3D12_DEVICE_FLAGS Flags;
29179 UINT GPUBasedValidationFlags;
29180 UINT SDKVersion;
29181 UINT NumEnabledExperimentalFeatures;
29182 } D3D12_DEVICE_CONFIGURATION_DESC;
29183
29184
29185
29186extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_c_ifspec;
29187extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0065_v0_0_s_ifspec;
29188
29189#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
29190#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
29191
29192/* interface ID3D12DeviceConfiguration */
29193/* [unique][local][object][uuid] */
29194
29195
29196EXTERN_C const IID IID_ID3D12DeviceConfiguration;
29197
29198#if defined(__cplusplus) && !defined(CINTERFACE)
29199
29200 MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
29201 ID3D12DeviceConfiguration : public IUnknown
29202 {
29203 public:
29204#if defined(_MSC_VER) || !defined(_WIN32)
29205 virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
29206#else
29207 virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc(
29208 D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0;
29209#endif
29210
29211 virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
29212 _Out_writes_(NumGuids) GUID *pGuids,
29213 UINT NumGuids) = 0;
29214
29215 virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
29216 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
29217 _COM_Outptr_ ID3DBlob **ppResult,
29218 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0;
29219
29220 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
29221 _In_reads_bytes_(Size) const void *pBlob,
29222 SIZE_T Size,
29223 REFIID riid,
29224 _COM_Outptr_ void **ppvDeserializer) = 0;
29225
29226 };
29227
29228
29229#else /* C style interface */
29230
29231 typedef struct ID3D12DeviceConfigurationVtbl
29232 {
29233 BEGIN_INTERFACE
29234
29235 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29236 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29237 ID3D12DeviceConfiguration * This,
29238 REFIID riid,
29239 _COM_Outptr_ void **ppvObject);
29240
29241 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29242 ULONG ( STDMETHODCALLTYPE *AddRef )(
29243 ID3D12DeviceConfiguration * This);
29244
29245 DECLSPEC_XFGVIRT(IUnknown, Release)
29246 ULONG ( STDMETHODCALLTYPE *Release )(
29247 ID3D12DeviceConfiguration * This);
29248
29249 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
29250#if !defined(_WIN32)
29251 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
29252 ID3D12DeviceConfiguration * This);
29253
29254#else
29255 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
29256 ID3D12DeviceConfiguration * This,
29257 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
29258
29259#endif
29260
29261 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
29262 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
29263 ID3D12DeviceConfiguration * This,
29264 _Out_writes_(NumGuids) GUID *pGuids,
29265 UINT NumGuids);
29266
29267 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
29268 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
29269 ID3D12DeviceConfiguration * This,
29270 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
29271 _COM_Outptr_ ID3DBlob **ppResult,
29272 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
29273
29274 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
29275 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
29276 ID3D12DeviceConfiguration * This,
29277 _In_reads_bytes_(Size) const void *pBlob,
29278 SIZE_T Size,
29279 REFIID riid,
29280 _COM_Outptr_ void **ppvDeserializer);
29281
29282 END_INTERFACE
29283 } ID3D12DeviceConfigurationVtbl;
29284
29285 interface ID3D12DeviceConfiguration
29286 {
29287 CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl;
29288 };
29289
29290
29291
29292#ifdef COBJMACROS
29293
29294
29295#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \
29296 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29297
29298#define ID3D12DeviceConfiguration_AddRef(This) \
29299 ( (This)->lpVtbl -> AddRef(This) )
29300
29301#define ID3D12DeviceConfiguration_Release(This) \
29302 ( (This)->lpVtbl -> Release(This) )
29303
29304#if !defined(_WIN32)
29305
29306#define ID3D12DeviceConfiguration_GetDesc(This) \
29307 ( (This)->lpVtbl -> GetDesc(This) )
29308#else
29309#define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \
29310 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
29311#endif
29312
29313#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
29314 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
29315
29316#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
29317 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
29318
29319#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
29320 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
29321
29322#endif /* COBJMACROS */
29323
29324
29325#endif /* C style interface */
29326
29327
29328
29329
29330#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
29331
29332
29333#ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
29334#define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
29335
29336/* interface ID3D12DeviceConfiguration1 */
29337/* [unique][local][object][uuid] */
29338
29339
29340EXTERN_C const IID IID_ID3D12DeviceConfiguration1;
29341
29342#if defined(__cplusplus) && !defined(CINTERFACE)
29343
29344 MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56")
29345 ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration
29346 {
29347 public:
29348 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
29349 _In_reads_bytes_(Size) const void *pLibraryBlob,
29350 SIZE_T Size,
29351 LPCWSTR RootSignatureSubobjectName,
29352 REFIID riid,
29353 _COM_Outptr_ void **ppvDeserializer) = 0;
29354
29355 };
29356
29357
29358#else /* C style interface */
29359
29360 typedef struct ID3D12DeviceConfiguration1Vtbl
29361 {
29362 BEGIN_INTERFACE
29363
29364 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29365 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29366 ID3D12DeviceConfiguration1 * This,
29367 REFIID riid,
29368 _COM_Outptr_ void **ppvObject);
29369
29370 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29371 ULONG ( STDMETHODCALLTYPE *AddRef )(
29372 ID3D12DeviceConfiguration1 * This);
29373
29374 DECLSPEC_XFGVIRT(IUnknown, Release)
29375 ULONG ( STDMETHODCALLTYPE *Release )(
29376 ID3D12DeviceConfiguration1 * This);
29377
29378 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
29379#if !defined(_WIN32)
29380 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
29381 ID3D12DeviceConfiguration1 * This);
29382
29383#else
29384 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
29385 ID3D12DeviceConfiguration1 * This,
29386 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
29387
29388#endif
29389
29390 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
29391 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
29392 ID3D12DeviceConfiguration1 * This,
29393 _Out_writes_(NumGuids) GUID *pGuids,
29394 UINT NumGuids);
29395
29396 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
29397 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
29398 ID3D12DeviceConfiguration1 * This,
29399 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
29400 _COM_Outptr_ ID3DBlob **ppResult,
29401 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
29402
29403 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
29404 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
29405 ID3D12DeviceConfiguration1 * This,
29406 _In_reads_bytes_(Size) const void *pBlob,
29407 SIZE_T Size,
29408 REFIID riid,
29409 _COM_Outptr_ void **ppvDeserializer);
29410
29411 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary)
29412 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )(
29413 ID3D12DeviceConfiguration1 * This,
29414 _In_reads_bytes_(Size) const void *pLibraryBlob,
29415 SIZE_T Size,
29416 LPCWSTR RootSignatureSubobjectName,
29417 REFIID riid,
29418 _COM_Outptr_ void **ppvDeserializer);
29419
29420 END_INTERFACE
29421 } ID3D12DeviceConfiguration1Vtbl;
29422
29423 interface ID3D12DeviceConfiguration1
29424 {
29425 CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl;
29426 };
29427
29428
29429
29430#ifdef COBJMACROS
29431
29432
29433#define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \
29434 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29435
29436#define ID3D12DeviceConfiguration1_AddRef(This) \
29437 ( (This)->lpVtbl -> AddRef(This) )
29438
29439#define ID3D12DeviceConfiguration1_Release(This) \
29440 ( (This)->lpVtbl -> Release(This) )
29441
29442#if !defined(_WIN32)
29443
29444#define ID3D12DeviceConfiguration1_GetDesc(This) \
29445 ( (This)->lpVtbl -> GetDesc(This) )
29446#else
29447#define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \
29448 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
29449#endif
29450
29451#define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
29452 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
29453
29454#define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
29455 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
29456
29457#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
29458 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
29459
29460
29461#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \
29462 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) )
29463
29464#endif /* COBJMACROS */
29465
29466
29467#endif /* C style interface */
29468
29469
29470
29471
29472#endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */
29473
29474
29475/* interface __MIDL_itf_d3d12_0000_0067 */
29476/* [local] */
29477
29478typedef
29479enum D3D12_AXIS_SHADING_RATE
29480 {
29481 D3D12_AXIS_SHADING_RATE_1X = 0,
29482 D3D12_AXIS_SHADING_RATE_2X = 0x1,
29483 D3D12_AXIS_SHADING_RATE_4X = 0x2
29484 } D3D12_AXIS_SHADING_RATE;
29485
29486#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2
29487#define D3D12_SHADING_RATE_VALID_MASK 3
29488#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
29489#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
29490#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)
29491typedef
29492enum D3D12_SHADING_RATE
29493 {
29494 D3D12_SHADING_RATE_1X1 = 0,
29495 D3D12_SHADING_RATE_1X2 = 0x1,
29496 D3D12_SHADING_RATE_2X1 = 0x4,
29497 D3D12_SHADING_RATE_2X2 = 0x5,
29498 D3D12_SHADING_RATE_2X4 = 0x6,
29499 D3D12_SHADING_RATE_4X2 = 0x9,
29500 D3D12_SHADING_RATE_4X4 = 0xa
29501 } D3D12_SHADING_RATE;
29502
29503typedef
29504enum D3D12_SHADING_RATE_COMBINER
29505 {
29506 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
29507 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
29508 D3D12_SHADING_RATE_COMBINER_MIN = 2,
29509 D3D12_SHADING_RATE_COMBINER_MAX = 3,
29510 D3D12_SHADING_RATE_COMBINER_SUM = 4
29511 } D3D12_SHADING_RATE_COMBINER;
29512
29513
29514
29515extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_c_ifspec;
29516extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0067_v0_0_s_ifspec;
29517
29518#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
29519#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
29520
29521/* interface ID3D12GraphicsCommandList5 */
29522/* [unique][local][object][uuid] */
29523
29524
29525EXTERN_C const IID IID_ID3D12GraphicsCommandList5;
29526
29527#if defined(__cplusplus) && !defined(CINTERFACE)
29528
29529 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
29530 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
29531 {
29532 public:
29533 virtual void STDMETHODCALLTYPE RSSetShadingRate(
29534 _In_ D3D12_SHADING_RATE baseShadingRate,
29535 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
29536
29537 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
29538 _In_opt_ ID3D12Resource *shadingRateImage) = 0;
29539
29540 };
29541
29542
29543#else /* C style interface */
29544
29545 typedef struct ID3D12GraphicsCommandList5Vtbl
29546 {
29547 BEGIN_INTERFACE
29548
29549 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29550 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29551 ID3D12GraphicsCommandList5 * This,
29552 REFIID riid,
29553 _COM_Outptr_ void **ppvObject);
29554
29555 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29556 ULONG ( STDMETHODCALLTYPE *AddRef )(
29557 ID3D12GraphicsCommandList5 * This);
29558
29559 DECLSPEC_XFGVIRT(IUnknown, Release)
29560 ULONG ( STDMETHODCALLTYPE *Release )(
29561 ID3D12GraphicsCommandList5 * This);
29562
29563 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
29564 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
29565 ID3D12GraphicsCommandList5 * This,
29566 _In_ REFGUID guid,
29567 _Inout_ UINT *pDataSize,
29568 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
29569
29570 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
29571 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
29572 ID3D12GraphicsCommandList5 * This,
29573 _In_ REFGUID guid,
29574 _In_ UINT DataSize,
29575 _In_reads_bytes_opt_( DataSize ) const void *pData);
29576
29577 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
29578 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
29579 ID3D12GraphicsCommandList5 * This,
29580 _In_ REFGUID guid,
29581 _In_opt_ const IUnknown *pData);
29582
29583 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
29584 HRESULT ( STDMETHODCALLTYPE *SetName )(
29585 ID3D12GraphicsCommandList5 * This,
29586 _In_z_ LPCWSTR Name);
29587
29588 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
29589 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
29590 ID3D12GraphicsCommandList5 * This,
29591 REFIID riid,
29592 _COM_Outptr_opt_ void **ppvDevice);
29593
29594 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
29595 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
29596 ID3D12GraphicsCommandList5 * This);
29597
29598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
29599 HRESULT ( STDMETHODCALLTYPE *Close )(
29600 ID3D12GraphicsCommandList5 * This);
29601
29602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
29603 HRESULT ( STDMETHODCALLTYPE *Reset )(
29604 ID3D12GraphicsCommandList5 * This,
29605 _In_ ID3D12CommandAllocator *pAllocator,
29606 _In_opt_ ID3D12PipelineState *pInitialState);
29607
29608 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
29609 void ( STDMETHODCALLTYPE *ClearState )(
29610 ID3D12GraphicsCommandList5 * This,
29611 _In_opt_ ID3D12PipelineState *pPipelineState);
29612
29613 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
29614 void ( STDMETHODCALLTYPE *DrawInstanced )(
29615 ID3D12GraphicsCommandList5 * This,
29616 _In_ UINT VertexCountPerInstance,
29617 _In_ UINT InstanceCount,
29618 _In_ UINT StartVertexLocation,
29619 _In_ UINT StartInstanceLocation);
29620
29621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
29622 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
29623 ID3D12GraphicsCommandList5 * This,
29624 _In_ UINT IndexCountPerInstance,
29625 _In_ UINT InstanceCount,
29626 _In_ UINT StartIndexLocation,
29627 _In_ INT BaseVertexLocation,
29628 _In_ UINT StartInstanceLocation);
29629
29630 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
29631 void ( STDMETHODCALLTYPE *Dispatch )(
29632 ID3D12GraphicsCommandList5 * This,
29633 _In_ UINT ThreadGroupCountX,
29634 _In_ UINT ThreadGroupCountY,
29635 _In_ UINT ThreadGroupCountZ);
29636
29637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
29638 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
29639 ID3D12GraphicsCommandList5 * This,
29640 _In_ ID3D12Resource *pDstBuffer,
29641 UINT64 DstOffset,
29642 _In_ ID3D12Resource *pSrcBuffer,
29643 UINT64 SrcOffset,
29644 UINT64 NumBytes);
29645
29646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
29647 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
29648 ID3D12GraphicsCommandList5 * This,
29649 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
29650 UINT DstX,
29651 UINT DstY,
29652 UINT DstZ,
29653 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
29654 _In_opt_ const D3D12_BOX *pSrcBox);
29655
29656 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
29657 void ( STDMETHODCALLTYPE *CopyResource )(
29658 ID3D12GraphicsCommandList5 * This,
29659 _In_ ID3D12Resource *pDstResource,
29660 _In_ ID3D12Resource *pSrcResource);
29661
29662 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
29663 void ( STDMETHODCALLTYPE *CopyTiles )(
29664 ID3D12GraphicsCommandList5 * This,
29665 _In_ ID3D12Resource *pTiledResource,
29666 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
29667 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
29668 _In_ ID3D12Resource *pBuffer,
29669 UINT64 BufferStartOffsetInBytes,
29670 D3D12_TILE_COPY_FLAGS Flags);
29671
29672 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
29673 void ( STDMETHODCALLTYPE *ResolveSubresource )(
29674 ID3D12GraphicsCommandList5 * This,
29675 _In_ ID3D12Resource *pDstResource,
29676 _In_ UINT DstSubresource,
29677 _In_ ID3D12Resource *pSrcResource,
29678 _In_ UINT SrcSubresource,
29679 _In_ DXGI_FORMAT Format);
29680
29681 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
29682 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
29683 ID3D12GraphicsCommandList5 * This,
29684 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
29685
29686 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
29687 void ( STDMETHODCALLTYPE *RSSetViewports )(
29688 ID3D12GraphicsCommandList5 * This,
29689 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
29690 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
29691
29692 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
29693 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
29694 ID3D12GraphicsCommandList5 * This,
29695 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
29696 _In_reads_( NumRects) const D3D12_RECT *pRects);
29697
29698 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
29699 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
29700 ID3D12GraphicsCommandList5 * This,
29701 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
29702
29703 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
29704 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
29705 ID3D12GraphicsCommandList5 * This,
29706 _In_ UINT StencilRef);
29707
29708 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
29709 void ( STDMETHODCALLTYPE *SetPipelineState )(
29710 ID3D12GraphicsCommandList5 * This,
29711 _In_ ID3D12PipelineState *pPipelineState);
29712
29713 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
29714 void ( STDMETHODCALLTYPE *ResourceBarrier )(
29715 ID3D12GraphicsCommandList5 * This,
29716 _In_ UINT NumBarriers,
29717 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
29718
29719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
29720 void ( STDMETHODCALLTYPE *ExecuteBundle )(
29721 ID3D12GraphicsCommandList5 * This,
29722 _In_ ID3D12GraphicsCommandList *pCommandList);
29723
29724 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
29725 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
29726 ID3D12GraphicsCommandList5 * This,
29727 _In_ UINT NumDescriptorHeaps,
29728 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
29729
29730 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
29731 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
29732 ID3D12GraphicsCommandList5 * This,
29733 _In_opt_ ID3D12RootSignature *pRootSignature);
29734
29735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
29736 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
29737 ID3D12GraphicsCommandList5 * This,
29738 _In_opt_ ID3D12RootSignature *pRootSignature);
29739
29740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
29741 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
29742 ID3D12GraphicsCommandList5 * This,
29743 _In_ UINT RootParameterIndex,
29744 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
29745
29746 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
29747 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
29748 ID3D12GraphicsCommandList5 * This,
29749 _In_ UINT RootParameterIndex,
29750 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
29751
29752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
29753 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
29754 ID3D12GraphicsCommandList5 * This,
29755 _In_ UINT RootParameterIndex,
29756 _In_ UINT SrcData,
29757 _In_ UINT DestOffsetIn32BitValues);
29758
29759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
29760 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
29761 ID3D12GraphicsCommandList5 * This,
29762 _In_ UINT RootParameterIndex,
29763 _In_ UINT SrcData,
29764 _In_ UINT DestOffsetIn32BitValues);
29765
29766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
29767 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
29768 ID3D12GraphicsCommandList5 * This,
29769 _In_ UINT RootParameterIndex,
29770 _In_ UINT Num32BitValuesToSet,
29771 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
29772 _In_ UINT DestOffsetIn32BitValues);
29773
29774 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
29775 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
29776 ID3D12GraphicsCommandList5 * This,
29777 _In_ UINT RootParameterIndex,
29778 _In_ UINT Num32BitValuesToSet,
29779 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
29780 _In_ UINT DestOffsetIn32BitValues);
29781
29782 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
29783 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
29784 ID3D12GraphicsCommandList5 * This,
29785 _In_ UINT RootParameterIndex,
29786 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29787
29788 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
29789 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
29790 ID3D12GraphicsCommandList5 * This,
29791 _In_ UINT RootParameterIndex,
29792 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29793
29794 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
29795 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
29796 ID3D12GraphicsCommandList5 * This,
29797 _In_ UINT RootParameterIndex,
29798 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29799
29800 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
29801 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
29802 ID3D12GraphicsCommandList5 * This,
29803 _In_ UINT RootParameterIndex,
29804 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29805
29806 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
29807 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
29808 ID3D12GraphicsCommandList5 * This,
29809 _In_ UINT RootParameterIndex,
29810 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29811
29812 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
29813 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
29814 ID3D12GraphicsCommandList5 * This,
29815 _In_ UINT RootParameterIndex,
29816 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
29817
29818 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
29819 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
29820 ID3D12GraphicsCommandList5 * This,
29821 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
29822
29823 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
29824 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
29825 ID3D12GraphicsCommandList5 * This,
29826 _In_ UINT StartSlot,
29827 _In_ UINT NumViews,
29828 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
29829
29830 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
29831 void ( STDMETHODCALLTYPE *SOSetTargets )(
29832 ID3D12GraphicsCommandList5 * This,
29833 _In_ UINT StartSlot,
29834 _In_ UINT NumViews,
29835 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
29836
29837 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
29838 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
29839 ID3D12GraphicsCommandList5 * This,
29840 _In_ UINT NumRenderTargetDescriptors,
29841 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
29842 _In_ BOOL RTsSingleHandleToDescriptorRange,
29843 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
29844
29845 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
29846 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
29847 ID3D12GraphicsCommandList5 * This,
29848 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
29849 _In_ D3D12_CLEAR_FLAGS ClearFlags,
29850 _In_ FLOAT Depth,
29851 _In_ UINT8 Stencil,
29852 _In_ UINT NumRects,
29853 _In_reads_(NumRects) const D3D12_RECT *pRects);
29854
29855 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
29856 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
29857 ID3D12GraphicsCommandList5 * This,
29858 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
29859 _In_ const FLOAT ColorRGBA[ 4 ],
29860 _In_ UINT NumRects,
29861 _In_reads_(NumRects) const D3D12_RECT *pRects);
29862
29863 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
29864 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
29865 ID3D12GraphicsCommandList5 * This,
29866 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
29867 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
29868 _In_ ID3D12Resource *pResource,
29869 _In_ const UINT Values[ 4 ],
29870 _In_ UINT NumRects,
29871 _In_reads_(NumRects) const D3D12_RECT *pRects);
29872
29873 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
29874 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
29875 ID3D12GraphicsCommandList5 * This,
29876 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
29877 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
29878 _In_ ID3D12Resource *pResource,
29879 _In_ const FLOAT Values[ 4 ],
29880 _In_ UINT NumRects,
29881 _In_reads_(NumRects) const D3D12_RECT *pRects);
29882
29883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
29884 void ( STDMETHODCALLTYPE *DiscardResource )(
29885 ID3D12GraphicsCommandList5 * This,
29886 _In_ ID3D12Resource *pResource,
29887 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
29888
29889 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
29890 void ( STDMETHODCALLTYPE *BeginQuery )(
29891 ID3D12GraphicsCommandList5 * This,
29892 _In_ ID3D12QueryHeap *pQueryHeap,
29893 _In_ D3D12_QUERY_TYPE Type,
29894 _In_ UINT Index);
29895
29896 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
29897 void ( STDMETHODCALLTYPE *EndQuery )(
29898 ID3D12GraphicsCommandList5 * This,
29899 _In_ ID3D12QueryHeap *pQueryHeap,
29900 _In_ D3D12_QUERY_TYPE Type,
29901 _In_ UINT Index);
29902
29903 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
29904 void ( STDMETHODCALLTYPE *ResolveQueryData )(
29905 ID3D12GraphicsCommandList5 * This,
29906 _In_ ID3D12QueryHeap *pQueryHeap,
29907 _In_ D3D12_QUERY_TYPE Type,
29908 _In_ UINT StartIndex,
29909 _In_ UINT NumQueries,
29910 _In_ ID3D12Resource *pDestinationBuffer,
29911 _In_ UINT64 AlignedDestinationBufferOffset);
29912
29913 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
29914 void ( STDMETHODCALLTYPE *SetPredication )(
29915 ID3D12GraphicsCommandList5 * This,
29916 _In_opt_ ID3D12Resource *pBuffer,
29917 _In_ UINT64 AlignedBufferOffset,
29918 _In_ D3D12_PREDICATION_OP Operation);
29919
29920 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
29921 void ( STDMETHODCALLTYPE *SetMarker )(
29922 ID3D12GraphicsCommandList5 * This,
29923 UINT Metadata,
29924 _In_reads_bytes_opt_(Size) const void *pData,
29925 UINT Size);
29926
29927 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
29928 void ( STDMETHODCALLTYPE *BeginEvent )(
29929 ID3D12GraphicsCommandList5 * This,
29930 UINT Metadata,
29931 _In_reads_bytes_opt_(Size) const void *pData,
29932 UINT Size);
29933
29934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
29935 void ( STDMETHODCALLTYPE *EndEvent )(
29936 ID3D12GraphicsCommandList5 * This);
29937
29938 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
29939 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
29940 ID3D12GraphicsCommandList5 * This,
29941 _In_ ID3D12CommandSignature *pCommandSignature,
29942 _In_ UINT MaxCommandCount,
29943 _In_ ID3D12Resource *pArgumentBuffer,
29944 _In_ UINT64 ArgumentBufferOffset,
29945 _In_opt_ ID3D12Resource *pCountBuffer,
29946 _In_ UINT64 CountBufferOffset);
29947
29948 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
29949 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
29950 ID3D12GraphicsCommandList5 * This,
29951 _In_ ID3D12Resource *pDstBuffer,
29952 UINT64 DstOffset,
29953 _In_ ID3D12Resource *pSrcBuffer,
29954 UINT64 SrcOffset,
29955 UINT Dependencies,
29956 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
29957 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
29958
29959 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
29960 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
29961 ID3D12GraphicsCommandList5 * This,
29962 _In_ ID3D12Resource *pDstBuffer,
29963 UINT64 DstOffset,
29964 _In_ ID3D12Resource *pSrcBuffer,
29965 UINT64 SrcOffset,
29966 UINT Dependencies,
29967 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
29968 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
29969
29970 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
29971 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
29972 ID3D12GraphicsCommandList5 * This,
29973 _In_ FLOAT Min,
29974 _In_ FLOAT Max);
29975
29976 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
29977 void ( STDMETHODCALLTYPE *SetSamplePositions )(
29978 ID3D12GraphicsCommandList5 * This,
29979 _In_ UINT NumSamplesPerPixel,
29980 _In_ UINT NumPixels,
29981 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
29982
29983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
29984 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
29985 ID3D12GraphicsCommandList5 * This,
29986 _In_ ID3D12Resource *pDstResource,
29987 _In_ UINT DstSubresource,
29988 _In_ UINT DstX,
29989 _In_ UINT DstY,
29990 _In_ ID3D12Resource *pSrcResource,
29991 _In_ UINT SrcSubresource,
29992 _In_opt_ D3D12_RECT *pSrcRect,
29993 _In_ DXGI_FORMAT Format,
29994 _In_ D3D12_RESOLVE_MODE ResolveMode);
29995
29996 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
29997 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
29998 ID3D12GraphicsCommandList5 * This,
29999 _In_ UINT Mask);
30000
30001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
30002 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
30003 ID3D12GraphicsCommandList5 * This,
30004 UINT Count,
30005 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
30006 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
30007
30008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
30009 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
30010 ID3D12GraphicsCommandList5 * This,
30011 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
30012
30013 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
30014 void ( STDMETHODCALLTYPE *BeginRenderPass )(
30015 ID3D12GraphicsCommandList5 * This,
30016 _In_ UINT NumRenderTargets,
30017 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
30018 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
30019 D3D12_RENDER_PASS_FLAGS Flags);
30020
30021 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
30022 void ( STDMETHODCALLTYPE *EndRenderPass )(
30023 ID3D12GraphicsCommandList5 * This);
30024
30025 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
30026 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
30027 ID3D12GraphicsCommandList5 * This,
30028 _In_ ID3D12MetaCommand *pMetaCommand,
30029 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
30030 _In_ SIZE_T InitializationParametersDataSizeInBytes);
30031
30032 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
30033 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
30034 ID3D12GraphicsCommandList5 * This,
30035 _In_ ID3D12MetaCommand *pMetaCommand,
30036 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
30037 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
30038
30039 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
30040 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
30041 ID3D12GraphicsCommandList5 * This,
30042 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
30043 _In_ UINT NumPostbuildInfoDescs,
30044 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
30045
30046 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
30047 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
30048 ID3D12GraphicsCommandList5 * This,
30049 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
30050 _In_ UINT NumSourceAccelerationStructures,
30051 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
30052
30053 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
30054 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
30055 ID3D12GraphicsCommandList5 * This,
30056 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
30057 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
30058 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
30059
30060 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
30061 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
30062 ID3D12GraphicsCommandList5 * This,
30063 _In_ ID3D12StateObject *pStateObject);
30064
30065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
30066 void ( STDMETHODCALLTYPE *DispatchRays )(
30067 ID3D12GraphicsCommandList5 * This,
30068 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
30069
30070 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
30071 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
30072 ID3D12GraphicsCommandList5 * This,
30073 _In_ D3D12_SHADING_RATE baseShadingRate,
30074 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
30075
30076 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
30077 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
30078 ID3D12GraphicsCommandList5 * This,
30079 _In_opt_ ID3D12Resource *shadingRateImage);
30080
30081 END_INTERFACE
30082 } ID3D12GraphicsCommandList5Vtbl;
30083
30084 interface ID3D12GraphicsCommandList5
30085 {
30086 CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl;
30087 };
30088
30089
30090
30091#ifdef COBJMACROS
30092
30093
30094#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \
30095 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30096
30097#define ID3D12GraphicsCommandList5_AddRef(This) \
30098 ( (This)->lpVtbl -> AddRef(This) )
30099
30100#define ID3D12GraphicsCommandList5_Release(This) \
30101 ( (This)->lpVtbl -> Release(This) )
30102
30103
30104#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \
30105 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
30106
30107#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \
30108 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
30109
30110#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \
30111 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
30112
30113#define ID3D12GraphicsCommandList5_SetName(This,Name) \
30114 ( (This)->lpVtbl -> SetName(This,Name) )
30115
30116
30117#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \
30118 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
30119
30120
30121#define ID3D12GraphicsCommandList5_GetType(This) \
30122 ( (This)->lpVtbl -> GetType(This) )
30123
30124
30125#define ID3D12GraphicsCommandList5_Close(This) \
30126 ( (This)->lpVtbl -> Close(This) )
30127
30128#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \
30129 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
30130
30131#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \
30132 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
30133
30134#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
30135 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
30136
30137#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
30138 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
30139
30140#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
30141 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
30142
30143#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
30144 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
30145
30146#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
30147 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
30148
30149#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \
30150 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
30151
30152#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
30153 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
30154
30155#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
30156 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
30157
30158#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \
30159 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
30160
30161#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \
30162 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
30163
30164#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \
30165 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
30166
30167#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \
30168 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
30169
30170#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \
30171 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
30172
30173#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \
30174 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
30175
30176#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \
30177 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
30178
30179#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \
30180 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
30181
30182#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
30183 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
30184
30185#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \
30186 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
30187
30188#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \
30189 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
30190
30191#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
30192 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
30193
30194#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
30195 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
30196
30197#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
30198 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
30199
30200#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
30201 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
30202
30203#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
30204 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
30205
30206#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
30207 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
30208
30209#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
30210 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
30211
30212#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
30213 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
30214
30215#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
30216 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
30217
30218#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
30219 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
30220
30221#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
30222 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
30223
30224#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
30225 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
30226
30227#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \
30228 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
30229
30230#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
30231 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
30232
30233#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \
30234 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
30235
30236#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
30237 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
30238
30239#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
30240 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
30241
30242#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
30243 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
30244
30245#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
30246 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
30247
30248#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
30249 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
30250
30251#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \
30252 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
30253
30254#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \
30255 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
30256
30257#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \
30258 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
30259
30260#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
30261 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
30262
30263#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
30264 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
30265
30266#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \
30267 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
30268
30269#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \
30270 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
30271
30272#define ID3D12GraphicsCommandList5_EndEvent(This) \
30273 ( (This)->lpVtbl -> EndEvent(This) )
30274
30275#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
30276 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
30277
30278
30279#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
30280 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
30281
30282#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
30283 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
30284
30285#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \
30286 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
30287
30288#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
30289 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
30290
30291#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
30292 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
30293
30294#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \
30295 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
30296
30297
30298#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \
30299 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
30300
30301
30302#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \
30303 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
30304
30305
30306#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
30307 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
30308
30309#define ID3D12GraphicsCommandList5_EndRenderPass(This) \
30310 ( (This)->lpVtbl -> EndRenderPass(This) )
30311
30312#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
30313 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
30314
30315#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
30316 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
30317
30318#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
30319 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
30320
30321#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
30322 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
30323
30324#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
30325 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
30326
30327#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \
30328 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
30329
30330#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \
30331 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
30332
30333
30334#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \
30335 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
30336
30337#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \
30338 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
30339
30340#endif /* COBJMACROS */
30341
30342
30343#endif /* C style interface */
30344
30345
30346
30347
30348#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
30349
30350
30351/* interface __MIDL_itf_d3d12_0000_0068 */
30352/* [local] */
30353
30354typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
30355 {
30356 UINT ThreadGroupCountX;
30357 UINT ThreadGroupCountY;
30358 UINT ThreadGroupCountZ;
30359 } D3D12_DISPATCH_MESH_ARGUMENTS;
30360
30361
30362
30363extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_c_ifspec;
30364extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0068_v0_0_s_ifspec;
30365
30366#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
30367#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
30368
30369/* interface ID3D12GraphicsCommandList6 */
30370/* [unique][local][object][uuid] */
30371
30372
30373EXTERN_C const IID IID_ID3D12GraphicsCommandList6;
30374
30375#if defined(__cplusplus) && !defined(CINTERFACE)
30376
30377 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
30378 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
30379 {
30380 public:
30381 virtual void STDMETHODCALLTYPE DispatchMesh(
30382 _In_ UINT ThreadGroupCountX,
30383 _In_ UINT ThreadGroupCountY,
30384 _In_ UINT ThreadGroupCountZ) = 0;
30385
30386 };
30387
30388
30389#else /* C style interface */
30390
30391 typedef struct ID3D12GraphicsCommandList6Vtbl
30392 {
30393 BEGIN_INTERFACE
30394
30395 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30396 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30397 ID3D12GraphicsCommandList6 * This,
30398 REFIID riid,
30399 _COM_Outptr_ void **ppvObject);
30400
30401 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30402 ULONG ( STDMETHODCALLTYPE *AddRef )(
30403 ID3D12GraphicsCommandList6 * This);
30404
30405 DECLSPEC_XFGVIRT(IUnknown, Release)
30406 ULONG ( STDMETHODCALLTYPE *Release )(
30407 ID3D12GraphicsCommandList6 * This);
30408
30409 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
30410 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
30411 ID3D12GraphicsCommandList6 * This,
30412 _In_ REFGUID guid,
30413 _Inout_ UINT *pDataSize,
30414 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
30415
30416 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
30417 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
30418 ID3D12GraphicsCommandList6 * This,
30419 _In_ REFGUID guid,
30420 _In_ UINT DataSize,
30421 _In_reads_bytes_opt_( DataSize ) const void *pData);
30422
30423 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
30424 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
30425 ID3D12GraphicsCommandList6 * This,
30426 _In_ REFGUID guid,
30427 _In_opt_ const IUnknown *pData);
30428
30429 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
30430 HRESULT ( STDMETHODCALLTYPE *SetName )(
30431 ID3D12GraphicsCommandList6 * This,
30432 _In_z_ LPCWSTR Name);
30433
30434 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
30435 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
30436 ID3D12GraphicsCommandList6 * This,
30437 REFIID riid,
30438 _COM_Outptr_opt_ void **ppvDevice);
30439
30440 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
30441 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
30442 ID3D12GraphicsCommandList6 * This);
30443
30444 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
30445 HRESULT ( STDMETHODCALLTYPE *Close )(
30446 ID3D12GraphicsCommandList6 * This);
30447
30448 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
30449 HRESULT ( STDMETHODCALLTYPE *Reset )(
30450 ID3D12GraphicsCommandList6 * This,
30451 _In_ ID3D12CommandAllocator *pAllocator,
30452 _In_opt_ ID3D12PipelineState *pInitialState);
30453
30454 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
30455 void ( STDMETHODCALLTYPE *ClearState )(
30456 ID3D12GraphicsCommandList6 * This,
30457 _In_opt_ ID3D12PipelineState *pPipelineState);
30458
30459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
30460 void ( STDMETHODCALLTYPE *DrawInstanced )(
30461 ID3D12GraphicsCommandList6 * This,
30462 _In_ UINT VertexCountPerInstance,
30463 _In_ UINT InstanceCount,
30464 _In_ UINT StartVertexLocation,
30465 _In_ UINT StartInstanceLocation);
30466
30467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
30468 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
30469 ID3D12GraphicsCommandList6 * This,
30470 _In_ UINT IndexCountPerInstance,
30471 _In_ UINT InstanceCount,
30472 _In_ UINT StartIndexLocation,
30473 _In_ INT BaseVertexLocation,
30474 _In_ UINT StartInstanceLocation);
30475
30476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
30477 void ( STDMETHODCALLTYPE *Dispatch )(
30478 ID3D12GraphicsCommandList6 * This,
30479 _In_ UINT ThreadGroupCountX,
30480 _In_ UINT ThreadGroupCountY,
30481 _In_ UINT ThreadGroupCountZ);
30482
30483 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
30484 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
30485 ID3D12GraphicsCommandList6 * This,
30486 _In_ ID3D12Resource *pDstBuffer,
30487 UINT64 DstOffset,
30488 _In_ ID3D12Resource *pSrcBuffer,
30489 UINT64 SrcOffset,
30490 UINT64 NumBytes);
30491
30492 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
30493 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
30494 ID3D12GraphicsCommandList6 * This,
30495 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
30496 UINT DstX,
30497 UINT DstY,
30498 UINT DstZ,
30499 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
30500 _In_opt_ const D3D12_BOX *pSrcBox);
30501
30502 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
30503 void ( STDMETHODCALLTYPE *CopyResource )(
30504 ID3D12GraphicsCommandList6 * This,
30505 _In_ ID3D12Resource *pDstResource,
30506 _In_ ID3D12Resource *pSrcResource);
30507
30508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
30509 void ( STDMETHODCALLTYPE *CopyTiles )(
30510 ID3D12GraphicsCommandList6 * This,
30511 _In_ ID3D12Resource *pTiledResource,
30512 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
30513 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
30514 _In_ ID3D12Resource *pBuffer,
30515 UINT64 BufferStartOffsetInBytes,
30516 D3D12_TILE_COPY_FLAGS Flags);
30517
30518 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
30519 void ( STDMETHODCALLTYPE *ResolveSubresource )(
30520 ID3D12GraphicsCommandList6 * This,
30521 _In_ ID3D12Resource *pDstResource,
30522 _In_ UINT DstSubresource,
30523 _In_ ID3D12Resource *pSrcResource,
30524 _In_ UINT SrcSubresource,
30525 _In_ DXGI_FORMAT Format);
30526
30527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
30528 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
30529 ID3D12GraphicsCommandList6 * This,
30530 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
30531
30532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
30533 void ( STDMETHODCALLTYPE *RSSetViewports )(
30534 ID3D12GraphicsCommandList6 * This,
30535 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
30536 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
30537
30538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
30539 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
30540 ID3D12GraphicsCommandList6 * This,
30541 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
30542 _In_reads_( NumRects) const D3D12_RECT *pRects);
30543
30544 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
30545 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
30546 ID3D12GraphicsCommandList6 * This,
30547 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
30548
30549 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
30550 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
30551 ID3D12GraphicsCommandList6 * This,
30552 _In_ UINT StencilRef);
30553
30554 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
30555 void ( STDMETHODCALLTYPE *SetPipelineState )(
30556 ID3D12GraphicsCommandList6 * This,
30557 _In_ ID3D12PipelineState *pPipelineState);
30558
30559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
30560 void ( STDMETHODCALLTYPE *ResourceBarrier )(
30561 ID3D12GraphicsCommandList6 * This,
30562 _In_ UINT NumBarriers,
30563 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
30564
30565 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
30566 void ( STDMETHODCALLTYPE *ExecuteBundle )(
30567 ID3D12GraphicsCommandList6 * This,
30568 _In_ ID3D12GraphicsCommandList *pCommandList);
30569
30570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
30571 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
30572 ID3D12GraphicsCommandList6 * This,
30573 _In_ UINT NumDescriptorHeaps,
30574 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
30575
30576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
30577 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
30578 ID3D12GraphicsCommandList6 * This,
30579 _In_opt_ ID3D12RootSignature *pRootSignature);
30580
30581 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
30582 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
30583 ID3D12GraphicsCommandList6 * This,
30584 _In_opt_ ID3D12RootSignature *pRootSignature);
30585
30586 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
30587 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
30588 ID3D12GraphicsCommandList6 * This,
30589 _In_ UINT RootParameterIndex,
30590 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
30591
30592 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
30593 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
30594 ID3D12GraphicsCommandList6 * This,
30595 _In_ UINT RootParameterIndex,
30596 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
30597
30598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
30599 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
30600 ID3D12GraphicsCommandList6 * This,
30601 _In_ UINT RootParameterIndex,
30602 _In_ UINT SrcData,
30603 _In_ UINT DestOffsetIn32BitValues);
30604
30605 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
30606 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
30607 ID3D12GraphicsCommandList6 * This,
30608 _In_ UINT RootParameterIndex,
30609 _In_ UINT SrcData,
30610 _In_ UINT DestOffsetIn32BitValues);
30611
30612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
30613 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
30614 ID3D12GraphicsCommandList6 * This,
30615 _In_ UINT RootParameterIndex,
30616 _In_ UINT Num32BitValuesToSet,
30617 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
30618 _In_ UINT DestOffsetIn32BitValues);
30619
30620 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
30621 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
30622 ID3D12GraphicsCommandList6 * This,
30623 _In_ UINT RootParameterIndex,
30624 _In_ UINT Num32BitValuesToSet,
30625 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
30626 _In_ UINT DestOffsetIn32BitValues);
30627
30628 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
30629 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
30630 ID3D12GraphicsCommandList6 * This,
30631 _In_ UINT RootParameterIndex,
30632 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30633
30634 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
30635 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
30636 ID3D12GraphicsCommandList6 * This,
30637 _In_ UINT RootParameterIndex,
30638 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30639
30640 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
30641 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
30642 ID3D12GraphicsCommandList6 * This,
30643 _In_ UINT RootParameterIndex,
30644 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30645
30646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
30647 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
30648 ID3D12GraphicsCommandList6 * This,
30649 _In_ UINT RootParameterIndex,
30650 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30651
30652 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
30653 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
30654 ID3D12GraphicsCommandList6 * This,
30655 _In_ UINT RootParameterIndex,
30656 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30657
30658 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
30659 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
30660 ID3D12GraphicsCommandList6 * This,
30661 _In_ UINT RootParameterIndex,
30662 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
30663
30664 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
30665 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
30666 ID3D12GraphicsCommandList6 * This,
30667 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
30668
30669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
30670 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
30671 ID3D12GraphicsCommandList6 * This,
30672 _In_ UINT StartSlot,
30673 _In_ UINT NumViews,
30674 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
30675
30676 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
30677 void ( STDMETHODCALLTYPE *SOSetTargets )(
30678 ID3D12GraphicsCommandList6 * This,
30679 _In_ UINT StartSlot,
30680 _In_ UINT NumViews,
30681 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
30682
30683 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
30684 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
30685 ID3D12GraphicsCommandList6 * This,
30686 _In_ UINT NumRenderTargetDescriptors,
30687 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
30688 _In_ BOOL RTsSingleHandleToDescriptorRange,
30689 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
30690
30691 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
30692 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
30693 ID3D12GraphicsCommandList6 * This,
30694 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
30695 _In_ D3D12_CLEAR_FLAGS ClearFlags,
30696 _In_ FLOAT Depth,
30697 _In_ UINT8 Stencil,
30698 _In_ UINT NumRects,
30699 _In_reads_(NumRects) const D3D12_RECT *pRects);
30700
30701 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
30702 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
30703 ID3D12GraphicsCommandList6 * This,
30704 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
30705 _In_ const FLOAT ColorRGBA[ 4 ],
30706 _In_ UINT NumRects,
30707 _In_reads_(NumRects) const D3D12_RECT *pRects);
30708
30709 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
30710 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
30711 ID3D12GraphicsCommandList6 * This,
30712 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
30713 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
30714 _In_ ID3D12Resource *pResource,
30715 _In_ const UINT Values[ 4 ],
30716 _In_ UINT NumRects,
30717 _In_reads_(NumRects) const D3D12_RECT *pRects);
30718
30719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
30720 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
30721 ID3D12GraphicsCommandList6 * This,
30722 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
30723 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
30724 _In_ ID3D12Resource *pResource,
30725 _In_ const FLOAT Values[ 4 ],
30726 _In_ UINT NumRects,
30727 _In_reads_(NumRects) const D3D12_RECT *pRects);
30728
30729 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
30730 void ( STDMETHODCALLTYPE *DiscardResource )(
30731 ID3D12GraphicsCommandList6 * This,
30732 _In_ ID3D12Resource *pResource,
30733 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
30734
30735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
30736 void ( STDMETHODCALLTYPE *BeginQuery )(
30737 ID3D12GraphicsCommandList6 * This,
30738 _In_ ID3D12QueryHeap *pQueryHeap,
30739 _In_ D3D12_QUERY_TYPE Type,
30740 _In_ UINT Index);
30741
30742 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
30743 void ( STDMETHODCALLTYPE *EndQuery )(
30744 ID3D12GraphicsCommandList6 * This,
30745 _In_ ID3D12QueryHeap *pQueryHeap,
30746 _In_ D3D12_QUERY_TYPE Type,
30747 _In_ UINT Index);
30748
30749 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
30750 void ( STDMETHODCALLTYPE *ResolveQueryData )(
30751 ID3D12GraphicsCommandList6 * This,
30752 _In_ ID3D12QueryHeap *pQueryHeap,
30753 _In_ D3D12_QUERY_TYPE Type,
30754 _In_ UINT StartIndex,
30755 _In_ UINT NumQueries,
30756 _In_ ID3D12Resource *pDestinationBuffer,
30757 _In_ UINT64 AlignedDestinationBufferOffset);
30758
30759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
30760 void ( STDMETHODCALLTYPE *SetPredication )(
30761 ID3D12GraphicsCommandList6 * This,
30762 _In_opt_ ID3D12Resource *pBuffer,
30763 _In_ UINT64 AlignedBufferOffset,
30764 _In_ D3D12_PREDICATION_OP Operation);
30765
30766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
30767 void ( STDMETHODCALLTYPE *SetMarker )(
30768 ID3D12GraphicsCommandList6 * This,
30769 UINT Metadata,
30770 _In_reads_bytes_opt_(Size) const void *pData,
30771 UINT Size);
30772
30773 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
30774 void ( STDMETHODCALLTYPE *BeginEvent )(
30775 ID3D12GraphicsCommandList6 * This,
30776 UINT Metadata,
30777 _In_reads_bytes_opt_(Size) const void *pData,
30778 UINT Size);
30779
30780 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
30781 void ( STDMETHODCALLTYPE *EndEvent )(
30782 ID3D12GraphicsCommandList6 * This);
30783
30784 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
30785 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
30786 ID3D12GraphicsCommandList6 * This,
30787 _In_ ID3D12CommandSignature *pCommandSignature,
30788 _In_ UINT MaxCommandCount,
30789 _In_ ID3D12Resource *pArgumentBuffer,
30790 _In_ UINT64 ArgumentBufferOffset,
30791 _In_opt_ ID3D12Resource *pCountBuffer,
30792 _In_ UINT64 CountBufferOffset);
30793
30794 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
30795 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
30796 ID3D12GraphicsCommandList6 * This,
30797 _In_ ID3D12Resource *pDstBuffer,
30798 UINT64 DstOffset,
30799 _In_ ID3D12Resource *pSrcBuffer,
30800 UINT64 SrcOffset,
30801 UINT Dependencies,
30802 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
30803 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
30804
30805 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
30806 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
30807 ID3D12GraphicsCommandList6 * This,
30808 _In_ ID3D12Resource *pDstBuffer,
30809 UINT64 DstOffset,
30810 _In_ ID3D12Resource *pSrcBuffer,
30811 UINT64 SrcOffset,
30812 UINT Dependencies,
30813 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
30814 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
30815
30816 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
30817 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
30818 ID3D12GraphicsCommandList6 * This,
30819 _In_ FLOAT Min,
30820 _In_ FLOAT Max);
30821
30822 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
30823 void ( STDMETHODCALLTYPE *SetSamplePositions )(
30824 ID3D12GraphicsCommandList6 * This,
30825 _In_ UINT NumSamplesPerPixel,
30826 _In_ UINT NumPixels,
30827 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
30828
30829 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
30830 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
30831 ID3D12GraphicsCommandList6 * This,
30832 _In_ ID3D12Resource *pDstResource,
30833 _In_ UINT DstSubresource,
30834 _In_ UINT DstX,
30835 _In_ UINT DstY,
30836 _In_ ID3D12Resource *pSrcResource,
30837 _In_ UINT SrcSubresource,
30838 _In_opt_ D3D12_RECT *pSrcRect,
30839 _In_ DXGI_FORMAT Format,
30840 _In_ D3D12_RESOLVE_MODE ResolveMode);
30841
30842 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
30843 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
30844 ID3D12GraphicsCommandList6 * This,
30845 _In_ UINT Mask);
30846
30847 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
30848 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
30849 ID3D12GraphicsCommandList6 * This,
30850 UINT Count,
30851 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
30852 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
30853
30854 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
30855 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
30856 ID3D12GraphicsCommandList6 * This,
30857 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
30858
30859 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
30860 void ( STDMETHODCALLTYPE *BeginRenderPass )(
30861 ID3D12GraphicsCommandList6 * This,
30862 _In_ UINT NumRenderTargets,
30863 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
30864 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
30865 D3D12_RENDER_PASS_FLAGS Flags);
30866
30867 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
30868 void ( STDMETHODCALLTYPE *EndRenderPass )(
30869 ID3D12GraphicsCommandList6 * This);
30870
30871 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
30872 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
30873 ID3D12GraphicsCommandList6 * This,
30874 _In_ ID3D12MetaCommand *pMetaCommand,
30875 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
30876 _In_ SIZE_T InitializationParametersDataSizeInBytes);
30877
30878 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
30879 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
30880 ID3D12GraphicsCommandList6 * This,
30881 _In_ ID3D12MetaCommand *pMetaCommand,
30882 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
30883 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
30884
30885 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
30886 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
30887 ID3D12GraphicsCommandList6 * This,
30888 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
30889 _In_ UINT NumPostbuildInfoDescs,
30890 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
30891
30892 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
30893 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
30894 ID3D12GraphicsCommandList6 * This,
30895 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
30896 _In_ UINT NumSourceAccelerationStructures,
30897 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
30898
30899 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
30900 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
30901 ID3D12GraphicsCommandList6 * This,
30902 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
30903 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
30904 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
30905
30906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
30907 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
30908 ID3D12GraphicsCommandList6 * This,
30909 _In_ ID3D12StateObject *pStateObject);
30910
30911 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
30912 void ( STDMETHODCALLTYPE *DispatchRays )(
30913 ID3D12GraphicsCommandList6 * This,
30914 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
30915
30916 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
30917 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
30918 ID3D12GraphicsCommandList6 * This,
30919 _In_ D3D12_SHADING_RATE baseShadingRate,
30920 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
30921
30922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
30923 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
30924 ID3D12GraphicsCommandList6 * This,
30925 _In_opt_ ID3D12Resource *shadingRateImage);
30926
30927 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
30928 void ( STDMETHODCALLTYPE *DispatchMesh )(
30929 ID3D12GraphicsCommandList6 * This,
30930 _In_ UINT ThreadGroupCountX,
30931 _In_ UINT ThreadGroupCountY,
30932 _In_ UINT ThreadGroupCountZ);
30933
30934 END_INTERFACE
30935 } ID3D12GraphicsCommandList6Vtbl;
30936
30937 interface ID3D12GraphicsCommandList6
30938 {
30939 CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl;
30940 };
30941
30942
30943
30944#ifdef COBJMACROS
30945
30946
30947#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \
30948 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30949
30950#define ID3D12GraphicsCommandList6_AddRef(This) \
30951 ( (This)->lpVtbl -> AddRef(This) )
30952
30953#define ID3D12GraphicsCommandList6_Release(This) \
30954 ( (This)->lpVtbl -> Release(This) )
30955
30956
30957#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \
30958 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
30959
30960#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \
30961 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
30962
30963#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \
30964 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
30965
30966#define ID3D12GraphicsCommandList6_SetName(This,Name) \
30967 ( (This)->lpVtbl -> SetName(This,Name) )
30968
30969
30970#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \
30971 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
30972
30973
30974#define ID3D12GraphicsCommandList6_GetType(This) \
30975 ( (This)->lpVtbl -> GetType(This) )
30976
30977
30978#define ID3D12GraphicsCommandList6_Close(This) \
30979 ( (This)->lpVtbl -> Close(This) )
30980
30981#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \
30982 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
30983
30984#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \
30985 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
30986
30987#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
30988 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
30989
30990#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
30991 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
30992
30993#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
30994 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
30995
30996#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
30997 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
30998
30999#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
31000 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
31001
31002#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \
31003 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
31004
31005#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
31006 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
31007
31008#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
31009 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
31010
31011#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \
31012 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
31013
31014#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \
31015 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
31016
31017#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \
31018 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
31019
31020#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \
31021 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
31022
31023#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \
31024 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
31025
31026#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \
31027 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
31028
31029#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \
31030 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
31031
31032#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \
31033 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
31034
31035#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
31036 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
31037
31038#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \
31039 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
31040
31041#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \
31042 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
31043
31044#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
31045 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
31046
31047#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
31048 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
31049
31050#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
31051 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
31052
31053#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
31054 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
31055
31056#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
31057 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
31058
31059#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
31060 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
31061
31062#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
31063 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
31064
31065#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
31066 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
31067
31068#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
31069 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
31070
31071#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
31072 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
31073
31074#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
31075 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
31076
31077#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
31078 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
31079
31080#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \
31081 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
31082
31083#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
31084 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
31085
31086#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \
31087 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
31088
31089#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
31090 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
31091
31092#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
31093 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
31094
31095#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
31096 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
31097
31098#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
31099 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
31100
31101#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
31102 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
31103
31104#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \
31105 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
31106
31107#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \
31108 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
31109
31110#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \
31111 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
31112
31113#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
31114 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
31115
31116#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
31117 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
31118
31119#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \
31120 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
31121
31122#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \
31123 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
31124
31125#define ID3D12GraphicsCommandList6_EndEvent(This) \
31126 ( (This)->lpVtbl -> EndEvent(This) )
31127
31128#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
31129 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
31130
31131
31132#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
31133 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
31134
31135#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
31136 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
31137
31138#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \
31139 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
31140
31141#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
31142 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
31143
31144#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
31145 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
31146
31147#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \
31148 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
31149
31150
31151#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \
31152 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
31153
31154
31155#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \
31156 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
31157
31158
31159#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
31160 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
31161
31162#define ID3D12GraphicsCommandList6_EndRenderPass(This) \
31163 ( (This)->lpVtbl -> EndRenderPass(This) )
31164
31165#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
31166 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
31167
31168#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
31169 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
31170
31171#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
31172 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
31173
31174#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
31175 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
31176
31177#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
31178 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
31179
31180#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \
31181 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
31182
31183#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \
31184 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
31185
31186
31187#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \
31188 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
31189
31190#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \
31191 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
31192
31193
31194#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
31195 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
31196
31197#endif /* COBJMACROS */
31198
31199
31200#endif /* C style interface */
31201
31202
31203
31204
31205#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
31206
31207
31208#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
31209#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
31210
31211/* interface ID3D12GraphicsCommandList7 */
31212/* [unique][local][object][uuid] */
31213
31214
31215EXTERN_C const IID IID_ID3D12GraphicsCommandList7;
31216
31217#if defined(__cplusplus) && !defined(CINTERFACE)
31218
31219 MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
31220 ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
31221 {
31222 public:
31223 virtual void STDMETHODCALLTYPE Barrier(
31224 UINT32 NumBarrierGroups,
31225 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
31226
31227 };
31228
31229
31230#else /* C style interface */
31231
31232 typedef struct ID3D12GraphicsCommandList7Vtbl
31233 {
31234 BEGIN_INTERFACE
31235
31236 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31237 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31238 ID3D12GraphicsCommandList7 * This,
31239 REFIID riid,
31240 _COM_Outptr_ void **ppvObject);
31241
31242 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31243 ULONG ( STDMETHODCALLTYPE *AddRef )(
31244 ID3D12GraphicsCommandList7 * This);
31245
31246 DECLSPEC_XFGVIRT(IUnknown, Release)
31247 ULONG ( STDMETHODCALLTYPE *Release )(
31248 ID3D12GraphicsCommandList7 * This);
31249
31250 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
31251 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
31252 ID3D12GraphicsCommandList7 * This,
31253 _In_ REFGUID guid,
31254 _Inout_ UINT *pDataSize,
31255 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
31256
31257 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
31258 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
31259 ID3D12GraphicsCommandList7 * This,
31260 _In_ REFGUID guid,
31261 _In_ UINT DataSize,
31262 _In_reads_bytes_opt_( DataSize ) const void *pData);
31263
31264 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
31265 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
31266 ID3D12GraphicsCommandList7 * This,
31267 _In_ REFGUID guid,
31268 _In_opt_ const IUnknown *pData);
31269
31270 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
31271 HRESULT ( STDMETHODCALLTYPE *SetName )(
31272 ID3D12GraphicsCommandList7 * This,
31273 _In_z_ LPCWSTR Name);
31274
31275 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
31276 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
31277 ID3D12GraphicsCommandList7 * This,
31278 REFIID riid,
31279 _COM_Outptr_opt_ void **ppvDevice);
31280
31281 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
31282 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
31283 ID3D12GraphicsCommandList7 * This);
31284
31285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
31286 HRESULT ( STDMETHODCALLTYPE *Close )(
31287 ID3D12GraphicsCommandList7 * This);
31288
31289 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
31290 HRESULT ( STDMETHODCALLTYPE *Reset )(
31291 ID3D12GraphicsCommandList7 * This,
31292 _In_ ID3D12CommandAllocator *pAllocator,
31293 _In_opt_ ID3D12PipelineState *pInitialState);
31294
31295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
31296 void ( STDMETHODCALLTYPE *ClearState )(
31297 ID3D12GraphicsCommandList7 * This,
31298 _In_opt_ ID3D12PipelineState *pPipelineState);
31299
31300 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
31301 void ( STDMETHODCALLTYPE *DrawInstanced )(
31302 ID3D12GraphicsCommandList7 * This,
31303 _In_ UINT VertexCountPerInstance,
31304 _In_ UINT InstanceCount,
31305 _In_ UINT StartVertexLocation,
31306 _In_ UINT StartInstanceLocation);
31307
31308 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
31309 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
31310 ID3D12GraphicsCommandList7 * This,
31311 _In_ UINT IndexCountPerInstance,
31312 _In_ UINT InstanceCount,
31313 _In_ UINT StartIndexLocation,
31314 _In_ INT BaseVertexLocation,
31315 _In_ UINT StartInstanceLocation);
31316
31317 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
31318 void ( STDMETHODCALLTYPE *Dispatch )(
31319 ID3D12GraphicsCommandList7 * This,
31320 _In_ UINT ThreadGroupCountX,
31321 _In_ UINT ThreadGroupCountY,
31322 _In_ UINT ThreadGroupCountZ);
31323
31324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
31325 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
31326 ID3D12GraphicsCommandList7 * This,
31327 _In_ ID3D12Resource *pDstBuffer,
31328 UINT64 DstOffset,
31329 _In_ ID3D12Resource *pSrcBuffer,
31330 UINT64 SrcOffset,
31331 UINT64 NumBytes);
31332
31333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
31334 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
31335 ID3D12GraphicsCommandList7 * This,
31336 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
31337 UINT DstX,
31338 UINT DstY,
31339 UINT DstZ,
31340 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
31341 _In_opt_ const D3D12_BOX *pSrcBox);
31342
31343 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
31344 void ( STDMETHODCALLTYPE *CopyResource )(
31345 ID3D12GraphicsCommandList7 * This,
31346 _In_ ID3D12Resource *pDstResource,
31347 _In_ ID3D12Resource *pSrcResource);
31348
31349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
31350 void ( STDMETHODCALLTYPE *CopyTiles )(
31351 ID3D12GraphicsCommandList7 * This,
31352 _In_ ID3D12Resource *pTiledResource,
31353 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
31354 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
31355 _In_ ID3D12Resource *pBuffer,
31356 UINT64 BufferStartOffsetInBytes,
31357 D3D12_TILE_COPY_FLAGS Flags);
31358
31359 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
31360 void ( STDMETHODCALLTYPE *ResolveSubresource )(
31361 ID3D12GraphicsCommandList7 * This,
31362 _In_ ID3D12Resource *pDstResource,
31363 _In_ UINT DstSubresource,
31364 _In_ ID3D12Resource *pSrcResource,
31365 _In_ UINT SrcSubresource,
31366 _In_ DXGI_FORMAT Format);
31367
31368 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
31369 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
31370 ID3D12GraphicsCommandList7 * This,
31371 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
31372
31373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
31374 void ( STDMETHODCALLTYPE *RSSetViewports )(
31375 ID3D12GraphicsCommandList7 * This,
31376 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
31377 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
31378
31379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
31380 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
31381 ID3D12GraphicsCommandList7 * This,
31382 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
31383 _In_reads_( NumRects) const D3D12_RECT *pRects);
31384
31385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
31386 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
31387 ID3D12GraphicsCommandList7 * This,
31388 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
31389
31390 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
31391 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
31392 ID3D12GraphicsCommandList7 * This,
31393 _In_ UINT StencilRef);
31394
31395 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
31396 void ( STDMETHODCALLTYPE *SetPipelineState )(
31397 ID3D12GraphicsCommandList7 * This,
31398 _In_ ID3D12PipelineState *pPipelineState);
31399
31400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
31401 void ( STDMETHODCALLTYPE *ResourceBarrier )(
31402 ID3D12GraphicsCommandList7 * This,
31403 _In_ UINT NumBarriers,
31404 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
31405
31406 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
31407 void ( STDMETHODCALLTYPE *ExecuteBundle )(
31408 ID3D12GraphicsCommandList7 * This,
31409 _In_ ID3D12GraphicsCommandList *pCommandList);
31410
31411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
31412 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
31413 ID3D12GraphicsCommandList7 * This,
31414 _In_ UINT NumDescriptorHeaps,
31415 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
31416
31417 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
31418 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
31419 ID3D12GraphicsCommandList7 * This,
31420 _In_opt_ ID3D12RootSignature *pRootSignature);
31421
31422 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
31423 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
31424 ID3D12GraphicsCommandList7 * This,
31425 _In_opt_ ID3D12RootSignature *pRootSignature);
31426
31427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
31428 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
31429 ID3D12GraphicsCommandList7 * This,
31430 _In_ UINT RootParameterIndex,
31431 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31432
31433 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
31434 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
31435 ID3D12GraphicsCommandList7 * This,
31436 _In_ UINT RootParameterIndex,
31437 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31438
31439 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
31440 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
31441 ID3D12GraphicsCommandList7 * This,
31442 _In_ UINT RootParameterIndex,
31443 _In_ UINT SrcData,
31444 _In_ UINT DestOffsetIn32BitValues);
31445
31446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
31447 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
31448 ID3D12GraphicsCommandList7 * This,
31449 _In_ UINT RootParameterIndex,
31450 _In_ UINT SrcData,
31451 _In_ UINT DestOffsetIn32BitValues);
31452
31453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
31454 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
31455 ID3D12GraphicsCommandList7 * This,
31456 _In_ UINT RootParameterIndex,
31457 _In_ UINT Num32BitValuesToSet,
31458 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31459 _In_ UINT DestOffsetIn32BitValues);
31460
31461 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
31462 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
31463 ID3D12GraphicsCommandList7 * This,
31464 _In_ UINT RootParameterIndex,
31465 _In_ UINT Num32BitValuesToSet,
31466 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31467 _In_ UINT DestOffsetIn32BitValues);
31468
31469 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
31470 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
31471 ID3D12GraphicsCommandList7 * This,
31472 _In_ UINT RootParameterIndex,
31473 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31474
31475 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
31476 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
31477 ID3D12GraphicsCommandList7 * This,
31478 _In_ UINT RootParameterIndex,
31479 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31480
31481 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
31482 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
31483 ID3D12GraphicsCommandList7 * This,
31484 _In_ UINT RootParameterIndex,
31485 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31486
31487 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
31488 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
31489 ID3D12GraphicsCommandList7 * This,
31490 _In_ UINT RootParameterIndex,
31491 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31492
31493 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
31494 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
31495 ID3D12GraphicsCommandList7 * This,
31496 _In_ UINT RootParameterIndex,
31497 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31498
31499 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
31500 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
31501 ID3D12GraphicsCommandList7 * This,
31502 _In_ UINT RootParameterIndex,
31503 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31504
31505 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
31506 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
31507 ID3D12GraphicsCommandList7 * This,
31508 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
31509
31510 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
31511 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
31512 ID3D12GraphicsCommandList7 * This,
31513 _In_ UINT StartSlot,
31514 _In_ UINT NumViews,
31515 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
31516
31517 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
31518 void ( STDMETHODCALLTYPE *SOSetTargets )(
31519 ID3D12GraphicsCommandList7 * This,
31520 _In_ UINT StartSlot,
31521 _In_ UINT NumViews,
31522 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
31523
31524 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
31525 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
31526 ID3D12GraphicsCommandList7 * This,
31527 _In_ UINT NumRenderTargetDescriptors,
31528 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
31529 _In_ BOOL RTsSingleHandleToDescriptorRange,
31530 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
31531
31532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
31533 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
31534 ID3D12GraphicsCommandList7 * This,
31535 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
31536 _In_ D3D12_CLEAR_FLAGS ClearFlags,
31537 _In_ FLOAT Depth,
31538 _In_ UINT8 Stencil,
31539 _In_ UINT NumRects,
31540 _In_reads_(NumRects) const D3D12_RECT *pRects);
31541
31542 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
31543 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
31544 ID3D12GraphicsCommandList7 * This,
31545 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
31546 _In_ const FLOAT ColorRGBA[ 4 ],
31547 _In_ UINT NumRects,
31548 _In_reads_(NumRects) const D3D12_RECT *pRects);
31549
31550 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
31551 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
31552 ID3D12GraphicsCommandList7 * This,
31553 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31554 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31555 _In_ ID3D12Resource *pResource,
31556 _In_ const UINT Values[ 4 ],
31557 _In_ UINT NumRects,
31558 _In_reads_(NumRects) const D3D12_RECT *pRects);
31559
31560 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
31561 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
31562 ID3D12GraphicsCommandList7 * This,
31563 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31564 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31565 _In_ ID3D12Resource *pResource,
31566 _In_ const FLOAT Values[ 4 ],
31567 _In_ UINT NumRects,
31568 _In_reads_(NumRects) const D3D12_RECT *pRects);
31569
31570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
31571 void ( STDMETHODCALLTYPE *DiscardResource )(
31572 ID3D12GraphicsCommandList7 * This,
31573 _In_ ID3D12Resource *pResource,
31574 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
31575
31576 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
31577 void ( STDMETHODCALLTYPE *BeginQuery )(
31578 ID3D12GraphicsCommandList7 * This,
31579 _In_ ID3D12QueryHeap *pQueryHeap,
31580 _In_ D3D12_QUERY_TYPE Type,
31581 _In_ UINT Index);
31582
31583 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
31584 void ( STDMETHODCALLTYPE *EndQuery )(
31585 ID3D12GraphicsCommandList7 * This,
31586 _In_ ID3D12QueryHeap *pQueryHeap,
31587 _In_ D3D12_QUERY_TYPE Type,
31588 _In_ UINT Index);
31589
31590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
31591 void ( STDMETHODCALLTYPE *ResolveQueryData )(
31592 ID3D12GraphicsCommandList7 * This,
31593 _In_ ID3D12QueryHeap *pQueryHeap,
31594 _In_ D3D12_QUERY_TYPE Type,
31595 _In_ UINT StartIndex,
31596 _In_ UINT NumQueries,
31597 _In_ ID3D12Resource *pDestinationBuffer,
31598 _In_ UINT64 AlignedDestinationBufferOffset);
31599
31600 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
31601 void ( STDMETHODCALLTYPE *SetPredication )(
31602 ID3D12GraphicsCommandList7 * This,
31603 _In_opt_ ID3D12Resource *pBuffer,
31604 _In_ UINT64 AlignedBufferOffset,
31605 _In_ D3D12_PREDICATION_OP Operation);
31606
31607 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
31608 void ( STDMETHODCALLTYPE *SetMarker )(
31609 ID3D12GraphicsCommandList7 * This,
31610 UINT Metadata,
31611 _In_reads_bytes_opt_(Size) const void *pData,
31612 UINT Size);
31613
31614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
31615 void ( STDMETHODCALLTYPE *BeginEvent )(
31616 ID3D12GraphicsCommandList7 * This,
31617 UINT Metadata,
31618 _In_reads_bytes_opt_(Size) const void *pData,
31619 UINT Size);
31620
31621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
31622 void ( STDMETHODCALLTYPE *EndEvent )(
31623 ID3D12GraphicsCommandList7 * This);
31624
31625 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
31626 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
31627 ID3D12GraphicsCommandList7 * This,
31628 _In_ ID3D12CommandSignature *pCommandSignature,
31629 _In_ UINT MaxCommandCount,
31630 _In_ ID3D12Resource *pArgumentBuffer,
31631 _In_ UINT64 ArgumentBufferOffset,
31632 _In_opt_ ID3D12Resource *pCountBuffer,
31633 _In_ UINT64 CountBufferOffset);
31634
31635 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
31636 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
31637 ID3D12GraphicsCommandList7 * This,
31638 _In_ ID3D12Resource *pDstBuffer,
31639 UINT64 DstOffset,
31640 _In_ ID3D12Resource *pSrcBuffer,
31641 UINT64 SrcOffset,
31642 UINT Dependencies,
31643 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31644 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31645
31646 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
31647 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
31648 ID3D12GraphicsCommandList7 * This,
31649 _In_ ID3D12Resource *pDstBuffer,
31650 UINT64 DstOffset,
31651 _In_ ID3D12Resource *pSrcBuffer,
31652 UINT64 SrcOffset,
31653 UINT Dependencies,
31654 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31655 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31656
31657 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
31658 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
31659 ID3D12GraphicsCommandList7 * This,
31660 _In_ FLOAT Min,
31661 _In_ FLOAT Max);
31662
31663 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
31664 void ( STDMETHODCALLTYPE *SetSamplePositions )(
31665 ID3D12GraphicsCommandList7 * This,
31666 _In_ UINT NumSamplesPerPixel,
31667 _In_ UINT NumPixels,
31668 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
31669
31670 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
31671 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
31672 ID3D12GraphicsCommandList7 * This,
31673 _In_ ID3D12Resource *pDstResource,
31674 _In_ UINT DstSubresource,
31675 _In_ UINT DstX,
31676 _In_ UINT DstY,
31677 _In_ ID3D12Resource *pSrcResource,
31678 _In_ UINT SrcSubresource,
31679 _In_opt_ D3D12_RECT *pSrcRect,
31680 _In_ DXGI_FORMAT Format,
31681 _In_ D3D12_RESOLVE_MODE ResolveMode);
31682
31683 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
31684 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
31685 ID3D12GraphicsCommandList7 * This,
31686 _In_ UINT Mask);
31687
31688 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
31689 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
31690 ID3D12GraphicsCommandList7 * This,
31691 UINT Count,
31692 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
31693 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
31694
31695 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
31696 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
31697 ID3D12GraphicsCommandList7 * This,
31698 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
31699
31700 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
31701 void ( STDMETHODCALLTYPE *BeginRenderPass )(
31702 ID3D12GraphicsCommandList7 * This,
31703 _In_ UINT NumRenderTargets,
31704 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
31705 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
31706 D3D12_RENDER_PASS_FLAGS Flags);
31707
31708 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
31709 void ( STDMETHODCALLTYPE *EndRenderPass )(
31710 ID3D12GraphicsCommandList7 * This);
31711
31712 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
31713 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
31714 ID3D12GraphicsCommandList7 * This,
31715 _In_ ID3D12MetaCommand *pMetaCommand,
31716 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
31717 _In_ SIZE_T InitializationParametersDataSizeInBytes);
31718
31719 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
31720 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
31721 ID3D12GraphicsCommandList7 * This,
31722 _In_ ID3D12MetaCommand *pMetaCommand,
31723 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
31724 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
31725
31726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
31727 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
31728 ID3D12GraphicsCommandList7 * This,
31729 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
31730 _In_ UINT NumPostbuildInfoDescs,
31731 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
31732
31733 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
31734 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
31735 ID3D12GraphicsCommandList7 * This,
31736 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
31737 _In_ UINT NumSourceAccelerationStructures,
31738 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
31739
31740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
31741 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
31742 ID3D12GraphicsCommandList7 * This,
31743 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
31744 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
31745 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
31746
31747 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
31748 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
31749 ID3D12GraphicsCommandList7 * This,
31750 _In_ ID3D12StateObject *pStateObject);
31751
31752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
31753 void ( STDMETHODCALLTYPE *DispatchRays )(
31754 ID3D12GraphicsCommandList7 * This,
31755 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
31756
31757 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
31758 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
31759 ID3D12GraphicsCommandList7 * This,
31760 _In_ D3D12_SHADING_RATE baseShadingRate,
31761 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
31762
31763 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
31764 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
31765 ID3D12GraphicsCommandList7 * This,
31766 _In_opt_ ID3D12Resource *shadingRateImage);
31767
31768 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
31769 void ( STDMETHODCALLTYPE *DispatchMesh )(
31770 ID3D12GraphicsCommandList7 * This,
31771 _In_ UINT ThreadGroupCountX,
31772 _In_ UINT ThreadGroupCountY,
31773 _In_ UINT ThreadGroupCountZ);
31774
31775 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
31776 void ( STDMETHODCALLTYPE *Barrier )(
31777 ID3D12GraphicsCommandList7 * This,
31778 UINT32 NumBarrierGroups,
31779 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
31780
31781 END_INTERFACE
31782 } ID3D12GraphicsCommandList7Vtbl;
31783
31784 interface ID3D12GraphicsCommandList7
31785 {
31786 CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl;
31787 };
31788
31789
31790
31791#ifdef COBJMACROS
31792
31793
31794#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \
31795 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31796
31797#define ID3D12GraphicsCommandList7_AddRef(This) \
31798 ( (This)->lpVtbl -> AddRef(This) )
31799
31800#define ID3D12GraphicsCommandList7_Release(This) \
31801 ( (This)->lpVtbl -> Release(This) )
31802
31803
31804#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \
31805 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
31806
31807#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \
31808 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
31809
31810#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \
31811 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
31812
31813#define ID3D12GraphicsCommandList7_SetName(This,Name) \
31814 ( (This)->lpVtbl -> SetName(This,Name) )
31815
31816
31817#define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \
31818 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
31819
31820
31821#define ID3D12GraphicsCommandList7_GetType(This) \
31822 ( (This)->lpVtbl -> GetType(This) )
31823
31824
31825#define ID3D12GraphicsCommandList7_Close(This) \
31826 ( (This)->lpVtbl -> Close(This) )
31827
31828#define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \
31829 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
31830
31831#define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \
31832 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
31833
31834#define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
31835 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
31836
31837#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
31838 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
31839
31840#define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
31841 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
31842
31843#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
31844 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
31845
31846#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
31847 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
31848
31849#define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \
31850 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
31851
31852#define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
31853 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
31854
31855#define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
31856 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
31857
31858#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \
31859 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
31860
31861#define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \
31862 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
31863
31864#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \
31865 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
31866
31867#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \
31868 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
31869
31870#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \
31871 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
31872
31873#define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \
31874 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
31875
31876#define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \
31877 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
31878
31879#define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \
31880 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
31881
31882#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
31883 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
31884
31885#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \
31886 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
31887
31888#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \
31889 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
31890
31891#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
31892 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
31893
31894#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
31895 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
31896
31897#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
31898 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
31899
31900#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
31901 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
31902
31903#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
31904 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
31905
31906#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
31907 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
31908
31909#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
31910 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
31911
31912#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
31913 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
31914
31915#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
31916 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
31917
31918#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
31919 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
31920
31921#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
31922 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
31923
31924#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
31925 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
31926
31927#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \
31928 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
31929
31930#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
31931 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
31932
31933#define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \
31934 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
31935
31936#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
31937 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
31938
31939#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
31940 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
31941
31942#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
31943 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
31944
31945#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
31946 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
31947
31948#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
31949 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
31950
31951#define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \
31952 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
31953
31954#define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \
31955 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
31956
31957#define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \
31958 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
31959
31960#define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
31961 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
31962
31963#define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
31964 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
31965
31966#define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \
31967 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
31968
31969#define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \
31970 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
31971
31972#define ID3D12GraphicsCommandList7_EndEvent(This) \
31973 ( (This)->lpVtbl -> EndEvent(This) )
31974
31975#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
31976 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
31977
31978
31979#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
31980 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
31981
31982#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
31983 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
31984
31985#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \
31986 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
31987
31988#define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
31989 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
31990
31991#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
31992 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
31993
31994#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \
31995 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
31996
31997
31998#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \
31999 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32000
32001
32002#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \
32003 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
32004
32005
32006#define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
32007 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
32008
32009#define ID3D12GraphicsCommandList7_EndRenderPass(This) \
32010 ( (This)->lpVtbl -> EndRenderPass(This) )
32011
32012#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
32013 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
32014
32015#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
32016 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
32017
32018#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
32019 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
32020
32021#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
32022 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
32023
32024#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
32025 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
32026
32027#define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \
32028 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
32029
32030#define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \
32031 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
32032
32033
32034#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \
32035 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
32036
32037#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \
32038 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
32039
32040
32041#define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
32042 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
32043
32044
32045#define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \
32046 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
32047
32048#endif /* COBJMACROS */
32049
32050
32051#endif /* C style interface */
32052
32053
32054
32055
32056#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
32057
32058
32059#ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
32060#define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
32061
32062/* interface ID3D12GraphicsCommandList8 */
32063/* [unique][local][object][uuid] */
32064
32065
32066EXTERN_C const IID IID_ID3D12GraphicsCommandList8;
32067
32068#if defined(__cplusplus) && !defined(CINTERFACE)
32069
32070 MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51")
32071 ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7
32072 {
32073 public:
32074 virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef(
32075 _In_ UINT FrontStencilRef,
32076 _In_ UINT BackStencilRef) = 0;
32077
32078 };
32079
32080
32081#else /* C style interface */
32082
32083 typedef struct ID3D12GraphicsCommandList8Vtbl
32084 {
32085 BEGIN_INTERFACE
32086
32087 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
32088 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
32089 ID3D12GraphicsCommandList8 * This,
32090 REFIID riid,
32091 _COM_Outptr_ void **ppvObject);
32092
32093 DECLSPEC_XFGVIRT(IUnknown, AddRef)
32094 ULONG ( STDMETHODCALLTYPE *AddRef )(
32095 ID3D12GraphicsCommandList8 * This);
32096
32097 DECLSPEC_XFGVIRT(IUnknown, Release)
32098 ULONG ( STDMETHODCALLTYPE *Release )(
32099 ID3D12GraphicsCommandList8 * This);
32100
32101 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
32102 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
32103 ID3D12GraphicsCommandList8 * This,
32104 _In_ REFGUID guid,
32105 _Inout_ UINT *pDataSize,
32106 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
32107
32108 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
32109 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
32110 ID3D12GraphicsCommandList8 * This,
32111 _In_ REFGUID guid,
32112 _In_ UINT DataSize,
32113 _In_reads_bytes_opt_( DataSize ) const void *pData);
32114
32115 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
32116 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
32117 ID3D12GraphicsCommandList8 * This,
32118 _In_ REFGUID guid,
32119 _In_opt_ const IUnknown *pData);
32120
32121 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
32122 HRESULT ( STDMETHODCALLTYPE *SetName )(
32123 ID3D12GraphicsCommandList8 * This,
32124 _In_z_ LPCWSTR Name);
32125
32126 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
32127 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
32128 ID3D12GraphicsCommandList8 * This,
32129 REFIID riid,
32130 _COM_Outptr_opt_ void **ppvDevice);
32131
32132 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
32133 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
32134 ID3D12GraphicsCommandList8 * This);
32135
32136 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
32137 HRESULT ( STDMETHODCALLTYPE *Close )(
32138 ID3D12GraphicsCommandList8 * This);
32139
32140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
32141 HRESULT ( STDMETHODCALLTYPE *Reset )(
32142 ID3D12GraphicsCommandList8 * This,
32143 _In_ ID3D12CommandAllocator *pAllocator,
32144 _In_opt_ ID3D12PipelineState *pInitialState);
32145
32146 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
32147 void ( STDMETHODCALLTYPE *ClearState )(
32148 ID3D12GraphicsCommandList8 * This,
32149 _In_opt_ ID3D12PipelineState *pPipelineState);
32150
32151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
32152 void ( STDMETHODCALLTYPE *DrawInstanced )(
32153 ID3D12GraphicsCommandList8 * This,
32154 _In_ UINT VertexCountPerInstance,
32155 _In_ UINT InstanceCount,
32156 _In_ UINT StartVertexLocation,
32157 _In_ UINT StartInstanceLocation);
32158
32159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
32160 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
32161 ID3D12GraphicsCommandList8 * This,
32162 _In_ UINT IndexCountPerInstance,
32163 _In_ UINT InstanceCount,
32164 _In_ UINT StartIndexLocation,
32165 _In_ INT BaseVertexLocation,
32166 _In_ UINT StartInstanceLocation);
32167
32168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
32169 void ( STDMETHODCALLTYPE *Dispatch )(
32170 ID3D12GraphicsCommandList8 * This,
32171 _In_ UINT ThreadGroupCountX,
32172 _In_ UINT ThreadGroupCountY,
32173 _In_ UINT ThreadGroupCountZ);
32174
32175 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
32176 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
32177 ID3D12GraphicsCommandList8 * This,
32178 _In_ ID3D12Resource *pDstBuffer,
32179 UINT64 DstOffset,
32180 _In_ ID3D12Resource *pSrcBuffer,
32181 UINT64 SrcOffset,
32182 UINT64 NumBytes);
32183
32184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
32185 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
32186 ID3D12GraphicsCommandList8 * This,
32187 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
32188 UINT DstX,
32189 UINT DstY,
32190 UINT DstZ,
32191 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
32192 _In_opt_ const D3D12_BOX *pSrcBox);
32193
32194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
32195 void ( STDMETHODCALLTYPE *CopyResource )(
32196 ID3D12GraphicsCommandList8 * This,
32197 _In_ ID3D12Resource *pDstResource,
32198 _In_ ID3D12Resource *pSrcResource);
32199
32200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
32201 void ( STDMETHODCALLTYPE *CopyTiles )(
32202 ID3D12GraphicsCommandList8 * This,
32203 _In_ ID3D12Resource *pTiledResource,
32204 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
32205 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
32206 _In_ ID3D12Resource *pBuffer,
32207 UINT64 BufferStartOffsetInBytes,
32208 D3D12_TILE_COPY_FLAGS Flags);
32209
32210 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
32211 void ( STDMETHODCALLTYPE *ResolveSubresource )(
32212 ID3D12GraphicsCommandList8 * This,
32213 _In_ ID3D12Resource *pDstResource,
32214 _In_ UINT DstSubresource,
32215 _In_ ID3D12Resource *pSrcResource,
32216 _In_ UINT SrcSubresource,
32217 _In_ DXGI_FORMAT Format);
32218
32219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
32220 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
32221 ID3D12GraphicsCommandList8 * This,
32222 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
32223
32224 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
32225 void ( STDMETHODCALLTYPE *RSSetViewports )(
32226 ID3D12GraphicsCommandList8 * This,
32227 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
32228 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
32229
32230 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
32231 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
32232 ID3D12GraphicsCommandList8 * This,
32233 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
32234 _In_reads_( NumRects) const D3D12_RECT *pRects);
32235
32236 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
32237 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
32238 ID3D12GraphicsCommandList8 * This,
32239 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
32240
32241 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
32242 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
32243 ID3D12GraphicsCommandList8 * This,
32244 _In_ UINT StencilRef);
32245
32246 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
32247 void ( STDMETHODCALLTYPE *SetPipelineState )(
32248 ID3D12GraphicsCommandList8 * This,
32249 _In_ ID3D12PipelineState *pPipelineState);
32250
32251 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
32252 void ( STDMETHODCALLTYPE *ResourceBarrier )(
32253 ID3D12GraphicsCommandList8 * This,
32254 _In_ UINT NumBarriers,
32255 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
32256
32257 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
32258 void ( STDMETHODCALLTYPE *ExecuteBundle )(
32259 ID3D12GraphicsCommandList8 * This,
32260 _In_ ID3D12GraphicsCommandList *pCommandList);
32261
32262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
32263 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
32264 ID3D12GraphicsCommandList8 * This,
32265 _In_ UINT NumDescriptorHeaps,
32266 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
32267
32268 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
32269 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
32270 ID3D12GraphicsCommandList8 * This,
32271 _In_opt_ ID3D12RootSignature *pRootSignature);
32272
32273 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
32274 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
32275 ID3D12GraphicsCommandList8 * This,
32276 _In_opt_ ID3D12RootSignature *pRootSignature);
32277
32278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
32279 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
32280 ID3D12GraphicsCommandList8 * This,
32281 _In_ UINT RootParameterIndex,
32282 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32283
32284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
32285 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
32286 ID3D12GraphicsCommandList8 * This,
32287 _In_ UINT RootParameterIndex,
32288 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32289
32290 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
32291 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
32292 ID3D12GraphicsCommandList8 * This,
32293 _In_ UINT RootParameterIndex,
32294 _In_ UINT SrcData,
32295 _In_ UINT DestOffsetIn32BitValues);
32296
32297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
32298 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
32299 ID3D12GraphicsCommandList8 * This,
32300 _In_ UINT RootParameterIndex,
32301 _In_ UINT SrcData,
32302 _In_ UINT DestOffsetIn32BitValues);
32303
32304 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
32305 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
32306 ID3D12GraphicsCommandList8 * This,
32307 _In_ UINT RootParameterIndex,
32308 _In_ UINT Num32BitValuesToSet,
32309 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32310 _In_ UINT DestOffsetIn32BitValues);
32311
32312 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
32313 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
32314 ID3D12GraphicsCommandList8 * This,
32315 _In_ UINT RootParameterIndex,
32316 _In_ UINT Num32BitValuesToSet,
32317 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32318 _In_ UINT DestOffsetIn32BitValues);
32319
32320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
32321 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
32322 ID3D12GraphicsCommandList8 * This,
32323 _In_ UINT RootParameterIndex,
32324 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32325
32326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
32327 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
32328 ID3D12GraphicsCommandList8 * This,
32329 _In_ UINT RootParameterIndex,
32330 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32331
32332 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
32333 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
32334 ID3D12GraphicsCommandList8 * This,
32335 _In_ UINT RootParameterIndex,
32336 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32337
32338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
32339 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
32340 ID3D12GraphicsCommandList8 * This,
32341 _In_ UINT RootParameterIndex,
32342 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32343
32344 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
32345 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
32346 ID3D12GraphicsCommandList8 * This,
32347 _In_ UINT RootParameterIndex,
32348 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32349
32350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
32351 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
32352 ID3D12GraphicsCommandList8 * This,
32353 _In_ UINT RootParameterIndex,
32354 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32355
32356 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
32357 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
32358 ID3D12GraphicsCommandList8 * This,
32359 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
32360
32361 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
32362 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
32363 ID3D12GraphicsCommandList8 * This,
32364 _In_ UINT StartSlot,
32365 _In_ UINT NumViews,
32366 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
32367
32368 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
32369 void ( STDMETHODCALLTYPE *SOSetTargets )(
32370 ID3D12GraphicsCommandList8 * This,
32371 _In_ UINT StartSlot,
32372 _In_ UINT NumViews,
32373 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
32374
32375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
32376 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
32377 ID3D12GraphicsCommandList8 * This,
32378 _In_ UINT NumRenderTargetDescriptors,
32379 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
32380 _In_ BOOL RTsSingleHandleToDescriptorRange,
32381 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
32382
32383 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
32384 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
32385 ID3D12GraphicsCommandList8 * This,
32386 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
32387 _In_ D3D12_CLEAR_FLAGS ClearFlags,
32388 _In_ FLOAT Depth,
32389 _In_ UINT8 Stencil,
32390 _In_ UINT NumRects,
32391 _In_reads_(NumRects) const D3D12_RECT *pRects);
32392
32393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
32394 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
32395 ID3D12GraphicsCommandList8 * This,
32396 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
32397 _In_ const FLOAT ColorRGBA[ 4 ],
32398 _In_ UINT NumRects,
32399 _In_reads_(NumRects) const D3D12_RECT *pRects);
32400
32401 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
32402 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
32403 ID3D12GraphicsCommandList8 * This,
32404 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32405 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32406 _In_ ID3D12Resource *pResource,
32407 _In_ const UINT Values[ 4 ],
32408 _In_ UINT NumRects,
32409 _In_reads_(NumRects) const D3D12_RECT *pRects);
32410
32411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
32412 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
32413 ID3D12GraphicsCommandList8 * This,
32414 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32415 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32416 _In_ ID3D12Resource *pResource,
32417 _In_ const FLOAT Values[ 4 ],
32418 _In_ UINT NumRects,
32419 _In_reads_(NumRects) const D3D12_RECT *pRects);
32420
32421 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
32422 void ( STDMETHODCALLTYPE *DiscardResource )(
32423 ID3D12GraphicsCommandList8 * This,
32424 _In_ ID3D12Resource *pResource,
32425 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
32426
32427 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
32428 void ( STDMETHODCALLTYPE *BeginQuery )(
32429 ID3D12GraphicsCommandList8 * This,
32430 _In_ ID3D12QueryHeap *pQueryHeap,
32431 _In_ D3D12_QUERY_TYPE Type,
32432 _In_ UINT Index);
32433
32434 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
32435 void ( STDMETHODCALLTYPE *EndQuery )(
32436 ID3D12GraphicsCommandList8 * This,
32437 _In_ ID3D12QueryHeap *pQueryHeap,
32438 _In_ D3D12_QUERY_TYPE Type,
32439 _In_ UINT Index);
32440
32441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
32442 void ( STDMETHODCALLTYPE *ResolveQueryData )(
32443 ID3D12GraphicsCommandList8 * This,
32444 _In_ ID3D12QueryHeap *pQueryHeap,
32445 _In_ D3D12_QUERY_TYPE Type,
32446 _In_ UINT StartIndex,
32447 _In_ UINT NumQueries,
32448 _In_ ID3D12Resource *pDestinationBuffer,
32449 _In_ UINT64 AlignedDestinationBufferOffset);
32450
32451 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
32452 void ( STDMETHODCALLTYPE *SetPredication )(
32453 ID3D12GraphicsCommandList8 * This,
32454 _In_opt_ ID3D12Resource *pBuffer,
32455 _In_ UINT64 AlignedBufferOffset,
32456 _In_ D3D12_PREDICATION_OP Operation);
32457
32458 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
32459 void ( STDMETHODCALLTYPE *SetMarker )(
32460 ID3D12GraphicsCommandList8 * This,
32461 UINT Metadata,
32462 _In_reads_bytes_opt_(Size) const void *pData,
32463 UINT Size);
32464
32465 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
32466 void ( STDMETHODCALLTYPE *BeginEvent )(
32467 ID3D12GraphicsCommandList8 * This,
32468 UINT Metadata,
32469 _In_reads_bytes_opt_(Size) const void *pData,
32470 UINT Size);
32471
32472 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
32473 void ( STDMETHODCALLTYPE *EndEvent )(
32474 ID3D12GraphicsCommandList8 * This);
32475
32476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
32477 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
32478 ID3D12GraphicsCommandList8 * This,
32479 _In_ ID3D12CommandSignature *pCommandSignature,
32480 _In_ UINT MaxCommandCount,
32481 _In_ ID3D12Resource *pArgumentBuffer,
32482 _In_ UINT64 ArgumentBufferOffset,
32483 _In_opt_ ID3D12Resource *pCountBuffer,
32484 _In_ UINT64 CountBufferOffset);
32485
32486 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
32487 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
32488 ID3D12GraphicsCommandList8 * This,
32489 _In_ ID3D12Resource *pDstBuffer,
32490 UINT64 DstOffset,
32491 _In_ ID3D12Resource *pSrcBuffer,
32492 UINT64 SrcOffset,
32493 UINT Dependencies,
32494 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32495 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32496
32497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
32498 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
32499 ID3D12GraphicsCommandList8 * This,
32500 _In_ ID3D12Resource *pDstBuffer,
32501 UINT64 DstOffset,
32502 _In_ ID3D12Resource *pSrcBuffer,
32503 UINT64 SrcOffset,
32504 UINT Dependencies,
32505 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32506 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32507
32508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
32509 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
32510 ID3D12GraphicsCommandList8 * This,
32511 _In_ FLOAT Min,
32512 _In_ FLOAT Max);
32513
32514 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
32515 void ( STDMETHODCALLTYPE *SetSamplePositions )(
32516 ID3D12GraphicsCommandList8 * This,
32517 _In_ UINT NumSamplesPerPixel,
32518 _In_ UINT NumPixels,
32519 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
32520
32521 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
32522 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
32523 ID3D12GraphicsCommandList8 * This,
32524 _In_ ID3D12Resource *pDstResource,
32525 _In_ UINT DstSubresource,
32526 _In_ UINT DstX,
32527 _In_ UINT DstY,
32528 _In_ ID3D12Resource *pSrcResource,
32529 _In_ UINT SrcSubresource,
32530 _In_opt_ D3D12_RECT *pSrcRect,
32531 _In_ DXGI_FORMAT Format,
32532 _In_ D3D12_RESOLVE_MODE ResolveMode);
32533
32534 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
32535 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
32536 ID3D12GraphicsCommandList8 * This,
32537 _In_ UINT Mask);
32538
32539 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
32540 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
32541 ID3D12GraphicsCommandList8 * This,
32542 UINT Count,
32543 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
32544 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
32545
32546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
32547 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
32548 ID3D12GraphicsCommandList8 * This,
32549 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
32550
32551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
32552 void ( STDMETHODCALLTYPE *BeginRenderPass )(
32553 ID3D12GraphicsCommandList8 * This,
32554 _In_ UINT NumRenderTargets,
32555 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
32556 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
32557 D3D12_RENDER_PASS_FLAGS Flags);
32558
32559 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
32560 void ( STDMETHODCALLTYPE *EndRenderPass )(
32561 ID3D12GraphicsCommandList8 * This);
32562
32563 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
32564 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
32565 ID3D12GraphicsCommandList8 * This,
32566 _In_ ID3D12MetaCommand *pMetaCommand,
32567 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
32568 _In_ SIZE_T InitializationParametersDataSizeInBytes);
32569
32570 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
32571 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
32572 ID3D12GraphicsCommandList8 * This,
32573 _In_ ID3D12MetaCommand *pMetaCommand,
32574 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
32575 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
32576
32577 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
32578 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
32579 ID3D12GraphicsCommandList8 * This,
32580 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
32581 _In_ UINT NumPostbuildInfoDescs,
32582 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
32583
32584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
32585 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
32586 ID3D12GraphicsCommandList8 * This,
32587 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
32588 _In_ UINT NumSourceAccelerationStructures,
32589 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
32590
32591 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
32592 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
32593 ID3D12GraphicsCommandList8 * This,
32594 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
32595 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
32596 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
32597
32598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
32599 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
32600 ID3D12GraphicsCommandList8 * This,
32601 _In_ ID3D12StateObject *pStateObject);
32602
32603 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
32604 void ( STDMETHODCALLTYPE *DispatchRays )(
32605 ID3D12GraphicsCommandList8 * This,
32606 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
32607
32608 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
32609 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
32610 ID3D12GraphicsCommandList8 * This,
32611 _In_ D3D12_SHADING_RATE baseShadingRate,
32612 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
32613
32614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
32615 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
32616 ID3D12GraphicsCommandList8 * This,
32617 _In_opt_ ID3D12Resource *shadingRateImage);
32618
32619 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
32620 void ( STDMETHODCALLTYPE *DispatchMesh )(
32621 ID3D12GraphicsCommandList8 * This,
32622 _In_ UINT ThreadGroupCountX,
32623 _In_ UINT ThreadGroupCountY,
32624 _In_ UINT ThreadGroupCountZ);
32625
32626 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
32627 void ( STDMETHODCALLTYPE *Barrier )(
32628 ID3D12GraphicsCommandList8 * This,
32629 UINT32 NumBarrierGroups,
32630 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
32631
32632 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
32633 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
32634 ID3D12GraphicsCommandList8 * This,
32635 _In_ UINT FrontStencilRef,
32636 _In_ UINT BackStencilRef);
32637
32638 END_INTERFACE
32639 } ID3D12GraphicsCommandList8Vtbl;
32640
32641 interface ID3D12GraphicsCommandList8
32642 {
32643 CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl;
32644 };
32645
32646
32647
32648#ifdef COBJMACROS
32649
32650
32651#define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \
32652 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
32653
32654#define ID3D12GraphicsCommandList8_AddRef(This) \
32655 ( (This)->lpVtbl -> AddRef(This) )
32656
32657#define ID3D12GraphicsCommandList8_Release(This) \
32658 ( (This)->lpVtbl -> Release(This) )
32659
32660
32661#define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \
32662 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
32663
32664#define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \
32665 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
32666
32667#define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \
32668 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
32669
32670#define ID3D12GraphicsCommandList8_SetName(This,Name) \
32671 ( (This)->lpVtbl -> SetName(This,Name) )
32672
32673
32674#define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \
32675 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
32676
32677
32678#define ID3D12GraphicsCommandList8_GetType(This) \
32679 ( (This)->lpVtbl -> GetType(This) )
32680
32681
32682#define ID3D12GraphicsCommandList8_Close(This) \
32683 ( (This)->lpVtbl -> Close(This) )
32684
32685#define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \
32686 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
32687
32688#define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \
32689 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
32690
32691#define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
32692 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
32693
32694#define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
32695 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
32696
32697#define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
32698 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
32699
32700#define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
32701 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
32702
32703#define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
32704 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
32705
32706#define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \
32707 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
32708
32709#define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
32710 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
32711
32712#define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
32713 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
32714
32715#define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \
32716 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
32717
32718#define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \
32719 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
32720
32721#define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \
32722 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
32723
32724#define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \
32725 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
32726
32727#define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \
32728 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
32729
32730#define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \
32731 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
32732
32733#define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \
32734 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
32735
32736#define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \
32737 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
32738
32739#define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
32740 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
32741
32742#define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \
32743 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
32744
32745#define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \
32746 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
32747
32748#define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32749 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32750
32751#define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32752 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32753
32754#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32755 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32756
32757#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32758 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32759
32760#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32761 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32762
32763#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32764 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32765
32766#define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32767 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32768
32769#define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32770 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32771
32772#define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32773 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32774
32775#define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32776 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32777
32778#define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32779 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32780
32781#define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32782 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32783
32784#define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \
32785 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
32786
32787#define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
32788 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
32789
32790#define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \
32791 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
32792
32793#define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
32794 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
32795
32796#define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
32797 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
32798
32799#define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
32800 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
32801
32802#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32803 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32804
32805#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32806 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32807
32808#define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \
32809 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
32810
32811#define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \
32812 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
32813
32814#define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \
32815 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
32816
32817#define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
32818 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
32819
32820#define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
32821 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
32822
32823#define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \
32824 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
32825
32826#define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \
32827 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
32828
32829#define ID3D12GraphicsCommandList8_EndEvent(This) \
32830 ( (This)->lpVtbl -> EndEvent(This) )
32831
32832#define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
32833 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
32834
32835
32836#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32837 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32838
32839#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32840 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32841
32842#define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \
32843 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
32844
32845#define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
32846 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
32847
32848#define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
32849 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
32850
32851#define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \
32852 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
32853
32854
32855#define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \
32856 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32857
32858
32859#define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \
32860 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
32861
32862
32863#define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
32864 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
32865
32866#define ID3D12GraphicsCommandList8_EndRenderPass(This) \
32867 ( (This)->lpVtbl -> EndRenderPass(This) )
32868
32869#define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
32870 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
32871
32872#define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
32873 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
32874
32875#define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
32876 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
32877
32878#define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
32879 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
32880
32881#define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
32882 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
32883
32884#define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \
32885 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
32886
32887#define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \
32888 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
32889
32890
32891#define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \
32892 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
32893
32894#define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \
32895 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
32896
32897
32898#define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
32899 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
32900
32901
32902#define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \
32903 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
32904
32905
32906#define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
32907 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
32908
32909#endif /* COBJMACROS */
32910
32911
32912#endif /* C style interface */
32913
32914
32915
32916
32917#endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */
32918
32919
32920#ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
32921#define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
32922
32923/* interface ID3D12GraphicsCommandList9 */
32924/* [unique][local][object][uuid] */
32925
32926
32927EXTERN_C const IID IID_ID3D12GraphicsCommandList9;
32928
32929#if defined(__cplusplus) && !defined(CINTERFACE)
32930
32931 MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1")
32932 ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8
32933 {
32934 public:
32935 virtual void STDMETHODCALLTYPE RSSetDepthBias(
32936 _In_ FLOAT DepthBias,
32937 _In_ FLOAT DepthBiasClamp,
32938 _In_ FLOAT SlopeScaledDepthBias) = 0;
32939
32940 virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue(
32941 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0;
32942
32943 };
32944
32945
32946#else /* C style interface */
32947
32948 typedef struct ID3D12GraphicsCommandList9Vtbl
32949 {
32950 BEGIN_INTERFACE
32951
32952 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
32953 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
32954 ID3D12GraphicsCommandList9 * This,
32955 REFIID riid,
32956 _COM_Outptr_ void **ppvObject);
32957
32958 DECLSPEC_XFGVIRT(IUnknown, AddRef)
32959 ULONG ( STDMETHODCALLTYPE *AddRef )(
32960 ID3D12GraphicsCommandList9 * This);
32961
32962 DECLSPEC_XFGVIRT(IUnknown, Release)
32963 ULONG ( STDMETHODCALLTYPE *Release )(
32964 ID3D12GraphicsCommandList9 * This);
32965
32966 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
32967 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
32968 ID3D12GraphicsCommandList9 * This,
32969 _In_ REFGUID guid,
32970 _Inout_ UINT *pDataSize,
32971 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
32972
32973 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
32974 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
32975 ID3D12GraphicsCommandList9 * This,
32976 _In_ REFGUID guid,
32977 _In_ UINT DataSize,
32978 _In_reads_bytes_opt_( DataSize ) const void *pData);
32979
32980 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
32981 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
32982 ID3D12GraphicsCommandList9 * This,
32983 _In_ REFGUID guid,
32984 _In_opt_ const IUnknown *pData);
32985
32986 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
32987 HRESULT ( STDMETHODCALLTYPE *SetName )(
32988 ID3D12GraphicsCommandList9 * This,
32989 _In_z_ LPCWSTR Name);
32990
32991 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
32992 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
32993 ID3D12GraphicsCommandList9 * This,
32994 REFIID riid,
32995 _COM_Outptr_opt_ void **ppvDevice);
32996
32997 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
32998 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
32999 ID3D12GraphicsCommandList9 * This);
33000
33001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33002 HRESULT ( STDMETHODCALLTYPE *Close )(
33003 ID3D12GraphicsCommandList9 * This);
33004
33005 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33006 HRESULT ( STDMETHODCALLTYPE *Reset )(
33007 ID3D12GraphicsCommandList9 * This,
33008 _In_ ID3D12CommandAllocator *pAllocator,
33009 _In_opt_ ID3D12PipelineState *pInitialState);
33010
33011 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33012 void ( STDMETHODCALLTYPE *ClearState )(
33013 ID3D12GraphicsCommandList9 * This,
33014 _In_opt_ ID3D12PipelineState *pPipelineState);
33015
33016 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33017 void ( STDMETHODCALLTYPE *DrawInstanced )(
33018 ID3D12GraphicsCommandList9 * This,
33019 _In_ UINT VertexCountPerInstance,
33020 _In_ UINT InstanceCount,
33021 _In_ UINT StartVertexLocation,
33022 _In_ UINT StartInstanceLocation);
33023
33024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
33025 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
33026 ID3D12GraphicsCommandList9 * This,
33027 _In_ UINT IndexCountPerInstance,
33028 _In_ UINT InstanceCount,
33029 _In_ UINT StartIndexLocation,
33030 _In_ INT BaseVertexLocation,
33031 _In_ UINT StartInstanceLocation);
33032
33033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
33034 void ( STDMETHODCALLTYPE *Dispatch )(
33035 ID3D12GraphicsCommandList9 * This,
33036 _In_ UINT ThreadGroupCountX,
33037 _In_ UINT ThreadGroupCountY,
33038 _In_ UINT ThreadGroupCountZ);
33039
33040 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
33041 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
33042 ID3D12GraphicsCommandList9 * This,
33043 _In_ ID3D12Resource *pDstBuffer,
33044 UINT64 DstOffset,
33045 _In_ ID3D12Resource *pSrcBuffer,
33046 UINT64 SrcOffset,
33047 UINT64 NumBytes);
33048
33049 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
33050 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
33051 ID3D12GraphicsCommandList9 * This,
33052 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
33053 UINT DstX,
33054 UINT DstY,
33055 UINT DstZ,
33056 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
33057 _In_opt_ const D3D12_BOX *pSrcBox);
33058
33059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
33060 void ( STDMETHODCALLTYPE *CopyResource )(
33061 ID3D12GraphicsCommandList9 * This,
33062 _In_ ID3D12Resource *pDstResource,
33063 _In_ ID3D12Resource *pSrcResource);
33064
33065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
33066 void ( STDMETHODCALLTYPE *CopyTiles )(
33067 ID3D12GraphicsCommandList9 * This,
33068 _In_ ID3D12Resource *pTiledResource,
33069 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
33070 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
33071 _In_ ID3D12Resource *pBuffer,
33072 UINT64 BufferStartOffsetInBytes,
33073 D3D12_TILE_COPY_FLAGS Flags);
33074
33075 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
33076 void ( STDMETHODCALLTYPE *ResolveSubresource )(
33077 ID3D12GraphicsCommandList9 * This,
33078 _In_ ID3D12Resource *pDstResource,
33079 _In_ UINT DstSubresource,
33080 _In_ ID3D12Resource *pSrcResource,
33081 _In_ UINT SrcSubresource,
33082 _In_ DXGI_FORMAT Format);
33083
33084 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
33085 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
33086 ID3D12GraphicsCommandList9 * This,
33087 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
33088
33089 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
33090 void ( STDMETHODCALLTYPE *RSSetViewports )(
33091 ID3D12GraphicsCommandList9 * This,
33092 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
33093 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
33094
33095 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
33096 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
33097 ID3D12GraphicsCommandList9 * This,
33098 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
33099 _In_reads_( NumRects) const D3D12_RECT *pRects);
33100
33101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
33102 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
33103 ID3D12GraphicsCommandList9 * This,
33104 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
33105
33106 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
33107 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
33108 ID3D12GraphicsCommandList9 * This,
33109 _In_ UINT StencilRef);
33110
33111 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
33112 void ( STDMETHODCALLTYPE *SetPipelineState )(
33113 ID3D12GraphicsCommandList9 * This,
33114 _In_ ID3D12PipelineState *pPipelineState);
33115
33116 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
33117 void ( STDMETHODCALLTYPE *ResourceBarrier )(
33118 ID3D12GraphicsCommandList9 * This,
33119 _In_ UINT NumBarriers,
33120 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
33121
33122 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
33123 void ( STDMETHODCALLTYPE *ExecuteBundle )(
33124 ID3D12GraphicsCommandList9 * This,
33125 _In_ ID3D12GraphicsCommandList *pCommandList);
33126
33127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
33128 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
33129 ID3D12GraphicsCommandList9 * This,
33130 _In_ UINT NumDescriptorHeaps,
33131 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
33132
33133 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
33134 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
33135 ID3D12GraphicsCommandList9 * This,
33136 _In_opt_ ID3D12RootSignature *pRootSignature);
33137
33138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
33139 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
33140 ID3D12GraphicsCommandList9 * This,
33141 _In_opt_ ID3D12RootSignature *pRootSignature);
33142
33143 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
33144 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
33145 ID3D12GraphicsCommandList9 * This,
33146 _In_ UINT RootParameterIndex,
33147 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33148
33149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
33150 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
33151 ID3D12GraphicsCommandList9 * This,
33152 _In_ UINT RootParameterIndex,
33153 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33154
33155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
33156 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
33157 ID3D12GraphicsCommandList9 * This,
33158 _In_ UINT RootParameterIndex,
33159 _In_ UINT SrcData,
33160 _In_ UINT DestOffsetIn32BitValues);
33161
33162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
33163 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
33164 ID3D12GraphicsCommandList9 * This,
33165 _In_ UINT RootParameterIndex,
33166 _In_ UINT SrcData,
33167 _In_ UINT DestOffsetIn32BitValues);
33168
33169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
33170 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
33171 ID3D12GraphicsCommandList9 * This,
33172 _In_ UINT RootParameterIndex,
33173 _In_ UINT Num32BitValuesToSet,
33174 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33175 _In_ UINT DestOffsetIn32BitValues);
33176
33177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
33178 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
33179 ID3D12GraphicsCommandList9 * This,
33180 _In_ UINT RootParameterIndex,
33181 _In_ UINT Num32BitValuesToSet,
33182 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33183 _In_ UINT DestOffsetIn32BitValues);
33184
33185 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
33186 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
33187 ID3D12GraphicsCommandList9 * This,
33188 _In_ UINT RootParameterIndex,
33189 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33190
33191 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
33192 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
33193 ID3D12GraphicsCommandList9 * This,
33194 _In_ UINT RootParameterIndex,
33195 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33196
33197 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
33198 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
33199 ID3D12GraphicsCommandList9 * This,
33200 _In_ UINT RootParameterIndex,
33201 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33202
33203 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
33204 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
33205 ID3D12GraphicsCommandList9 * This,
33206 _In_ UINT RootParameterIndex,
33207 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33208
33209 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
33210 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
33211 ID3D12GraphicsCommandList9 * This,
33212 _In_ UINT RootParameterIndex,
33213 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33214
33215 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
33216 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
33217 ID3D12GraphicsCommandList9 * This,
33218 _In_ UINT RootParameterIndex,
33219 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33220
33221 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
33222 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
33223 ID3D12GraphicsCommandList9 * This,
33224 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
33225
33226 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
33227 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
33228 ID3D12GraphicsCommandList9 * This,
33229 _In_ UINT StartSlot,
33230 _In_ UINT NumViews,
33231 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
33232
33233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
33234 void ( STDMETHODCALLTYPE *SOSetTargets )(
33235 ID3D12GraphicsCommandList9 * This,
33236 _In_ UINT StartSlot,
33237 _In_ UINT NumViews,
33238 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
33239
33240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
33241 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
33242 ID3D12GraphicsCommandList9 * This,
33243 _In_ UINT NumRenderTargetDescriptors,
33244 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
33245 _In_ BOOL RTsSingleHandleToDescriptorRange,
33246 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
33247
33248 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
33249 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
33250 ID3D12GraphicsCommandList9 * This,
33251 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
33252 _In_ D3D12_CLEAR_FLAGS ClearFlags,
33253 _In_ FLOAT Depth,
33254 _In_ UINT8 Stencil,
33255 _In_ UINT NumRects,
33256 _In_reads_(NumRects) const D3D12_RECT *pRects);
33257
33258 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
33259 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
33260 ID3D12GraphicsCommandList9 * This,
33261 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
33262 _In_ const FLOAT ColorRGBA[ 4 ],
33263 _In_ UINT NumRects,
33264 _In_reads_(NumRects) const D3D12_RECT *pRects);
33265
33266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
33267 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
33268 ID3D12GraphicsCommandList9 * This,
33269 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33270 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33271 _In_ ID3D12Resource *pResource,
33272 _In_ const UINT Values[ 4 ],
33273 _In_ UINT NumRects,
33274 _In_reads_(NumRects) const D3D12_RECT *pRects);
33275
33276 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
33277 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
33278 ID3D12GraphicsCommandList9 * This,
33279 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33280 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33281 _In_ ID3D12Resource *pResource,
33282 _In_ const FLOAT Values[ 4 ],
33283 _In_ UINT NumRects,
33284 _In_reads_(NumRects) const D3D12_RECT *pRects);
33285
33286 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
33287 void ( STDMETHODCALLTYPE *DiscardResource )(
33288 ID3D12GraphicsCommandList9 * This,
33289 _In_ ID3D12Resource *pResource,
33290 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
33291
33292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
33293 void ( STDMETHODCALLTYPE *BeginQuery )(
33294 ID3D12GraphicsCommandList9 * This,
33295 _In_ ID3D12QueryHeap *pQueryHeap,
33296 _In_ D3D12_QUERY_TYPE Type,
33297 _In_ UINT Index);
33298
33299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
33300 void ( STDMETHODCALLTYPE *EndQuery )(
33301 ID3D12GraphicsCommandList9 * This,
33302 _In_ ID3D12QueryHeap *pQueryHeap,
33303 _In_ D3D12_QUERY_TYPE Type,
33304 _In_ UINT Index);
33305
33306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
33307 void ( STDMETHODCALLTYPE *ResolveQueryData )(
33308 ID3D12GraphicsCommandList9 * This,
33309 _In_ ID3D12QueryHeap *pQueryHeap,
33310 _In_ D3D12_QUERY_TYPE Type,
33311 _In_ UINT StartIndex,
33312 _In_ UINT NumQueries,
33313 _In_ ID3D12Resource *pDestinationBuffer,
33314 _In_ UINT64 AlignedDestinationBufferOffset);
33315
33316 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
33317 void ( STDMETHODCALLTYPE *SetPredication )(
33318 ID3D12GraphicsCommandList9 * This,
33319 _In_opt_ ID3D12Resource *pBuffer,
33320 _In_ UINT64 AlignedBufferOffset,
33321 _In_ D3D12_PREDICATION_OP Operation);
33322
33323 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
33324 void ( STDMETHODCALLTYPE *SetMarker )(
33325 ID3D12GraphicsCommandList9 * This,
33326 UINT Metadata,
33327 _In_reads_bytes_opt_(Size) const void *pData,
33328 UINT Size);
33329
33330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
33331 void ( STDMETHODCALLTYPE *BeginEvent )(
33332 ID3D12GraphicsCommandList9 * This,
33333 UINT Metadata,
33334 _In_reads_bytes_opt_(Size) const void *pData,
33335 UINT Size);
33336
33337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
33338 void ( STDMETHODCALLTYPE *EndEvent )(
33339 ID3D12GraphicsCommandList9 * This);
33340
33341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
33342 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
33343 ID3D12GraphicsCommandList9 * This,
33344 _In_ ID3D12CommandSignature *pCommandSignature,
33345 _In_ UINT MaxCommandCount,
33346 _In_ ID3D12Resource *pArgumentBuffer,
33347 _In_ UINT64 ArgumentBufferOffset,
33348 _In_opt_ ID3D12Resource *pCountBuffer,
33349 _In_ UINT64 CountBufferOffset);
33350
33351 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
33352 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
33353 ID3D12GraphicsCommandList9 * This,
33354 _In_ ID3D12Resource *pDstBuffer,
33355 UINT64 DstOffset,
33356 _In_ ID3D12Resource *pSrcBuffer,
33357 UINT64 SrcOffset,
33358 UINT Dependencies,
33359 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33360 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33361
33362 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
33363 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
33364 ID3D12GraphicsCommandList9 * This,
33365 _In_ ID3D12Resource *pDstBuffer,
33366 UINT64 DstOffset,
33367 _In_ ID3D12Resource *pSrcBuffer,
33368 UINT64 SrcOffset,
33369 UINT Dependencies,
33370 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33371 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33372
33373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
33374 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
33375 ID3D12GraphicsCommandList9 * This,
33376 _In_ FLOAT Min,
33377 _In_ FLOAT Max);
33378
33379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
33380 void ( STDMETHODCALLTYPE *SetSamplePositions )(
33381 ID3D12GraphicsCommandList9 * This,
33382 _In_ UINT NumSamplesPerPixel,
33383 _In_ UINT NumPixels,
33384 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
33385
33386 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
33387 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
33388 ID3D12GraphicsCommandList9 * This,
33389 _In_ ID3D12Resource *pDstResource,
33390 _In_ UINT DstSubresource,
33391 _In_ UINT DstX,
33392 _In_ UINT DstY,
33393 _In_ ID3D12Resource *pSrcResource,
33394 _In_ UINT SrcSubresource,
33395 _In_opt_ D3D12_RECT *pSrcRect,
33396 _In_ DXGI_FORMAT Format,
33397 _In_ D3D12_RESOLVE_MODE ResolveMode);
33398
33399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
33400 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
33401 ID3D12GraphicsCommandList9 * This,
33402 _In_ UINT Mask);
33403
33404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
33405 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
33406 ID3D12GraphicsCommandList9 * This,
33407 UINT Count,
33408 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
33409 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
33410
33411 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
33412 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
33413 ID3D12GraphicsCommandList9 * This,
33414 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
33415
33416 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
33417 void ( STDMETHODCALLTYPE *BeginRenderPass )(
33418 ID3D12GraphicsCommandList9 * This,
33419 _In_ UINT NumRenderTargets,
33420 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
33421 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
33422 D3D12_RENDER_PASS_FLAGS Flags);
33423
33424 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
33425 void ( STDMETHODCALLTYPE *EndRenderPass )(
33426 ID3D12GraphicsCommandList9 * This);
33427
33428 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
33429 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
33430 ID3D12GraphicsCommandList9 * This,
33431 _In_ ID3D12MetaCommand *pMetaCommand,
33432 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
33433 _In_ SIZE_T InitializationParametersDataSizeInBytes);
33434
33435 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
33436 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
33437 ID3D12GraphicsCommandList9 * This,
33438 _In_ ID3D12MetaCommand *pMetaCommand,
33439 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
33440 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
33441
33442 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
33443 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
33444 ID3D12GraphicsCommandList9 * This,
33445 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
33446 _In_ UINT NumPostbuildInfoDescs,
33447 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
33448
33449 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
33450 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
33451 ID3D12GraphicsCommandList9 * This,
33452 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
33453 _In_ UINT NumSourceAccelerationStructures,
33454 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
33455
33456 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
33457 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
33458 ID3D12GraphicsCommandList9 * This,
33459 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
33460 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
33461 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
33462
33463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
33464 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
33465 ID3D12GraphicsCommandList9 * This,
33466 _In_ ID3D12StateObject *pStateObject);
33467
33468 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
33469 void ( STDMETHODCALLTYPE *DispatchRays )(
33470 ID3D12GraphicsCommandList9 * This,
33471 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
33472
33473 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
33474 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
33475 ID3D12GraphicsCommandList9 * This,
33476 _In_ D3D12_SHADING_RATE baseShadingRate,
33477 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
33478
33479 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
33480 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
33481 ID3D12GraphicsCommandList9 * This,
33482 _In_opt_ ID3D12Resource *shadingRateImage);
33483
33484 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
33485 void ( STDMETHODCALLTYPE *DispatchMesh )(
33486 ID3D12GraphicsCommandList9 * This,
33487 _In_ UINT ThreadGroupCountX,
33488 _In_ UINT ThreadGroupCountY,
33489 _In_ UINT ThreadGroupCountZ);
33490
33491 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
33492 void ( STDMETHODCALLTYPE *Barrier )(
33493 ID3D12GraphicsCommandList9 * This,
33494 UINT32 NumBarrierGroups,
33495 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
33496
33497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
33498 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
33499 ID3D12GraphicsCommandList9 * This,
33500 _In_ UINT FrontStencilRef,
33501 _In_ UINT BackStencilRef);
33502
33503 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
33504 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
33505 ID3D12GraphicsCommandList9 * This,
33506 _In_ FLOAT DepthBias,
33507 _In_ FLOAT DepthBiasClamp,
33508 _In_ FLOAT SlopeScaledDepthBias);
33509
33510 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
33511 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
33512 ID3D12GraphicsCommandList9 * This,
33513 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
33514
33515 END_INTERFACE
33516 } ID3D12GraphicsCommandList9Vtbl;
33517
33518 interface ID3D12GraphicsCommandList9
33519 {
33520 CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl;
33521 };
33522
33523
33524
33525#ifdef COBJMACROS
33526
33527
33528#define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \
33529 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
33530
33531#define ID3D12GraphicsCommandList9_AddRef(This) \
33532 ( (This)->lpVtbl -> AddRef(This) )
33533
33534#define ID3D12GraphicsCommandList9_Release(This) \
33535 ( (This)->lpVtbl -> Release(This) )
33536
33537
33538#define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \
33539 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
33540
33541#define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \
33542 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
33543
33544#define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \
33545 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
33546
33547#define ID3D12GraphicsCommandList9_SetName(This,Name) \
33548 ( (This)->lpVtbl -> SetName(This,Name) )
33549
33550
33551#define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \
33552 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
33553
33554
33555#define ID3D12GraphicsCommandList9_GetType(This) \
33556 ( (This)->lpVtbl -> GetType(This) )
33557
33558
33559#define ID3D12GraphicsCommandList9_Close(This) \
33560 ( (This)->lpVtbl -> Close(This) )
33561
33562#define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \
33563 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
33564
33565#define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \
33566 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
33567
33568#define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
33569 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
33570
33571#define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
33572 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
33573
33574#define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33575 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33576
33577#define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
33578 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
33579
33580#define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
33581 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
33582
33583#define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \
33584 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
33585
33586#define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
33587 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
33588
33589#define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
33590 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
33591
33592#define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \
33593 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
33594
33595#define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \
33596 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
33597
33598#define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \
33599 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
33600
33601#define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \
33602 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
33603
33604#define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \
33605 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
33606
33607#define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \
33608 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
33609
33610#define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \
33611 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
33612
33613#define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \
33614 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
33615
33616#define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
33617 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
33618
33619#define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \
33620 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
33621
33622#define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \
33623 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
33624
33625#define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33626 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33627
33628#define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33629 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33630
33631#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33632 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33633
33634#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33635 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33636
33637#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33638 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33639
33640#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33641 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33642
33643#define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33644 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33645
33646#define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33647 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33648
33649#define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33650 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33651
33652#define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33653 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33654
33655#define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33656 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33657
33658#define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33659 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33660
33661#define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \
33662 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
33663
33664#define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
33665 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
33666
33667#define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \
33668 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
33669
33670#define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
33671 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
33672
33673#define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
33674 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
33675
33676#define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
33677 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
33678
33679#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33680 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33681
33682#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33683 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33684
33685#define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \
33686 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
33687
33688#define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \
33689 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
33690
33691#define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \
33692 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
33693
33694#define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
33695 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
33696
33697#define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
33698 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
33699
33700#define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \
33701 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
33702
33703#define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \
33704 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
33705
33706#define ID3D12GraphicsCommandList9_EndEvent(This) \
33707 ( (This)->lpVtbl -> EndEvent(This) )
33708
33709#define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
33710 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
33711
33712
33713#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33714 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33715
33716#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33717 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33718
33719#define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \
33720 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
33721
33722#define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
33723 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
33724
33725#define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
33726 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
33727
33728#define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \
33729 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
33730
33731
33732#define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \
33733 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
33734
33735
33736#define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \
33737 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
33738
33739
33740#define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
33741 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
33742
33743#define ID3D12GraphicsCommandList9_EndRenderPass(This) \
33744 ( (This)->lpVtbl -> EndRenderPass(This) )
33745
33746#define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
33747 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
33748
33749#define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
33750 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
33751
33752#define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
33753 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
33754
33755#define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
33756 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
33757
33758#define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
33759 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
33760
33761#define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \
33762 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
33763
33764#define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \
33765 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
33766
33767
33768#define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \
33769 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
33770
33771#define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \
33772 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
33773
33774
33775#define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33776 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33777
33778
33779#define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \
33780 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
33781
33782
33783#define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
33784 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
33785
33786
33787#define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
33788 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
33789
33790#define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
33791 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
33792
33793#endif /* COBJMACROS */
33794
33795
33796#endif /* C style interface */
33797
33798
33799
33800
33801#endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */
33802
33803
33804#ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
33805#define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
33806
33807/* interface ID3D12GraphicsCommandList10 */
33808/* [unique][local][object][uuid] */
33809
33810
33811EXTERN_C const IID IID_ID3D12GraphicsCommandList10;
33812
33813#if defined(__cplusplus) && !defined(CINTERFACE)
33814
33815 MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc")
33816 ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9
33817 {
33818 public:
33819 virtual void STDMETHODCALLTYPE SetProgram(
33820 _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0;
33821
33822 virtual void STDMETHODCALLTYPE DispatchGraph(
33823 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0;
33824
33825 };
33826
33827
33828#else /* C style interface */
33829
33830 typedef struct ID3D12GraphicsCommandList10Vtbl
33831 {
33832 BEGIN_INTERFACE
33833
33834 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
33835 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
33836 ID3D12GraphicsCommandList10 * This,
33837 REFIID riid,
33838 _COM_Outptr_ void **ppvObject);
33839
33840 DECLSPEC_XFGVIRT(IUnknown, AddRef)
33841 ULONG ( STDMETHODCALLTYPE *AddRef )(
33842 ID3D12GraphicsCommandList10 * This);
33843
33844 DECLSPEC_XFGVIRT(IUnknown, Release)
33845 ULONG ( STDMETHODCALLTYPE *Release )(
33846 ID3D12GraphicsCommandList10 * This);
33847
33848 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
33849 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
33850 ID3D12GraphicsCommandList10 * This,
33851 _In_ REFGUID guid,
33852 _Inout_ UINT *pDataSize,
33853 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
33854
33855 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
33856 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
33857 ID3D12GraphicsCommandList10 * This,
33858 _In_ REFGUID guid,
33859 _In_ UINT DataSize,
33860 _In_reads_bytes_opt_( DataSize ) const void *pData);
33861
33862 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
33863 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
33864 ID3D12GraphicsCommandList10 * This,
33865 _In_ REFGUID guid,
33866 _In_opt_ const IUnknown *pData);
33867
33868 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
33869 HRESULT ( STDMETHODCALLTYPE *SetName )(
33870 ID3D12GraphicsCommandList10 * This,
33871 _In_z_ LPCWSTR Name);
33872
33873 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
33874 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
33875 ID3D12GraphicsCommandList10 * This,
33876 REFIID riid,
33877 _COM_Outptr_opt_ void **ppvDevice);
33878
33879 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
33880 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
33881 ID3D12GraphicsCommandList10 * This);
33882
33883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33884 HRESULT ( STDMETHODCALLTYPE *Close )(
33885 ID3D12GraphicsCommandList10 * This);
33886
33887 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33888 HRESULT ( STDMETHODCALLTYPE *Reset )(
33889 ID3D12GraphicsCommandList10 * This,
33890 _In_ ID3D12CommandAllocator *pAllocator,
33891 _In_opt_ ID3D12PipelineState *pInitialState);
33892
33893 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33894 void ( STDMETHODCALLTYPE *ClearState )(
33895 ID3D12GraphicsCommandList10 * This,
33896 _In_opt_ ID3D12PipelineState *pPipelineState);
33897
33898 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33899 void ( STDMETHODCALLTYPE *DrawInstanced )(
33900 ID3D12GraphicsCommandList10 * This,
33901 _In_ UINT VertexCountPerInstance,
33902 _In_ UINT InstanceCount,
33903 _In_ UINT StartVertexLocation,
33904 _In_ UINT StartInstanceLocation);
33905
33906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
33907 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
33908 ID3D12GraphicsCommandList10 * This,
33909 _In_ UINT IndexCountPerInstance,
33910 _In_ UINT InstanceCount,
33911 _In_ UINT StartIndexLocation,
33912 _In_ INT BaseVertexLocation,
33913 _In_ UINT StartInstanceLocation);
33914
33915 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
33916 void ( STDMETHODCALLTYPE *Dispatch )(
33917 ID3D12GraphicsCommandList10 * This,
33918 _In_ UINT ThreadGroupCountX,
33919 _In_ UINT ThreadGroupCountY,
33920 _In_ UINT ThreadGroupCountZ);
33921
33922 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
33923 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
33924 ID3D12GraphicsCommandList10 * This,
33925 _In_ ID3D12Resource *pDstBuffer,
33926 UINT64 DstOffset,
33927 _In_ ID3D12Resource *pSrcBuffer,
33928 UINT64 SrcOffset,
33929 UINT64 NumBytes);
33930
33931 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
33932 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
33933 ID3D12GraphicsCommandList10 * This,
33934 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
33935 UINT DstX,
33936 UINT DstY,
33937 UINT DstZ,
33938 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
33939 _In_opt_ const D3D12_BOX *pSrcBox);
33940
33941 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
33942 void ( STDMETHODCALLTYPE *CopyResource )(
33943 ID3D12GraphicsCommandList10 * This,
33944 _In_ ID3D12Resource *pDstResource,
33945 _In_ ID3D12Resource *pSrcResource);
33946
33947 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
33948 void ( STDMETHODCALLTYPE *CopyTiles )(
33949 ID3D12GraphicsCommandList10 * This,
33950 _In_ ID3D12Resource *pTiledResource,
33951 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
33952 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
33953 _In_ ID3D12Resource *pBuffer,
33954 UINT64 BufferStartOffsetInBytes,
33955 D3D12_TILE_COPY_FLAGS Flags);
33956
33957 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
33958 void ( STDMETHODCALLTYPE *ResolveSubresource )(
33959 ID3D12GraphicsCommandList10 * This,
33960 _In_ ID3D12Resource *pDstResource,
33961 _In_ UINT DstSubresource,
33962 _In_ ID3D12Resource *pSrcResource,
33963 _In_ UINT SrcSubresource,
33964 _In_ DXGI_FORMAT Format);
33965
33966 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
33967 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
33968 ID3D12GraphicsCommandList10 * This,
33969 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
33970
33971 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
33972 void ( STDMETHODCALLTYPE *RSSetViewports )(
33973 ID3D12GraphicsCommandList10 * This,
33974 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
33975 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
33976
33977 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
33978 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
33979 ID3D12GraphicsCommandList10 * This,
33980 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
33981 _In_reads_( NumRects) const D3D12_RECT *pRects);
33982
33983 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
33984 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
33985 ID3D12GraphicsCommandList10 * This,
33986 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
33987
33988 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
33989 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
33990 ID3D12GraphicsCommandList10 * This,
33991 _In_ UINT StencilRef);
33992
33993 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
33994 void ( STDMETHODCALLTYPE *SetPipelineState )(
33995 ID3D12GraphicsCommandList10 * This,
33996 _In_ ID3D12PipelineState *pPipelineState);
33997
33998 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
33999 void ( STDMETHODCALLTYPE *ResourceBarrier )(
34000 ID3D12GraphicsCommandList10 * This,
34001 _In_ UINT NumBarriers,
34002 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
34003
34004 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
34005 void ( STDMETHODCALLTYPE *ExecuteBundle )(
34006 ID3D12GraphicsCommandList10 * This,
34007 _In_ ID3D12GraphicsCommandList *pCommandList);
34008
34009 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
34010 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
34011 ID3D12GraphicsCommandList10 * This,
34012 _In_ UINT NumDescriptorHeaps,
34013 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
34014
34015 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
34016 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
34017 ID3D12GraphicsCommandList10 * This,
34018 _In_opt_ ID3D12RootSignature *pRootSignature);
34019
34020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
34021 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
34022 ID3D12GraphicsCommandList10 * This,
34023 _In_opt_ ID3D12RootSignature *pRootSignature);
34024
34025 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
34026 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
34027 ID3D12GraphicsCommandList10 * This,
34028 _In_ UINT RootParameterIndex,
34029 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34030
34031 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
34032 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
34033 ID3D12GraphicsCommandList10 * This,
34034 _In_ UINT RootParameterIndex,
34035 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34036
34037 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
34038 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
34039 ID3D12GraphicsCommandList10 * This,
34040 _In_ UINT RootParameterIndex,
34041 _In_ UINT SrcData,
34042 _In_ UINT DestOffsetIn32BitValues);
34043
34044 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
34045 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
34046 ID3D12GraphicsCommandList10 * This,
34047 _In_ UINT RootParameterIndex,
34048 _In_ UINT SrcData,
34049 _In_ UINT DestOffsetIn32BitValues);
34050
34051 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
34052 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
34053 ID3D12GraphicsCommandList10 * This,
34054 _In_ UINT RootParameterIndex,
34055 _In_ UINT Num32BitValuesToSet,
34056 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34057 _In_ UINT DestOffsetIn32BitValues);
34058
34059 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
34060 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
34061 ID3D12GraphicsCommandList10 * This,
34062 _In_ UINT RootParameterIndex,
34063 _In_ UINT Num32BitValuesToSet,
34064 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34065 _In_ UINT DestOffsetIn32BitValues);
34066
34067 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
34068 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
34069 ID3D12GraphicsCommandList10 * This,
34070 _In_ UINT RootParameterIndex,
34071 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34072
34073 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
34074 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
34075 ID3D12GraphicsCommandList10 * This,
34076 _In_ UINT RootParameterIndex,
34077 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34078
34079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
34080 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
34081 ID3D12GraphicsCommandList10 * This,
34082 _In_ UINT RootParameterIndex,
34083 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34084
34085 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
34086 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
34087 ID3D12GraphicsCommandList10 * This,
34088 _In_ UINT RootParameterIndex,
34089 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34090
34091 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
34092 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
34093 ID3D12GraphicsCommandList10 * This,
34094 _In_ UINT RootParameterIndex,
34095 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34096
34097 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
34098 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
34099 ID3D12GraphicsCommandList10 * This,
34100 _In_ UINT RootParameterIndex,
34101 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34102
34103 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
34104 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
34105 ID3D12GraphicsCommandList10 * This,
34106 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
34107
34108 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
34109 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
34110 ID3D12GraphicsCommandList10 * This,
34111 _In_ UINT StartSlot,
34112 _In_ UINT NumViews,
34113 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
34114
34115 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
34116 void ( STDMETHODCALLTYPE *SOSetTargets )(
34117 ID3D12GraphicsCommandList10 * This,
34118 _In_ UINT StartSlot,
34119 _In_ UINT NumViews,
34120 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
34121
34122 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
34123 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
34124 ID3D12GraphicsCommandList10 * This,
34125 _In_ UINT NumRenderTargetDescriptors,
34126 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
34127 _In_ BOOL RTsSingleHandleToDescriptorRange,
34128 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
34129
34130 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
34131 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
34132 ID3D12GraphicsCommandList10 * This,
34133 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
34134 _In_ D3D12_CLEAR_FLAGS ClearFlags,
34135 _In_ FLOAT Depth,
34136 _In_ UINT8 Stencil,
34137 _In_ UINT NumRects,
34138 _In_reads_(NumRects) const D3D12_RECT *pRects);
34139
34140 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
34141 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
34142 ID3D12GraphicsCommandList10 * This,
34143 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
34144 _In_ const FLOAT ColorRGBA[ 4 ],
34145 _In_ UINT NumRects,
34146 _In_reads_(NumRects) const D3D12_RECT *pRects);
34147
34148 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
34149 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
34150 ID3D12GraphicsCommandList10 * This,
34151 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34152 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34153 _In_ ID3D12Resource *pResource,
34154 _In_ const UINT Values[ 4 ],
34155 _In_ UINT NumRects,
34156 _In_reads_(NumRects) const D3D12_RECT *pRects);
34157
34158 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
34159 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
34160 ID3D12GraphicsCommandList10 * This,
34161 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34162 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34163 _In_ ID3D12Resource *pResource,
34164 _In_ const FLOAT Values[ 4 ],
34165 _In_ UINT NumRects,
34166 _In_reads_(NumRects) const D3D12_RECT *pRects);
34167
34168 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
34169 void ( STDMETHODCALLTYPE *DiscardResource )(
34170 ID3D12GraphicsCommandList10 * This,
34171 _In_ ID3D12Resource *pResource,
34172 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
34173
34174 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
34175 void ( STDMETHODCALLTYPE *BeginQuery )(
34176 ID3D12GraphicsCommandList10 * This,
34177 _In_ ID3D12QueryHeap *pQueryHeap,
34178 _In_ D3D12_QUERY_TYPE Type,
34179 _In_ UINT Index);
34180
34181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
34182 void ( STDMETHODCALLTYPE *EndQuery )(
34183 ID3D12GraphicsCommandList10 * This,
34184 _In_ ID3D12QueryHeap *pQueryHeap,
34185 _In_ D3D12_QUERY_TYPE Type,
34186 _In_ UINT Index);
34187
34188 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
34189 void ( STDMETHODCALLTYPE *ResolveQueryData )(
34190 ID3D12GraphicsCommandList10 * This,
34191 _In_ ID3D12QueryHeap *pQueryHeap,
34192 _In_ D3D12_QUERY_TYPE Type,
34193 _In_ UINT StartIndex,
34194 _In_ UINT NumQueries,
34195 _In_ ID3D12Resource *pDestinationBuffer,
34196 _In_ UINT64 AlignedDestinationBufferOffset);
34197
34198 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
34199 void ( STDMETHODCALLTYPE *SetPredication )(
34200 ID3D12GraphicsCommandList10 * This,
34201 _In_opt_ ID3D12Resource *pBuffer,
34202 _In_ UINT64 AlignedBufferOffset,
34203 _In_ D3D12_PREDICATION_OP Operation);
34204
34205 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
34206 void ( STDMETHODCALLTYPE *SetMarker )(
34207 ID3D12GraphicsCommandList10 * This,
34208 UINT Metadata,
34209 _In_reads_bytes_opt_(Size) const void *pData,
34210 UINT Size);
34211
34212 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
34213 void ( STDMETHODCALLTYPE *BeginEvent )(
34214 ID3D12GraphicsCommandList10 * This,
34215 UINT Metadata,
34216 _In_reads_bytes_opt_(Size) const void *pData,
34217 UINT Size);
34218
34219 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
34220 void ( STDMETHODCALLTYPE *EndEvent )(
34221 ID3D12GraphicsCommandList10 * This);
34222
34223 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
34224 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
34225 ID3D12GraphicsCommandList10 * This,
34226 _In_ ID3D12CommandSignature *pCommandSignature,
34227 _In_ UINT MaxCommandCount,
34228 _In_ ID3D12Resource *pArgumentBuffer,
34229 _In_ UINT64 ArgumentBufferOffset,
34230 _In_opt_ ID3D12Resource *pCountBuffer,
34231 _In_ UINT64 CountBufferOffset);
34232
34233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
34234 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
34235 ID3D12GraphicsCommandList10 * This,
34236 _In_ ID3D12Resource *pDstBuffer,
34237 UINT64 DstOffset,
34238 _In_ ID3D12Resource *pSrcBuffer,
34239 UINT64 SrcOffset,
34240 UINT Dependencies,
34241 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34242 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34243
34244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
34245 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
34246 ID3D12GraphicsCommandList10 * This,
34247 _In_ ID3D12Resource *pDstBuffer,
34248 UINT64 DstOffset,
34249 _In_ ID3D12Resource *pSrcBuffer,
34250 UINT64 SrcOffset,
34251 UINT Dependencies,
34252 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34253 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34254
34255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
34256 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
34257 ID3D12GraphicsCommandList10 * This,
34258 _In_ FLOAT Min,
34259 _In_ FLOAT Max);
34260
34261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
34262 void ( STDMETHODCALLTYPE *SetSamplePositions )(
34263 ID3D12GraphicsCommandList10 * This,
34264 _In_ UINT NumSamplesPerPixel,
34265 _In_ UINT NumPixels,
34266 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
34267
34268 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
34269 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
34270 ID3D12GraphicsCommandList10 * This,
34271 _In_ ID3D12Resource *pDstResource,
34272 _In_ UINT DstSubresource,
34273 _In_ UINT DstX,
34274 _In_ UINT DstY,
34275 _In_ ID3D12Resource *pSrcResource,
34276 _In_ UINT SrcSubresource,
34277 _In_opt_ D3D12_RECT *pSrcRect,
34278 _In_ DXGI_FORMAT Format,
34279 _In_ D3D12_RESOLVE_MODE ResolveMode);
34280
34281 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
34282 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
34283 ID3D12GraphicsCommandList10 * This,
34284 _In_ UINT Mask);
34285
34286 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
34287 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
34288 ID3D12GraphicsCommandList10 * This,
34289 UINT Count,
34290 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
34291 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
34292
34293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
34294 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
34295 ID3D12GraphicsCommandList10 * This,
34296 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
34297
34298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
34299 void ( STDMETHODCALLTYPE *BeginRenderPass )(
34300 ID3D12GraphicsCommandList10 * This,
34301 _In_ UINT NumRenderTargets,
34302 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
34303 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
34304 D3D12_RENDER_PASS_FLAGS Flags);
34305
34306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
34307 void ( STDMETHODCALLTYPE *EndRenderPass )(
34308 ID3D12GraphicsCommandList10 * This);
34309
34310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
34311 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
34312 ID3D12GraphicsCommandList10 * This,
34313 _In_ ID3D12MetaCommand *pMetaCommand,
34314 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
34315 _In_ SIZE_T InitializationParametersDataSizeInBytes);
34316
34317 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
34318 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
34319 ID3D12GraphicsCommandList10 * This,
34320 _In_ ID3D12MetaCommand *pMetaCommand,
34321 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
34322 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
34323
34324 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
34325 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
34326 ID3D12GraphicsCommandList10 * This,
34327 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
34328 _In_ UINT NumPostbuildInfoDescs,
34329 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
34330
34331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
34332 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
34333 ID3D12GraphicsCommandList10 * This,
34334 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
34335 _In_ UINT NumSourceAccelerationStructures,
34336 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
34337
34338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
34339 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
34340 ID3D12GraphicsCommandList10 * This,
34341 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
34342 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
34343 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
34344
34345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
34346 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
34347 ID3D12GraphicsCommandList10 * This,
34348 _In_ ID3D12StateObject *pStateObject);
34349
34350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
34351 void ( STDMETHODCALLTYPE *DispatchRays )(
34352 ID3D12GraphicsCommandList10 * This,
34353 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
34354
34355 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
34356 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
34357 ID3D12GraphicsCommandList10 * This,
34358 _In_ D3D12_SHADING_RATE baseShadingRate,
34359 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
34360
34361 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
34362 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
34363 ID3D12GraphicsCommandList10 * This,
34364 _In_opt_ ID3D12Resource *shadingRateImage);
34365
34366 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
34367 void ( STDMETHODCALLTYPE *DispatchMesh )(
34368 ID3D12GraphicsCommandList10 * This,
34369 _In_ UINT ThreadGroupCountX,
34370 _In_ UINT ThreadGroupCountY,
34371 _In_ UINT ThreadGroupCountZ);
34372
34373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
34374 void ( STDMETHODCALLTYPE *Barrier )(
34375 ID3D12GraphicsCommandList10 * This,
34376 UINT32 NumBarrierGroups,
34377 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
34378
34379 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
34380 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
34381 ID3D12GraphicsCommandList10 * This,
34382 _In_ UINT FrontStencilRef,
34383 _In_ UINT BackStencilRef);
34384
34385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
34386 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
34387 ID3D12GraphicsCommandList10 * This,
34388 _In_ FLOAT DepthBias,
34389 _In_ FLOAT DepthBiasClamp,
34390 _In_ FLOAT SlopeScaledDepthBias);
34391
34392 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
34393 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
34394 ID3D12GraphicsCommandList10 * This,
34395 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
34396
34397 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram)
34398 void ( STDMETHODCALLTYPE *SetProgram )(
34399 ID3D12GraphicsCommandList10 * This,
34400 _In_ const D3D12_SET_PROGRAM_DESC *pDesc);
34401
34402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph)
34403 void ( STDMETHODCALLTYPE *DispatchGraph )(
34404 ID3D12GraphicsCommandList10 * This,
34405 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc);
34406
34407 END_INTERFACE
34408 } ID3D12GraphicsCommandList10Vtbl;
34409
34410 interface ID3D12GraphicsCommandList10
34411 {
34412 CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl;
34413 };
34414
34415
34416
34417#ifdef COBJMACROS
34418
34419
34420#define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \
34421 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
34422
34423#define ID3D12GraphicsCommandList10_AddRef(This) \
34424 ( (This)->lpVtbl -> AddRef(This) )
34425
34426#define ID3D12GraphicsCommandList10_Release(This) \
34427 ( (This)->lpVtbl -> Release(This) )
34428
34429
34430#define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \
34431 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
34432
34433#define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \
34434 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
34435
34436#define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \
34437 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
34438
34439#define ID3D12GraphicsCommandList10_SetName(This,Name) \
34440 ( (This)->lpVtbl -> SetName(This,Name) )
34441
34442
34443#define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \
34444 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
34445
34446
34447#define ID3D12GraphicsCommandList10_GetType(This) \
34448 ( (This)->lpVtbl -> GetType(This) )
34449
34450
34451#define ID3D12GraphicsCommandList10_Close(This) \
34452 ( (This)->lpVtbl -> Close(This) )
34453
34454#define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \
34455 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
34456
34457#define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \
34458 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
34459
34460#define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
34461 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
34462
34463#define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
34464 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
34465
34466#define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34467 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34468
34469#define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
34470 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
34471
34472#define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
34473 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
34474
34475#define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \
34476 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
34477
34478#define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
34479 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
34480
34481#define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
34482 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
34483
34484#define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \
34485 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
34486
34487#define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \
34488 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
34489
34490#define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \
34491 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
34492
34493#define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \
34494 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
34495
34496#define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \
34497 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
34498
34499#define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \
34500 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
34501
34502#define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \
34503 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
34504
34505#define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \
34506 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
34507
34508#define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
34509 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
34510
34511#define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \
34512 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
34513
34514#define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \
34515 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
34516
34517#define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34518 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34519
34520#define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34521 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34522
34523#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34524 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34525
34526#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34527 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34528
34529#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34530 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34531
34532#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34533 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34534
34535#define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34536 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34537
34538#define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34539 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34540
34541#define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34542 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34543
34544#define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34545 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34546
34547#define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34548 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34549
34550#define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34551 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34552
34553#define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \
34554 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
34555
34556#define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
34557 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
34558
34559#define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \
34560 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
34561
34562#define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
34563 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
34564
34565#define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
34566 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
34567
34568#define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
34569 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
34570
34571#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34572 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34573
34574#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34575 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34576
34577#define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \
34578 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
34579
34580#define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \
34581 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
34582
34583#define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \
34584 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
34585
34586#define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
34587 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
34588
34589#define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
34590 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
34591
34592#define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \
34593 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
34594
34595#define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \
34596 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
34597
34598#define ID3D12GraphicsCommandList10_EndEvent(This) \
34599 ( (This)->lpVtbl -> EndEvent(This) )
34600
34601#define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
34602 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
34603
34604
34605#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34606 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34607
34608#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34609 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34610
34611#define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \
34612 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
34613
34614#define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
34615 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
34616
34617#define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
34618 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
34619
34620#define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \
34621 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
34622
34623
34624#define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \
34625 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
34626
34627
34628#define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \
34629 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
34630
34631
34632#define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
34633 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
34634
34635#define ID3D12GraphicsCommandList10_EndRenderPass(This) \
34636 ( (This)->lpVtbl -> EndRenderPass(This) )
34637
34638#define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
34639 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
34640
34641#define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
34642 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
34643
34644#define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
34645 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
34646
34647#define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
34648 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
34649
34650#define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
34651 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
34652
34653#define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \
34654 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
34655
34656#define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \
34657 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
34658
34659
34660#define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \
34661 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
34662
34663#define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \
34664 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
34665
34666
34667#define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34668 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34669
34670
34671#define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \
34672 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
34673
34674
34675#define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
34676 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
34677
34678
34679#define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
34680 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
34681
34682#define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
34683 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
34684
34685
34686#define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \
34687 ( (This)->lpVtbl -> SetProgram(This,pDesc) )
34688
34689#define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \
34690 ( (This)->lpVtbl -> DispatchGraph(This,pDesc) )
34691
34692#endif /* COBJMACROS */
34693
34694
34695#endif /* C style interface */
34696
34697
34698
34699
34700#endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */
34701
34702
34703#ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
34704#define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
34705
34706/* interface ID3D12GBVDiagnostics */
34707/* [unique][local][object][uuid] */
34708
34709
34710EXTERN_C const IID IID_ID3D12GBVDiagnostics;
34711
34712#if defined(__cplusplus) && !defined(CINTERFACE)
34713
34714 MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee")
34715 ID3D12GBVDiagnostics : public IUnknown
34716 {
34717 public:
34718 virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData(
34719 _In_ ID3D12Resource *pResource,
34720 _Out_writes_bytes_(DataSize) int *pData,
34721 UINT DataSize) = 0;
34722
34723 virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState(
34724 _In_ ID3D12Resource *pResource,
34725 UINT Subresource,
34726 _Out_ int *pData) = 0;
34727
34728 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState(
34729 _In_ ID3D12Resource *pResource,
34730 _Out_ int *pData) = 0;
34731
34732 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo(
34733 _In_ ID3D12Resource *pResource,
34734 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
34735 _In_opt_ UINT32 *pResourceHash,
34736 _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0;
34737
34738 virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0;
34739
34740 virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0;
34741
34742 };
34743
34744
34745#else /* C style interface */
34746
34747 typedef struct ID3D12GBVDiagnosticsVtbl
34748 {
34749 BEGIN_INTERFACE
34750
34751 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
34752 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
34753 ID3D12GBVDiagnostics * This,
34754 REFIID riid,
34755 _COM_Outptr_ void **ppvObject);
34756
34757 DECLSPEC_XFGVIRT(IUnknown, AddRef)
34758 ULONG ( STDMETHODCALLTYPE *AddRef )(
34759 ID3D12GBVDiagnostics * This);
34760
34761 DECLSPEC_XFGVIRT(IUnknown, Release)
34762 ULONG ( STDMETHODCALLTYPE *Release )(
34763 ID3D12GBVDiagnostics * This);
34764
34765 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData)
34766 HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )(
34767 ID3D12GBVDiagnostics * This,
34768 _In_ ID3D12Resource *pResource,
34769 _Out_writes_bytes_(DataSize) int *pData,
34770 UINT DataSize);
34771
34772 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState)
34773 HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )(
34774 ID3D12GBVDiagnostics * This,
34775 _In_ ID3D12Resource *pResource,
34776 UINT Subresource,
34777 _Out_ int *pData);
34778
34779 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState)
34780 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )(
34781 ID3D12GBVDiagnostics * This,
34782 _In_ ID3D12Resource *pResource,
34783 _Out_ int *pData);
34784
34785 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo)
34786 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )(
34787 ID3D12GBVDiagnostics * This,
34788 _In_ ID3D12Resource *pResource,
34789 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
34790 _In_opt_ UINT32 *pResourceHash,
34791 _In_opt_ UINT32 *pSubresourceStatesByteOffset);
34792
34793 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0)
34794 void ( STDMETHODCALLTYPE *GBVReserved0 )(
34795 ID3D12GBVDiagnostics * This);
34796
34797 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1)
34798 void ( STDMETHODCALLTYPE *GBVReserved1 )(
34799 ID3D12GBVDiagnostics * This);
34800
34801 END_INTERFACE
34802 } ID3D12GBVDiagnosticsVtbl;
34803
34804 interface ID3D12GBVDiagnostics
34805 {
34806 CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl;
34807 };
34808
34809
34810
34811#ifdef COBJMACROS
34812
34813
34814#define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \
34815 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
34816
34817#define ID3D12GBVDiagnostics_AddRef(This) \
34818 ( (This)->lpVtbl -> AddRef(This) )
34819
34820#define ID3D12GBVDiagnostics_Release(This) \
34821 ( (This)->lpVtbl -> Release(This) )
34822
34823
34824#define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \
34825 ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) )
34826
34827#define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \
34828 ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) )
34829
34830#define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \
34831 ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) )
34832
34833#define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \
34834 ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) )
34835
34836#define ID3D12GBVDiagnostics_GBVReserved0(This) \
34837 ( (This)->lpVtbl -> GBVReserved0(This) )
34838
34839#define ID3D12GBVDiagnostics_GBVReserved1(This) \
34840 ( (This)->lpVtbl -> GBVReserved1(This) )
34841
34842#endif /* COBJMACROS */
34843
34844
34845#endif /* C style interface */
34846
34847
34848
34849
34850#endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */
34851
34852
34853/* interface __MIDL_itf_d3d12_0000_0074 */
34854/* [local] */
34855
34856#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
34857#ifdef _MSC_VER
34858#pragma endregion
34859#endif
34860DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
34861DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
34862DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
34863DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
34864DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
34865DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
34866DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
34867DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
34868DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);
34869DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);
34870DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
34871DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);
34872DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);
34873DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);
34874DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);
34875DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);
34876DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
34877DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
34878DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);
34879DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
34880DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
34881DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
34882DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);
34883DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
34884DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
34885DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
34886DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
34887DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
34888DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
34889DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
34890DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
34891DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
34892DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
34893DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
34894DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);
34895DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);
34896DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
34897DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);
34898DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);
34899DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);
34900DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);
34901DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);
34902DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);
34903DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);
34904DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);
34905DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);
34906DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);
34907DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
34908DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);
34909DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
34910DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
34911DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
34912DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
34913DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);
34914DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
34915DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);
34916DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);
34917DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);
34918DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);
34919DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);
34920DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);
34921DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
34922DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
34923DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
34924DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);
34925DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);
34926DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);
34927DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);
34928DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);
34929DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
34930DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);
34931DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);
34932DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);
34933DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);
34934
34935
34936extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec;
34937extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec;
34938
34939/* Additional Prototypes for ALL interfaces */
34940
34941/* end of Additional Prototypes */
34942
34943#ifdef __cplusplus
34944}
34945#endif
34946
34947#endif
34948
34949