aboutsummaryrefslogtreecommitdiff
path: root/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h')
-rw-r--r--contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h36886
1 files changed, 36886 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h
new file mode 100644
index 0000000..0d12a2b
--- /dev/null
+++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h
@@ -0,0 +1,36886 @@
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/* Forward Declarations */
54
55#ifndef __ID3D12Object_FWD_DEFINED__
56#define __ID3D12Object_FWD_DEFINED__
57typedef interface ID3D12Object ID3D12Object;
58
59#endif /* __ID3D12Object_FWD_DEFINED__ */
60
61
62#ifndef __ID3D12DeviceChild_FWD_DEFINED__
63#define __ID3D12DeviceChild_FWD_DEFINED__
64typedef interface ID3D12DeviceChild ID3D12DeviceChild;
65
66#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
67
68
69#ifndef __ID3D12RootSignature_FWD_DEFINED__
70#define __ID3D12RootSignature_FWD_DEFINED__
71typedef interface ID3D12RootSignature ID3D12RootSignature;
72
73#endif /* __ID3D12RootSignature_FWD_DEFINED__ */
74
75
76#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
77#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
78typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
79
80#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
81
82
83#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
84#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
85typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
86
87#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
88
89
90#ifndef __ID3D12Pageable_FWD_DEFINED__
91#define __ID3D12Pageable_FWD_DEFINED__
92typedef interface ID3D12Pageable ID3D12Pageable;
93
94#endif /* __ID3D12Pageable_FWD_DEFINED__ */
95
96
97#ifndef __ID3D12Heap_FWD_DEFINED__
98#define __ID3D12Heap_FWD_DEFINED__
99typedef interface ID3D12Heap ID3D12Heap;
100
101#endif /* __ID3D12Heap_FWD_DEFINED__ */
102
103
104#ifndef __ID3D12Resource_FWD_DEFINED__
105#define __ID3D12Resource_FWD_DEFINED__
106typedef interface ID3D12Resource ID3D12Resource;
107
108#endif /* __ID3D12Resource_FWD_DEFINED__ */
109
110
111#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
112#define __ID3D12CommandAllocator_FWD_DEFINED__
113typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
114
115#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
116
117
118#ifndef __ID3D12Fence_FWD_DEFINED__
119#define __ID3D12Fence_FWD_DEFINED__
120typedef interface ID3D12Fence ID3D12Fence;
121
122#endif /* __ID3D12Fence_FWD_DEFINED__ */
123
124
125#ifndef __ID3D12Fence1_FWD_DEFINED__
126#define __ID3D12Fence1_FWD_DEFINED__
127typedef interface ID3D12Fence1 ID3D12Fence1;
128
129#endif /* __ID3D12Fence1_FWD_DEFINED__ */
130
131
132#ifndef __ID3D12PipelineState_FWD_DEFINED__
133#define __ID3D12PipelineState_FWD_DEFINED__
134typedef interface ID3D12PipelineState ID3D12PipelineState;
135
136#endif /* __ID3D12PipelineState_FWD_DEFINED__ */
137
138
139#ifndef __ID3D12PipelineState1_FWD_DEFINED__
140#define __ID3D12PipelineState1_FWD_DEFINED__
141typedef interface ID3D12PipelineState1 ID3D12PipelineState1;
142
143#endif /* __ID3D12PipelineState1_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 __ID3D12CommandQueue1_FWD_DEFINED__
203#define __ID3D12CommandQueue1_FWD_DEFINED__
204typedef interface ID3D12CommandQueue1 ID3D12CommandQueue1;
205
206#endif /* __ID3D12CommandQueue1_FWD_DEFINED__ */
207
208
209#ifndef __ID3D12Device_FWD_DEFINED__
210#define __ID3D12Device_FWD_DEFINED__
211typedef interface ID3D12Device ID3D12Device;
212
213#endif /* __ID3D12Device_FWD_DEFINED__ */
214
215
216#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
217#define __ID3D12PipelineLibrary_FWD_DEFINED__
218typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
219
220#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
221
222
223#ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
224#define __ID3D12PipelineLibrary1_FWD_DEFINED__
225typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1;
226
227#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
228
229
230#ifndef __ID3D12Device1_FWD_DEFINED__
231#define __ID3D12Device1_FWD_DEFINED__
232typedef interface ID3D12Device1 ID3D12Device1;
233
234#endif /* __ID3D12Device1_FWD_DEFINED__ */
235
236
237#ifndef __ID3D12Device2_FWD_DEFINED__
238#define __ID3D12Device2_FWD_DEFINED__
239typedef interface ID3D12Device2 ID3D12Device2;
240
241#endif /* __ID3D12Device2_FWD_DEFINED__ */
242
243
244#ifndef __ID3D12Device3_FWD_DEFINED__
245#define __ID3D12Device3_FWD_DEFINED__
246typedef interface ID3D12Device3 ID3D12Device3;
247
248#endif /* __ID3D12Device3_FWD_DEFINED__ */
249
250
251#ifndef __ID3D12ProtectedSession_FWD_DEFINED__
252#define __ID3D12ProtectedSession_FWD_DEFINED__
253typedef interface ID3D12ProtectedSession ID3D12ProtectedSession;
254
255#endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */
256
257
258#ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__
259#define __ID3D12ProtectedResourceSession_FWD_DEFINED__
260typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession;
261
262#endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */
263
264
265#ifndef __ID3D12Device4_FWD_DEFINED__
266#define __ID3D12Device4_FWD_DEFINED__
267typedef interface ID3D12Device4 ID3D12Device4;
268
269#endif /* __ID3D12Device4_FWD_DEFINED__ */
270
271
272#ifndef __ID3D12LifetimeOwner_FWD_DEFINED__
273#define __ID3D12LifetimeOwner_FWD_DEFINED__
274typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner;
275
276#endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */
277
278
279#ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__
280#define __ID3D12SwapChainAssistant_FWD_DEFINED__
281typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant;
282
283#endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */
284
285
286#ifndef __ID3D12LifetimeTracker_FWD_DEFINED__
287#define __ID3D12LifetimeTracker_FWD_DEFINED__
288typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker;
289
290#endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */
291
292
293#ifndef __ID3D12StateObject_FWD_DEFINED__
294#define __ID3D12StateObject_FWD_DEFINED__
295typedef interface ID3D12StateObject ID3D12StateObject;
296
297#endif /* __ID3D12StateObject_FWD_DEFINED__ */
298
299
300#ifndef __ID3D12StateObjectProperties_FWD_DEFINED__
301#define __ID3D12StateObjectProperties_FWD_DEFINED__
302typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties;
303
304#endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */
305
306
307#ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__
308#define __ID3D12StateObjectProperties1_FWD_DEFINED__
309typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1;
310
311#endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */
312
313
314#ifndef __ID3D12StateObjectProperties2_FWD_DEFINED__
315#define __ID3D12StateObjectProperties2_FWD_DEFINED__
316typedef interface ID3D12StateObjectProperties2 ID3D12StateObjectProperties2;
317
318#endif /* __ID3D12StateObjectProperties2_FWD_DEFINED__ */
319
320
321#ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__
322#define __ID3D12WorkGraphProperties_FWD_DEFINED__
323typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties;
324
325#endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */
326
327
328#ifndef __ID3D12Device5_FWD_DEFINED__
329#define __ID3D12Device5_FWD_DEFINED__
330typedef interface ID3D12Device5 ID3D12Device5;
331
332#endif /* __ID3D12Device5_FWD_DEFINED__ */
333
334
335#ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
336#define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__
337typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings;
338
339#endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */
340
341
342#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
343#define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__
344typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1;
345
346#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */
347
348
349#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
350#define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__
351typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2;
352
353#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */
354
355
356#ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
357#define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__
358typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData;
359
360#endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */
361
362
363#ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
364#define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__
365typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1;
366
367#endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */
368
369
370#ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
371#define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__
372typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2;
373
374#endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */
375
376
377#ifndef __ID3D12Device6_FWD_DEFINED__
378#define __ID3D12Device6_FWD_DEFINED__
379typedef interface ID3D12Device6 ID3D12Device6;
380
381#endif /* __ID3D12Device6_FWD_DEFINED__ */
382
383
384#ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__
385#define __ID3D12ProtectedResourceSession1_FWD_DEFINED__
386typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1;
387
388#endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */
389
390
391#ifndef __ID3D12Device7_FWD_DEFINED__
392#define __ID3D12Device7_FWD_DEFINED__
393typedef interface ID3D12Device7 ID3D12Device7;
394
395#endif /* __ID3D12Device7_FWD_DEFINED__ */
396
397
398#ifndef __ID3D12Device8_FWD_DEFINED__
399#define __ID3D12Device8_FWD_DEFINED__
400typedef interface ID3D12Device8 ID3D12Device8;
401
402#endif /* __ID3D12Device8_FWD_DEFINED__ */
403
404
405#ifndef __ID3D12Resource1_FWD_DEFINED__
406#define __ID3D12Resource1_FWD_DEFINED__
407typedef interface ID3D12Resource1 ID3D12Resource1;
408
409#endif /* __ID3D12Resource1_FWD_DEFINED__ */
410
411
412#ifndef __ID3D12Resource2_FWD_DEFINED__
413#define __ID3D12Resource2_FWD_DEFINED__
414typedef interface ID3D12Resource2 ID3D12Resource2;
415
416#endif /* __ID3D12Resource2_FWD_DEFINED__ */
417
418
419#ifndef __ID3D12Heap1_FWD_DEFINED__
420#define __ID3D12Heap1_FWD_DEFINED__
421typedef interface ID3D12Heap1 ID3D12Heap1;
422
423#endif /* __ID3D12Heap1_FWD_DEFINED__ */
424
425
426#ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__
427#define __ID3D12GraphicsCommandList3_FWD_DEFINED__
428typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3;
429
430#endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */
431
432
433#ifndef __ID3D12MetaCommand_FWD_DEFINED__
434#define __ID3D12MetaCommand_FWD_DEFINED__
435typedef interface ID3D12MetaCommand ID3D12MetaCommand;
436
437#endif /* __ID3D12MetaCommand_FWD_DEFINED__ */
438
439
440#ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__
441#define __ID3D12GraphicsCommandList4_FWD_DEFINED__
442typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4;
443
444#endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */
445
446
447#ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__
448#define __ID3D12ShaderCacheSession_FWD_DEFINED__
449typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession;
450
451#endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */
452
453
454#ifndef __ID3D12Device9_FWD_DEFINED__
455#define __ID3D12Device9_FWD_DEFINED__
456typedef interface ID3D12Device9 ID3D12Device9;
457
458#endif /* __ID3D12Device9_FWD_DEFINED__ */
459
460
461#ifndef __ID3D12Device10_FWD_DEFINED__
462#define __ID3D12Device10_FWD_DEFINED__
463typedef interface ID3D12Device10 ID3D12Device10;
464
465#endif /* __ID3D12Device10_FWD_DEFINED__ */
466
467
468#ifndef __ID3D12Device11_FWD_DEFINED__
469#define __ID3D12Device11_FWD_DEFINED__
470typedef interface ID3D12Device11 ID3D12Device11;
471
472#endif /* __ID3D12Device11_FWD_DEFINED__ */
473
474
475#ifndef __ID3D12Device12_FWD_DEFINED__
476#define __ID3D12Device12_FWD_DEFINED__
477typedef interface ID3D12Device12 ID3D12Device12;
478
479#endif /* __ID3D12Device12_FWD_DEFINED__ */
480
481
482#ifndef __ID3D12Device13_FWD_DEFINED__
483#define __ID3D12Device13_FWD_DEFINED__
484typedef interface ID3D12Device13 ID3D12Device13;
485
486#endif /* __ID3D12Device13_FWD_DEFINED__ */
487
488
489#ifndef __ID3D12Device14_FWD_DEFINED__
490#define __ID3D12Device14_FWD_DEFINED__
491typedef interface ID3D12Device14 ID3D12Device14;
492
493#endif /* __ID3D12Device14_FWD_DEFINED__ */
494
495
496#ifndef __ID3D12StateObjectDatabase_FWD_DEFINED__
497#define __ID3D12StateObjectDatabase_FWD_DEFINED__
498typedef interface ID3D12StateObjectDatabase ID3D12StateObjectDatabase;
499
500#endif /* __ID3D12StateObjectDatabase_FWD_DEFINED__ */
501
502
503#ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
504#define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__
505typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice;
506
507#endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */
508
509
510#ifndef __ID3D12Tools_FWD_DEFINED__
511#define __ID3D12Tools_FWD_DEFINED__
512typedef interface ID3D12Tools ID3D12Tools;
513
514#endif /* __ID3D12Tools_FWD_DEFINED__ */
515
516
517#ifndef __ID3D12Tools1_FWD_DEFINED__
518#define __ID3D12Tools1_FWD_DEFINED__
519typedef interface ID3D12Tools1 ID3D12Tools1;
520
521#endif /* __ID3D12Tools1_FWD_DEFINED__ */
522
523
524#ifndef __ID3D12Tools2_FWD_DEFINED__
525#define __ID3D12Tools2_FWD_DEFINED__
526typedef interface ID3D12Tools2 ID3D12Tools2;
527
528#endif /* __ID3D12Tools2_FWD_DEFINED__ */
529
530
531#ifndef __ID3D12PageableTools_FWD_DEFINED__
532#define __ID3D12PageableTools_FWD_DEFINED__
533typedef interface ID3D12PageableTools ID3D12PageableTools;
534
535#endif /* __ID3D12PageableTools_FWD_DEFINED__ */
536
537
538#ifndef __ID3D12DeviceTools_FWD_DEFINED__
539#define __ID3D12DeviceTools_FWD_DEFINED__
540typedef interface ID3D12DeviceTools ID3D12DeviceTools;
541
542#endif /* __ID3D12DeviceTools_FWD_DEFINED__ */
543
544
545#ifndef __ID3D12DeviceTools1_FWD_DEFINED__
546#define __ID3D12DeviceTools1_FWD_DEFINED__
547typedef interface ID3D12DeviceTools1 ID3D12DeviceTools1;
548
549#endif /* __ID3D12DeviceTools1_FWD_DEFINED__ */
550
551
552#ifndef __ID3D12SDKConfiguration_FWD_DEFINED__
553#define __ID3D12SDKConfiguration_FWD_DEFINED__
554typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration;
555
556#endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */
557
558
559#ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__
560#define __ID3D12SDKConfiguration1_FWD_DEFINED__
561typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1;
562
563#endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */
564
565
566#ifndef __ID3D12DeviceFactory_FWD_DEFINED__
567#define __ID3D12DeviceFactory_FWD_DEFINED__
568typedef interface ID3D12DeviceFactory ID3D12DeviceFactory;
569
570#endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */
571
572
573#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__
574#define __ID3D12DeviceConfiguration_FWD_DEFINED__
575typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration;
576
577#endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */
578
579
580#ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__
581#define __ID3D12DeviceConfiguration1_FWD_DEFINED__
582typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1;
583
584#endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */
585
586
587#ifndef __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__
588#define __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__
589typedef interface ID3D12StateObjectDatabaseFactory ID3D12StateObjectDatabaseFactory;
590
591#endif /* __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ */
592
593
594#ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
595#define __ID3D12GraphicsCommandList5_FWD_DEFINED__
596typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
597
598#endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */
599
600
601#ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__
602#define __ID3D12GraphicsCommandList6_FWD_DEFINED__
603typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
604
605#endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */
606
607
608#ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__
609#define __ID3D12GraphicsCommandList7_FWD_DEFINED__
610typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7;
611
612#endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */
613
614
615#ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__
616#define __ID3D12GraphicsCommandList8_FWD_DEFINED__
617typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8;
618
619#endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */
620
621
622#ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__
623#define __ID3D12GraphicsCommandList9_FWD_DEFINED__
624typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9;
625
626#endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */
627
628
629#ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__
630#define __ID3D12GraphicsCommandList10_FWD_DEFINED__
631typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10;
632
633#endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */
634
635
636#ifndef __ID3D12DSRDeviceFactory_FWD_DEFINED__
637#define __ID3D12DSRDeviceFactory_FWD_DEFINED__
638typedef interface ID3D12DSRDeviceFactory ID3D12DSRDeviceFactory;
639
640#endif /* __ID3D12DSRDeviceFactory_FWD_DEFINED__ */
641
642
643#ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__
644#define __ID3D12GBVDiagnostics_FWD_DEFINED__
645typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics;
646
647#endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */
648
649
650/* header files for imported files */
651#include "oaidl.h"
652#include "ocidl.h"
653#include "dxgicommon.h"
654#include "dxgiformat.h"
655#include "d3dcommon.h"
656
657#ifdef __cplusplus
658extern "C"{
659#endif
660
661
662/* interface __MIDL_itf_d3d12_0000_0000 */
663/* [local] */
664
665#include <winapifamily.h>
666#pragma region App Family
667#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
668#ifndef _D3D12_CONSTANTS
669#define _D3D12_CONSTANTS
670#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff )
671
672#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff )
673
674#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff )
675
676#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff )
677
678#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 )
679
680#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 )
681
682#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 )
683
684#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 )
685
686#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 )
687
688#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 )
689
690#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 )
691
692#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 )
693
694#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
695
696#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 )
697
698#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
699
700#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
701
702#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 )
703
704#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 )
705
706#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 )
707
708#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 )
709
710#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 )
711
712#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 )
713
714#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 )
715
716#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 )
717
718#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 )
719
720#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 )
721
722#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 )
723
724#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 )
725
726#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 )
727
728#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 )
729
730#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 )
731
732#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 )
733
734#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 )
735
736#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 )
737
738#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 )
739
740#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 )
741
742#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 )
743
744#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 )
745
746#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 )
747
748#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 )
749
750#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 )
751
752#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 )
753
754#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 )
755
756#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 )
757
758#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 )
759
760#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 )
761
762#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 )
763
764#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 )
765
766#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 )
767
768#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 )
769
770#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 )
771
772#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 )
773
774#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 )
775
776#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 )
777
778#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 )
779
780#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 )
781
782#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 )
783
784#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 )
785
786#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 )
787
788#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 )
789
790#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 )
791
792#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 )
793
794#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 )
795
796#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 )
797
798#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 )
799
800#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 )
801
802#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 )
803
804#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 )
805
806#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 )
807
808#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 )
809
810#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 )
811
812#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 )
813
814#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 )
815
816#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 )
817
818#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 )
819
820#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 )
821
822#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 )
823
824#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 )
825
826#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 )
827
828#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 )
829
830#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 )
831
832#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 )
833
834#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 )
835
836#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 )
837
838#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 )
839
840#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 )
841
842#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 )
843
844#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 )
845
846#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 )
847
848#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 )
849
850#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 )
851
852#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 )
853
854#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 )
855
856#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 )
857
858#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 )
859
860#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 )
861
862#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 )
863
864#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 )
865
866#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 )
867
868#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 )
869
870#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 )
871
872#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 )
873
874#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )
875#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )
876#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )
877#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )
878#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )
879#define D3D12_DEFAULT_DEPTH_BIAS ( 0 )
880
881#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )
882#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 )
883
884#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )
885#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 )
886
887#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 )
888
889#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
890
891#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff )
892
893#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 )
894
895#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 )
896
897#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 )
898
899#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 )
900
901#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )
902#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff )
903
904#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 )
905
906#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff )
907
908#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 )
909
910#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 )
911
912#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )
913#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )
914#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 )
915
916#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 )
917
918#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 )
919
920#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff )
921
922#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 )
923
924#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
925
926#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
927
928#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
929
930#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
931
932#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 )
933
934#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
935
936#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
937
938#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 )
939
940#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
941
942#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 )
943
944#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 )
945
946#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 )
947
948#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
949
950#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
951
952#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
953
954#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
955
956#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
957
958#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
959
960#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
961
962#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
963
964#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
965
966#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
967
968#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 )
969
970#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
971
972#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 )
973
974#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )
975#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )
976#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )
977#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )
978#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )
979#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )
980#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )
981#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )
982#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )
983#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )
984#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )
985#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )
986#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )
987#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 )
988
989#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 )
990
991#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
992
993#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
994
995#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 )
996
997#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 )
998
999#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1000
1001#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 )
1002
1003#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 )
1004
1005#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 )
1006
1007#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 )
1008
1009#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1010
1011#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 )
1012
1013#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 )
1014
1015#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 )
1016
1017#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 )
1018
1019#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 )
1020
1021#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 )
1022
1023#define D3D12_GS_OUTPUT_ELEMENTS ( 32 )
1024
1025#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1026
1027#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1028
1029#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 )
1030
1031#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 )
1032
1033#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 )
1034
1035#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 )
1036
1037#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1038
1039#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 )
1040
1041#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 )
1042
1043#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
1044
1045#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
1046
1047#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1048
1049#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 )
1050
1051#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
1052
1053#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
1054
1055#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 )
1056
1057#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1058
1059#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 )
1060
1061#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 )
1062
1063#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 )
1064
1065#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 )
1066
1067#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1068
1069#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 )
1070
1071#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 )
1072
1073#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 )
1074
1075#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff )
1076
1077#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )
1078#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )
1079#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 )
1080
1081#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 )
1082
1083#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1084
1085#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 )
1086
1087#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 )
1088
1089#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 )
1090
1091#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 )
1092
1093#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1094
1095#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 )
1096
1097#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 )
1098
1099#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 )
1100
1101#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 )
1102
1103#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 )
1104
1105#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 )
1106
1107#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 )
1108
1109#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 )
1110
1111#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 )
1112
1113#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 )
1114
1115#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 )
1116
1117#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 )
1118
1119#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 )
1120
1121#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 )
1122
1123#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 )
1124
1125#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 )
1126
1127#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff )
1128
1129#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff )
1130
1131#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff )
1132
1133#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff )
1134
1135#define D3D12_LINEAR_GAMMA ( 1.0f )
1136#define D3D12_MAJOR_VERSION ( 12 )
1137
1138#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )
1139#define D3D12_MAX_DEPTH ( 1.0f )
1140#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 )
1141
1142#define D3D12_MAX_MAXANISOTROPY ( 16 )
1143
1144#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 )
1145
1146#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )
1147#define D3D12_MAX_ROOT_COST ( 64 )
1148
1149#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 )
1150
1151#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 )
1152
1153#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 )
1154
1155#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 )
1156
1157#define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 )
1158
1159#define D3D12_MINOR_VERSION ( 0 )
1160
1161#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )
1162#define D3D12_MIN_DEPTH ( 0.0f )
1163#define D3D12_MIN_MAXANISOTROPY ( 0 )
1164
1165#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )
1166#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )
1167#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 )
1168
1169#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 )
1170
1171#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )
1172#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 )
1173
1174#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1175
1176#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 )
1177
1178#define D3D12_PACKED_TILE ( 0xffffffff )
1179
1180#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 )
1181
1182#define D3D12_PREVIEW_SDK_VERSION ( 717 )
1183
1184#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1185
1186#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 )
1187
1188#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 )
1189
1190#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 )
1191
1192#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 )
1193
1194#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff )
1195
1196#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 )
1197
1198#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff )
1199
1200#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 )
1201
1202#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1203
1204#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 )
1205
1206#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 )
1207
1208#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 )
1209
1210#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )
1211#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 )
1212
1213#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1214
1215#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 )
1216
1217#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 )
1218
1219#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1220
1221#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 )
1222
1223#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1224
1225#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1226
1227#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 )
1228
1229#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )
1230#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 )
1231
1232#define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 )
1233
1234#define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 )
1235
1236#define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 )
1237
1238#define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 )
1239
1240#define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 )
1241
1242#define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1243
1244#define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 )
1245
1246#define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 )
1247
1248#define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 )
1249
1250#define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 )
1251
1252#define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 )
1253
1254#define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 )
1255
1256#define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 )
1257
1258#define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 )
1259
1260#define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 )
1261
1262#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 )
1263
1264#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 )
1265
1266#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1267
1268#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 )
1269
1270#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 )
1271
1272#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 )
1273
1274#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 )
1275
1276#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 )
1277
1278#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 )
1279
1280#define D3D12_REQ_MAXANISOTROPY ( 16 )
1281
1282#define D3D12_REQ_MIP_LEVELS ( 15 )
1283
1284#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 )
1285
1286#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1287
1288#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 )
1289
1290#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 )
1291
1292#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )
1293#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 )
1294
1295#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 )
1296
1297#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 )
1298
1299#define D3D12_REQ_SUBRESOURCES ( 30720 )
1300
1301#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 )
1302
1303#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 )
1304
1305#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 )
1306
1307#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 )
1308
1309#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 )
1310
1311#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 )
1312
1313#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 )
1314
1315#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff )
1316
1317#define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 )
1318
1319#define D3D12_SDK_VERSION ( 618 )
1320
1321#define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 )
1322
1323#define D3D12_SHADER_MAJOR_VERSION ( 5 )
1324
1325#define D3D12_SHADER_MAX_INSTANCES ( 65535 )
1326
1327#define D3D12_SHADER_MAX_INTERFACES ( 253 )
1328
1329#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 )
1330
1331#define D3D12_SHADER_MAX_TYPES ( 65535 )
1332
1333#define D3D12_SHADER_MINOR_VERSION ( 1 )
1334
1335#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 )
1336
1337#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 )
1338
1339#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 )
1340
1341#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 )
1342
1343#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 )
1344
1345#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 )
1346
1347#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 )
1348
1349#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 )
1350
1351#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff )
1352
1353#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff )
1354
1355#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 )
1356
1357#define D3D12_SO_STREAM_COUNT ( 4 )
1358
1359#define D3D12_SPEC_DATE_DAY ( 14 )
1360
1361#define D3D12_SPEC_DATE_MONTH ( 11 )
1362
1363#define D3D12_SPEC_DATE_YEAR ( 2014 )
1364
1365#define D3D12_SPEC_VERSION ( 1.16 )
1366#define D3D12_SRGB_GAMMA ( 2.2f )
1367#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )
1368#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )
1369#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )
1370#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )
1371#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )
1372#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )
1373#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 )
1374
1375#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 )
1376
1377#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 )
1378
1379#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 )
1380
1381#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 )
1382
1383#define D3D12_STANDARD_VECTOR_SIZE ( 4 )
1384
1385#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 )
1386
1387#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 )
1388
1389#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 )
1390
1391#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 )
1392
1393#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff )
1394
1395#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 )
1396
1397#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 )
1398
1399#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 )
1400
1401#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 )
1402
1403#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 )
1404
1405#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 )
1406
1407#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 )
1408
1409#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 )
1410
1411#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 )
1412
1413#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 )
1414
1415#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 )
1416
1417#define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 )
1418
1419#define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 )
1420
1421#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )
1422
1423#define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 )
1424
1425#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 )
1426
1427#define D3D12_UAV_SLOT_COUNT ( 64 )
1428
1429#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 )
1430
1431#define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 )
1432
1433#define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 )
1434
1435#define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 )
1436
1437#define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 )
1438
1439#define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff )
1440
1441#define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff )
1442
1443#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 )
1444
1445#define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 )
1446
1447#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 )
1448
1449#define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 )
1450
1451#define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 )
1452
1453#define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 )
1454
1455#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 )
1456
1457#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 )
1458
1459#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 )
1460
1461#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 )
1462
1463#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 )
1464
1465#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1466
1467#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 )
1468
1469#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 )
1470
1471#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 )
1472
1473#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 )
1474
1475#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 )
1476
1477#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 )
1478
1479#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 )
1480
1481#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 )
1482
1483#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 )
1484
1485#define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 )
1486
1487#define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 )
1488
1489#endif
1490
1491typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
1492
1493typedef
1494enum D3D12_COMMAND_LIST_TYPE
1495 {
1496 D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
1497 D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
1498 D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
1499 D3D12_COMMAND_LIST_TYPE_COPY = 3,
1500 D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
1501 D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
1502 D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6,
1503 D3D12_COMMAND_LIST_TYPE_NONE = -1
1504 } D3D12_COMMAND_LIST_TYPE;
1505
1506typedef
1507enum D3D12_COMMAND_QUEUE_FLAGS
1508 {
1509 D3D12_COMMAND_QUEUE_FLAG_NONE = 0,
1510 D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
1511 D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2
1512 } D3D12_COMMAND_QUEUE_FLAGS;
1513
1514DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )
1515typedef
1516enum D3D12_COMMAND_QUEUE_PRIORITY
1517 {
1518 D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
1519 D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
1520 D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
1521 } D3D12_COMMAND_QUEUE_PRIORITY;
1522
1523typedef struct D3D12_COMMAND_QUEUE_DESC
1524 {
1525 D3D12_COMMAND_LIST_TYPE Type;
1526 INT Priority;
1527 D3D12_COMMAND_QUEUE_FLAGS Flags;
1528 UINT NodeMask;
1529 } D3D12_COMMAND_QUEUE_DESC;
1530
1531typedef
1532enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
1533 {
1534 D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
1535 D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
1536 D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
1537 D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
1538 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
1539 } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
1540
1541typedef
1542enum D3D12_INPUT_CLASSIFICATION
1543 {
1544 D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
1545 D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
1546 } D3D12_INPUT_CLASSIFICATION;
1547
1548typedef struct D3D12_INPUT_ELEMENT_DESC
1549 {
1550 LPCSTR SemanticName;
1551 UINT SemanticIndex;
1552 DXGI_FORMAT Format;
1553 UINT InputSlot;
1554 UINT AlignedByteOffset;
1555 D3D12_INPUT_CLASSIFICATION InputSlotClass;
1556 UINT InstanceDataStepRate;
1557 } D3D12_INPUT_ELEMENT_DESC;
1558
1559typedef
1560enum D3D12_FILL_MODE
1561 {
1562 D3D12_FILL_MODE_WIREFRAME = 2,
1563 D3D12_FILL_MODE_SOLID = 3
1564 } D3D12_FILL_MODE;
1565
1566typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
1567
1568typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
1569
1570typedef
1571enum D3D12_CULL_MODE
1572 {
1573 D3D12_CULL_MODE_NONE = 1,
1574 D3D12_CULL_MODE_FRONT = 2,
1575 D3D12_CULL_MODE_BACK = 3
1576 } D3D12_CULL_MODE;
1577
1578typedef struct D3D12_SO_DECLARATION_ENTRY
1579 {
1580 UINT Stream;
1581 LPCSTR SemanticName;
1582 UINT SemanticIndex;
1583 BYTE StartComponent;
1584 BYTE ComponentCount;
1585 BYTE OutputSlot;
1586 } D3D12_SO_DECLARATION_ENTRY;
1587
1588typedef struct D3D12_VIEWPORT
1589 {
1590 FLOAT TopLeftX;
1591 FLOAT TopLeftY;
1592 FLOAT Width;
1593 FLOAT Height;
1594 FLOAT MinDepth;
1595 FLOAT MaxDepth;
1596 } D3D12_VIEWPORT;
1597
1598typedef RECT D3D12_RECT;
1599
1600typedef struct D3D12_BOX
1601 {
1602 UINT left;
1603 UINT top;
1604 UINT front;
1605 UINT right;
1606 UINT bottom;
1607 UINT back;
1608 } D3D12_BOX;
1609
1610#ifdef __midl
1611#ifndef LUID_DEFINED
1612#define LUID_DEFINED 1
1613typedef struct __LUID
1614 {
1615 DWORD LowPart;
1616 LONG HighPart;
1617 } LUID;
1618
1619typedef struct __LUID *PLUID;
1620
1621#endif
1622#endif
1623typedef
1624enum D3D12_COMPARISON_FUNC
1625 {
1626 D3D12_COMPARISON_FUNC_NONE = 0,
1627 D3D12_COMPARISON_FUNC_NEVER = 1,
1628 D3D12_COMPARISON_FUNC_LESS = 2,
1629 D3D12_COMPARISON_FUNC_EQUAL = 3,
1630 D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
1631 D3D12_COMPARISON_FUNC_GREATER = 5,
1632 D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
1633 D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
1634 D3D12_COMPARISON_FUNC_ALWAYS = 8
1635 } D3D12_COMPARISON_FUNC;
1636
1637typedef
1638enum D3D12_DEPTH_WRITE_MASK
1639 {
1640 D3D12_DEPTH_WRITE_MASK_ZERO = 0,
1641 D3D12_DEPTH_WRITE_MASK_ALL = 1
1642 } D3D12_DEPTH_WRITE_MASK;
1643
1644typedef
1645enum D3D12_STENCIL_OP
1646 {
1647 D3D12_STENCIL_OP_KEEP = 1,
1648 D3D12_STENCIL_OP_ZERO = 2,
1649 D3D12_STENCIL_OP_REPLACE = 3,
1650 D3D12_STENCIL_OP_INCR_SAT = 4,
1651 D3D12_STENCIL_OP_DECR_SAT = 5,
1652 D3D12_STENCIL_OP_INVERT = 6,
1653 D3D12_STENCIL_OP_INCR = 7,
1654 D3D12_STENCIL_OP_DECR = 8
1655 } D3D12_STENCIL_OP;
1656
1657typedef struct D3D12_DEPTH_STENCILOP_DESC
1658 {
1659 D3D12_STENCIL_OP StencilFailOp;
1660 D3D12_STENCIL_OP StencilDepthFailOp;
1661 D3D12_STENCIL_OP StencilPassOp;
1662 D3D12_COMPARISON_FUNC StencilFunc;
1663 } D3D12_DEPTH_STENCILOP_DESC;
1664
1665typedef struct D3D12_DEPTH_STENCIL_DESC
1666 {
1667 BOOL DepthEnable;
1668 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1669 D3D12_COMPARISON_FUNC DepthFunc;
1670 BOOL StencilEnable;
1671 UINT8 StencilReadMask;
1672 UINT8 StencilWriteMask;
1673 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1674 D3D12_DEPTH_STENCILOP_DESC BackFace;
1675 } D3D12_DEPTH_STENCIL_DESC;
1676
1677typedef struct D3D12_DEPTH_STENCIL_DESC1
1678 {
1679 BOOL DepthEnable;
1680 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1681 D3D12_COMPARISON_FUNC DepthFunc;
1682 BOOL StencilEnable;
1683 UINT8 StencilReadMask;
1684 UINT8 StencilWriteMask;
1685 D3D12_DEPTH_STENCILOP_DESC FrontFace;
1686 D3D12_DEPTH_STENCILOP_DESC BackFace;
1687 BOOL DepthBoundsTestEnable;
1688 } D3D12_DEPTH_STENCIL_DESC1;
1689
1690typedef struct D3D12_DEPTH_STENCILOP_DESC1
1691 {
1692 D3D12_STENCIL_OP StencilFailOp;
1693 D3D12_STENCIL_OP StencilDepthFailOp;
1694 D3D12_STENCIL_OP StencilPassOp;
1695 D3D12_COMPARISON_FUNC StencilFunc;
1696 UINT8 StencilReadMask;
1697 UINT8 StencilWriteMask;
1698 } D3D12_DEPTH_STENCILOP_DESC1;
1699
1700typedef struct D3D12_DEPTH_STENCIL_DESC2
1701 {
1702 BOOL DepthEnable;
1703 D3D12_DEPTH_WRITE_MASK DepthWriteMask;
1704 D3D12_COMPARISON_FUNC DepthFunc;
1705 BOOL StencilEnable;
1706 D3D12_DEPTH_STENCILOP_DESC1 FrontFace;
1707 D3D12_DEPTH_STENCILOP_DESC1 BackFace;
1708 BOOL DepthBoundsTestEnable;
1709 } D3D12_DEPTH_STENCIL_DESC2;
1710
1711typedef
1712enum D3D12_BLEND
1713 {
1714 D3D12_BLEND_ZERO = 1,
1715 D3D12_BLEND_ONE = 2,
1716 D3D12_BLEND_SRC_COLOR = 3,
1717 D3D12_BLEND_INV_SRC_COLOR = 4,
1718 D3D12_BLEND_SRC_ALPHA = 5,
1719 D3D12_BLEND_INV_SRC_ALPHA = 6,
1720 D3D12_BLEND_DEST_ALPHA = 7,
1721 D3D12_BLEND_INV_DEST_ALPHA = 8,
1722 D3D12_BLEND_DEST_COLOR = 9,
1723 D3D12_BLEND_INV_DEST_COLOR = 10,
1724 D3D12_BLEND_SRC_ALPHA_SAT = 11,
1725 D3D12_BLEND_BLEND_FACTOR = 14,
1726 D3D12_BLEND_INV_BLEND_FACTOR = 15,
1727 D3D12_BLEND_SRC1_COLOR = 16,
1728 D3D12_BLEND_INV_SRC1_COLOR = 17,
1729 D3D12_BLEND_SRC1_ALPHA = 18,
1730 D3D12_BLEND_INV_SRC1_ALPHA = 19,
1731 D3D12_BLEND_ALPHA_FACTOR = 20,
1732 D3D12_BLEND_INV_ALPHA_FACTOR = 21
1733 } D3D12_BLEND;
1734
1735typedef
1736enum D3D12_BLEND_OP
1737 {
1738 D3D12_BLEND_OP_ADD = 1,
1739 D3D12_BLEND_OP_SUBTRACT = 2,
1740 D3D12_BLEND_OP_REV_SUBTRACT = 3,
1741 D3D12_BLEND_OP_MIN = 4,
1742 D3D12_BLEND_OP_MAX = 5
1743 } D3D12_BLEND_OP;
1744
1745typedef
1746enum D3D12_COLOR_WRITE_ENABLE
1747 {
1748 D3D12_COLOR_WRITE_ENABLE_RED = 1,
1749 D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
1750 D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
1751 D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
1752 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 )
1753 } D3D12_COLOR_WRITE_ENABLE;
1754
1755typedef
1756enum D3D12_LOGIC_OP
1757 {
1758 D3D12_LOGIC_OP_CLEAR = 0,
1759 D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) ,
1760 D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) ,
1761 D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) ,
1762 D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) ,
1763 D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) ,
1764 D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) ,
1765 D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) ,
1766 D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) ,
1767 D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) ,
1768 D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) ,
1769 D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) ,
1770 D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) ,
1771 D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) ,
1772 D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) ,
1773 D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 )
1774 } D3D12_LOGIC_OP;
1775
1776typedef struct D3D12_RENDER_TARGET_BLEND_DESC
1777 {
1778 BOOL BlendEnable;
1779 BOOL LogicOpEnable;
1780 D3D12_BLEND SrcBlend;
1781 D3D12_BLEND DestBlend;
1782 D3D12_BLEND_OP BlendOp;
1783 D3D12_BLEND SrcBlendAlpha;
1784 D3D12_BLEND DestBlendAlpha;
1785 D3D12_BLEND_OP BlendOpAlpha;
1786 D3D12_LOGIC_OP LogicOp;
1787 UINT8 RenderTargetWriteMask;
1788 } D3D12_RENDER_TARGET_BLEND_DESC;
1789
1790typedef struct D3D12_BLEND_DESC
1791 {
1792 BOOL AlphaToCoverageEnable;
1793 BOOL IndependentBlendEnable;
1794 D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1795 } D3D12_BLEND_DESC;
1796
1797/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT.
1798 IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1799typedef
1800enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
1801 {
1802 D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
1803 D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
1804 } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
1805
1806typedef struct D3D12_RASTERIZER_DESC
1807 {
1808 D3D12_FILL_MODE FillMode;
1809 D3D12_CULL_MODE CullMode;
1810 BOOL FrontCounterClockwise;
1811 INT DepthBias;
1812 FLOAT DepthBiasClamp;
1813 FLOAT SlopeScaledDepthBias;
1814 BOOL DepthClipEnable;
1815 BOOL MultisampleEnable;
1816 BOOL AntialiasedLineEnable;
1817 UINT ForcedSampleCount;
1818 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1819 } D3D12_RASTERIZER_DESC;
1820
1821typedef struct D3D12_RASTERIZER_DESC1
1822 {
1823 D3D12_FILL_MODE FillMode;
1824 D3D12_CULL_MODE CullMode;
1825 BOOL FrontCounterClockwise;
1826 FLOAT DepthBias;
1827 FLOAT DepthBiasClamp;
1828 FLOAT SlopeScaledDepthBias;
1829 BOOL DepthClipEnable;
1830 BOOL MultisampleEnable;
1831 BOOL AntialiasedLineEnable;
1832 UINT ForcedSampleCount;
1833 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1834 } D3D12_RASTERIZER_DESC1;
1835
1836typedef
1837enum D3D12_LINE_RASTERIZATION_MODE
1838 {
1839 D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0,
1840 D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) ,
1841 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) ,
1842 D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 )
1843 } D3D12_LINE_RASTERIZATION_MODE;
1844
1845typedef struct D3D12_RASTERIZER_DESC2
1846 {
1847 D3D12_FILL_MODE FillMode;
1848 D3D12_CULL_MODE CullMode;
1849 BOOL FrontCounterClockwise;
1850 FLOAT DepthBias;
1851 FLOAT DepthBiasClamp;
1852 FLOAT SlopeScaledDepthBias;
1853 BOOL DepthClipEnable;
1854 D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode;
1855 UINT ForcedSampleCount;
1856 D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
1857 } D3D12_RASTERIZER_DESC2;
1858
1859
1860
1861extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec;
1862extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec;
1863
1864#ifndef __ID3D12Object_INTERFACE_DEFINED__
1865#define __ID3D12Object_INTERFACE_DEFINED__
1866
1867/* interface ID3D12Object */
1868/* [unique][local][object][uuid] */
1869
1870
1871EXTERN_C const IID IID_ID3D12Object;
1872
1873#if defined(__cplusplus) && !defined(CINTERFACE)
1874
1875 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1876 ID3D12Object : public IUnknown
1877 {
1878 public:
1879 virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1880 _In_ REFGUID guid,
1881 _Inout_ UINT *pDataSize,
1882 _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0;
1883
1884 virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1885 _In_ REFGUID guid,
1886 _In_ UINT DataSize,
1887 _In_reads_bytes_opt_( DataSize ) const void *pData) = 0;
1888
1889 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1890 _In_ REFGUID guid,
1891 _In_opt_ const IUnknown *pData) = 0;
1892
1893 virtual HRESULT STDMETHODCALLTYPE SetName(
1894 _In_z_ LPCWSTR Name) = 0;
1895
1896 };
1897
1898
1899#else /* C style interface */
1900
1901 typedef struct ID3D12ObjectVtbl
1902 {
1903 BEGIN_INTERFACE
1904
1905 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1906 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1907 ID3D12Object * This,
1908 REFIID riid,
1909 _COM_Outptr_ void **ppvObject);
1910
1911 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1912 ULONG ( STDMETHODCALLTYPE *AddRef )(
1913 ID3D12Object * This);
1914
1915 DECLSPEC_XFGVIRT(IUnknown, Release)
1916 ULONG ( STDMETHODCALLTYPE *Release )(
1917 ID3D12Object * This);
1918
1919 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1920 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1921 ID3D12Object * This,
1922 _In_ REFGUID guid,
1923 _Inout_ UINT *pDataSize,
1924 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1925
1926 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1927 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1928 ID3D12Object * This,
1929 _In_ REFGUID guid,
1930 _In_ UINT DataSize,
1931 _In_reads_bytes_opt_( DataSize ) const void *pData);
1932
1933 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1934 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1935 ID3D12Object * This,
1936 _In_ REFGUID guid,
1937 _In_opt_ const IUnknown *pData);
1938
1939 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1940 HRESULT ( STDMETHODCALLTYPE *SetName )(
1941 ID3D12Object * This,
1942 _In_z_ LPCWSTR Name);
1943
1944 END_INTERFACE
1945 } ID3D12ObjectVtbl;
1946
1947 interface ID3D12Object
1948 {
1949 CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1950 };
1951
1952
1953
1954#ifdef COBJMACROS
1955
1956
1957#define ID3D12Object_QueryInterface(This,riid,ppvObject) \
1958 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1959
1960#define ID3D12Object_AddRef(This) \
1961 ( (This)->lpVtbl -> AddRef(This) )
1962
1963#define ID3D12Object_Release(This) \
1964 ( (This)->lpVtbl -> Release(This) )
1965
1966
1967#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \
1968 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1969
1970#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \
1971 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1972
1973#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \
1974 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1975
1976#define ID3D12Object_SetName(This,Name) \
1977 ( (This)->lpVtbl -> SetName(This,Name) )
1978
1979#endif /* COBJMACROS */
1980
1981
1982#endif /* C style interface */
1983
1984
1985
1986
1987#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
1988
1989
1990#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
1991#define __ID3D12DeviceChild_INTERFACE_DEFINED__
1992
1993/* interface ID3D12DeviceChild */
1994/* [unique][local][object][uuid] */
1995
1996
1997EXTERN_C const IID IID_ID3D12DeviceChild;
1998
1999#if defined(__cplusplus) && !defined(CINTERFACE)
2000
2001 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
2002 ID3D12DeviceChild : public ID3D12Object
2003 {
2004 public:
2005 virtual HRESULT STDMETHODCALLTYPE GetDevice(
2006 REFIID riid,
2007 _COM_Outptr_opt_ void **ppvDevice) = 0;
2008
2009 };
2010
2011
2012#else /* C style interface */
2013
2014 typedef struct ID3D12DeviceChildVtbl
2015 {
2016 BEGIN_INTERFACE
2017
2018 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2019 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2020 ID3D12DeviceChild * This,
2021 REFIID riid,
2022 _COM_Outptr_ void **ppvObject);
2023
2024 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2025 ULONG ( STDMETHODCALLTYPE *AddRef )(
2026 ID3D12DeviceChild * This);
2027
2028 DECLSPEC_XFGVIRT(IUnknown, Release)
2029 ULONG ( STDMETHODCALLTYPE *Release )(
2030 ID3D12DeviceChild * This);
2031
2032 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2033 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2034 ID3D12DeviceChild * This,
2035 _In_ REFGUID guid,
2036 _Inout_ UINT *pDataSize,
2037 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2038
2039 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2040 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2041 ID3D12DeviceChild * This,
2042 _In_ REFGUID guid,
2043 _In_ UINT DataSize,
2044 _In_reads_bytes_opt_( DataSize ) const void *pData);
2045
2046 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2047 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2048 ID3D12DeviceChild * This,
2049 _In_ REFGUID guid,
2050 _In_opt_ const IUnknown *pData);
2051
2052 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2053 HRESULT ( STDMETHODCALLTYPE *SetName )(
2054 ID3D12DeviceChild * This,
2055 _In_z_ LPCWSTR Name);
2056
2057 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2058 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2059 ID3D12DeviceChild * This,
2060 REFIID riid,
2061 _COM_Outptr_opt_ void **ppvDevice);
2062
2063 END_INTERFACE
2064 } ID3D12DeviceChildVtbl;
2065
2066 interface ID3D12DeviceChild
2067 {
2068 CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
2069 };
2070
2071
2072
2073#ifdef COBJMACROS
2074
2075
2076#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \
2077 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2078
2079#define ID3D12DeviceChild_AddRef(This) \
2080 ( (This)->lpVtbl -> AddRef(This) )
2081
2082#define ID3D12DeviceChild_Release(This) \
2083 ( (This)->lpVtbl -> Release(This) )
2084
2085
2086#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \
2087 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2088
2089#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \
2090 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2091
2092#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \
2093 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2094
2095#define ID3D12DeviceChild_SetName(This,Name) \
2096 ( (This)->lpVtbl -> SetName(This,Name) )
2097
2098
2099#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \
2100 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2101
2102#endif /* COBJMACROS */
2103
2104
2105#endif /* C style interface */
2106
2107
2108
2109
2110#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
2111
2112
2113#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
2114#define __ID3D12RootSignature_INTERFACE_DEFINED__
2115
2116/* interface ID3D12RootSignature */
2117/* [unique][local][object][uuid] */
2118
2119
2120EXTERN_C const IID IID_ID3D12RootSignature;
2121
2122#if defined(__cplusplus) && !defined(CINTERFACE)
2123
2124 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
2125 ID3D12RootSignature : public ID3D12DeviceChild
2126 {
2127 public:
2128 };
2129
2130
2131#else /* C style interface */
2132
2133 typedef struct ID3D12RootSignatureVtbl
2134 {
2135 BEGIN_INTERFACE
2136
2137 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2138 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2139 ID3D12RootSignature * This,
2140 REFIID riid,
2141 _COM_Outptr_ void **ppvObject);
2142
2143 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2144 ULONG ( STDMETHODCALLTYPE *AddRef )(
2145 ID3D12RootSignature * This);
2146
2147 DECLSPEC_XFGVIRT(IUnknown, Release)
2148 ULONG ( STDMETHODCALLTYPE *Release )(
2149 ID3D12RootSignature * This);
2150
2151 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2152 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2153 ID3D12RootSignature * This,
2154 _In_ REFGUID guid,
2155 _Inout_ UINT *pDataSize,
2156 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2157
2158 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2159 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2160 ID3D12RootSignature * This,
2161 _In_ REFGUID guid,
2162 _In_ UINT DataSize,
2163 _In_reads_bytes_opt_( DataSize ) const void *pData);
2164
2165 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2166 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2167 ID3D12RootSignature * This,
2168 _In_ REFGUID guid,
2169 _In_opt_ const IUnknown *pData);
2170
2171 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2172 HRESULT ( STDMETHODCALLTYPE *SetName )(
2173 ID3D12RootSignature * This,
2174 _In_z_ LPCWSTR Name);
2175
2176 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2177 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2178 ID3D12RootSignature * This,
2179 REFIID riid,
2180 _COM_Outptr_opt_ void **ppvDevice);
2181
2182 END_INTERFACE
2183 } ID3D12RootSignatureVtbl;
2184
2185 interface ID3D12RootSignature
2186 {
2187 CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
2188 };
2189
2190
2191
2192#ifdef COBJMACROS
2193
2194
2195#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \
2196 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2197
2198#define ID3D12RootSignature_AddRef(This) \
2199 ( (This)->lpVtbl -> AddRef(This) )
2200
2201#define ID3D12RootSignature_Release(This) \
2202 ( (This)->lpVtbl -> Release(This) )
2203
2204
2205#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \
2206 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2207
2208#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \
2209 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2210
2211#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \
2212 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2213
2214#define ID3D12RootSignature_SetName(This,Name) \
2215 ( (This)->lpVtbl -> SetName(This,Name) )
2216
2217
2218#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \
2219 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2220
2221
2222#endif /* COBJMACROS */
2223
2224
2225#endif /* C style interface */
2226
2227
2228
2229
2230#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
2231
2232
2233/* interface __MIDL_itf_d3d12_0000_0001 */
2234/* [local] */
2235
2236typedef struct D3D12_SHADER_BYTECODE
2237 {
2238 _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
2239 SIZE_T BytecodeLength;
2240 } D3D12_SHADER_BYTECODE;
2241
2242typedef struct D3D12_STREAM_OUTPUT_DESC
2243 {
2244 _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
2245 UINT NumEntries;
2246 _Field_size_full_(NumStrides) const UINT *pBufferStrides;
2247 UINT NumStrides;
2248 UINT RasterizedStream;
2249 } D3D12_STREAM_OUTPUT_DESC;
2250
2251typedef struct D3D12_INPUT_LAYOUT_DESC
2252 {
2253 _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2254 UINT NumElements;
2255 } D3D12_INPUT_LAYOUT_DESC;
2256
2257typedef
2258enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
2259 {
2260 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
2261 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
2262 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
2263 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
2264
2265typedef
2266enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS
2267 {
2268 D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
2269 D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
2270 } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
2271
2272typedef struct D3D12_CACHED_PIPELINE_STATE
2273 {
2274 _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
2275 SIZE_T CachedBlobSizeInBytes;
2276 } D3D12_CACHED_PIPELINE_STATE;
2277
2278typedef
2279enum D3D12_PIPELINE_STATE_FLAGS
2280 {
2281 D3D12_PIPELINE_STATE_FLAG_NONE = 0,
2282 D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1,
2283 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4,
2284 D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8
2285 } D3D12_PIPELINE_STATE_FLAGS;
2286
2287DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )
2288typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
2289 {
2290 ID3D12RootSignature *pRootSignature;
2291 D3D12_SHADER_BYTECODE VS;
2292 D3D12_SHADER_BYTECODE PS;
2293 D3D12_SHADER_BYTECODE DS;
2294 D3D12_SHADER_BYTECODE HS;
2295 D3D12_SHADER_BYTECODE GS;
2296 D3D12_STREAM_OUTPUT_DESC StreamOutput;
2297 D3D12_BLEND_DESC BlendState;
2298 UINT SampleMask;
2299 D3D12_RASTERIZER_DESC RasterizerState;
2300 D3D12_DEPTH_STENCIL_DESC DepthStencilState;
2301 D3D12_INPUT_LAYOUT_DESC InputLayout;
2302 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
2303 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
2304 UINT NumRenderTargets;
2305 DXGI_FORMAT RTVFormats[ 8 ];
2306 DXGI_FORMAT DSVFormat;
2307 DXGI_SAMPLE_DESC SampleDesc;
2308 UINT NodeMask;
2309 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2310 D3D12_PIPELINE_STATE_FLAGS Flags;
2311 } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
2312
2313typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
2314 {
2315 ID3D12RootSignature *pRootSignature;
2316 D3D12_SHADER_BYTECODE CS;
2317 UINT NodeMask;
2318 D3D12_CACHED_PIPELINE_STATE CachedPSO;
2319 D3D12_PIPELINE_STATE_FLAGS Flags;
2320 } D3D12_COMPUTE_PIPELINE_STATE_DESC;
2321
2322typedef
2323enum D3D_ROOT_SIGNATURE_VERSION
2324 {
2325 D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
2326 D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
2327 D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
2328 D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3
2329 } D3D_ROOT_SIGNATURE_VERSION;
2330
2331typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC
2332 {
2333 _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob;
2334 SIZE_T SerializedBlobSizeInBytes;
2335 } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC;
2336
2337typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE
2338 {
2339 D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
2340 } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE;
2341
2342typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE
2343 {
2344 D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc;
2345 } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE;
2346
2347struct D3D12_RT_FORMAT_ARRAY
2348 {
2349 DXGI_FORMAT RTFormats[ 8 ];
2350 UINT NumRenderTargets;
2351 } ;
2352typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
2353 {
2354 _In_ SIZE_T SizeInBytes;
2355 _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream;
2356 } D3D12_PIPELINE_STATE_STREAM_DESC;
2357
2358typedef
2359enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
2360 {
2361 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0,
2362 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) ,
2363 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) ,
2364 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) ,
2365 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) ,
2366 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) ,
2367 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) ,
2368 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) ,
2369 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) ,
2370 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) ,
2371 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) ,
2372 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) ,
2373 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) ,
2374 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) ,
2375 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) ,
2376 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) ,
2377 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) ,
2378 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) ,
2379 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) ,
2380 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) ,
2381 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) ,
2382 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) ,
2383 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) ,
2384 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24,
2385 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25,
2386 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26,
2387 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27,
2388 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28,
2389 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29,
2390 D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 )
2391 } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
2392
2393typedef
2394enum D3D12_FEATURE
2395 {
2396 D3D12_FEATURE_D3D12_OPTIONS = 0,
2397 D3D12_FEATURE_ARCHITECTURE = 1,
2398 D3D12_FEATURE_FEATURE_LEVELS = 2,
2399 D3D12_FEATURE_FORMAT_SUPPORT = 3,
2400 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
2401 D3D12_FEATURE_FORMAT_INFO = 5,
2402 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
2403 D3D12_FEATURE_SHADER_MODEL = 7,
2404 D3D12_FEATURE_D3D12_OPTIONS1 = 8,
2405 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
2406 D3D12_FEATURE_ROOT_SIGNATURE = 12,
2407 D3D12_FEATURE_ARCHITECTURE1 = 16,
2408 D3D12_FEATURE_D3D12_OPTIONS2 = 18,
2409 D3D12_FEATURE_SHADER_CACHE = 19,
2410 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
2411 D3D12_FEATURE_D3D12_OPTIONS3 = 21,
2412 D3D12_FEATURE_EXISTING_HEAPS = 22,
2413 D3D12_FEATURE_D3D12_OPTIONS4 = 23,
2414 D3D12_FEATURE_SERIALIZATION = 24,
2415 D3D12_FEATURE_CROSS_NODE = 25,
2416 D3D12_FEATURE_D3D12_OPTIONS5 = 27,
2417 D3D12_FEATURE_DISPLAYABLE = 28,
2418 D3D12_FEATURE_D3D12_OPTIONS6 = 30,
2419 D3D12_FEATURE_QUERY_META_COMMAND = 31,
2420 D3D12_FEATURE_D3D12_OPTIONS7 = 32,
2421 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
2422 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
2423 D3D12_FEATURE_D3D12_OPTIONS8 = 36,
2424 D3D12_FEATURE_D3D12_OPTIONS9 = 37,
2425 D3D12_FEATURE_D3D12_OPTIONS10 = 39,
2426 D3D12_FEATURE_D3D12_OPTIONS11 = 40,
2427 D3D12_FEATURE_D3D12_OPTIONS12 = 41,
2428 D3D12_FEATURE_D3D12_OPTIONS13 = 42,
2429 D3D12_FEATURE_D3D12_OPTIONS14 = 43,
2430 D3D12_FEATURE_D3D12_OPTIONS15 = 44,
2431 D3D12_FEATURE_D3D12_OPTIONS16 = 45,
2432 D3D12_FEATURE_D3D12_OPTIONS17 = 46,
2433 D3D12_FEATURE_D3D12_OPTIONS18 = 47,
2434 D3D12_FEATURE_D3D12_OPTIONS19 = 48,
2435 D3D12_FEATURE_D3D12_OPTIONS20 = 49,
2436 D3D12_FEATURE_PREDICATION = 50,
2437 D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51,
2438 D3D12_FEATURE_HARDWARE_COPY = 52,
2439 D3D12_FEATURE_D3D12_OPTIONS21 = 53,
2440 D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54,
2441 D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56,
2442 D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57,
2443 D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61
2444 } D3D12_FEATURE;
2445
2446typedef
2447enum D3D12_SHADER_MIN_PRECISION_SUPPORT
2448 {
2449 D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0,
2450 D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
2451 D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
2452 } D3D12_SHADER_MIN_PRECISION_SUPPORT;
2453
2454DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )
2455typedef
2456enum D3D12_TILED_RESOURCES_TIER
2457 {
2458 D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
2459 D3D12_TILED_RESOURCES_TIER_1 = 1,
2460 D3D12_TILED_RESOURCES_TIER_2 = 2,
2461 D3D12_TILED_RESOURCES_TIER_3 = 3,
2462 D3D12_TILED_RESOURCES_TIER_4 = 4
2463 } D3D12_TILED_RESOURCES_TIER;
2464
2465typedef
2466enum D3D12_RESOURCE_BINDING_TIER
2467 {
2468 D3D12_RESOURCE_BINDING_TIER_1 = 1,
2469 D3D12_RESOURCE_BINDING_TIER_2 = 2,
2470 D3D12_RESOURCE_BINDING_TIER_3 = 3
2471 } D3D12_RESOURCE_BINDING_TIER;
2472
2473typedef
2474enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
2475 {
2476 D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
2477 D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
2478 D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
2479 D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
2480 } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
2481
2482typedef
2483enum D3D12_FORMAT_SUPPORT1
2484 {
2485 D3D12_FORMAT_SUPPORT1_NONE = 0,
2486 D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
2487 D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
2488 D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
2489 D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
2490 D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
2491 D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
2492 D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
2493 D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
2494 D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
2495 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
2496 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
2497 D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
2498 D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
2499 D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
2500 D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
2501 D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
2502 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
2503 D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
2504 D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
2505 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
2506 D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
2507 D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
2508 D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
2509 D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
2510 D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
2511 D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
2512 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
2513 D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
2514 D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
2515 } D3D12_FORMAT_SUPPORT1;
2516
2517DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )
2518typedef
2519enum D3D12_FORMAT_SUPPORT2
2520 {
2521 D3D12_FORMAT_SUPPORT2_NONE = 0,
2522 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
2523 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
2524 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
2525 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
2526 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
2527 D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
2528 D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
2529 D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
2530 D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
2531 D3D12_FORMAT_SUPPORT2_TILED = 0x200,
2532 D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000,
2533 D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000,
2534 D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000
2535 } D3D12_FORMAT_SUPPORT2;
2536
2537DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )
2538typedef
2539enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
2540 {
2541 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
2542 D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
2543 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
2544
2545DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )
2546typedef
2547enum D3D12_CROSS_NODE_SHARING_TIER
2548 {
2549 D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
2550 D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
2551 D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
2552 D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
2553 D3D12_CROSS_NODE_SHARING_TIER_3 = 4
2554 } D3D12_CROSS_NODE_SHARING_TIER;
2555
2556typedef
2557enum D3D12_RESOURCE_HEAP_TIER
2558 {
2559 D3D12_RESOURCE_HEAP_TIER_1 = 1,
2560 D3D12_RESOURCE_HEAP_TIER_2 = 2
2561 } D3D12_RESOURCE_HEAP_TIER;
2562
2563typedef
2564enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
2565 {
2566 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
2567 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
2568 D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2
2569 } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
2570
2571typedef
2572enum D3D12_VIEW_INSTANCING_TIER
2573 {
2574 D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
2575 D3D12_VIEW_INSTANCING_TIER_1 = 1,
2576 D3D12_VIEW_INSTANCING_TIER_2 = 2,
2577 D3D12_VIEW_INSTANCING_TIER_3 = 3
2578 } D3D12_VIEW_INSTANCING_TIER;
2579
2580typedef
2581enum D3D12_WORK_GRAPHS_TIER
2582 {
2583 D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0,
2584 D3D12_WORK_GRAPHS_TIER_1_0 = 10
2585 } D3D12_WORK_GRAPHS_TIER;
2586
2587typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
2588 {
2589 _Out_ BOOL DoublePrecisionFloatShaderOps;
2590 _Out_ BOOL OutputMergerLogicOp;
2591 _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
2592 _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
2593 _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
2594 _Out_ BOOL PSSpecifiedStencilRefSupported;
2595 _Out_ BOOL TypedUAVLoadAdditionalFormats;
2596 _Out_ BOOL ROVsSupported;
2597 _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
2598 _Out_ UINT MaxGPUVirtualAddressBitsPerResource;
2599 _Out_ BOOL StandardSwizzle64KBSupported;
2600 _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
2601 _Out_ BOOL CrossAdapterRowMajorTextureSupported;
2602 _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
2603 _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
2604 } D3D12_FEATURE_DATA_D3D12_OPTIONS;
2605
2606typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
2607 {
2608 _Out_ BOOL WaveOps;
2609 _Out_ UINT WaveLaneCountMin;
2610 _Out_ UINT WaveLaneCountMax;
2611 _Out_ UINT TotalLaneCount;
2612 _Out_ BOOL ExpandedComputeResourceStates;
2613 _Out_ BOOL Int64ShaderOps;
2614 } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
2615
2616typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
2617 {
2618 _Out_ BOOL DepthBoundsTestSupported;
2619 _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
2620 } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
2621
2622typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
2623 {
2624 _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
2625 } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
2626
2627typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
2628 {
2629 _In_ UINT NodeIndex;
2630 _Out_ BOOL TileBasedRenderer;
2631 _Out_ BOOL UMA;
2632 _Out_ BOOL CacheCoherentUMA;
2633 } D3D12_FEATURE_DATA_ARCHITECTURE;
2634
2635typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
2636 {
2637 _In_ UINT NodeIndex;
2638 _Out_ BOOL TileBasedRenderer;
2639 _Out_ BOOL UMA;
2640 _Out_ BOOL CacheCoherentUMA;
2641 _Out_ BOOL IsolatedMMU;
2642 } D3D12_FEATURE_DATA_ARCHITECTURE1;
2643
2644typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
2645 {
2646 _In_ UINT NumFeatureLevels;
2647 _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
2648 _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
2649 } D3D12_FEATURE_DATA_FEATURE_LEVELS;
2650
2651typedef
2652enum D3D_SHADER_MODEL
2653 {
2654 D3D_SHADER_MODEL_NONE = 0,
2655 D3D_SHADER_MODEL_5_1 = 0x51,
2656 D3D_SHADER_MODEL_6_0 = 0x60,
2657 D3D_SHADER_MODEL_6_1 = 0x61,
2658 D3D_SHADER_MODEL_6_2 = 0x62,
2659 D3D_SHADER_MODEL_6_3 = 0x63,
2660 D3D_SHADER_MODEL_6_4 = 0x64,
2661 D3D_SHADER_MODEL_6_5 = 0x65,
2662 D3D_SHADER_MODEL_6_6 = 0x66,
2663 D3D_SHADER_MODEL_6_7 = 0x67,
2664 D3D_SHADER_MODEL_6_8 = 0x68,
2665 D3D_SHADER_MODEL_6_9 = 0x69,
2666 D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9
2667 } D3D_SHADER_MODEL;
2668
2669typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
2670 {
2671 _Inout_ D3D_SHADER_MODEL HighestShaderModel;
2672 } D3D12_FEATURE_DATA_SHADER_MODEL;
2673
2674typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
2675 {
2676 _In_ DXGI_FORMAT Format;
2677 _Out_ D3D12_FORMAT_SUPPORT1 Support1;
2678 _Out_ D3D12_FORMAT_SUPPORT2 Support2;
2679 } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
2680
2681typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
2682 {
2683 _In_ DXGI_FORMAT Format;
2684 _In_ UINT SampleCount;
2685 _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
2686 _Out_ UINT NumQualityLevels;
2687 } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
2688
2689typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
2690 {
2691 DXGI_FORMAT Format;
2692 UINT8 PlaneCount;
2693 } D3D12_FEATURE_DATA_FORMAT_INFO;
2694
2695typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
2696 {
2697 UINT MaxGPUVirtualAddressBitsPerResource;
2698 UINT MaxGPUVirtualAddressBitsPerProcess;
2699 } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
2700
2701typedef
2702enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
2703 {
2704 D3D12_SHADER_CACHE_SUPPORT_NONE = 0,
2705 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
2706 D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
2707 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
2708 D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
2709 D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
2710 D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
2711 D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
2712 } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
2713
2714DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )
2715typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
2716 {
2717 _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
2718 } D3D12_FEATURE_DATA_SHADER_CACHE;
2719
2720typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
2721 {
2722 _In_ D3D12_COMMAND_LIST_TYPE CommandListType;
2723 _In_ UINT Priority;
2724 _Out_ BOOL PriorityForTypeIsSupported;
2725 } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
2726
2727typedef
2728enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
2729 {
2730 D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0,
2731 D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) ,
2732 D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) ,
2733 D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) ,
2734 D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) ,
2735 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) ,
2736 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) ,
2737 D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE )
2738 } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
2739
2740DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )
2741typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
2742 {
2743 _Out_ BOOL CopyQueueTimestampQueriesSupported;
2744 _Out_ BOOL CastingFullyTypedFormatSupported;
2745 _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
2746 _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
2747 _Out_ BOOL BarycentricsSupported;
2748 } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
2749
2750typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
2751 {
2752 _Out_ BOOL Supported;
2753 } D3D12_FEATURE_DATA_EXISTING_HEAPS;
2754
2755typedef
2756enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
2757 {
2758 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0,
2759 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) ,
2760 D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 )
2761 } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
2762
2763typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
2764 {
2765 _Out_ BOOL DisplayableTexture;
2766 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2767 } D3D12_FEATURE_DATA_DISPLAYABLE;
2768
2769typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
2770 {
2771 _Out_ BOOL MSAA64KBAlignedTextureSupported;
2772 _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
2773 _Out_ BOOL Native16BitShaderOpsSupported;
2774 } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
2775
2776typedef
2777enum D3D12_HEAP_SERIALIZATION_TIER
2778 {
2779 D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
2780 D3D12_HEAP_SERIALIZATION_TIER_10 = 10
2781 } D3D12_HEAP_SERIALIZATION_TIER;
2782
2783typedef struct D3D12_FEATURE_DATA_SERIALIZATION
2784 {
2785 _In_ UINT NodeIndex;
2786 _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
2787 } D3D12_FEATURE_DATA_SERIALIZATION;
2788
2789typedef struct D3D12_FEATURE_DATA_CROSS_NODE
2790 {
2791 D3D12_CROSS_NODE_SHARING_TIER SharingTier;
2792 BOOL AtomicShaderInstructions;
2793 } D3D12_FEATURE_DATA_CROSS_NODE;
2794
2795typedef
2796enum D3D12_RENDER_PASS_TIER
2797 {
2798 D3D12_RENDER_PASS_TIER_0 = 0,
2799 D3D12_RENDER_PASS_TIER_1 = 1,
2800 D3D12_RENDER_PASS_TIER_2 = 2
2801 } D3D12_RENDER_PASS_TIER;
2802
2803typedef
2804enum D3D12_RAYTRACING_TIER
2805 {
2806 D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
2807 D3D12_RAYTRACING_TIER_1_0 = 10,
2808 D3D12_RAYTRACING_TIER_1_1 = 11,
2809 D3D12_RAYTRACING_TIER_1_2 = 12
2810 } D3D12_RAYTRACING_TIER;
2811
2812typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
2813 {
2814 _Out_ BOOL SRVOnlyTiledResourceTier3;
2815 _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier;
2816 _Out_ D3D12_RAYTRACING_TIER RaytracingTier;
2817 } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
2818
2819typedef
2820enum D3D12_VARIABLE_SHADING_RATE_TIER
2821 {
2822 D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
2823 D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
2824 D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2
2825 } D3D12_VARIABLE_SHADING_RATE_TIER;
2826
2827typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
2828 {
2829 _Out_ BOOL AdditionalShadingRatesSupported;
2830 _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
2831 _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
2832 _Out_ UINT ShadingRateImageTileSize;
2833 _Out_ BOOL BackgroundProcessingSupported;
2834 } D3D12_FEATURE_DATA_D3D12_OPTIONS6;
2835
2836typedef
2837enum D3D12_MESH_SHADER_TIER
2838 {
2839 D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
2840 D3D12_MESH_SHADER_TIER_1 = 10
2841 } D3D12_MESH_SHADER_TIER;
2842
2843typedef
2844enum D3D12_SAMPLER_FEEDBACK_TIER
2845 {
2846 D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
2847 D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
2848 D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
2849 } D3D12_SAMPLER_FEEDBACK_TIER;
2850
2851typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
2852 {
2853 _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier;
2854 _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
2855 } D3D12_FEATURE_DATA_D3D12_OPTIONS7;
2856
2857typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
2858 {
2859 _In_ GUID CommandId;
2860 _In_ UINT NodeMask;
2861 _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData;
2862 _In_ SIZE_T QueryInputDataSizeInBytes;
2863 _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData;
2864 _In_ SIZE_T QueryOutputDataSizeInBytes;
2865 } D3D12_FEATURE_DATA_QUERY_META_COMMAND;
2866
2867typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
2868 {
2869 _Out_ BOOL UnalignedBlockTexturesSupported;
2870 } D3D12_FEATURE_DATA_D3D12_OPTIONS8;
2871
2872typedef
2873enum D3D12_WAVE_MMA_TIER
2874 {
2875 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
2876 D3D12_WAVE_MMA_TIER_1_0 = 10
2877 } D3D12_WAVE_MMA_TIER;
2878
2879typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
2880 {
2881 _Out_ BOOL MeshShaderPipelineStatsSupported;
2882 _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
2883 _Out_ BOOL AtomicInt64OnTypedResourceSupported;
2884 _Out_ BOOL AtomicInt64OnGroupSharedSupported;
2885 _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported;
2886 _Out_ D3D12_WAVE_MMA_TIER WaveMMATier;
2887 } D3D12_FEATURE_DATA_D3D12_OPTIONS9;
2888
2889typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
2890 {
2891 _Out_ BOOL VariableRateShadingSumCombinerSupported;
2892 _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
2893 } D3D12_FEATURE_DATA_D3D12_OPTIONS10;
2894
2895typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
2896 {
2897 _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
2898 } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
2899
2900typedef
2901enum D3D12_TRI_STATE
2902 {
2903 D3D12_TRI_STATE_UNKNOWN = -1,
2904 D3D12_TRI_STATE_FALSE = 0,
2905 D3D12_TRI_STATE_TRUE = 1
2906 } D3D12_TRI_STATE;
2907
2908typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12
2909 {
2910 _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives;
2911 _Out_ BOOL EnhancedBarriersSupported;
2912 _Out_ BOOL RelaxedFormatCastingSupported;
2913 } D3D12_FEATURE_DATA_D3D12_OPTIONS12;
2914
2915typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13
2916 {
2917 _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported;
2918 _Out_ BOOL UnrestrictedVertexElementAlignmentSupported;
2919 _Out_ BOOL InvertedViewportHeightFlipsYSupported;
2920 _Out_ BOOL InvertedViewportDepthFlipsZSupported;
2921 _Out_ BOOL TextureCopyBetweenDimensionsSupported;
2922 _Out_ BOOL AlphaBlendFactorSupported;
2923 } D3D12_FEATURE_DATA_D3D12_OPTIONS13;
2924
2925typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14
2926 {
2927 _Out_ BOOL AdvancedTextureOpsSupported;
2928 _Out_ BOOL WriteableMSAATexturesSupported;
2929 _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported;
2930 } D3D12_FEATURE_DATA_D3D12_OPTIONS14;
2931
2932typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15
2933 {
2934 _Out_ BOOL TriangleFanSupported;
2935 _Out_ BOOL DynamicIndexBufferStripCutSupported;
2936 } D3D12_FEATURE_DATA_D3D12_OPTIONS15;
2937
2938typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16
2939 {
2940 _Out_ BOOL DynamicDepthBiasSupported;
2941 _Out_ BOOL GPUUploadHeapSupported;
2942 } D3D12_FEATURE_DATA_D3D12_OPTIONS16;
2943
2944typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17
2945 {
2946 _Out_ BOOL NonNormalizedCoordinateSamplersSupported;
2947 _Out_ BOOL ManualWriteTrackingResourceSupported;
2948 } D3D12_FEATURE_DATA_D3D12_OPTIONS17;
2949
2950typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18
2951 {
2952 _Out_ BOOL RenderPassesValid;
2953 } D3D12_FEATURE_DATA_D3D12_OPTIONS18;
2954
2955typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19
2956 {
2957 BOOL MismatchingOutputDimensionsSupported;
2958 UINT SupportedSampleCountsWithNoOutputs;
2959 BOOL PointSamplingAddressesNeverRoundUp;
2960 BOOL RasterizerDesc2Supported;
2961 BOOL NarrowQuadrilateralLinesSupported;
2962 BOOL AnisoFilterWithPointMipSupported;
2963 UINT MaxSamplerDescriptorHeapSize;
2964 UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers;
2965 UINT MaxViewDescriptorHeapSize;
2966 _Out_ BOOL ComputeOnlyCustomHeapSupported;
2967 } D3D12_FEATURE_DATA_D3D12_OPTIONS19;
2968
2969typedef
2970enum D3D12_RECREATE_AT_TIER
2971 {
2972 D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0,
2973 D3D12_RECREATE_AT_TIER_1 = 1
2974 } D3D12_RECREATE_AT_TIER;
2975
2976typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20
2977 {
2978 _Out_ BOOL ComputeOnlyWriteWatchSupported;
2979 D3D12_RECREATE_AT_TIER RecreateAtTier;
2980 } D3D12_FEATURE_DATA_D3D12_OPTIONS20;
2981
2982typedef
2983enum D3D12_EXECUTE_INDIRECT_TIER
2984 {
2985 D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10,
2986 D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11
2987 } D3D12_EXECUTE_INDIRECT_TIER;
2988
2989typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21
2990 {
2991 _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier;
2992 _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier;
2993 _Out_ BOOL SampleCmpGradientAndBiasSupported;
2994 _Out_ BOOL ExtendedCommandInfoSupported;
2995 } D3D12_FEATURE_DATA_D3D12_OPTIONS21;
2996
2997typedef
2998enum D3D12_TIGHT_ALIGNMENT_TIER
2999 {
3000 D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0,
3001 D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 )
3002 } D3D12_TIGHT_ALIGNMENT_TIER;
3003
3004typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT
3005 {
3006 _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier;
3007 } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT;
3008
3009typedef struct D3D12_FEATURE_DATA_PREDICATION
3010 {
3011 _Out_ BOOL Supported;
3012 } D3D12_FEATURE_DATA_PREDICATION;
3013
3014typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY
3015 {
3016 _Out_ BOOL Supported;
3017 } D3D12_FEATURE_DATA_HARDWARE_COPY;
3018
3019typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE
3020 {
3021 _Out_ BOOL Supported;
3022 } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE;
3023
3024typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED
3025 {
3026 _Out_ BOOL Supported;
3027 } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED;
3028
3029typedef struct D3D12_RESOURCE_ALLOCATION_INFO
3030 {
3031 UINT64 SizeInBytes;
3032 UINT64 Alignment;
3033 } D3D12_RESOURCE_ALLOCATION_INFO;
3034
3035typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
3036 {
3037 UINT64 Offset;
3038 UINT64 Alignment;
3039 UINT64 SizeInBytes;
3040 } D3D12_RESOURCE_ALLOCATION_INFO1;
3041
3042typedef
3043enum D3D12_HEAP_TYPE
3044 {
3045 D3D12_HEAP_TYPE_DEFAULT = 1,
3046 D3D12_HEAP_TYPE_UPLOAD = 2,
3047 D3D12_HEAP_TYPE_READBACK = 3,
3048 D3D12_HEAP_TYPE_CUSTOM = 4,
3049 D3D12_HEAP_TYPE_GPU_UPLOAD = 5
3050 } D3D12_HEAP_TYPE;
3051
3052typedef
3053enum D3D12_CPU_PAGE_PROPERTY
3054 {
3055 D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
3056 D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
3057 D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
3058 D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
3059 } D3D12_CPU_PAGE_PROPERTY;
3060
3061typedef
3062enum D3D12_MEMORY_POOL
3063 {
3064 D3D12_MEMORY_POOL_UNKNOWN = 0,
3065 D3D12_MEMORY_POOL_L0 = 1,
3066 D3D12_MEMORY_POOL_L1 = 2
3067 } D3D12_MEMORY_POOL;
3068
3069typedef struct D3D12_HEAP_PROPERTIES
3070 {
3071 D3D12_HEAP_TYPE Type;
3072 D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
3073 D3D12_MEMORY_POOL MemoryPoolPreference;
3074 UINT CreationNodeMask;
3075 UINT VisibleNodeMask;
3076 } D3D12_HEAP_PROPERTIES;
3077
3078typedef
3079enum D3D12_HEAP_FLAGS
3080 {
3081 D3D12_HEAP_FLAG_NONE = 0,
3082 D3D12_HEAP_FLAG_SHARED = 0x1,
3083 D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
3084 D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
3085 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
3086 D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
3087 D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
3088 D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
3089 D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
3090 D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
3091 D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
3092 D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
3093 D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000,
3094 D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
3095 D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
3096 D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
3097 D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
3098 } D3D12_HEAP_FLAGS;
3099
3100DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )
3101typedef struct D3D12_HEAP_DESC
3102 {
3103 UINT64 SizeInBytes;
3104 D3D12_HEAP_PROPERTIES Properties;
3105 UINT64 Alignment;
3106 D3D12_HEAP_FLAGS Flags;
3107 } D3D12_HEAP_DESC;
3108
3109typedef
3110enum D3D12_RESOURCE_DIMENSION
3111 {
3112 D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
3113 D3D12_RESOURCE_DIMENSION_BUFFER = 1,
3114 D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
3115 D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
3116 D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
3117 } D3D12_RESOURCE_DIMENSION;
3118
3119typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO
3120 {
3121 _In_ DXGI_FORMAT Format;
3122 _In_ D3D12_RESOURCE_DIMENSION Dimension;
3123 _In_ D3D12_HEAP_PROPERTIES DestHeapProperties;
3124 _Out_ BOOL Supported;
3125 } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO;
3126
3127typedef
3128enum D3D12_TEXTURE_LAYOUT
3129 {
3130 D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
3131 D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
3132 D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
3133 D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
3134 } D3D12_TEXTURE_LAYOUT;
3135
3136typedef
3137enum D3D12_RESOURCE_FLAGS
3138 {
3139 D3D12_RESOURCE_FLAG_NONE = 0,
3140 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
3141 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
3142 D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
3143 D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
3144 D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
3145 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
3146 D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
3147 D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
3148 D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100,
3149 D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400
3150 } D3D12_RESOURCE_FLAGS;
3151
3152DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )
3153typedef struct D3D12_MIP_REGION
3154 {
3155 UINT Width;
3156 UINT Height;
3157 UINT Depth;
3158 } D3D12_MIP_REGION;
3159
3160typedef struct D3D12_RESOURCE_DESC
3161 {
3162 D3D12_RESOURCE_DIMENSION Dimension;
3163 UINT64 Alignment;
3164 UINT64 Width;
3165 UINT Height;
3166 UINT16 DepthOrArraySize;
3167 UINT16 MipLevels;
3168 DXGI_FORMAT Format;
3169 DXGI_SAMPLE_DESC SampleDesc;
3170 D3D12_TEXTURE_LAYOUT Layout;
3171 D3D12_RESOURCE_FLAGS Flags;
3172 } D3D12_RESOURCE_DESC;
3173
3174typedef struct D3D12_RESOURCE_DESC1
3175 {
3176 D3D12_RESOURCE_DIMENSION Dimension;
3177 UINT64 Alignment;
3178 UINT64 Width;
3179 UINT Height;
3180 UINT16 DepthOrArraySize;
3181 UINT16 MipLevels;
3182 DXGI_FORMAT Format;
3183 DXGI_SAMPLE_DESC SampleDesc;
3184 D3D12_TEXTURE_LAYOUT Layout;
3185 D3D12_RESOURCE_FLAGS Flags;
3186 D3D12_MIP_REGION SamplerFeedbackMipRegion;
3187 } D3D12_RESOURCE_DESC1;
3188
3189typedef struct D3D12_DEPTH_STENCIL_VALUE
3190 {
3191 FLOAT Depth;
3192 UINT8 Stencil;
3193 } D3D12_DEPTH_STENCIL_VALUE;
3194
3195typedef struct D3D12_CLEAR_VALUE
3196 {
3197 DXGI_FORMAT Format;
3198 union
3199 {
3200 FLOAT Color[ 4 ];
3201 D3D12_DEPTH_STENCIL_VALUE DepthStencil;
3202 } ;
3203 } D3D12_CLEAR_VALUE;
3204
3205typedef struct D3D12_RANGE
3206 {
3207 SIZE_T Begin;
3208 SIZE_T End;
3209 } D3D12_RANGE;
3210
3211typedef struct D3D12_RANGE_UINT64
3212 {
3213 UINT64 Begin;
3214 UINT64 End;
3215 } D3D12_RANGE_UINT64;
3216
3217typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
3218 {
3219 UINT Subresource;
3220 D3D12_RANGE_UINT64 Range;
3221 } D3D12_SUBRESOURCE_RANGE_UINT64;
3222
3223typedef struct D3D12_SUBRESOURCE_INFO
3224 {
3225 UINT64 Offset;
3226 UINT RowPitch;
3227 UINT DepthPitch;
3228 } D3D12_SUBRESOURCE_INFO;
3229
3230typedef struct D3D12_TILED_RESOURCE_COORDINATE
3231 {
3232 UINT X;
3233 UINT Y;
3234 UINT Z;
3235 UINT Subresource;
3236 } D3D12_TILED_RESOURCE_COORDINATE;
3237
3238typedef struct D3D12_TILE_REGION_SIZE
3239 {
3240 UINT NumTiles;
3241 BOOL UseBox;
3242 UINT Width;
3243 UINT16 Height;
3244 UINT16 Depth;
3245 } D3D12_TILE_REGION_SIZE;
3246
3247typedef
3248enum D3D12_TILE_RANGE_FLAGS
3249 {
3250 D3D12_TILE_RANGE_FLAG_NONE = 0,
3251 D3D12_TILE_RANGE_FLAG_NULL = 1,
3252 D3D12_TILE_RANGE_FLAG_SKIP = 2,
3253 D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4
3254 } D3D12_TILE_RANGE_FLAGS;
3255
3256typedef struct D3D12_SUBRESOURCE_TILING
3257 {
3258 UINT WidthInTiles;
3259 UINT16 HeightInTiles;
3260 UINT16 DepthInTiles;
3261 UINT StartTileIndexInOverallResource;
3262 } D3D12_SUBRESOURCE_TILING;
3263
3264typedef struct D3D12_TILE_SHAPE
3265 {
3266 UINT WidthInTexels;
3267 UINT HeightInTexels;
3268 UINT DepthInTexels;
3269 } D3D12_TILE_SHAPE;
3270
3271typedef struct D3D12_PACKED_MIP_INFO
3272 {
3273 UINT8 NumStandardMips;
3274 UINT8 NumPackedMips;
3275 UINT NumTilesForPackedMips;
3276 UINT StartTileIndexInOverallResource;
3277 } D3D12_PACKED_MIP_INFO;
3278
3279typedef
3280enum D3D12_TILE_MAPPING_FLAGS
3281 {
3282 D3D12_TILE_MAPPING_FLAG_NONE = 0,
3283 D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
3284 } D3D12_TILE_MAPPING_FLAGS;
3285
3286DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )
3287typedef
3288enum D3D12_TILE_COPY_FLAGS
3289 {
3290 D3D12_TILE_COPY_FLAG_NONE = 0,
3291 D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
3292 D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
3293 D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
3294 } D3D12_TILE_COPY_FLAGS;
3295
3296DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )
3297typedef
3298enum D3D12_RESOURCE_STATES
3299 {
3300 D3D12_RESOURCE_STATE_COMMON = 0,
3301 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
3302 D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
3303 D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
3304 D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
3305 D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
3306 D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
3307 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
3308 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
3309 D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
3310 D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
3311 D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
3312 D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
3313 D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
3314 D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
3315 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
3316 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
3317 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000,
3318 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000,
3319 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000,
3320 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000,
3321 D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000,
3322 D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) ,
3323 D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) ,
3324 D3D12_RESOURCE_STATE_PRESENT = 0,
3325 D3D12_RESOURCE_STATE_PREDICATION = 0x200,
3326 D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
3327 D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
3328 D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
3329 D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
3330 D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
3331 D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
3332 } D3D12_RESOURCE_STATES;
3333
3334DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )
3335typedef
3336enum D3D12_RESOURCE_BARRIER_TYPE
3337 {
3338 D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
3339 D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) ,
3340 D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 )
3341 } D3D12_RESOURCE_BARRIER_TYPE;
3342
3343
3344typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
3345 {
3346 ID3D12Resource *pResource;
3347 UINT Subresource;
3348 D3D12_RESOURCE_STATES StateBefore;
3349 D3D12_RESOURCE_STATES StateAfter;
3350 } D3D12_RESOURCE_TRANSITION_BARRIER;
3351
3352typedef struct D3D12_RESOURCE_ALIASING_BARRIER
3353 {
3354 ID3D12Resource *pResourceBefore;
3355 ID3D12Resource *pResourceAfter;
3356 } D3D12_RESOURCE_ALIASING_BARRIER;
3357
3358typedef struct D3D12_RESOURCE_UAV_BARRIER
3359 {
3360 ID3D12Resource *pResource;
3361 } D3D12_RESOURCE_UAV_BARRIER;
3362
3363typedef
3364enum D3D12_RESOURCE_BARRIER_FLAGS
3365 {
3366 D3D12_RESOURCE_BARRIER_FLAG_NONE = 0,
3367 D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
3368 D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
3369 } D3D12_RESOURCE_BARRIER_FLAGS;
3370
3371DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )
3372typedef struct D3D12_RESOURCE_BARRIER
3373 {
3374 D3D12_RESOURCE_BARRIER_TYPE Type;
3375 D3D12_RESOURCE_BARRIER_FLAGS Flags;
3376 union
3377 {
3378 D3D12_RESOURCE_TRANSITION_BARRIER Transition;
3379 D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
3380 D3D12_RESOURCE_UAV_BARRIER UAV;
3381 } ;
3382 } D3D12_RESOURCE_BARRIER;
3383
3384typedef struct D3D12_SUBRESOURCE_FOOTPRINT
3385 {
3386 DXGI_FORMAT Format;
3387 UINT Width;
3388 UINT Height;
3389 UINT Depth;
3390 UINT RowPitch;
3391 } D3D12_SUBRESOURCE_FOOTPRINT;
3392
3393typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
3394 {
3395 UINT64 Offset;
3396 D3D12_SUBRESOURCE_FOOTPRINT Footprint;
3397 } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
3398
3399typedef
3400enum D3D12_TEXTURE_COPY_TYPE
3401 {
3402 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
3403 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
3404 } D3D12_TEXTURE_COPY_TYPE;
3405
3406typedef struct D3D12_TEXTURE_COPY_LOCATION
3407 {
3408 ID3D12Resource *pResource;
3409 D3D12_TEXTURE_COPY_TYPE Type;
3410 union
3411 {
3412 D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
3413 UINT SubresourceIndex;
3414 } ;
3415 } D3D12_TEXTURE_COPY_LOCATION;
3416
3417typedef
3418enum D3D12_RESOLVE_MODE
3419 {
3420 D3D12_RESOLVE_MODE_DECOMPRESS = 0,
3421 D3D12_RESOLVE_MODE_MIN = 1,
3422 D3D12_RESOLVE_MODE_MAX = 2,
3423 D3D12_RESOLVE_MODE_AVERAGE = 3,
3424 D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4,
3425 D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
3426 } D3D12_RESOLVE_MODE;
3427
3428typedef struct D3D12_SAMPLE_POSITION
3429 {
3430 INT8 X;
3431 INT8 Y;
3432 } D3D12_SAMPLE_POSITION;
3433
3434typedef struct D3D12_VIEW_INSTANCE_LOCATION
3435 {
3436 UINT ViewportArrayIndex;
3437 UINT RenderTargetArrayIndex;
3438 } D3D12_VIEW_INSTANCE_LOCATION;
3439
3440typedef
3441enum D3D12_VIEW_INSTANCING_FLAGS
3442 {
3443 D3D12_VIEW_INSTANCING_FLAG_NONE = 0,
3444 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1
3445 } D3D12_VIEW_INSTANCING_FLAGS;
3446
3447DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )
3448typedef struct D3D12_VIEW_INSTANCING_DESC
3449 {
3450 UINT ViewInstanceCount;
3451 _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
3452 D3D12_VIEW_INSTANCING_FLAGS Flags;
3453 } D3D12_VIEW_INSTANCING_DESC;
3454
3455typedef
3456enum D3D12_SHADER_COMPONENT_MAPPING
3457 {
3458 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
3459 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
3460 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
3461 D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
3462 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
3463 D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
3464 } D3D12_SHADER_COMPONENT_MAPPING;
3465
3466#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
3467#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
3468#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
3469#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
3470 (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
3471 (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
3472 (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
3473 D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
3474#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))
3475#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
3476typedef
3477enum D3D12_BUFFER_SRV_FLAGS
3478 {
3479 D3D12_BUFFER_SRV_FLAG_NONE = 0,
3480 D3D12_BUFFER_SRV_FLAG_RAW = 0x1
3481 } D3D12_BUFFER_SRV_FLAGS;
3482
3483DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )
3484typedef struct D3D12_BUFFER_SRV
3485 {
3486 UINT64 FirstElement;
3487 UINT NumElements;
3488 UINT StructureByteStride;
3489 D3D12_BUFFER_SRV_FLAGS Flags;
3490 } D3D12_BUFFER_SRV;
3491
3492typedef struct D3D12_TEX1D_SRV
3493 {
3494 UINT MostDetailedMip;
3495 UINT MipLevels;
3496 FLOAT ResourceMinLODClamp;
3497 } D3D12_TEX1D_SRV;
3498
3499typedef struct D3D12_TEX1D_ARRAY_SRV
3500 {
3501 UINT MostDetailedMip;
3502 UINT MipLevels;
3503 UINT FirstArraySlice;
3504 UINT ArraySize;
3505 FLOAT ResourceMinLODClamp;
3506 } D3D12_TEX1D_ARRAY_SRV;
3507
3508typedef struct D3D12_TEX2D_SRV
3509 {
3510 UINT MostDetailedMip;
3511 UINT MipLevels;
3512 UINT PlaneSlice;
3513 FLOAT ResourceMinLODClamp;
3514 } D3D12_TEX2D_SRV;
3515
3516typedef struct D3D12_TEX2D_ARRAY_SRV
3517 {
3518 UINT MostDetailedMip;
3519 UINT MipLevels;
3520 UINT FirstArraySlice;
3521 UINT ArraySize;
3522 UINT PlaneSlice;
3523 FLOAT ResourceMinLODClamp;
3524 } D3D12_TEX2D_ARRAY_SRV;
3525
3526typedef struct D3D12_TEX3D_SRV
3527 {
3528 UINT MostDetailedMip;
3529 UINT MipLevels;
3530 FLOAT ResourceMinLODClamp;
3531 } D3D12_TEX3D_SRV;
3532
3533typedef struct D3D12_TEXCUBE_SRV
3534 {
3535 UINT MostDetailedMip;
3536 UINT MipLevels;
3537 FLOAT ResourceMinLODClamp;
3538 } D3D12_TEXCUBE_SRV;
3539
3540typedef struct D3D12_TEXCUBE_ARRAY_SRV
3541 {
3542 UINT MostDetailedMip;
3543 UINT MipLevels;
3544 UINT First2DArrayFace;
3545 UINT NumCubes;
3546 FLOAT ResourceMinLODClamp;
3547 } D3D12_TEXCUBE_ARRAY_SRV;
3548
3549typedef struct D3D12_TEX2DMS_SRV
3550 {
3551 UINT UnusedField_NothingToDefine;
3552 } D3D12_TEX2DMS_SRV;
3553
3554typedef struct D3D12_TEX2DMS_ARRAY_SRV
3555 {
3556 UINT FirstArraySlice;
3557 UINT ArraySize;
3558 } D3D12_TEX2DMS_ARRAY_SRV;
3559
3560typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
3561 {
3562 D3D12_GPU_VIRTUAL_ADDRESS Location;
3563 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
3564
3565typedef
3566enum D3D12_SRV_DIMENSION
3567 {
3568 D3D12_SRV_DIMENSION_UNKNOWN = 0,
3569 D3D12_SRV_DIMENSION_BUFFER = 1,
3570 D3D12_SRV_DIMENSION_TEXTURE1D = 2,
3571 D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
3572 D3D12_SRV_DIMENSION_TEXTURE2D = 4,
3573 D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
3574 D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
3575 D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
3576 D3D12_SRV_DIMENSION_TEXTURE3D = 8,
3577 D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
3578 D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
3579 D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11
3580 } D3D12_SRV_DIMENSION;
3581
3582typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
3583 {
3584 DXGI_FORMAT Format;
3585 D3D12_SRV_DIMENSION ViewDimension;
3586 UINT Shader4ComponentMapping;
3587 union
3588 {
3589 D3D12_BUFFER_SRV Buffer;
3590 D3D12_TEX1D_SRV Texture1D;
3591 D3D12_TEX1D_ARRAY_SRV Texture1DArray;
3592 D3D12_TEX2D_SRV Texture2D;
3593 D3D12_TEX2D_ARRAY_SRV Texture2DArray;
3594 D3D12_TEX2DMS_SRV Texture2DMS;
3595 D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3596 D3D12_TEX3D_SRV Texture3D;
3597 D3D12_TEXCUBE_SRV TextureCube;
3598 D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
3599 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
3600 } ;
3601 } D3D12_SHADER_RESOURCE_VIEW_DESC;
3602
3603typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
3604 {
3605 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
3606 UINT SizeInBytes;
3607 } D3D12_CONSTANT_BUFFER_VIEW_DESC;
3608
3609typedef
3610enum D3D12_FILTER
3611 {
3612 D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
3613 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
3614 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
3615 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
3616 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
3617 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
3618 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
3619 D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
3620 D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54,
3621 D3D12_FILTER_ANISOTROPIC = 0x55,
3622 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
3623 D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
3624 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
3625 D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
3626 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
3627 D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
3628 D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
3629 D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
3630 D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4,
3631 D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
3632 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
3633 D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
3634 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
3635 D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
3636 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
3637 D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
3638 D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
3639 D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
3640 D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154,
3641 D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
3642 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
3643 D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
3644 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
3645 D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
3646 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
3647 D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
3648 D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
3649 D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
3650 D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4,
3651 D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
3652 } D3D12_FILTER;
3653
3654typedef
3655enum D3D12_FILTER_TYPE
3656 {
3657 D3D12_FILTER_TYPE_POINT = 0,
3658 D3D12_FILTER_TYPE_LINEAR = 1
3659 } D3D12_FILTER_TYPE;
3660
3661typedef
3662enum D3D12_FILTER_REDUCTION_TYPE
3663 {
3664 D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
3665 D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
3666 D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
3667 D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
3668 } D3D12_FILTER_REDUCTION_TYPE;
3669
3670#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
3671
3672#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
3673
3674#define D3D12_FILTER_TYPE_MASK ( 0x3 )
3675
3676#define D3D12_MIN_FILTER_SHIFT ( 4 )
3677
3678#define D3D12_MAG_FILTER_SHIFT ( 2 )
3679
3680#define D3D12_MIP_FILTER_SHIFT ( 0 )
3681
3682#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
3683
3684#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
3685 ( ( D3D12_FILTER ) ( \
3686 ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
3687 ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
3688 ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
3689 ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
3690#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
3691 ( ( D3D12_FILTER ) ( \
3692 D3D12_ANISOTROPIC_FILTERING_BIT | \
3693 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3694 D3D12_FILTER_TYPE_LINEAR, \
3695 D3D12_FILTER_TYPE_LINEAR, \
3696 reduction ) ) )
3697#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \
3698 ( ( D3D12_FILTER ) ( \
3699 D3D12_ANISOTROPIC_FILTERING_BIT | \
3700 D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
3701 D3D12_FILTER_TYPE_LINEAR, \
3702 D3D12_FILTER_TYPE_POINT, \
3703 reduction ) ) )
3704#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
3705 ( ( D3D12_FILTER_TYPE ) \
3706 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3707#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
3708 ( ( D3D12_FILTER_TYPE ) \
3709 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3710#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
3711 ( ( D3D12_FILTER_TYPE ) \
3712 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
3713#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
3714 ( ( D3D12_FILTER_REDUCTION_TYPE ) \
3715 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
3716#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
3717 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
3718#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
3719 ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
3720 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
3721 ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) )
3722typedef
3723enum D3D12_TEXTURE_ADDRESS_MODE
3724 {
3725 D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
3726 D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
3727 D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
3728 D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
3729 D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
3730 } D3D12_TEXTURE_ADDRESS_MODE;
3731
3732typedef struct D3D12_SAMPLER_DESC
3733 {
3734 D3D12_FILTER Filter;
3735 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3736 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3737 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3738 FLOAT MipLODBias;
3739 UINT MaxAnisotropy;
3740 D3D12_COMPARISON_FUNC ComparisonFunc;
3741 FLOAT BorderColor[ 4 ];
3742 FLOAT MinLOD;
3743 FLOAT MaxLOD;
3744 } D3D12_SAMPLER_DESC;
3745
3746typedef
3747enum D3D12_SAMPLER_FLAGS
3748 {
3749 D3D12_SAMPLER_FLAG_NONE = 0,
3750 D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1,
3751 D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2
3752 } D3D12_SAMPLER_FLAGS;
3753
3754DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )
3755typedef struct D3D12_SAMPLER_DESC2
3756 {
3757 D3D12_FILTER Filter;
3758 D3D12_TEXTURE_ADDRESS_MODE AddressU;
3759 D3D12_TEXTURE_ADDRESS_MODE AddressV;
3760 D3D12_TEXTURE_ADDRESS_MODE AddressW;
3761 FLOAT MipLODBias;
3762 UINT MaxAnisotropy;
3763 D3D12_COMPARISON_FUNC ComparisonFunc;
3764 union
3765 {
3766 FLOAT FloatBorderColor[ 4 ];
3767 UINT UintBorderColor[ 4 ];
3768 } ;
3769 FLOAT MinLOD;
3770 FLOAT MaxLOD;
3771 D3D12_SAMPLER_FLAGS Flags;
3772 } D3D12_SAMPLER_DESC2;
3773
3774typedef
3775enum D3D12_BUFFER_UAV_FLAGS
3776 {
3777 D3D12_BUFFER_UAV_FLAG_NONE = 0,
3778 D3D12_BUFFER_UAV_FLAG_RAW = 0x1
3779 } D3D12_BUFFER_UAV_FLAGS;
3780
3781DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )
3782typedef struct D3D12_BUFFER_UAV
3783 {
3784 UINT64 FirstElement;
3785 UINT NumElements;
3786 UINT StructureByteStride;
3787 UINT64 CounterOffsetInBytes;
3788 D3D12_BUFFER_UAV_FLAGS Flags;
3789 } D3D12_BUFFER_UAV;
3790
3791typedef struct D3D12_TEX1D_UAV
3792 {
3793 UINT MipSlice;
3794 } D3D12_TEX1D_UAV;
3795
3796typedef struct D3D12_TEX1D_ARRAY_UAV
3797 {
3798 UINT MipSlice;
3799 UINT FirstArraySlice;
3800 UINT ArraySize;
3801 } D3D12_TEX1D_ARRAY_UAV;
3802
3803typedef struct D3D12_TEX2D_UAV
3804 {
3805 UINT MipSlice;
3806 UINT PlaneSlice;
3807 } D3D12_TEX2D_UAV;
3808
3809typedef struct D3D12_TEX2D_ARRAY_UAV
3810 {
3811 UINT MipSlice;
3812 UINT FirstArraySlice;
3813 UINT ArraySize;
3814 UINT PlaneSlice;
3815 } D3D12_TEX2D_ARRAY_UAV;
3816
3817typedef struct D3D12_TEX2DMS_UAV
3818 {
3819 UINT UnusedField_NothingToDefine;
3820 } D3D12_TEX2DMS_UAV;
3821
3822typedef struct D3D12_TEX2DMS_ARRAY_UAV
3823 {
3824 UINT FirstArraySlice;
3825 UINT ArraySize;
3826 } D3D12_TEX2DMS_ARRAY_UAV;
3827
3828typedef struct D3D12_TEX3D_UAV
3829 {
3830 UINT MipSlice;
3831 UINT FirstWSlice;
3832 UINT WSize;
3833 } D3D12_TEX3D_UAV;
3834
3835typedef
3836enum D3D12_UAV_DIMENSION
3837 {
3838 D3D12_UAV_DIMENSION_UNKNOWN = 0,
3839 D3D12_UAV_DIMENSION_BUFFER = 1,
3840 D3D12_UAV_DIMENSION_TEXTURE1D = 2,
3841 D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
3842 D3D12_UAV_DIMENSION_TEXTURE2D = 4,
3843 D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
3844 D3D12_UAV_DIMENSION_TEXTURE2DMS = 6,
3845 D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7,
3846 D3D12_UAV_DIMENSION_TEXTURE3D = 8
3847 } D3D12_UAV_DIMENSION;
3848
3849typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
3850 {
3851 DXGI_FORMAT Format;
3852 D3D12_UAV_DIMENSION ViewDimension;
3853 union
3854 {
3855 D3D12_BUFFER_UAV Buffer;
3856 D3D12_TEX1D_UAV Texture1D;
3857 D3D12_TEX1D_ARRAY_UAV Texture1DArray;
3858 D3D12_TEX2D_UAV Texture2D;
3859 D3D12_TEX2D_ARRAY_UAV Texture2DArray;
3860 D3D12_TEX2DMS_UAV Texture2DMS;
3861 D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray;
3862 D3D12_TEX3D_UAV Texture3D;
3863 } ;
3864 } D3D12_UNORDERED_ACCESS_VIEW_DESC;
3865
3866typedef struct D3D12_BUFFER_RTV
3867 {
3868 UINT64 FirstElement;
3869 UINT NumElements;
3870 } D3D12_BUFFER_RTV;
3871
3872typedef struct D3D12_TEX1D_RTV
3873 {
3874 UINT MipSlice;
3875 } D3D12_TEX1D_RTV;
3876
3877typedef struct D3D12_TEX1D_ARRAY_RTV
3878 {
3879 UINT MipSlice;
3880 UINT FirstArraySlice;
3881 UINT ArraySize;
3882 } D3D12_TEX1D_ARRAY_RTV;
3883
3884typedef struct D3D12_TEX2D_RTV
3885 {
3886 UINT MipSlice;
3887 UINT PlaneSlice;
3888 } D3D12_TEX2D_RTV;
3889
3890typedef struct D3D12_TEX2DMS_RTV
3891 {
3892 UINT UnusedField_NothingToDefine;
3893 } D3D12_TEX2DMS_RTV;
3894
3895typedef struct D3D12_TEX2D_ARRAY_RTV
3896 {
3897 UINT MipSlice;
3898 UINT FirstArraySlice;
3899 UINT ArraySize;
3900 UINT PlaneSlice;
3901 } D3D12_TEX2D_ARRAY_RTV;
3902
3903typedef struct D3D12_TEX2DMS_ARRAY_RTV
3904 {
3905 UINT FirstArraySlice;
3906 UINT ArraySize;
3907 } D3D12_TEX2DMS_ARRAY_RTV;
3908
3909typedef struct D3D12_TEX3D_RTV
3910 {
3911 UINT MipSlice;
3912 UINT FirstWSlice;
3913 UINT WSize;
3914 } D3D12_TEX3D_RTV;
3915
3916typedef
3917enum D3D12_RTV_DIMENSION
3918 {
3919 D3D12_RTV_DIMENSION_UNKNOWN = 0,
3920 D3D12_RTV_DIMENSION_BUFFER = 1,
3921 D3D12_RTV_DIMENSION_TEXTURE1D = 2,
3922 D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
3923 D3D12_RTV_DIMENSION_TEXTURE2D = 4,
3924 D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
3925 D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
3926 D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
3927 D3D12_RTV_DIMENSION_TEXTURE3D = 8
3928 } D3D12_RTV_DIMENSION;
3929
3930typedef struct D3D12_RENDER_TARGET_VIEW_DESC
3931 {
3932 DXGI_FORMAT Format;
3933 D3D12_RTV_DIMENSION ViewDimension;
3934 union
3935 {
3936 D3D12_BUFFER_RTV Buffer;
3937 D3D12_TEX1D_RTV Texture1D;
3938 D3D12_TEX1D_ARRAY_RTV Texture1DArray;
3939 D3D12_TEX2D_RTV Texture2D;
3940 D3D12_TEX2D_ARRAY_RTV Texture2DArray;
3941 D3D12_TEX2DMS_RTV Texture2DMS;
3942 D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3943 D3D12_TEX3D_RTV Texture3D;
3944 } ;
3945 } D3D12_RENDER_TARGET_VIEW_DESC;
3946
3947typedef struct D3D12_TEX1D_DSV
3948 {
3949 UINT MipSlice;
3950 } D3D12_TEX1D_DSV;
3951
3952typedef struct D3D12_TEX1D_ARRAY_DSV
3953 {
3954 UINT MipSlice;
3955 UINT FirstArraySlice;
3956 UINT ArraySize;
3957 } D3D12_TEX1D_ARRAY_DSV;
3958
3959typedef struct D3D12_TEX2D_DSV
3960 {
3961 UINT MipSlice;
3962 } D3D12_TEX2D_DSV;
3963
3964typedef struct D3D12_TEX2D_ARRAY_DSV
3965 {
3966 UINT MipSlice;
3967 UINT FirstArraySlice;
3968 UINT ArraySize;
3969 } D3D12_TEX2D_ARRAY_DSV;
3970
3971typedef struct D3D12_TEX2DMS_DSV
3972 {
3973 UINT UnusedField_NothingToDefine;
3974 } D3D12_TEX2DMS_DSV;
3975
3976typedef struct D3D12_TEX2DMS_ARRAY_DSV
3977 {
3978 UINT FirstArraySlice;
3979 UINT ArraySize;
3980 } D3D12_TEX2DMS_ARRAY_DSV;
3981
3982typedef
3983enum D3D12_DSV_FLAGS
3984 {
3985 D3D12_DSV_FLAG_NONE = 0,
3986 D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
3987 D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
3988 } D3D12_DSV_FLAGS;
3989
3990DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )
3991typedef
3992enum D3D12_DSV_DIMENSION
3993 {
3994 D3D12_DSV_DIMENSION_UNKNOWN = 0,
3995 D3D12_DSV_DIMENSION_TEXTURE1D = 1,
3996 D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
3997 D3D12_DSV_DIMENSION_TEXTURE2D = 3,
3998 D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
3999 D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
4000 D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
4001 } D3D12_DSV_DIMENSION;
4002
4003typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
4004 {
4005 DXGI_FORMAT Format;
4006 D3D12_DSV_DIMENSION ViewDimension;
4007 D3D12_DSV_FLAGS Flags;
4008 union
4009 {
4010 D3D12_TEX1D_DSV Texture1D;
4011 D3D12_TEX1D_ARRAY_DSV Texture1DArray;
4012 D3D12_TEX2D_DSV Texture2D;
4013 D3D12_TEX2D_ARRAY_DSV Texture2DArray;
4014 D3D12_TEX2DMS_DSV Texture2DMS;
4015 D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
4016 } ;
4017 } D3D12_DEPTH_STENCIL_VIEW_DESC;
4018
4019typedef
4020enum D3D12_CLEAR_FLAGS
4021 {
4022 D3D12_CLEAR_FLAG_DEPTH = 0x1,
4023 D3D12_CLEAR_FLAG_STENCIL = 0x2
4024 } D3D12_CLEAR_FLAGS;
4025
4026DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )
4027typedef
4028enum D3D12_FENCE_FLAGS
4029 {
4030 D3D12_FENCE_FLAG_NONE = 0,
4031 D3D12_FENCE_FLAG_SHARED = 0x1,
4032 D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
4033 D3D12_FENCE_FLAG_NON_MONITORED = 0x4
4034 } D3D12_FENCE_FLAGS;
4035
4036DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )
4037typedef
4038enum D3D12_DESCRIPTOR_HEAP_TYPE
4039 {
4040 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
4041 D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) ,
4042 D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) ,
4043 D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) ,
4044 D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 )
4045 } D3D12_DESCRIPTOR_HEAP_TYPE;
4046
4047typedef
4048enum D3D12_DESCRIPTOR_HEAP_FLAGS
4049 {
4050 D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
4051 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
4052 } D3D12_DESCRIPTOR_HEAP_FLAGS;
4053
4054DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )
4055typedef struct D3D12_DESCRIPTOR_HEAP_DESC
4056 {
4057 D3D12_DESCRIPTOR_HEAP_TYPE Type;
4058 UINT NumDescriptors;
4059 D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
4060 UINT NodeMask;
4061 } D3D12_DESCRIPTOR_HEAP_DESC;
4062
4063typedef
4064enum D3D12_DESCRIPTOR_RANGE_TYPE
4065 {
4066 D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
4067 D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) ,
4068 D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) ,
4069 D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 )
4070 } D3D12_DESCRIPTOR_RANGE_TYPE;
4071
4072typedef struct D3D12_DESCRIPTOR_RANGE
4073 {
4074 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
4075 UINT NumDescriptors;
4076 UINT BaseShaderRegister;
4077 UINT RegisterSpace;
4078 UINT OffsetInDescriptorsFromTableStart;
4079 } D3D12_DESCRIPTOR_RANGE;
4080
4081typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
4082 {
4083 UINT NumDescriptorRanges;
4084 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
4085 } D3D12_ROOT_DESCRIPTOR_TABLE;
4086
4087typedef struct D3D12_ROOT_CONSTANTS
4088 {
4089 UINT ShaderRegister;
4090 UINT RegisterSpace;
4091 UINT Num32BitValues;
4092 } D3D12_ROOT_CONSTANTS;
4093
4094typedef struct D3D12_ROOT_DESCRIPTOR
4095 {
4096 UINT ShaderRegister;
4097 UINT RegisterSpace;
4098 } D3D12_ROOT_DESCRIPTOR;
4099
4100typedef
4101enum D3D12_SHADER_VISIBILITY
4102 {
4103 D3D12_SHADER_VISIBILITY_ALL = 0,
4104 D3D12_SHADER_VISIBILITY_VERTEX = 1,
4105 D3D12_SHADER_VISIBILITY_HULL = 2,
4106 D3D12_SHADER_VISIBILITY_DOMAIN = 3,
4107 D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
4108 D3D12_SHADER_VISIBILITY_PIXEL = 5,
4109 D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
4110 D3D12_SHADER_VISIBILITY_MESH = 7
4111 } D3D12_SHADER_VISIBILITY;
4112
4113typedef
4114enum D3D12_ROOT_PARAMETER_TYPE
4115 {
4116 D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
4117 D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) ,
4118 D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) ,
4119 D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) ,
4120 D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 )
4121 } D3D12_ROOT_PARAMETER_TYPE;
4122
4123typedef struct D3D12_ROOT_PARAMETER
4124 {
4125 D3D12_ROOT_PARAMETER_TYPE ParameterType;
4126 union
4127 {
4128 D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
4129 D3D12_ROOT_CONSTANTS Constants;
4130 D3D12_ROOT_DESCRIPTOR Descriptor;
4131 } ;
4132 D3D12_SHADER_VISIBILITY ShaderVisibility;
4133 } D3D12_ROOT_PARAMETER;
4134
4135typedef
4136enum D3D12_ROOT_SIGNATURE_FLAGS
4137 {
4138 D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
4139 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
4140 D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
4141 D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
4142 D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
4143 D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
4144 D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
4145 D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
4146 D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
4147 D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
4148 D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
4149 D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
4150 D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
4151 } D3D12_ROOT_SIGNATURE_FLAGS;
4152
4153DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )
4154typedef
4155enum D3D12_STATIC_BORDER_COLOR
4156 {
4157 D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
4158 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) ,
4159 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) ,
4160 D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) ,
4161 D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 )
4162 } D3D12_STATIC_BORDER_COLOR;
4163
4164typedef struct D3D12_STATIC_SAMPLER_DESC
4165 {
4166 D3D12_FILTER Filter;
4167 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4168 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4169 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4170 FLOAT MipLODBias;
4171 UINT MaxAnisotropy;
4172 D3D12_COMPARISON_FUNC ComparisonFunc;
4173 D3D12_STATIC_BORDER_COLOR BorderColor;
4174 FLOAT MinLOD;
4175 FLOAT MaxLOD;
4176 UINT ShaderRegister;
4177 UINT RegisterSpace;
4178 D3D12_SHADER_VISIBILITY ShaderVisibility;
4179 } D3D12_STATIC_SAMPLER_DESC;
4180
4181typedef struct D3D12_STATIC_SAMPLER_DESC1
4182 {
4183 D3D12_FILTER Filter;
4184 D3D12_TEXTURE_ADDRESS_MODE AddressU;
4185 D3D12_TEXTURE_ADDRESS_MODE AddressV;
4186 D3D12_TEXTURE_ADDRESS_MODE AddressW;
4187 FLOAT MipLODBias;
4188 UINT MaxAnisotropy;
4189 D3D12_COMPARISON_FUNC ComparisonFunc;
4190 D3D12_STATIC_BORDER_COLOR BorderColor;
4191 FLOAT MinLOD;
4192 FLOAT MaxLOD;
4193 UINT ShaderRegister;
4194 UINT RegisterSpace;
4195 D3D12_SHADER_VISIBILITY ShaderVisibility;
4196 D3D12_SAMPLER_FLAGS Flags;
4197 } D3D12_STATIC_SAMPLER_DESC1;
4198
4199typedef struct D3D12_ROOT_SIGNATURE_DESC
4200 {
4201 UINT NumParameters;
4202 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters;
4203 UINT NumStaticSamplers;
4204 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4205 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4206 } D3D12_ROOT_SIGNATURE_DESC;
4207
4208typedef
4209enum D3D12_DESCRIPTOR_RANGE_FLAGS
4210 {
4211 D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
4212 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
4213 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
4214 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4215 D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
4216 D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
4217 } D3D12_DESCRIPTOR_RANGE_FLAGS;
4218
4219DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )
4220typedef struct D3D12_DESCRIPTOR_RANGE1
4221 {
4222 D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
4223 UINT NumDescriptors;
4224 UINT BaseShaderRegister;
4225 UINT RegisterSpace;
4226 D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
4227 UINT OffsetInDescriptorsFromTableStart;
4228 } D3D12_DESCRIPTOR_RANGE1;
4229
4230typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
4231 {
4232 UINT NumDescriptorRanges;
4233 _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
4234 } D3D12_ROOT_DESCRIPTOR_TABLE1;
4235
4236typedef
4237enum D3D12_ROOT_DESCRIPTOR_FLAGS
4238 {
4239 D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
4240 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
4241 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
4242 D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
4243 } D3D12_ROOT_DESCRIPTOR_FLAGS;
4244
4245DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )
4246typedef struct D3D12_ROOT_DESCRIPTOR1
4247 {
4248 UINT ShaderRegister;
4249 UINT RegisterSpace;
4250 D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
4251 } D3D12_ROOT_DESCRIPTOR1;
4252
4253typedef struct D3D12_ROOT_PARAMETER1
4254 {
4255 D3D12_ROOT_PARAMETER_TYPE ParameterType;
4256 union
4257 {
4258 D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
4259 D3D12_ROOT_CONSTANTS Constants;
4260 D3D12_ROOT_DESCRIPTOR1 Descriptor;
4261 } ;
4262 D3D12_SHADER_VISIBILITY ShaderVisibility;
4263 } D3D12_ROOT_PARAMETER1;
4264
4265typedef struct D3D12_ROOT_SIGNATURE_DESC1
4266 {
4267 UINT NumParameters;
4268 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4269 UINT NumStaticSamplers;
4270 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
4271 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4272 } D3D12_ROOT_SIGNATURE_DESC1;
4273
4274typedef struct D3D12_ROOT_SIGNATURE_DESC2
4275 {
4276 UINT NumParameters;
4277 _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
4278 UINT NumStaticSamplers;
4279 _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers;
4280 D3D12_ROOT_SIGNATURE_FLAGS Flags;
4281 } D3D12_ROOT_SIGNATURE_DESC2;
4282
4283typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
4284 {
4285 D3D_ROOT_SIGNATURE_VERSION Version;
4286 union
4287 {
4288 D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
4289 D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
4290 D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2;
4291 } ;
4292 } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
4293
4294
4295
4296extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec;
4297extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec;
4298
4299#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4300#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
4301
4302/* interface ID3D12RootSignatureDeserializer */
4303/* [unique][local][object][uuid] */
4304
4305
4306EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
4307
4308#if defined(__cplusplus) && !defined(CINTERFACE)
4309
4310 MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046")
4311 ID3D12RootSignatureDeserializer : public IUnknown
4312 {
4313 public:
4314 virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0;
4315
4316 };
4317
4318
4319#else /* C style interface */
4320
4321 typedef struct ID3D12RootSignatureDeserializerVtbl
4322 {
4323 BEGIN_INTERFACE
4324
4325 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4326 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4327 ID3D12RootSignatureDeserializer * This,
4328 REFIID riid,
4329 _COM_Outptr_ void **ppvObject);
4330
4331 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4332 ULONG ( STDMETHODCALLTYPE *AddRef )(
4333 ID3D12RootSignatureDeserializer * This);
4334
4335 DECLSPEC_XFGVIRT(IUnknown, Release)
4336 ULONG ( STDMETHODCALLTYPE *Release )(
4337 ID3D12RootSignatureDeserializer * This);
4338
4339 DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc)
4340 const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )(
4341 ID3D12RootSignatureDeserializer * This);
4342
4343 END_INTERFACE
4344 } ID3D12RootSignatureDeserializerVtbl;
4345
4346 interface ID3D12RootSignatureDeserializer
4347 {
4348 CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl;
4349 };
4350
4351
4352
4353#ifdef COBJMACROS
4354
4355
4356#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4357 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4358
4359#define ID3D12RootSignatureDeserializer_AddRef(This) \
4360 ( (This)->lpVtbl -> AddRef(This) )
4361
4362#define ID3D12RootSignatureDeserializer_Release(This) \
4363 ( (This)->lpVtbl -> Release(This) )
4364
4365
4366#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \
4367 ( (This)->lpVtbl -> GetRootSignatureDesc(This) )
4368
4369#endif /* COBJMACROS */
4370
4371
4372#endif /* C style interface */
4373
4374
4375
4376
4377#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
4378
4379
4380#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4381#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
4382
4383/* interface ID3D12VersionedRootSignatureDeserializer */
4384/* [unique][local][object][uuid] */
4385
4386
4387EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
4388
4389#if defined(__cplusplus) && !defined(CINTERFACE)
4390
4391 MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
4392 ID3D12VersionedRootSignatureDeserializer : public IUnknown
4393 {
4394 public:
4395 virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
4396 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4397 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
4398
4399 virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
4400
4401 };
4402
4403
4404#else /* C style interface */
4405
4406 typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
4407 {
4408 BEGIN_INTERFACE
4409
4410 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4411 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4412 ID3D12VersionedRootSignatureDeserializer * This,
4413 REFIID riid,
4414 _COM_Outptr_ void **ppvObject);
4415
4416 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4417 ULONG ( STDMETHODCALLTYPE *AddRef )(
4418 ID3D12VersionedRootSignatureDeserializer * This);
4419
4420 DECLSPEC_XFGVIRT(IUnknown, Release)
4421 ULONG ( STDMETHODCALLTYPE *Release )(
4422 ID3D12VersionedRootSignatureDeserializer * This);
4423
4424 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion)
4425 HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
4426 ID3D12VersionedRootSignatureDeserializer * This,
4427 D3D_ROOT_SIGNATURE_VERSION convertToVersion,
4428 _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
4429
4430 DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc)
4431 const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
4432 ID3D12VersionedRootSignatureDeserializer * This);
4433
4434 END_INTERFACE
4435 } ID3D12VersionedRootSignatureDeserializerVtbl;
4436
4437 interface ID3D12VersionedRootSignatureDeserializer
4438 {
4439 CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
4440 };
4441
4442
4443
4444#ifdef COBJMACROS
4445
4446
4447#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
4448 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4449
4450#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
4451 ( (This)->lpVtbl -> AddRef(This) )
4452
4453#define ID3D12VersionedRootSignatureDeserializer_Release(This) \
4454 ( (This)->lpVtbl -> Release(This) )
4455
4456
4457#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
4458 ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
4459
4460#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
4461 ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
4462
4463#endif /* COBJMACROS */
4464
4465
4466#endif /* C style interface */
4467
4468
4469
4470
4471#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
4472
4473
4474/* interface __MIDL_itf_d3d12_0000_0003 */
4475/* [local] */
4476
4477typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
4478 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4479 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4480 _Out_ ID3DBlob** ppBlob,
4481 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4482
4483HRESULT WINAPI D3D12SerializeRootSignature(
4484 _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature,
4485 _In_ D3D_ROOT_SIGNATURE_VERSION Version,
4486 _Out_ ID3DBlob** ppBlob,
4487 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4488
4489typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
4490 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4491 _In_ SIZE_T SrcDataSizeInBytes,
4492 _In_ REFIID pRootSignatureDeserializerInterface,
4493 _Out_ void** ppRootSignatureDeserializer);
4494
4495HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
4496 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4497 _In_ SIZE_T SrcDataSizeInBytes,
4498 _In_ REFIID pRootSignatureDeserializerInterface,
4499 _Out_ void** ppRootSignatureDeserializer);
4500
4501typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
4502 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4503 _Out_ ID3DBlob** ppBlob,
4504 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4505
4506HRESULT WINAPI D3D12SerializeVersionedRootSignature(
4507 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
4508 _Out_ ID3DBlob** ppBlob,
4509 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
4510
4511typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
4512 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4513 _In_ SIZE_T SrcDataSizeInBytes,
4514 _In_ REFIID pRootSignatureDeserializerInterface,
4515 _Out_ void** ppRootSignatureDeserializer);
4516
4517HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
4518 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4519 _In_ SIZE_T SrcDataSizeInBytes,
4520 _In_ REFIID pRootSignatureDeserializerInterface,
4521 _Out_ void** ppRootSignatureDeserializer);
4522
4523typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(
4524 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4525 _In_ SIZE_T SrcDataSizeInBytes,
4526 _In_ LPCWSTR RootSignatureSubobjectName,
4527 _In_ REFIID pRootSignatureDeserializerInterface,
4528 _Out_ void** ppRootSignatureDeserializer);
4529
4530HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
4531 _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
4532 _In_ SIZE_T SrcDataSizeInBytes,
4533 _In_opt_ LPCWSTR RootSignatureSubobjectName,
4534 _In_ REFIID pRootSignatureDeserializerInterface,
4535 _Out_ void** ppRootSignatureDeserializer);
4536
4537typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
4538 {
4539 SIZE_T ptr;
4540 } D3D12_CPU_DESCRIPTOR_HANDLE;
4541
4542typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
4543 {
4544 UINT64 ptr;
4545 } D3D12_GPU_DESCRIPTOR_HANDLE;
4546
4547// If rects are supplied in D3D12_DISCARD_REGION, below, the resource
4548// must have 2D subresources with all specified subresources the same dimension.
4549typedef struct D3D12_DISCARD_REGION
4550 {
4551 UINT NumRects;
4552 _In_reads_(NumRects) const D3D12_RECT *pRects;
4553 UINT FirstSubresource;
4554 UINT NumSubresources;
4555 } D3D12_DISCARD_REGION;
4556
4557typedef
4558enum D3D12_QUERY_HEAP_TYPE
4559 {
4560 D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
4561 D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
4562 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
4563 D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
4564 D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
4565 D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
4566 D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7
4567 } D3D12_QUERY_HEAP_TYPE;
4568
4569typedef struct D3D12_QUERY_HEAP_DESC
4570 {
4571 D3D12_QUERY_HEAP_TYPE Type;
4572 UINT Count;
4573 UINT NodeMask;
4574 } D3D12_QUERY_HEAP_DESC;
4575
4576typedef
4577enum D3D12_QUERY_TYPE
4578 {
4579 D3D12_QUERY_TYPE_OCCLUSION = 0,
4580 D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
4581 D3D12_QUERY_TYPE_TIMESTAMP = 2,
4582 D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
4583 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
4584 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
4585 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
4586 D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
4587 D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
4588 D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10
4589 } D3D12_QUERY_TYPE;
4590
4591typedef
4592enum D3D12_PREDICATION_OP
4593 {
4594 D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
4595 D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
4596 } D3D12_PREDICATION_OP;
4597
4598typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
4599 {
4600 UINT64 IAVertices;
4601 UINT64 IAPrimitives;
4602 UINT64 VSInvocations;
4603 UINT64 GSInvocations;
4604 UINT64 GSPrimitives;
4605 UINT64 CInvocations;
4606 UINT64 CPrimitives;
4607 UINT64 PSInvocations;
4608 UINT64 HSInvocations;
4609 UINT64 DSInvocations;
4610 UINT64 CSInvocations;
4611 } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
4612
4613typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
4614 {
4615 UINT64 IAVertices;
4616 UINT64 IAPrimitives;
4617 UINT64 VSInvocations;
4618 UINT64 GSInvocations;
4619 UINT64 GSPrimitives;
4620 UINT64 CInvocations;
4621 UINT64 CPrimitives;
4622 UINT64 PSInvocations;
4623 UINT64 HSInvocations;
4624 UINT64 DSInvocations;
4625 UINT64 CSInvocations;
4626 UINT64 ASInvocations;
4627 UINT64 MSInvocations;
4628 UINT64 MSPrimitives;
4629 } D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
4630
4631typedef struct D3D12_QUERY_DATA_SO_STATISTICS
4632 {
4633 UINT64 NumPrimitivesWritten;
4634 UINT64 PrimitivesStorageNeeded;
4635 } D3D12_QUERY_DATA_SO_STATISTICS;
4636
4637typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
4638 {
4639 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4640 UINT64 SizeInBytes;
4641 D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
4642 } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
4643
4644typedef struct D3D12_DRAW_ARGUMENTS
4645 {
4646 UINT VertexCountPerInstance;
4647 UINT InstanceCount;
4648 UINT StartVertexLocation;
4649 UINT StartInstanceLocation;
4650 } D3D12_DRAW_ARGUMENTS;
4651
4652typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
4653 {
4654 UINT IndexCountPerInstance;
4655 UINT InstanceCount;
4656 UINT StartIndexLocation;
4657 INT BaseVertexLocation;
4658 UINT StartInstanceLocation;
4659 } D3D12_DRAW_INDEXED_ARGUMENTS;
4660
4661typedef struct D3D12_DISPATCH_ARGUMENTS
4662 {
4663 UINT ThreadGroupCountX;
4664 UINT ThreadGroupCountY;
4665 UINT ThreadGroupCountZ;
4666 } D3D12_DISPATCH_ARGUMENTS;
4667
4668typedef struct D3D12_VERTEX_BUFFER_VIEW
4669 {
4670 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4671 UINT SizeInBytes;
4672 UINT StrideInBytes;
4673 } D3D12_VERTEX_BUFFER_VIEW;
4674
4675typedef struct D3D12_INDEX_BUFFER_VIEW
4676 {
4677 D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
4678 UINT SizeInBytes;
4679 DXGI_FORMAT Format;
4680 } D3D12_INDEX_BUFFER_VIEW;
4681
4682typedef
4683enum D3D12_INDIRECT_ARGUMENT_TYPE
4684 {
4685 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
4686 D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) ,
4687 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) ,
4688 D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) ,
4689 D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) ,
4690 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) ,
4691 D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) ,
4692 D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) ,
4693 D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) ,
4694 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) ,
4695 D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) ,
4696 D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 )
4697 } D3D12_INDIRECT_ARGUMENT_TYPE;
4698
4699typedef struct D3D12_INDIRECT_ARGUMENT_DESC
4700 {
4701 D3D12_INDIRECT_ARGUMENT_TYPE Type;
4702 union
4703 {
4704 struct
4705 {
4706 UINT Slot;
4707 } VertexBuffer;
4708 struct
4709 {
4710 UINT RootParameterIndex;
4711 UINT DestOffsetIn32BitValues;
4712 UINT Num32BitValuesToSet;
4713 } Constant;
4714 struct
4715 {
4716 UINT RootParameterIndex;
4717 } ConstantBufferView;
4718 struct
4719 {
4720 UINT RootParameterIndex;
4721 } ShaderResourceView;
4722 struct
4723 {
4724 UINT RootParameterIndex;
4725 } UnorderedAccessView;
4726 struct
4727 {
4728 UINT RootParameterIndex;
4729 UINT DestOffsetIn32BitValues;
4730 } IncrementingConstant;
4731 } ;
4732 } D3D12_INDIRECT_ARGUMENT_DESC;
4733
4734typedef struct D3D12_COMMAND_SIGNATURE_DESC
4735 {
4736 UINT ByteStride;
4737 UINT NumArgumentDescs;
4738 _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
4739 UINT NodeMask;
4740 } D3D12_COMMAND_SIGNATURE_DESC;
4741
4742
4743
4744
4745extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
4746extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
4747
4748#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
4749#define __ID3D12Pageable_INTERFACE_DEFINED__
4750
4751/* interface ID3D12Pageable */
4752/* [unique][local][object][uuid] */
4753
4754
4755EXTERN_C const IID IID_ID3D12Pageable;
4756
4757#if defined(__cplusplus) && !defined(CINTERFACE)
4758
4759 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
4760 ID3D12Pageable : public ID3D12DeviceChild
4761 {
4762 public:
4763 };
4764
4765
4766#else /* C style interface */
4767
4768 typedef struct ID3D12PageableVtbl
4769 {
4770 BEGIN_INTERFACE
4771
4772 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4773 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4774 ID3D12Pageable * This,
4775 REFIID riid,
4776 _COM_Outptr_ void **ppvObject);
4777
4778 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4779 ULONG ( STDMETHODCALLTYPE *AddRef )(
4780 ID3D12Pageable * This);
4781
4782 DECLSPEC_XFGVIRT(IUnknown, Release)
4783 ULONG ( STDMETHODCALLTYPE *Release )(
4784 ID3D12Pageable * This);
4785
4786 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4787 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4788 ID3D12Pageable * This,
4789 _In_ REFGUID guid,
4790 _Inout_ UINT *pDataSize,
4791 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4792
4793 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4794 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4795 ID3D12Pageable * This,
4796 _In_ REFGUID guid,
4797 _In_ UINT DataSize,
4798 _In_reads_bytes_opt_( DataSize ) const void *pData);
4799
4800 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4801 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4802 ID3D12Pageable * This,
4803 _In_ REFGUID guid,
4804 _In_opt_ const IUnknown *pData);
4805
4806 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4807 HRESULT ( STDMETHODCALLTYPE *SetName )(
4808 ID3D12Pageable * This,
4809 _In_z_ LPCWSTR Name);
4810
4811 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4812 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4813 ID3D12Pageable * This,
4814 REFIID riid,
4815 _COM_Outptr_opt_ void **ppvDevice);
4816
4817 END_INTERFACE
4818 } ID3D12PageableVtbl;
4819
4820 interface ID3D12Pageable
4821 {
4822 CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
4823 };
4824
4825
4826
4827#ifdef COBJMACROS
4828
4829
4830#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \
4831 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4832
4833#define ID3D12Pageable_AddRef(This) \
4834 ( (This)->lpVtbl -> AddRef(This) )
4835
4836#define ID3D12Pageable_Release(This) \
4837 ( (This)->lpVtbl -> Release(This) )
4838
4839
4840#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \
4841 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4842
4843#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \
4844 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4845
4846#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \
4847 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4848
4849#define ID3D12Pageable_SetName(This,Name) \
4850 ( (This)->lpVtbl -> SetName(This,Name) )
4851
4852
4853#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \
4854 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4855
4856
4857#endif /* COBJMACROS */
4858
4859
4860#endif /* C style interface */
4861
4862
4863
4864
4865#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
4866
4867
4868#ifndef __ID3D12Heap_INTERFACE_DEFINED__
4869#define __ID3D12Heap_INTERFACE_DEFINED__
4870
4871/* interface ID3D12Heap */
4872/* [unique][local][object][uuid] */
4873
4874
4875EXTERN_C const IID IID_ID3D12Heap;
4876
4877#if defined(__cplusplus) && !defined(CINTERFACE)
4878
4879 MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
4880 ID3D12Heap : public ID3D12Pageable
4881 {
4882 public:
4883#if defined(_MSC_VER) || !defined(_WIN32)
4884 virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4885#else
4886 virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
4887 D3D12_HEAP_DESC * RetVal) = 0;
4888#endif
4889
4890 };
4891
4892
4893#else /* C style interface */
4894
4895 typedef struct ID3D12HeapVtbl
4896 {
4897 BEGIN_INTERFACE
4898
4899 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4900 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4901 ID3D12Heap * This,
4902 REFIID riid,
4903 _COM_Outptr_ void **ppvObject);
4904
4905 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4906 ULONG ( STDMETHODCALLTYPE *AddRef )(
4907 ID3D12Heap * This);
4908
4909 DECLSPEC_XFGVIRT(IUnknown, Release)
4910 ULONG ( STDMETHODCALLTYPE *Release )(
4911 ID3D12Heap * This);
4912
4913 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4914 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4915 ID3D12Heap * This,
4916 _In_ REFGUID guid,
4917 _Inout_ UINT *pDataSize,
4918 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4919
4920 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4921 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4922 ID3D12Heap * This,
4923 _In_ REFGUID guid,
4924 _In_ UINT DataSize,
4925 _In_reads_bytes_opt_( DataSize ) const void *pData);
4926
4927 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4928 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4929 ID3D12Heap * This,
4930 _In_ REFGUID guid,
4931 _In_opt_ const IUnknown *pData);
4932
4933 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4934 HRESULT ( STDMETHODCALLTYPE *SetName )(
4935 ID3D12Heap * This,
4936 _In_z_ LPCWSTR Name);
4937
4938 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4939 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4940 ID3D12Heap * This,
4941 REFIID riid,
4942 _COM_Outptr_opt_ void **ppvDevice);
4943
4944 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
4945#if !defined(_WIN32)
4946 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
4947 ID3D12Heap * This);
4948
4949#else
4950 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
4951 ID3D12Heap * This,
4952 D3D12_HEAP_DESC * RetVal);
4953
4954#endif
4955
4956 END_INTERFACE
4957 } ID3D12HeapVtbl;
4958
4959 interface ID3D12Heap
4960 {
4961 CONST_VTBL struct ID3D12HeapVtbl *lpVtbl;
4962 };
4963
4964
4965
4966#ifdef COBJMACROS
4967
4968
4969#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \
4970 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4971
4972#define ID3D12Heap_AddRef(This) \
4973 ( (This)->lpVtbl -> AddRef(This) )
4974
4975#define ID3D12Heap_Release(This) \
4976 ( (This)->lpVtbl -> Release(This) )
4977
4978
4979#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \
4980 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4981
4982#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \
4983 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4984
4985#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \
4986 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4987
4988#define ID3D12Heap_SetName(This,Name) \
4989 ( (This)->lpVtbl -> SetName(This,Name) )
4990
4991
4992#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \
4993 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4994
4995
4996#if !defined(_WIN32)
4997
4998#define ID3D12Heap_GetDesc(This) \
4999 ( (This)->lpVtbl -> GetDesc(This) )
5000#else
5001#define ID3D12Heap_GetDesc(This,RetVal) \
5002 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5003#endif
5004
5005#endif /* COBJMACROS */
5006
5007
5008#endif /* C style interface */
5009
5010
5011
5012
5013#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
5014
5015
5016#ifndef __ID3D12Resource_INTERFACE_DEFINED__
5017#define __ID3D12Resource_INTERFACE_DEFINED__
5018
5019/* interface ID3D12Resource */
5020/* [unique][local][object][uuid] */
5021
5022
5023EXTERN_C const IID IID_ID3D12Resource;
5024
5025#if defined(__cplusplus) && !defined(CINTERFACE)
5026
5027 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
5028 ID3D12Resource : public ID3D12Pageable
5029 {
5030 public:
5031 virtual HRESULT STDMETHODCALLTYPE Map(
5032 UINT Subresource,
5033 _In_opt_ const D3D12_RANGE *pReadRange,
5034 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
5035
5036 virtual void STDMETHODCALLTYPE Unmap(
5037 UINT Subresource,
5038 _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
5039
5040#if defined(_MSC_VER) || !defined(_WIN32)
5041 virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5042#else
5043 virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc(
5044 D3D12_RESOURCE_DESC * RetVal) = 0;
5045#endif
5046
5047 virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0;
5048
5049 virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
5050 UINT DstSubresource,
5051 _In_opt_ const D3D12_BOX *pDstBox,
5052 _In_ const void *pSrcData,
5053 UINT SrcRowPitch,
5054 UINT SrcDepthPitch) = 0;
5055
5056 virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
5057 _Out_ void *pDstData,
5058 UINT DstRowPitch,
5059 UINT DstDepthPitch,
5060 UINT SrcSubresource,
5061 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
5062
5063 virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
5064 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
5065 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0;
5066
5067 };
5068
5069
5070#else /* C style interface */
5071
5072 typedef struct ID3D12ResourceVtbl
5073 {
5074 BEGIN_INTERFACE
5075
5076 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5077 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5078 ID3D12Resource * This,
5079 REFIID riid,
5080 _COM_Outptr_ void **ppvObject);
5081
5082 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5083 ULONG ( STDMETHODCALLTYPE *AddRef )(
5084 ID3D12Resource * This);
5085
5086 DECLSPEC_XFGVIRT(IUnknown, Release)
5087 ULONG ( STDMETHODCALLTYPE *Release )(
5088 ID3D12Resource * This);
5089
5090 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5091 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5092 ID3D12Resource * This,
5093 _In_ REFGUID guid,
5094 _Inout_ UINT *pDataSize,
5095 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5096
5097 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5098 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5099 ID3D12Resource * This,
5100 _In_ REFGUID guid,
5101 _In_ UINT DataSize,
5102 _In_reads_bytes_opt_( DataSize ) const void *pData);
5103
5104 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5105 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5106 ID3D12Resource * This,
5107 _In_ REFGUID guid,
5108 _In_opt_ const IUnknown *pData);
5109
5110 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5111 HRESULT ( STDMETHODCALLTYPE *SetName )(
5112 ID3D12Resource * This,
5113 _In_z_ LPCWSTR Name);
5114
5115 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5116 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5117 ID3D12Resource * This,
5118 REFIID riid,
5119 _COM_Outptr_opt_ void **ppvDevice);
5120
5121 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
5122 HRESULT ( STDMETHODCALLTYPE *Map )(
5123 ID3D12Resource * This,
5124 UINT Subresource,
5125 _In_opt_ const D3D12_RANGE *pReadRange,
5126 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
5127
5128 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
5129 void ( STDMETHODCALLTYPE *Unmap )(
5130 ID3D12Resource * This,
5131 UINT Subresource,
5132 _In_opt_ const D3D12_RANGE *pWrittenRange);
5133
5134 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
5135#if !defined(_WIN32)
5136 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
5137 ID3D12Resource * This);
5138
5139#else
5140 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
5141 ID3D12Resource * This,
5142 D3D12_RESOURCE_DESC * RetVal);
5143
5144#endif
5145
5146 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
5147 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
5148 ID3D12Resource * This);
5149
5150 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
5151 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
5152 ID3D12Resource * This,
5153 UINT DstSubresource,
5154 _In_opt_ const D3D12_BOX *pDstBox,
5155 _In_ const void *pSrcData,
5156 UINT SrcRowPitch,
5157 UINT SrcDepthPitch);
5158
5159 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
5160 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
5161 ID3D12Resource * This,
5162 _Out_ void *pDstData,
5163 UINT DstRowPitch,
5164 UINT DstDepthPitch,
5165 UINT SrcSubresource,
5166 _In_opt_ const D3D12_BOX *pSrcBox);
5167
5168 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
5169 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
5170 ID3D12Resource * This,
5171 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
5172 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
5173
5174 END_INTERFACE
5175 } ID3D12ResourceVtbl;
5176
5177 interface ID3D12Resource
5178 {
5179 CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
5180 };
5181
5182
5183
5184#ifdef COBJMACROS
5185
5186
5187#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \
5188 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5189
5190#define ID3D12Resource_AddRef(This) \
5191 ( (This)->lpVtbl -> AddRef(This) )
5192
5193#define ID3D12Resource_Release(This) \
5194 ( (This)->lpVtbl -> Release(This) )
5195
5196
5197#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \
5198 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5199
5200#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \
5201 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5202
5203#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \
5204 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5205
5206#define ID3D12Resource_SetName(This,Name) \
5207 ( (This)->lpVtbl -> SetName(This,Name) )
5208
5209
5210#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \
5211 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5212
5213
5214
5215#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \
5216 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
5217
5218#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \
5219 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
5220#if !defined(_WIN32)
5221
5222#define ID3D12Resource_GetDesc(This) \
5223 ( (This)->lpVtbl -> GetDesc(This) )
5224#else
5225#define ID3D12Resource_GetDesc(This,RetVal) \
5226 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
5227#endif
5228
5229#define ID3D12Resource_GetGPUVirtualAddress(This) \
5230 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
5231
5232#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
5233 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
5234
5235#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
5236 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
5237
5238#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
5239 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
5240
5241#endif /* COBJMACROS */
5242
5243
5244#endif /* C style interface */
5245
5246
5247
5248
5249#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
5250
5251
5252#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
5253#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
5254
5255/* interface ID3D12CommandAllocator */
5256/* [unique][local][object][uuid] */
5257
5258
5259EXTERN_C const IID IID_ID3D12CommandAllocator;
5260
5261#if defined(__cplusplus) && !defined(CINTERFACE)
5262
5263 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
5264 ID3D12CommandAllocator : public ID3D12Pageable
5265 {
5266 public:
5267 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
5268
5269 };
5270
5271
5272#else /* C style interface */
5273
5274 typedef struct ID3D12CommandAllocatorVtbl
5275 {
5276 BEGIN_INTERFACE
5277
5278 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5279 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5280 ID3D12CommandAllocator * This,
5281 REFIID riid,
5282 _COM_Outptr_ void **ppvObject);
5283
5284 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5285 ULONG ( STDMETHODCALLTYPE *AddRef )(
5286 ID3D12CommandAllocator * This);
5287
5288 DECLSPEC_XFGVIRT(IUnknown, Release)
5289 ULONG ( STDMETHODCALLTYPE *Release )(
5290 ID3D12CommandAllocator * This);
5291
5292 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5293 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5294 ID3D12CommandAllocator * This,
5295 _In_ REFGUID guid,
5296 _Inout_ UINT *pDataSize,
5297 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5298
5299 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5300 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5301 ID3D12CommandAllocator * This,
5302 _In_ REFGUID guid,
5303 _In_ UINT DataSize,
5304 _In_reads_bytes_opt_( DataSize ) const void *pData);
5305
5306 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5307 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5308 ID3D12CommandAllocator * This,
5309 _In_ REFGUID guid,
5310 _In_opt_ const IUnknown *pData);
5311
5312 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5313 HRESULT ( STDMETHODCALLTYPE *SetName )(
5314 ID3D12CommandAllocator * This,
5315 _In_z_ LPCWSTR Name);
5316
5317 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5318 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5319 ID3D12CommandAllocator * This,
5320 REFIID riid,
5321 _COM_Outptr_opt_ void **ppvDevice);
5322
5323 DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset)
5324 HRESULT ( STDMETHODCALLTYPE *Reset )(
5325 ID3D12CommandAllocator * This);
5326
5327 END_INTERFACE
5328 } ID3D12CommandAllocatorVtbl;
5329
5330 interface ID3D12CommandAllocator
5331 {
5332 CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
5333 };
5334
5335
5336
5337#ifdef COBJMACROS
5338
5339
5340#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \
5341 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5342
5343#define ID3D12CommandAllocator_AddRef(This) \
5344 ( (This)->lpVtbl -> AddRef(This) )
5345
5346#define ID3D12CommandAllocator_Release(This) \
5347 ( (This)->lpVtbl -> Release(This) )
5348
5349
5350#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \
5351 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5352
5353#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \
5354 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5355
5356#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \
5357 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5358
5359#define ID3D12CommandAllocator_SetName(This,Name) \
5360 ( (This)->lpVtbl -> SetName(This,Name) )
5361
5362
5363#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \
5364 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5365
5366
5367
5368#define ID3D12CommandAllocator_Reset(This) \
5369 ( (This)->lpVtbl -> Reset(This) )
5370
5371#endif /* COBJMACROS */
5372
5373
5374#endif /* C style interface */
5375
5376
5377
5378
5379#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
5380
5381
5382#ifndef __ID3D12Fence_INTERFACE_DEFINED__
5383#define __ID3D12Fence_INTERFACE_DEFINED__
5384
5385/* interface ID3D12Fence */
5386/* [unique][local][object][uuid] */
5387
5388
5389EXTERN_C const IID IID_ID3D12Fence;
5390
5391#if defined(__cplusplus) && !defined(CINTERFACE)
5392
5393 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
5394 ID3D12Fence : public ID3D12Pageable
5395 {
5396 public:
5397 virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0;
5398
5399 virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
5400 UINT64 Value,
5401 HANDLE hEvent) = 0;
5402
5403 virtual HRESULT STDMETHODCALLTYPE Signal(
5404 UINT64 Value) = 0;
5405
5406 };
5407
5408
5409#else /* C style interface */
5410
5411 typedef struct ID3D12FenceVtbl
5412 {
5413 BEGIN_INTERFACE
5414
5415 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5416 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5417 ID3D12Fence * This,
5418 REFIID riid,
5419 _COM_Outptr_ void **ppvObject);
5420
5421 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5422 ULONG ( STDMETHODCALLTYPE *AddRef )(
5423 ID3D12Fence * This);
5424
5425 DECLSPEC_XFGVIRT(IUnknown, Release)
5426 ULONG ( STDMETHODCALLTYPE *Release )(
5427 ID3D12Fence * This);
5428
5429 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5430 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5431 ID3D12Fence * This,
5432 _In_ REFGUID guid,
5433 _Inout_ UINT *pDataSize,
5434 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5435
5436 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5437 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5438 ID3D12Fence * This,
5439 _In_ REFGUID guid,
5440 _In_ UINT DataSize,
5441 _In_reads_bytes_opt_( DataSize ) const void *pData);
5442
5443 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5444 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5445 ID3D12Fence * This,
5446 _In_ REFGUID guid,
5447 _In_opt_ const IUnknown *pData);
5448
5449 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5450 HRESULT ( STDMETHODCALLTYPE *SetName )(
5451 ID3D12Fence * This,
5452 _In_z_ LPCWSTR Name);
5453
5454 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5455 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5456 ID3D12Fence * This,
5457 REFIID riid,
5458 _COM_Outptr_opt_ void **ppvDevice);
5459
5460 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5461 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5462 ID3D12Fence * This);
5463
5464 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5465 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5466 ID3D12Fence * This,
5467 UINT64 Value,
5468 HANDLE hEvent);
5469
5470 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5471 HRESULT ( STDMETHODCALLTYPE *Signal )(
5472 ID3D12Fence * This,
5473 UINT64 Value);
5474
5475 END_INTERFACE
5476 } ID3D12FenceVtbl;
5477
5478 interface ID3D12Fence
5479 {
5480 CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
5481 };
5482
5483
5484
5485#ifdef COBJMACROS
5486
5487
5488#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \
5489 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5490
5491#define ID3D12Fence_AddRef(This) \
5492 ( (This)->lpVtbl -> AddRef(This) )
5493
5494#define ID3D12Fence_Release(This) \
5495 ( (This)->lpVtbl -> Release(This) )
5496
5497
5498#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \
5499 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5500
5501#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \
5502 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5503
5504#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \
5505 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5506
5507#define ID3D12Fence_SetName(This,Name) \
5508 ( (This)->lpVtbl -> SetName(This,Name) )
5509
5510
5511#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \
5512 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5513
5514
5515
5516#define ID3D12Fence_GetCompletedValue(This) \
5517 ( (This)->lpVtbl -> GetCompletedValue(This) )
5518
5519#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \
5520 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5521
5522#define ID3D12Fence_Signal(This,Value) \
5523 ( (This)->lpVtbl -> Signal(This,Value) )
5524
5525#endif /* COBJMACROS */
5526
5527
5528#endif /* C style interface */
5529
5530
5531
5532
5533#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
5534
5535
5536#ifndef __ID3D12Fence1_INTERFACE_DEFINED__
5537#define __ID3D12Fence1_INTERFACE_DEFINED__
5538
5539/* interface ID3D12Fence1 */
5540/* [unique][local][object][uuid] */
5541
5542
5543EXTERN_C const IID IID_ID3D12Fence1;
5544
5545#if defined(__cplusplus) && !defined(CINTERFACE)
5546
5547 MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a")
5548 ID3D12Fence1 : public ID3D12Fence
5549 {
5550 public:
5551 virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0;
5552
5553 };
5554
5555
5556#else /* C style interface */
5557
5558 typedef struct ID3D12Fence1Vtbl
5559 {
5560 BEGIN_INTERFACE
5561
5562 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5563 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5564 ID3D12Fence1 * This,
5565 REFIID riid,
5566 _COM_Outptr_ void **ppvObject);
5567
5568 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5569 ULONG ( STDMETHODCALLTYPE *AddRef )(
5570 ID3D12Fence1 * This);
5571
5572 DECLSPEC_XFGVIRT(IUnknown, Release)
5573 ULONG ( STDMETHODCALLTYPE *Release )(
5574 ID3D12Fence1 * This);
5575
5576 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5577 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5578 ID3D12Fence1 * This,
5579 _In_ REFGUID guid,
5580 _Inout_ UINT *pDataSize,
5581 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5582
5583 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5584 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5585 ID3D12Fence1 * This,
5586 _In_ REFGUID guid,
5587 _In_ UINT DataSize,
5588 _In_reads_bytes_opt_( DataSize ) const void *pData);
5589
5590 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5591 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5592 ID3D12Fence1 * This,
5593 _In_ REFGUID guid,
5594 _In_opt_ const IUnknown *pData);
5595
5596 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5597 HRESULT ( STDMETHODCALLTYPE *SetName )(
5598 ID3D12Fence1 * This,
5599 _In_z_ LPCWSTR Name);
5600
5601 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5602 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5603 ID3D12Fence1 * This,
5604 REFIID riid,
5605 _COM_Outptr_opt_ void **ppvDevice);
5606
5607 DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue)
5608 UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )(
5609 ID3D12Fence1 * This);
5610
5611 DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion)
5612 HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )(
5613 ID3D12Fence1 * This,
5614 UINT64 Value,
5615 HANDLE hEvent);
5616
5617 DECLSPEC_XFGVIRT(ID3D12Fence, Signal)
5618 HRESULT ( STDMETHODCALLTYPE *Signal )(
5619 ID3D12Fence1 * This,
5620 UINT64 Value);
5621
5622 DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags)
5623 D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )(
5624 ID3D12Fence1 * This);
5625
5626 END_INTERFACE
5627 } ID3D12Fence1Vtbl;
5628
5629 interface ID3D12Fence1
5630 {
5631 CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl;
5632 };
5633
5634
5635
5636#ifdef COBJMACROS
5637
5638
5639#define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \
5640 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5641
5642#define ID3D12Fence1_AddRef(This) \
5643 ( (This)->lpVtbl -> AddRef(This) )
5644
5645#define ID3D12Fence1_Release(This) \
5646 ( (This)->lpVtbl -> Release(This) )
5647
5648
5649#define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \
5650 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5651
5652#define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \
5653 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5654
5655#define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \
5656 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5657
5658#define ID3D12Fence1_SetName(This,Name) \
5659 ( (This)->lpVtbl -> SetName(This,Name) )
5660
5661
5662#define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \
5663 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5664
5665
5666
5667#define ID3D12Fence1_GetCompletedValue(This) \
5668 ( (This)->lpVtbl -> GetCompletedValue(This) )
5669
5670#define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \
5671 ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) )
5672
5673#define ID3D12Fence1_Signal(This,Value) \
5674 ( (This)->lpVtbl -> Signal(This,Value) )
5675
5676
5677#define ID3D12Fence1_GetCreationFlags(This) \
5678 ( (This)->lpVtbl -> GetCreationFlags(This) )
5679
5680#endif /* COBJMACROS */
5681
5682
5683#endif /* C style interface */
5684
5685
5686
5687
5688#endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */
5689
5690
5691#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5692#define __ID3D12PipelineState_INTERFACE_DEFINED__
5693
5694/* interface ID3D12PipelineState */
5695/* [unique][local][object][uuid] */
5696
5697
5698EXTERN_C const IID IID_ID3D12PipelineState;
5699
5700#if defined(__cplusplus) && !defined(CINTERFACE)
5701
5702 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5703 ID3D12PipelineState : public ID3D12Pageable
5704 {
5705 public:
5706 virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5707 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
5708
5709 };
5710
5711
5712#else /* C style interface */
5713
5714 typedef struct ID3D12PipelineStateVtbl
5715 {
5716 BEGIN_INTERFACE
5717
5718 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5719 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5720 ID3D12PipelineState * This,
5721 REFIID riid,
5722 _COM_Outptr_ void **ppvObject);
5723
5724 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5725 ULONG ( STDMETHODCALLTYPE *AddRef )(
5726 ID3D12PipelineState * This);
5727
5728 DECLSPEC_XFGVIRT(IUnknown, Release)
5729 ULONG ( STDMETHODCALLTYPE *Release )(
5730 ID3D12PipelineState * This);
5731
5732 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5733 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5734 ID3D12PipelineState * 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 ID3D12PipelineState * 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 ID3D12PipelineState * This,
5749 _In_ REFGUID guid,
5750 _In_opt_ const IUnknown *pData);
5751
5752 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5753 HRESULT ( STDMETHODCALLTYPE *SetName )(
5754 ID3D12PipelineState * This,
5755 _In_z_ LPCWSTR Name);
5756
5757 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5758 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5759 ID3D12PipelineState * This,
5760 REFIID riid,
5761 _COM_Outptr_opt_ void **ppvDevice);
5762
5763 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5764 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5765 ID3D12PipelineState * This,
5766 _COM_Outptr_ ID3DBlob **ppBlob);
5767
5768 END_INTERFACE
5769 } ID3D12PipelineStateVtbl;
5770
5771 interface ID3D12PipelineState
5772 {
5773 CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5774 };
5775
5776
5777
5778#ifdef COBJMACROS
5779
5780
5781#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \
5782 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5783
5784#define ID3D12PipelineState_AddRef(This) \
5785 ( (This)->lpVtbl -> AddRef(This) )
5786
5787#define ID3D12PipelineState_Release(This) \
5788 ( (This)->lpVtbl -> Release(This) )
5789
5790
5791#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \
5792 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5793
5794#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \
5795 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5796
5797#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \
5798 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5799
5800#define ID3D12PipelineState_SetName(This,Name) \
5801 ( (This)->lpVtbl -> SetName(This,Name) )
5802
5803
5804#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \
5805 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5806
5807
5808
5809#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \
5810 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5811
5812#endif /* COBJMACROS */
5813
5814
5815#endif /* C style interface */
5816
5817
5818
5819
5820#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5821
5822
5823#ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__
5824#define __ID3D12PipelineState1_INTERFACE_DEFINED__
5825
5826/* interface ID3D12PipelineState1 */
5827/* [unique][local][object][uuid] */
5828
5829
5830EXTERN_C const IID IID_ID3D12PipelineState1;
5831
5832#if defined(__cplusplus) && !defined(CINTERFACE)
5833
5834 MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb")
5835 ID3D12PipelineState1 : public ID3D12PipelineState
5836 {
5837 public:
5838 virtual HRESULT STDMETHODCALLTYPE GetRootSignature(
5839 REFIID riid,
5840 _COM_Outptr_ void **ppvRootSignature) = 0;
5841
5842 };
5843
5844
5845#else /* C style interface */
5846
5847 typedef struct ID3D12PipelineState1Vtbl
5848 {
5849 BEGIN_INTERFACE
5850
5851 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5852 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5853 ID3D12PipelineState1 * This,
5854 REFIID riid,
5855 _COM_Outptr_ void **ppvObject);
5856
5857 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5858 ULONG ( STDMETHODCALLTYPE *AddRef )(
5859 ID3D12PipelineState1 * This);
5860
5861 DECLSPEC_XFGVIRT(IUnknown, Release)
5862 ULONG ( STDMETHODCALLTYPE *Release )(
5863 ID3D12PipelineState1 * This);
5864
5865 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5866 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5867 ID3D12PipelineState1 * This,
5868 _In_ REFGUID guid,
5869 _Inout_ UINT *pDataSize,
5870 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5871
5872 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5873 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5874 ID3D12PipelineState1 * This,
5875 _In_ REFGUID guid,
5876 _In_ UINT DataSize,
5877 _In_reads_bytes_opt_( DataSize ) const void *pData);
5878
5879 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5880 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5881 ID3D12PipelineState1 * This,
5882 _In_ REFGUID guid,
5883 _In_opt_ const IUnknown *pData);
5884
5885 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5886 HRESULT ( STDMETHODCALLTYPE *SetName )(
5887 ID3D12PipelineState1 * This,
5888 _In_z_ LPCWSTR Name);
5889
5890 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5891 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5892 ID3D12PipelineState1 * This,
5893 REFIID riid,
5894 _COM_Outptr_opt_ void **ppvDevice);
5895
5896 DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob)
5897 HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )(
5898 ID3D12PipelineState1 * This,
5899 _COM_Outptr_ ID3DBlob **ppBlob);
5900
5901 DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature)
5902 HRESULT ( STDMETHODCALLTYPE *GetRootSignature )(
5903 ID3D12PipelineState1 * This,
5904 REFIID riid,
5905 _COM_Outptr_ void **ppvRootSignature);
5906
5907 END_INTERFACE
5908 } ID3D12PipelineState1Vtbl;
5909
5910 interface ID3D12PipelineState1
5911 {
5912 CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl;
5913 };
5914
5915
5916
5917#ifdef COBJMACROS
5918
5919
5920#define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \
5921 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5922
5923#define ID3D12PipelineState1_AddRef(This) \
5924 ( (This)->lpVtbl -> AddRef(This) )
5925
5926#define ID3D12PipelineState1_Release(This) \
5927 ( (This)->lpVtbl -> Release(This) )
5928
5929
5930#define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \
5931 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5932
5933#define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \
5934 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5935
5936#define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \
5937 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5938
5939#define ID3D12PipelineState1_SetName(This,Name) \
5940 ( (This)->lpVtbl -> SetName(This,Name) )
5941
5942
5943#define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \
5944 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5945
5946
5947
5948#define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \
5949 ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) )
5950
5951
5952#define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \
5953 ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) )
5954
5955#endif /* COBJMACROS */
5956
5957
5958#endif /* C style interface */
5959
5960
5961
5962
5963#endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */
5964
5965
5966#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5967#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5968
5969/* interface ID3D12DescriptorHeap */
5970/* [unique][local][object][uuid] */
5971
5972
5973EXTERN_C const IID IID_ID3D12DescriptorHeap;
5974
5975#if defined(__cplusplus) && !defined(CINTERFACE)
5976
5977 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5978 ID3D12DescriptorHeap : public ID3D12Pageable
5979 {
5980 public:
5981#if defined(_MSC_VER) || !defined(_WIN32)
5982 virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
5983#else
5984 virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
5985 D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0;
5986#endif
5987
5988#if defined(_MSC_VER) || !defined(_WIN32)
5989 virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0;
5990#else
5991 virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
5992 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0;
5993#endif
5994
5995#if defined(_MSC_VER) || !defined(_WIN32)
5996 virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0;
5997#else
5998 virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
5999 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0;
6000#endif
6001
6002 };
6003
6004
6005#else /* C style interface */
6006
6007 typedef struct ID3D12DescriptorHeapVtbl
6008 {
6009 BEGIN_INTERFACE
6010
6011 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6012 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6013 ID3D12DescriptorHeap * This,
6014 REFIID riid,
6015 _COM_Outptr_ void **ppvObject);
6016
6017 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6018 ULONG ( STDMETHODCALLTYPE *AddRef )(
6019 ID3D12DescriptorHeap * This);
6020
6021 DECLSPEC_XFGVIRT(IUnknown, Release)
6022 ULONG ( STDMETHODCALLTYPE *Release )(
6023 ID3D12DescriptorHeap * This);
6024
6025 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6026 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6027 ID3D12DescriptorHeap * This,
6028 _In_ REFGUID guid,
6029 _Inout_ UINT *pDataSize,
6030 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6031
6032 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6033 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6034 ID3D12DescriptorHeap * This,
6035 _In_ REFGUID guid,
6036 _In_ UINT DataSize,
6037 _In_reads_bytes_opt_( DataSize ) const void *pData);
6038
6039 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6040 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6041 ID3D12DescriptorHeap * This,
6042 _In_ REFGUID guid,
6043 _In_opt_ const IUnknown *pData);
6044
6045 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6046 HRESULT ( STDMETHODCALLTYPE *SetName )(
6047 ID3D12DescriptorHeap * This,
6048 _In_z_ LPCWSTR Name);
6049
6050 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6051 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6052 ID3D12DescriptorHeap * This,
6053 REFIID riid,
6054 _COM_Outptr_opt_ void **ppvDevice);
6055
6056 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc)
6057#if !defined(_WIN32)
6058 D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
6059 ID3D12DescriptorHeap * This);
6060
6061#else
6062 D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
6063 ID3D12DescriptorHeap * This,
6064 D3D12_DESCRIPTOR_HEAP_DESC * RetVal);
6065
6066#endif
6067
6068 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart)
6069#if !defined(_WIN32)
6070 D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
6071 ID3D12DescriptorHeap * This);
6072
6073#else
6074 D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )(
6075 ID3D12DescriptorHeap * This,
6076 D3D12_CPU_DESCRIPTOR_HANDLE * RetVal);
6077
6078#endif
6079
6080 DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart)
6081#if !defined(_WIN32)
6082 D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
6083 ID3D12DescriptorHeap * This);
6084
6085#else
6086 D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )(
6087 ID3D12DescriptorHeap * This,
6088 D3D12_GPU_DESCRIPTOR_HANDLE * RetVal);
6089
6090#endif
6091
6092 END_INTERFACE
6093 } ID3D12DescriptorHeapVtbl;
6094
6095 interface ID3D12DescriptorHeap
6096 {
6097 CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
6098 };
6099
6100
6101
6102#ifdef COBJMACROS
6103
6104
6105#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \
6106 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6107
6108#define ID3D12DescriptorHeap_AddRef(This) \
6109 ( (This)->lpVtbl -> AddRef(This) )
6110
6111#define ID3D12DescriptorHeap_Release(This) \
6112 ( (This)->lpVtbl -> Release(This) )
6113
6114
6115#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \
6116 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6117
6118#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \
6119 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6120
6121#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \
6122 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6123
6124#define ID3D12DescriptorHeap_SetName(This,Name) \
6125 ( (This)->lpVtbl -> SetName(This,Name) )
6126
6127
6128#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \
6129 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6130
6131
6132#if !defined(_WIN32)
6133
6134#define ID3D12DescriptorHeap_GetDesc(This) \
6135 ( (This)->lpVtbl -> GetDesc(This) )
6136#else
6137#define ID3D12DescriptorHeap_GetDesc(This,RetVal) \
6138 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
6139#endif
6140#if !defined(_WIN32)
6141
6142#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
6143 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) )
6144#else
6145#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \
6146 ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) )
6147#endif
6148#if !defined(_WIN32)
6149
6150#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
6151 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) )
6152#else
6153#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \
6154 ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) )
6155#endif
6156
6157#endif /* COBJMACROS */
6158
6159
6160#endif /* C style interface */
6161
6162
6163
6164
6165#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
6166
6167
6168#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
6169#define __ID3D12QueryHeap_INTERFACE_DEFINED__
6170
6171/* interface ID3D12QueryHeap */
6172/* [unique][local][object][uuid] */
6173
6174
6175EXTERN_C const IID IID_ID3D12QueryHeap;
6176
6177#if defined(__cplusplus) && !defined(CINTERFACE)
6178
6179 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
6180 ID3D12QueryHeap : public ID3D12Pageable
6181 {
6182 public:
6183 };
6184
6185
6186#else /* C style interface */
6187
6188 typedef struct ID3D12QueryHeapVtbl
6189 {
6190 BEGIN_INTERFACE
6191
6192 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6193 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6194 ID3D12QueryHeap * This,
6195 REFIID riid,
6196 _COM_Outptr_ void **ppvObject);
6197
6198 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6199 ULONG ( STDMETHODCALLTYPE *AddRef )(
6200 ID3D12QueryHeap * This);
6201
6202 DECLSPEC_XFGVIRT(IUnknown, Release)
6203 ULONG ( STDMETHODCALLTYPE *Release )(
6204 ID3D12QueryHeap * This);
6205
6206 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6207 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6208 ID3D12QueryHeap * This,
6209 _In_ REFGUID guid,
6210 _Inout_ UINT *pDataSize,
6211 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6212
6213 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6214 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6215 ID3D12QueryHeap * This,
6216 _In_ REFGUID guid,
6217 _In_ UINT DataSize,
6218 _In_reads_bytes_opt_( DataSize ) const void *pData);
6219
6220 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6221 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6222 ID3D12QueryHeap * This,
6223 _In_ REFGUID guid,
6224 _In_opt_ const IUnknown *pData);
6225
6226 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6227 HRESULT ( STDMETHODCALLTYPE *SetName )(
6228 ID3D12QueryHeap * This,
6229 _In_z_ LPCWSTR Name);
6230
6231 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6232 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6233 ID3D12QueryHeap * This,
6234 REFIID riid,
6235 _COM_Outptr_opt_ void **ppvDevice);
6236
6237 END_INTERFACE
6238 } ID3D12QueryHeapVtbl;
6239
6240 interface ID3D12QueryHeap
6241 {
6242 CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
6243 };
6244
6245
6246
6247#ifdef COBJMACROS
6248
6249
6250#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \
6251 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6252
6253#define ID3D12QueryHeap_AddRef(This) \
6254 ( (This)->lpVtbl -> AddRef(This) )
6255
6256#define ID3D12QueryHeap_Release(This) \
6257 ( (This)->lpVtbl -> Release(This) )
6258
6259
6260#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \
6261 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6262
6263#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \
6264 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6265
6266#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \
6267 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6268
6269#define ID3D12QueryHeap_SetName(This,Name) \
6270 ( (This)->lpVtbl -> SetName(This,Name) )
6271
6272
6273#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \
6274 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6275
6276
6277
6278#endif /* COBJMACROS */
6279
6280
6281#endif /* C style interface */
6282
6283
6284
6285
6286#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
6287
6288
6289#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
6290#define __ID3D12CommandSignature_INTERFACE_DEFINED__
6291
6292/* interface ID3D12CommandSignature */
6293/* [unique][local][object][uuid] */
6294
6295
6296EXTERN_C const IID IID_ID3D12CommandSignature;
6297
6298#if defined(__cplusplus) && !defined(CINTERFACE)
6299
6300 MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
6301 ID3D12CommandSignature : public ID3D12Pageable
6302 {
6303 public:
6304 };
6305
6306
6307#else /* C style interface */
6308
6309 typedef struct ID3D12CommandSignatureVtbl
6310 {
6311 BEGIN_INTERFACE
6312
6313 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6314 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6315 ID3D12CommandSignature * This,
6316 REFIID riid,
6317 _COM_Outptr_ void **ppvObject);
6318
6319 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6320 ULONG ( STDMETHODCALLTYPE *AddRef )(
6321 ID3D12CommandSignature * This);
6322
6323 DECLSPEC_XFGVIRT(IUnknown, Release)
6324 ULONG ( STDMETHODCALLTYPE *Release )(
6325 ID3D12CommandSignature * This);
6326
6327 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6328 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6329 ID3D12CommandSignature * This,
6330 _In_ REFGUID guid,
6331 _Inout_ UINT *pDataSize,
6332 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6333
6334 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6335 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6336 ID3D12CommandSignature * This,
6337 _In_ REFGUID guid,
6338 _In_ UINT DataSize,
6339 _In_reads_bytes_opt_( DataSize ) const void *pData);
6340
6341 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6342 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6343 ID3D12CommandSignature * This,
6344 _In_ REFGUID guid,
6345 _In_opt_ const IUnknown *pData);
6346
6347 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6348 HRESULT ( STDMETHODCALLTYPE *SetName )(
6349 ID3D12CommandSignature * This,
6350 _In_z_ LPCWSTR Name);
6351
6352 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6353 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6354 ID3D12CommandSignature * This,
6355 REFIID riid,
6356 _COM_Outptr_opt_ void **ppvDevice);
6357
6358 END_INTERFACE
6359 } ID3D12CommandSignatureVtbl;
6360
6361 interface ID3D12CommandSignature
6362 {
6363 CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl;
6364 };
6365
6366
6367
6368#ifdef COBJMACROS
6369
6370
6371#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \
6372 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6373
6374#define ID3D12CommandSignature_AddRef(This) \
6375 ( (This)->lpVtbl -> AddRef(This) )
6376
6377#define ID3D12CommandSignature_Release(This) \
6378 ( (This)->lpVtbl -> Release(This) )
6379
6380
6381#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \
6382 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6383
6384#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \
6385 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6386
6387#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \
6388 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6389
6390#define ID3D12CommandSignature_SetName(This,Name) \
6391 ( (This)->lpVtbl -> SetName(This,Name) )
6392
6393
6394#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \
6395 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6396
6397
6398
6399#endif /* COBJMACROS */
6400
6401
6402#endif /* C style interface */
6403
6404
6405
6406
6407#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
6408
6409
6410#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
6411#define __ID3D12CommandList_INTERFACE_DEFINED__
6412
6413/* interface ID3D12CommandList */
6414/* [unique][local][object][uuid] */
6415
6416
6417EXTERN_C const IID IID_ID3D12CommandList;
6418
6419#if defined(__cplusplus) && !defined(CINTERFACE)
6420
6421 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
6422 ID3D12CommandList : public ID3D12DeviceChild
6423 {
6424 public:
6425 virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0;
6426
6427 };
6428
6429
6430#else /* C style interface */
6431
6432 typedef struct ID3D12CommandListVtbl
6433 {
6434 BEGIN_INTERFACE
6435
6436 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6437 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6438 ID3D12CommandList * This,
6439 REFIID riid,
6440 _COM_Outptr_ void **ppvObject);
6441
6442 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6443 ULONG ( STDMETHODCALLTYPE *AddRef )(
6444 ID3D12CommandList * This);
6445
6446 DECLSPEC_XFGVIRT(IUnknown, Release)
6447 ULONG ( STDMETHODCALLTYPE *Release )(
6448 ID3D12CommandList * This);
6449
6450 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6451 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6452 ID3D12CommandList * This,
6453 _In_ REFGUID guid,
6454 _Inout_ UINT *pDataSize,
6455 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6456
6457 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6458 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6459 ID3D12CommandList * This,
6460 _In_ REFGUID guid,
6461 _In_ UINT DataSize,
6462 _In_reads_bytes_opt_( DataSize ) const void *pData);
6463
6464 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6465 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6466 ID3D12CommandList * This,
6467 _In_ REFGUID guid,
6468 _In_opt_ const IUnknown *pData);
6469
6470 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6471 HRESULT ( STDMETHODCALLTYPE *SetName )(
6472 ID3D12CommandList * This,
6473 _In_z_ LPCWSTR Name);
6474
6475 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6476 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6477 ID3D12CommandList * This,
6478 REFIID riid,
6479 _COM_Outptr_opt_ void **ppvDevice);
6480
6481 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6482 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6483 ID3D12CommandList * This);
6484
6485 END_INTERFACE
6486 } ID3D12CommandListVtbl;
6487
6488 interface ID3D12CommandList
6489 {
6490 CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
6491 };
6492
6493
6494
6495#ifdef COBJMACROS
6496
6497
6498#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \
6499 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6500
6501#define ID3D12CommandList_AddRef(This) \
6502 ( (This)->lpVtbl -> AddRef(This) )
6503
6504#define ID3D12CommandList_Release(This) \
6505 ( (This)->lpVtbl -> Release(This) )
6506
6507
6508#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \
6509 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6510
6511#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \
6512 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6513
6514#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \
6515 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6516
6517#define ID3D12CommandList_SetName(This,Name) \
6518 ( (This)->lpVtbl -> SetName(This,Name) )
6519
6520
6521#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \
6522 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6523
6524
6525#define ID3D12CommandList_GetType(This) \
6526 ( (This)->lpVtbl -> GetType(This) )
6527
6528#endif /* COBJMACROS */
6529
6530
6531#endif /* C style interface */
6532
6533
6534
6535
6536#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
6537
6538
6539#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6540#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
6541
6542/* interface ID3D12GraphicsCommandList */
6543/* [unique][local][object][uuid] */
6544
6545
6546EXTERN_C const IID IID_ID3D12GraphicsCommandList;
6547
6548#if defined(__cplusplus) && !defined(CINTERFACE)
6549
6550 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
6551 ID3D12GraphicsCommandList : public ID3D12CommandList
6552 {
6553 public:
6554 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
6555
6556 virtual HRESULT STDMETHODCALLTYPE Reset(
6557 _In_ ID3D12CommandAllocator *pAllocator,
6558 _In_opt_ ID3D12PipelineState *pInitialState) = 0;
6559
6560 virtual void STDMETHODCALLTYPE ClearState(
6561 _In_opt_ ID3D12PipelineState *pPipelineState) = 0;
6562
6563 virtual void STDMETHODCALLTYPE DrawInstanced(
6564 _In_ UINT VertexCountPerInstance,
6565 _In_ UINT InstanceCount,
6566 _In_ UINT StartVertexLocation,
6567 _In_ UINT StartInstanceLocation) = 0;
6568
6569 virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
6570 _In_ UINT IndexCountPerInstance,
6571 _In_ UINT InstanceCount,
6572 _In_ UINT StartIndexLocation,
6573 _In_ INT BaseVertexLocation,
6574 _In_ UINT StartInstanceLocation) = 0;
6575
6576 virtual void STDMETHODCALLTYPE Dispatch(
6577 _In_ UINT ThreadGroupCountX,
6578 _In_ UINT ThreadGroupCountY,
6579 _In_ UINT ThreadGroupCountZ) = 0;
6580
6581 virtual void STDMETHODCALLTYPE CopyBufferRegion(
6582 _In_ ID3D12Resource *pDstBuffer,
6583 UINT64 DstOffset,
6584 _In_ ID3D12Resource *pSrcBuffer,
6585 UINT64 SrcOffset,
6586 UINT64 NumBytes) = 0;
6587
6588 virtual void STDMETHODCALLTYPE CopyTextureRegion(
6589 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6590 UINT DstX,
6591 UINT DstY,
6592 UINT DstZ,
6593 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6594 _In_opt_ const D3D12_BOX *pSrcBox) = 0;
6595
6596 virtual void STDMETHODCALLTYPE CopyResource(
6597 _In_ ID3D12Resource *pDstResource,
6598 _In_ ID3D12Resource *pSrcResource) = 0;
6599
6600 virtual void STDMETHODCALLTYPE CopyTiles(
6601 _In_ ID3D12Resource *pTiledResource,
6602 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6603 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6604 _In_ ID3D12Resource *pBuffer,
6605 UINT64 BufferStartOffsetInBytes,
6606 D3D12_TILE_COPY_FLAGS Flags) = 0;
6607
6608 virtual void STDMETHODCALLTYPE ResolveSubresource(
6609 _In_ ID3D12Resource *pDstResource,
6610 _In_ UINT DstSubresource,
6611 _In_ ID3D12Resource *pSrcResource,
6612 _In_ UINT SrcSubresource,
6613 _In_ DXGI_FORMAT Format) = 0;
6614
6615 virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
6616 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
6617
6618 virtual void STDMETHODCALLTYPE RSSetViewports(
6619 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6620 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
6621
6622 virtual void STDMETHODCALLTYPE RSSetScissorRects(
6623 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6624 _In_reads_( NumRects) const D3D12_RECT *pRects) = 0;
6625
6626 virtual void STDMETHODCALLTYPE OMSetBlendFactor(
6627 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0;
6628
6629 virtual void STDMETHODCALLTYPE OMSetStencilRef(
6630 _In_ UINT StencilRef) = 0;
6631
6632 virtual void STDMETHODCALLTYPE SetPipelineState(
6633 _In_ ID3D12PipelineState *pPipelineState) = 0;
6634
6635 virtual void STDMETHODCALLTYPE ResourceBarrier(
6636 _In_ UINT NumBarriers,
6637 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
6638
6639 virtual void STDMETHODCALLTYPE ExecuteBundle(
6640 _In_ ID3D12GraphicsCommandList *pCommandList) = 0;
6641
6642 virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
6643 _In_ UINT NumDescriptorHeaps,
6644 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
6645
6646 virtual void STDMETHODCALLTYPE SetComputeRootSignature(
6647 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6648
6649 virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
6650 _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
6651
6652 virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
6653 _In_ UINT RootParameterIndex,
6654 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6655
6656 virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
6657 _In_ UINT RootParameterIndex,
6658 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
6659
6660 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
6661 _In_ UINT RootParameterIndex,
6662 _In_ UINT SrcData,
6663 _In_ UINT DestOffsetIn32BitValues) = 0;
6664
6665 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
6666 _In_ UINT RootParameterIndex,
6667 _In_ UINT SrcData,
6668 _In_ UINT DestOffsetIn32BitValues) = 0;
6669
6670 virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
6671 _In_ UINT RootParameterIndex,
6672 _In_ UINT Num32BitValuesToSet,
6673 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6674 _In_ UINT DestOffsetIn32BitValues) = 0;
6675
6676 virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
6677 _In_ UINT RootParameterIndex,
6678 _In_ UINT Num32BitValuesToSet,
6679 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
6680 _In_ UINT DestOffsetIn32BitValues) = 0;
6681
6682 virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
6683 _In_ UINT RootParameterIndex,
6684 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6685
6686 virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
6687 _In_ UINT RootParameterIndex,
6688 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6689
6690 virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
6691 _In_ UINT RootParameterIndex,
6692 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6693
6694 virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
6695 _In_ UINT RootParameterIndex,
6696 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6697
6698 virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
6699 _In_ UINT RootParameterIndex,
6700 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6701
6702 virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
6703 _In_ UINT RootParameterIndex,
6704 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
6705
6706 virtual void STDMETHODCALLTYPE IASetIndexBuffer(
6707 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
6708
6709 virtual void STDMETHODCALLTYPE IASetVertexBuffers(
6710 _In_ UINT StartSlot,
6711 _In_ UINT NumViews,
6712 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
6713
6714 virtual void STDMETHODCALLTYPE SOSetTargets(
6715 _In_ UINT StartSlot,
6716 _In_ UINT NumViews,
6717 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
6718
6719 virtual void STDMETHODCALLTYPE OMSetRenderTargets(
6720 _In_ UINT NumRenderTargetDescriptors,
6721 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
6722 _In_ BOOL RTsSingleHandleToDescriptorRange,
6723 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
6724
6725 virtual void STDMETHODCALLTYPE ClearDepthStencilView(
6726 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
6727 _In_ D3D12_CLEAR_FLAGS ClearFlags,
6728 _In_ FLOAT Depth,
6729 _In_ UINT8 Stencil,
6730 _In_ UINT NumRects,
6731 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6732
6733 virtual void STDMETHODCALLTYPE ClearRenderTargetView(
6734 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
6735 _In_ const FLOAT ColorRGBA[ 4 ],
6736 _In_ UINT NumRects,
6737 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6738
6739 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
6740 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6741 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6742 _In_ ID3D12Resource *pResource,
6743 _In_ const UINT Values[ 4 ],
6744 _In_ UINT NumRects,
6745 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6746
6747 virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
6748 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
6749 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
6750 _In_ ID3D12Resource *pResource,
6751 _In_ const FLOAT Values[ 4 ],
6752 _In_ UINT NumRects,
6753 _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
6754
6755 virtual void STDMETHODCALLTYPE DiscardResource(
6756 _In_ ID3D12Resource *pResource,
6757 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
6758
6759 virtual void STDMETHODCALLTYPE BeginQuery(
6760 _In_ ID3D12QueryHeap *pQueryHeap,
6761 _In_ D3D12_QUERY_TYPE Type,
6762 _In_ UINT Index) = 0;
6763
6764 virtual void STDMETHODCALLTYPE EndQuery(
6765 _In_ ID3D12QueryHeap *pQueryHeap,
6766 _In_ D3D12_QUERY_TYPE Type,
6767 _In_ UINT Index) = 0;
6768
6769 virtual void STDMETHODCALLTYPE ResolveQueryData(
6770 _In_ ID3D12QueryHeap *pQueryHeap,
6771 _In_ D3D12_QUERY_TYPE Type,
6772 _In_ UINT StartIndex,
6773 _In_ UINT NumQueries,
6774 _In_ ID3D12Resource *pDestinationBuffer,
6775 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
6776
6777 virtual void STDMETHODCALLTYPE SetPredication(
6778 _In_opt_ ID3D12Resource *pBuffer,
6779 _In_ UINT64 AlignedBufferOffset,
6780 _In_ D3D12_PREDICATION_OP Operation) = 0;
6781
6782 virtual void STDMETHODCALLTYPE SetMarker(
6783 UINT Metadata,
6784 _In_reads_bytes_opt_(Size) const void *pData,
6785 UINT Size) = 0;
6786
6787 virtual void STDMETHODCALLTYPE BeginEvent(
6788 UINT Metadata,
6789 _In_reads_bytes_opt_(Size) const void *pData,
6790 UINT Size) = 0;
6791
6792 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
6793
6794 virtual void STDMETHODCALLTYPE ExecuteIndirect(
6795 _In_ ID3D12CommandSignature *pCommandSignature,
6796 _In_ UINT MaxCommandCount,
6797 _In_ ID3D12Resource *pArgumentBuffer,
6798 _In_ UINT64 ArgumentBufferOffset,
6799 _In_opt_ ID3D12Resource *pCountBuffer,
6800 _In_ UINT64 CountBufferOffset) = 0;
6801
6802 };
6803
6804
6805#else /* C style interface */
6806
6807 typedef struct ID3D12GraphicsCommandListVtbl
6808 {
6809 BEGIN_INTERFACE
6810
6811 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6812 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6813 ID3D12GraphicsCommandList * This,
6814 REFIID riid,
6815 _COM_Outptr_ void **ppvObject);
6816
6817 DECLSPEC_XFGVIRT(IUnknown, AddRef)
6818 ULONG ( STDMETHODCALLTYPE *AddRef )(
6819 ID3D12GraphicsCommandList * This);
6820
6821 DECLSPEC_XFGVIRT(IUnknown, Release)
6822 ULONG ( STDMETHODCALLTYPE *Release )(
6823 ID3D12GraphicsCommandList * This);
6824
6825 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6826 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6827 ID3D12GraphicsCommandList * This,
6828 _In_ REFGUID guid,
6829 _Inout_ UINT *pDataSize,
6830 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
6831
6832 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6833 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6834 ID3D12GraphicsCommandList * This,
6835 _In_ REFGUID guid,
6836 _In_ UINT DataSize,
6837 _In_reads_bytes_opt_( DataSize ) const void *pData);
6838
6839 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6840 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6841 ID3D12GraphicsCommandList * This,
6842 _In_ REFGUID guid,
6843 _In_opt_ const IUnknown *pData);
6844
6845 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6846 HRESULT ( STDMETHODCALLTYPE *SetName )(
6847 ID3D12GraphicsCommandList * This,
6848 _In_z_ LPCWSTR Name);
6849
6850 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6851 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6852 ID3D12GraphicsCommandList * This,
6853 REFIID riid,
6854 _COM_Outptr_opt_ void **ppvDevice);
6855
6856 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6857 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6858 ID3D12GraphicsCommandList * This);
6859
6860 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
6861 HRESULT ( STDMETHODCALLTYPE *Close )(
6862 ID3D12GraphicsCommandList * This);
6863
6864 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
6865 HRESULT ( STDMETHODCALLTYPE *Reset )(
6866 ID3D12GraphicsCommandList * This,
6867 _In_ ID3D12CommandAllocator *pAllocator,
6868 _In_opt_ ID3D12PipelineState *pInitialState);
6869
6870 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
6871 void ( STDMETHODCALLTYPE *ClearState )(
6872 ID3D12GraphicsCommandList * This,
6873 _In_opt_ ID3D12PipelineState *pPipelineState);
6874
6875 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
6876 void ( STDMETHODCALLTYPE *DrawInstanced )(
6877 ID3D12GraphicsCommandList * This,
6878 _In_ UINT VertexCountPerInstance,
6879 _In_ UINT InstanceCount,
6880 _In_ UINT StartVertexLocation,
6881 _In_ UINT StartInstanceLocation);
6882
6883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
6884 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
6885 ID3D12GraphicsCommandList * This,
6886 _In_ UINT IndexCountPerInstance,
6887 _In_ UINT InstanceCount,
6888 _In_ UINT StartIndexLocation,
6889 _In_ INT BaseVertexLocation,
6890 _In_ UINT StartInstanceLocation);
6891
6892 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
6893 void ( STDMETHODCALLTYPE *Dispatch )(
6894 ID3D12GraphicsCommandList * This,
6895 _In_ UINT ThreadGroupCountX,
6896 _In_ UINT ThreadGroupCountY,
6897 _In_ UINT ThreadGroupCountZ);
6898
6899 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
6900 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
6901 ID3D12GraphicsCommandList * This,
6902 _In_ ID3D12Resource *pDstBuffer,
6903 UINT64 DstOffset,
6904 _In_ ID3D12Resource *pSrcBuffer,
6905 UINT64 SrcOffset,
6906 UINT64 NumBytes);
6907
6908 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
6909 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
6910 ID3D12GraphicsCommandList * This,
6911 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
6912 UINT DstX,
6913 UINT DstY,
6914 UINT DstZ,
6915 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
6916 _In_opt_ const D3D12_BOX *pSrcBox);
6917
6918 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
6919 void ( STDMETHODCALLTYPE *CopyResource )(
6920 ID3D12GraphicsCommandList * This,
6921 _In_ ID3D12Resource *pDstResource,
6922 _In_ ID3D12Resource *pSrcResource);
6923
6924 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
6925 void ( STDMETHODCALLTYPE *CopyTiles )(
6926 ID3D12GraphicsCommandList * This,
6927 _In_ ID3D12Resource *pTiledResource,
6928 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
6929 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
6930 _In_ ID3D12Resource *pBuffer,
6931 UINT64 BufferStartOffsetInBytes,
6932 D3D12_TILE_COPY_FLAGS Flags);
6933
6934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
6935 void ( STDMETHODCALLTYPE *ResolveSubresource )(
6936 ID3D12GraphicsCommandList * This,
6937 _In_ ID3D12Resource *pDstResource,
6938 _In_ UINT DstSubresource,
6939 _In_ ID3D12Resource *pSrcResource,
6940 _In_ UINT SrcSubresource,
6941 _In_ DXGI_FORMAT Format);
6942
6943 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
6944 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
6945 ID3D12GraphicsCommandList * This,
6946 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
6947
6948 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
6949 void ( STDMETHODCALLTYPE *RSSetViewports )(
6950 ID3D12GraphicsCommandList * This,
6951 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
6952 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
6953
6954 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
6955 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
6956 ID3D12GraphicsCommandList * This,
6957 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
6958 _In_reads_( NumRects) const D3D12_RECT *pRects);
6959
6960 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
6961 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
6962 ID3D12GraphicsCommandList * This,
6963 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
6964
6965 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
6966 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
6967 ID3D12GraphicsCommandList * This,
6968 _In_ UINT StencilRef);
6969
6970 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
6971 void ( STDMETHODCALLTYPE *SetPipelineState )(
6972 ID3D12GraphicsCommandList * This,
6973 _In_ ID3D12PipelineState *pPipelineState);
6974
6975 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
6976 void ( STDMETHODCALLTYPE *ResourceBarrier )(
6977 ID3D12GraphicsCommandList * This,
6978 _In_ UINT NumBarriers,
6979 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6980
6981 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
6982 void ( STDMETHODCALLTYPE *ExecuteBundle )(
6983 ID3D12GraphicsCommandList * This,
6984 _In_ ID3D12GraphicsCommandList *pCommandList);
6985
6986 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
6987 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
6988 ID3D12GraphicsCommandList * This,
6989 _In_ UINT NumDescriptorHeaps,
6990 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
6991
6992 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
6993 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
6994 ID3D12GraphicsCommandList * This,
6995 _In_opt_ ID3D12RootSignature *pRootSignature);
6996
6997 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
6998 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
6999 ID3D12GraphicsCommandList * This,
7000 _In_opt_ ID3D12RootSignature *pRootSignature);
7001
7002 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7003 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7004 ID3D12GraphicsCommandList * This,
7005 _In_ UINT RootParameterIndex,
7006 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7007
7008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7009 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7010 ID3D12GraphicsCommandList * This,
7011 _In_ UINT RootParameterIndex,
7012 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7013
7014 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7015 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7016 ID3D12GraphicsCommandList * This,
7017 _In_ UINT RootParameterIndex,
7018 _In_ UINT SrcData,
7019 _In_ UINT DestOffsetIn32BitValues);
7020
7021 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7022 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7023 ID3D12GraphicsCommandList * This,
7024 _In_ UINT RootParameterIndex,
7025 _In_ UINT SrcData,
7026 _In_ UINT DestOffsetIn32BitValues);
7027
7028 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7029 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7030 ID3D12GraphicsCommandList * This,
7031 _In_ UINT RootParameterIndex,
7032 _In_ UINT Num32BitValuesToSet,
7033 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7034 _In_ UINT DestOffsetIn32BitValues);
7035
7036 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7037 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7038 ID3D12GraphicsCommandList * This,
7039 _In_ UINT RootParameterIndex,
7040 _In_ UINT Num32BitValuesToSet,
7041 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7042 _In_ UINT DestOffsetIn32BitValues);
7043
7044 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7045 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7046 ID3D12GraphicsCommandList * This,
7047 _In_ UINT RootParameterIndex,
7048 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7049
7050 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7051 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7052 ID3D12GraphicsCommandList * This,
7053 _In_ UINT RootParameterIndex,
7054 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7055
7056 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7057 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7058 ID3D12GraphicsCommandList * This,
7059 _In_ UINT RootParameterIndex,
7060 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7061
7062 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7063 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7064 ID3D12GraphicsCommandList * This,
7065 _In_ UINT RootParameterIndex,
7066 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7067
7068 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7069 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7070 ID3D12GraphicsCommandList * This,
7071 _In_ UINT RootParameterIndex,
7072 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7073
7074 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7075 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7076 ID3D12GraphicsCommandList * This,
7077 _In_ UINT RootParameterIndex,
7078 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7079
7080 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7081 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7082 ID3D12GraphicsCommandList * This,
7083 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7084
7085 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7086 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7087 ID3D12GraphicsCommandList * This,
7088 _In_ UINT StartSlot,
7089 _In_ UINT NumViews,
7090 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7091
7092 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7093 void ( STDMETHODCALLTYPE *SOSetTargets )(
7094 ID3D12GraphicsCommandList * This,
7095 _In_ UINT StartSlot,
7096 _In_ UINT NumViews,
7097 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7098
7099 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7100 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7101 ID3D12GraphicsCommandList * This,
7102 _In_ UINT NumRenderTargetDescriptors,
7103 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7104 _In_ BOOL RTsSingleHandleToDescriptorRange,
7105 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7106
7107 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7108 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7109 ID3D12GraphicsCommandList * This,
7110 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7111 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7112 _In_ FLOAT Depth,
7113 _In_ UINT8 Stencil,
7114 _In_ UINT NumRects,
7115 _In_reads_(NumRects) const D3D12_RECT *pRects);
7116
7117 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7118 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7119 ID3D12GraphicsCommandList * This,
7120 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7121 _In_ const FLOAT ColorRGBA[ 4 ],
7122 _In_ UINT NumRects,
7123 _In_reads_(NumRects) const D3D12_RECT *pRects);
7124
7125 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7126 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7127 ID3D12GraphicsCommandList * This,
7128 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7129 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7130 _In_ ID3D12Resource *pResource,
7131 _In_ const UINT Values[ 4 ],
7132 _In_ UINT NumRects,
7133 _In_reads_(NumRects) const D3D12_RECT *pRects);
7134
7135 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7136 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7137 ID3D12GraphicsCommandList * This,
7138 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7139 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7140 _In_ ID3D12Resource *pResource,
7141 _In_ const FLOAT Values[ 4 ],
7142 _In_ UINT NumRects,
7143 _In_reads_(NumRects) const D3D12_RECT *pRects);
7144
7145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7146 void ( STDMETHODCALLTYPE *DiscardResource )(
7147 ID3D12GraphicsCommandList * This,
7148 _In_ ID3D12Resource *pResource,
7149 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7150
7151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7152 void ( STDMETHODCALLTYPE *BeginQuery )(
7153 ID3D12GraphicsCommandList * This,
7154 _In_ ID3D12QueryHeap *pQueryHeap,
7155 _In_ D3D12_QUERY_TYPE Type,
7156 _In_ UINT Index);
7157
7158 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7159 void ( STDMETHODCALLTYPE *EndQuery )(
7160 ID3D12GraphicsCommandList * This,
7161 _In_ ID3D12QueryHeap *pQueryHeap,
7162 _In_ D3D12_QUERY_TYPE Type,
7163 _In_ UINT Index);
7164
7165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7166 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7167 ID3D12GraphicsCommandList * This,
7168 _In_ ID3D12QueryHeap *pQueryHeap,
7169 _In_ D3D12_QUERY_TYPE Type,
7170 _In_ UINT StartIndex,
7171 _In_ UINT NumQueries,
7172 _In_ ID3D12Resource *pDestinationBuffer,
7173 _In_ UINT64 AlignedDestinationBufferOffset);
7174
7175 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7176 void ( STDMETHODCALLTYPE *SetPredication )(
7177 ID3D12GraphicsCommandList * This,
7178 _In_opt_ ID3D12Resource *pBuffer,
7179 _In_ UINT64 AlignedBufferOffset,
7180 _In_ D3D12_PREDICATION_OP Operation);
7181
7182 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7183 void ( STDMETHODCALLTYPE *SetMarker )(
7184 ID3D12GraphicsCommandList * This,
7185 UINT Metadata,
7186 _In_reads_bytes_opt_(Size) const void *pData,
7187 UINT Size);
7188
7189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7190 void ( STDMETHODCALLTYPE *BeginEvent )(
7191 ID3D12GraphicsCommandList * This,
7192 UINT Metadata,
7193 _In_reads_bytes_opt_(Size) const void *pData,
7194 UINT Size);
7195
7196 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7197 void ( STDMETHODCALLTYPE *EndEvent )(
7198 ID3D12GraphicsCommandList * This);
7199
7200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7201 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7202 ID3D12GraphicsCommandList * This,
7203 _In_ ID3D12CommandSignature *pCommandSignature,
7204 _In_ UINT MaxCommandCount,
7205 _In_ ID3D12Resource *pArgumentBuffer,
7206 _In_ UINT64 ArgumentBufferOffset,
7207 _In_opt_ ID3D12Resource *pCountBuffer,
7208 _In_ UINT64 CountBufferOffset);
7209
7210 END_INTERFACE
7211 } ID3D12GraphicsCommandListVtbl;
7212
7213 interface ID3D12GraphicsCommandList
7214 {
7215 CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl;
7216 };
7217
7218
7219
7220#ifdef COBJMACROS
7221
7222
7223#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \
7224 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7225
7226#define ID3D12GraphicsCommandList_AddRef(This) \
7227 ( (This)->lpVtbl -> AddRef(This) )
7228
7229#define ID3D12GraphicsCommandList_Release(This) \
7230 ( (This)->lpVtbl -> Release(This) )
7231
7232
7233#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \
7234 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7235
7236#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \
7237 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7238
7239#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \
7240 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7241
7242#define ID3D12GraphicsCommandList_SetName(This,Name) \
7243 ( (This)->lpVtbl -> SetName(This,Name) )
7244
7245
7246#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \
7247 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7248
7249
7250#define ID3D12GraphicsCommandList_GetType(This) \
7251 ( (This)->lpVtbl -> GetType(This) )
7252
7253
7254#define ID3D12GraphicsCommandList_Close(This) \
7255 ( (This)->lpVtbl -> Close(This) )
7256
7257#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \
7258 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7259
7260#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \
7261 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7262
7263#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7264 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7265
7266#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7267 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7268
7269#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7270 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7271
7272#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7273 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7274
7275#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
7276 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
7277
7278#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \
7279 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
7280
7281#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
7282 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
7283
7284#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
7285 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
7286
7287#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \
7288 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
7289
7290#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \
7291 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
7292
7293#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \
7294 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
7295
7296#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \
7297 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
7298
7299#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \
7300 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
7301
7302#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \
7303 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
7304
7305#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
7306 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
7307
7308#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \
7309 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
7310
7311#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
7312 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
7313
7314#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \
7315 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
7316
7317#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \
7318 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
7319
7320#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7321 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7322
7323#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
7324 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
7325
7326#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7327 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7328
7329#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
7330 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
7331
7332#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7333 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7334
7335#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
7336 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
7337
7338#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7339 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7340
7341#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
7342 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
7343
7344#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7345 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7346
7347#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
7348 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
7349
7350#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7351 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7352
7353#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
7354 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
7355
7356#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \
7357 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
7358
7359#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
7360 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
7361
7362#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \
7363 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
7364
7365#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
7366 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
7367
7368#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
7369 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
7370
7371#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
7372 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
7373
7374#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7375 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7376
7377#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
7378 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
7379
7380#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \
7381 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
7382
7383#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
7384 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
7385
7386#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \
7387 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
7388
7389#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
7390 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
7391
7392#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
7393 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
7394
7395#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \
7396 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
7397
7398#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \
7399 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
7400
7401#define ID3D12GraphicsCommandList_EndEvent(This) \
7402 ( (This)->lpVtbl -> EndEvent(This) )
7403
7404#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
7405 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
7406
7407#endif /* COBJMACROS */
7408
7409
7410#endif /* C style interface */
7411
7412
7413
7414
7415#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
7416
7417
7418#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7419#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
7420
7421/* interface ID3D12GraphicsCommandList1 */
7422/* [unique][local][object][uuid] */
7423
7424
7425EXTERN_C const IID IID_ID3D12GraphicsCommandList1;
7426
7427#if defined(__cplusplus) && !defined(CINTERFACE)
7428
7429 MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
7430 ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
7431 {
7432 public:
7433 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
7434 _In_ ID3D12Resource *pDstBuffer,
7435 UINT64 DstOffset,
7436 _In_ ID3D12Resource *pSrcBuffer,
7437 UINT64 SrcOffset,
7438 UINT Dependencies,
7439 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7440 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7441
7442 virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
7443 _In_ ID3D12Resource *pDstBuffer,
7444 UINT64 DstOffset,
7445 _In_ ID3D12Resource *pSrcBuffer,
7446 UINT64 SrcOffset,
7447 UINT Dependencies,
7448 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7449 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0;
7450
7451 virtual void STDMETHODCALLTYPE OMSetDepthBounds(
7452 _In_ FLOAT Min,
7453 _In_ FLOAT Max) = 0;
7454
7455 virtual void STDMETHODCALLTYPE SetSamplePositions(
7456 _In_ UINT NumSamplesPerPixel,
7457 _In_ UINT NumPixels,
7458 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0;
7459
7460 virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
7461 _In_ ID3D12Resource *pDstResource,
7462 _In_ UINT DstSubresource,
7463 _In_ UINT DstX,
7464 _In_ UINT DstY,
7465 _In_ ID3D12Resource *pSrcResource,
7466 _In_ UINT SrcSubresource,
7467 _In_opt_ D3D12_RECT *pSrcRect,
7468 _In_ DXGI_FORMAT Format,
7469 _In_ D3D12_RESOLVE_MODE ResolveMode) = 0;
7470
7471 virtual void STDMETHODCALLTYPE SetViewInstanceMask(
7472 _In_ UINT Mask) = 0;
7473
7474 };
7475
7476
7477#else /* C style interface */
7478
7479 typedef struct ID3D12GraphicsCommandList1Vtbl
7480 {
7481 BEGIN_INTERFACE
7482
7483 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7484 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7485 ID3D12GraphicsCommandList1 * This,
7486 REFIID riid,
7487 _COM_Outptr_ void **ppvObject);
7488
7489 DECLSPEC_XFGVIRT(IUnknown, AddRef)
7490 ULONG ( STDMETHODCALLTYPE *AddRef )(
7491 ID3D12GraphicsCommandList1 * This);
7492
7493 DECLSPEC_XFGVIRT(IUnknown, Release)
7494 ULONG ( STDMETHODCALLTYPE *Release )(
7495 ID3D12GraphicsCommandList1 * This);
7496
7497 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7498 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7499 ID3D12GraphicsCommandList1 * This,
7500 _In_ REFGUID guid,
7501 _Inout_ UINT *pDataSize,
7502 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
7503
7504 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7505 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7506 ID3D12GraphicsCommandList1 * This,
7507 _In_ REFGUID guid,
7508 _In_ UINT DataSize,
7509 _In_reads_bytes_opt_( DataSize ) const void *pData);
7510
7511 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7512 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7513 ID3D12GraphicsCommandList1 * This,
7514 _In_ REFGUID guid,
7515 _In_opt_ const IUnknown *pData);
7516
7517 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7518 HRESULT ( STDMETHODCALLTYPE *SetName )(
7519 ID3D12GraphicsCommandList1 * This,
7520 _In_z_ LPCWSTR Name);
7521
7522 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7523 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7524 ID3D12GraphicsCommandList1 * This,
7525 REFIID riid,
7526 _COM_Outptr_opt_ void **ppvDevice);
7527
7528 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
7529 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
7530 ID3D12GraphicsCommandList1 * This);
7531
7532 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
7533 HRESULT ( STDMETHODCALLTYPE *Close )(
7534 ID3D12GraphicsCommandList1 * This);
7535
7536 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
7537 HRESULT ( STDMETHODCALLTYPE *Reset )(
7538 ID3D12GraphicsCommandList1 * This,
7539 _In_ ID3D12CommandAllocator *pAllocator,
7540 _In_opt_ ID3D12PipelineState *pInitialState);
7541
7542 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
7543 void ( STDMETHODCALLTYPE *ClearState )(
7544 ID3D12GraphicsCommandList1 * This,
7545 _In_opt_ ID3D12PipelineState *pPipelineState);
7546
7547 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
7548 void ( STDMETHODCALLTYPE *DrawInstanced )(
7549 ID3D12GraphicsCommandList1 * This,
7550 _In_ UINT VertexCountPerInstance,
7551 _In_ UINT InstanceCount,
7552 _In_ UINT StartVertexLocation,
7553 _In_ UINT StartInstanceLocation);
7554
7555 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
7556 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
7557 ID3D12GraphicsCommandList1 * This,
7558 _In_ UINT IndexCountPerInstance,
7559 _In_ UINT InstanceCount,
7560 _In_ UINT StartIndexLocation,
7561 _In_ INT BaseVertexLocation,
7562 _In_ UINT StartInstanceLocation);
7563
7564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
7565 void ( STDMETHODCALLTYPE *Dispatch )(
7566 ID3D12GraphicsCommandList1 * This,
7567 _In_ UINT ThreadGroupCountX,
7568 _In_ UINT ThreadGroupCountY,
7569 _In_ UINT ThreadGroupCountZ);
7570
7571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
7572 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
7573 ID3D12GraphicsCommandList1 * This,
7574 _In_ ID3D12Resource *pDstBuffer,
7575 UINT64 DstOffset,
7576 _In_ ID3D12Resource *pSrcBuffer,
7577 UINT64 SrcOffset,
7578 UINT64 NumBytes);
7579
7580 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
7581 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
7582 ID3D12GraphicsCommandList1 * This,
7583 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
7584 UINT DstX,
7585 UINT DstY,
7586 UINT DstZ,
7587 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
7588 _In_opt_ const D3D12_BOX *pSrcBox);
7589
7590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
7591 void ( STDMETHODCALLTYPE *CopyResource )(
7592 ID3D12GraphicsCommandList1 * This,
7593 _In_ ID3D12Resource *pDstResource,
7594 _In_ ID3D12Resource *pSrcResource);
7595
7596 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
7597 void ( STDMETHODCALLTYPE *CopyTiles )(
7598 ID3D12GraphicsCommandList1 * This,
7599 _In_ ID3D12Resource *pTiledResource,
7600 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
7601 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
7602 _In_ ID3D12Resource *pBuffer,
7603 UINT64 BufferStartOffsetInBytes,
7604 D3D12_TILE_COPY_FLAGS Flags);
7605
7606 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
7607 void ( STDMETHODCALLTYPE *ResolveSubresource )(
7608 ID3D12GraphicsCommandList1 * This,
7609 _In_ ID3D12Resource *pDstResource,
7610 _In_ UINT DstSubresource,
7611 _In_ ID3D12Resource *pSrcResource,
7612 _In_ UINT SrcSubresource,
7613 _In_ DXGI_FORMAT Format);
7614
7615 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
7616 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
7617 ID3D12GraphicsCommandList1 * This,
7618 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
7619
7620 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
7621 void ( STDMETHODCALLTYPE *RSSetViewports )(
7622 ID3D12GraphicsCommandList1 * This,
7623 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
7624 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
7625
7626 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
7627 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
7628 ID3D12GraphicsCommandList1 * This,
7629 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
7630 _In_reads_( NumRects) const D3D12_RECT *pRects);
7631
7632 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
7633 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
7634 ID3D12GraphicsCommandList1 * This,
7635 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
7636
7637 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
7638 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
7639 ID3D12GraphicsCommandList1 * This,
7640 _In_ UINT StencilRef);
7641
7642 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
7643 void ( STDMETHODCALLTYPE *SetPipelineState )(
7644 ID3D12GraphicsCommandList1 * This,
7645 _In_ ID3D12PipelineState *pPipelineState);
7646
7647 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
7648 void ( STDMETHODCALLTYPE *ResourceBarrier )(
7649 ID3D12GraphicsCommandList1 * This,
7650 _In_ UINT NumBarriers,
7651 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
7652
7653 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
7654 void ( STDMETHODCALLTYPE *ExecuteBundle )(
7655 ID3D12GraphicsCommandList1 * This,
7656 _In_ ID3D12GraphicsCommandList *pCommandList);
7657
7658 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
7659 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
7660 ID3D12GraphicsCommandList1 * This,
7661 _In_ UINT NumDescriptorHeaps,
7662 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
7663
7664 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
7665 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
7666 ID3D12GraphicsCommandList1 * This,
7667 _In_opt_ ID3D12RootSignature *pRootSignature);
7668
7669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
7670 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
7671 ID3D12GraphicsCommandList1 * This,
7672 _In_opt_ ID3D12RootSignature *pRootSignature);
7673
7674 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
7675 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
7676 ID3D12GraphicsCommandList1 * This,
7677 _In_ UINT RootParameterIndex,
7678 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7679
7680 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
7681 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
7682 ID3D12GraphicsCommandList1 * This,
7683 _In_ UINT RootParameterIndex,
7684 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
7685
7686 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
7687 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
7688 ID3D12GraphicsCommandList1 * This,
7689 _In_ UINT RootParameterIndex,
7690 _In_ UINT SrcData,
7691 _In_ UINT DestOffsetIn32BitValues);
7692
7693 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
7694 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
7695 ID3D12GraphicsCommandList1 * This,
7696 _In_ UINT RootParameterIndex,
7697 _In_ UINT SrcData,
7698 _In_ UINT DestOffsetIn32BitValues);
7699
7700 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
7701 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
7702 ID3D12GraphicsCommandList1 * This,
7703 _In_ UINT RootParameterIndex,
7704 _In_ UINT Num32BitValuesToSet,
7705 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7706 _In_ UINT DestOffsetIn32BitValues);
7707
7708 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
7709 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
7710 ID3D12GraphicsCommandList1 * This,
7711 _In_ UINT RootParameterIndex,
7712 _In_ UINT Num32BitValuesToSet,
7713 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
7714 _In_ UINT DestOffsetIn32BitValues);
7715
7716 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
7717 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
7718 ID3D12GraphicsCommandList1 * This,
7719 _In_ UINT RootParameterIndex,
7720 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7721
7722 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
7723 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
7724 ID3D12GraphicsCommandList1 * This,
7725 _In_ UINT RootParameterIndex,
7726 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7727
7728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
7729 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
7730 ID3D12GraphicsCommandList1 * This,
7731 _In_ UINT RootParameterIndex,
7732 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7733
7734 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
7735 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
7736 ID3D12GraphicsCommandList1 * This,
7737 _In_ UINT RootParameterIndex,
7738 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7739
7740 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
7741 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
7742 ID3D12GraphicsCommandList1 * This,
7743 _In_ UINT RootParameterIndex,
7744 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7745
7746 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
7747 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
7748 ID3D12GraphicsCommandList1 * This,
7749 _In_ UINT RootParameterIndex,
7750 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
7751
7752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
7753 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
7754 ID3D12GraphicsCommandList1 * This,
7755 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
7756
7757 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
7758 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
7759 ID3D12GraphicsCommandList1 * This,
7760 _In_ UINT StartSlot,
7761 _In_ UINT NumViews,
7762 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
7763
7764 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
7765 void ( STDMETHODCALLTYPE *SOSetTargets )(
7766 ID3D12GraphicsCommandList1 * This,
7767 _In_ UINT StartSlot,
7768 _In_ UINT NumViews,
7769 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
7770
7771 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
7772 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
7773 ID3D12GraphicsCommandList1 * This,
7774 _In_ UINT NumRenderTargetDescriptors,
7775 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
7776 _In_ BOOL RTsSingleHandleToDescriptorRange,
7777 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
7778
7779 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
7780 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
7781 ID3D12GraphicsCommandList1 * This,
7782 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
7783 _In_ D3D12_CLEAR_FLAGS ClearFlags,
7784 _In_ FLOAT Depth,
7785 _In_ UINT8 Stencil,
7786 _In_ UINT NumRects,
7787 _In_reads_(NumRects) const D3D12_RECT *pRects);
7788
7789 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
7790 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
7791 ID3D12GraphicsCommandList1 * This,
7792 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
7793 _In_ const FLOAT ColorRGBA[ 4 ],
7794 _In_ UINT NumRects,
7795 _In_reads_(NumRects) const D3D12_RECT *pRects);
7796
7797 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
7798 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
7799 ID3D12GraphicsCommandList1 * This,
7800 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7801 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7802 _In_ ID3D12Resource *pResource,
7803 _In_ const UINT Values[ 4 ],
7804 _In_ UINT NumRects,
7805 _In_reads_(NumRects) const D3D12_RECT *pRects);
7806
7807 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
7808 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
7809 ID3D12GraphicsCommandList1 * This,
7810 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
7811 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
7812 _In_ ID3D12Resource *pResource,
7813 _In_ const FLOAT Values[ 4 ],
7814 _In_ UINT NumRects,
7815 _In_reads_(NumRects) const D3D12_RECT *pRects);
7816
7817 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
7818 void ( STDMETHODCALLTYPE *DiscardResource )(
7819 ID3D12GraphicsCommandList1 * This,
7820 _In_ ID3D12Resource *pResource,
7821 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
7822
7823 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
7824 void ( STDMETHODCALLTYPE *BeginQuery )(
7825 ID3D12GraphicsCommandList1 * This,
7826 _In_ ID3D12QueryHeap *pQueryHeap,
7827 _In_ D3D12_QUERY_TYPE Type,
7828 _In_ UINT Index);
7829
7830 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
7831 void ( STDMETHODCALLTYPE *EndQuery )(
7832 ID3D12GraphicsCommandList1 * This,
7833 _In_ ID3D12QueryHeap *pQueryHeap,
7834 _In_ D3D12_QUERY_TYPE Type,
7835 _In_ UINT Index);
7836
7837 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
7838 void ( STDMETHODCALLTYPE *ResolveQueryData )(
7839 ID3D12GraphicsCommandList1 * This,
7840 _In_ ID3D12QueryHeap *pQueryHeap,
7841 _In_ D3D12_QUERY_TYPE Type,
7842 _In_ UINT StartIndex,
7843 _In_ UINT NumQueries,
7844 _In_ ID3D12Resource *pDestinationBuffer,
7845 _In_ UINT64 AlignedDestinationBufferOffset);
7846
7847 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
7848 void ( STDMETHODCALLTYPE *SetPredication )(
7849 ID3D12GraphicsCommandList1 * This,
7850 _In_opt_ ID3D12Resource *pBuffer,
7851 _In_ UINT64 AlignedBufferOffset,
7852 _In_ D3D12_PREDICATION_OP Operation);
7853
7854 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
7855 void ( STDMETHODCALLTYPE *SetMarker )(
7856 ID3D12GraphicsCommandList1 * This,
7857 UINT Metadata,
7858 _In_reads_bytes_opt_(Size) const void *pData,
7859 UINT Size);
7860
7861 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
7862 void ( STDMETHODCALLTYPE *BeginEvent )(
7863 ID3D12GraphicsCommandList1 * This,
7864 UINT Metadata,
7865 _In_reads_bytes_opt_(Size) const void *pData,
7866 UINT Size);
7867
7868 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
7869 void ( STDMETHODCALLTYPE *EndEvent )(
7870 ID3D12GraphicsCommandList1 * This);
7871
7872 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
7873 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
7874 ID3D12GraphicsCommandList1 * This,
7875 _In_ ID3D12CommandSignature *pCommandSignature,
7876 _In_ UINT MaxCommandCount,
7877 _In_ ID3D12Resource *pArgumentBuffer,
7878 _In_ UINT64 ArgumentBufferOffset,
7879 _In_opt_ ID3D12Resource *pCountBuffer,
7880 _In_ UINT64 CountBufferOffset);
7881
7882 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
7883 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
7884 ID3D12GraphicsCommandList1 * This,
7885 _In_ ID3D12Resource *pDstBuffer,
7886 UINT64 DstOffset,
7887 _In_ ID3D12Resource *pSrcBuffer,
7888 UINT64 SrcOffset,
7889 UINT Dependencies,
7890 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7891 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7892
7893 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
7894 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
7895 ID3D12GraphicsCommandList1 * This,
7896 _In_ ID3D12Resource *pDstBuffer,
7897 UINT64 DstOffset,
7898 _In_ ID3D12Resource *pSrcBuffer,
7899 UINT64 SrcOffset,
7900 UINT Dependencies,
7901 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
7902 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
7903
7904 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
7905 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
7906 ID3D12GraphicsCommandList1 * This,
7907 _In_ FLOAT Min,
7908 _In_ FLOAT Max);
7909
7910 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
7911 void ( STDMETHODCALLTYPE *SetSamplePositions )(
7912 ID3D12GraphicsCommandList1 * This,
7913 _In_ UINT NumSamplesPerPixel,
7914 _In_ UINT NumPixels,
7915 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
7916
7917 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
7918 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
7919 ID3D12GraphicsCommandList1 * This,
7920 _In_ ID3D12Resource *pDstResource,
7921 _In_ UINT DstSubresource,
7922 _In_ UINT DstX,
7923 _In_ UINT DstY,
7924 _In_ ID3D12Resource *pSrcResource,
7925 _In_ UINT SrcSubresource,
7926 _In_opt_ D3D12_RECT *pSrcRect,
7927 _In_ DXGI_FORMAT Format,
7928 _In_ D3D12_RESOLVE_MODE ResolveMode);
7929
7930 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
7931 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
7932 ID3D12GraphicsCommandList1 * This,
7933 _In_ UINT Mask);
7934
7935 END_INTERFACE
7936 } ID3D12GraphicsCommandList1Vtbl;
7937
7938 interface ID3D12GraphicsCommandList1
7939 {
7940 CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl;
7941 };
7942
7943
7944
7945#ifdef COBJMACROS
7946
7947
7948#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \
7949 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7950
7951#define ID3D12GraphicsCommandList1_AddRef(This) \
7952 ( (This)->lpVtbl -> AddRef(This) )
7953
7954#define ID3D12GraphicsCommandList1_Release(This) \
7955 ( (This)->lpVtbl -> Release(This) )
7956
7957
7958#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
7959 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7960
7961#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \
7962 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7963
7964#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \
7965 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7966
7967#define ID3D12GraphicsCommandList1_SetName(This,Name) \
7968 ( (This)->lpVtbl -> SetName(This,Name) )
7969
7970
7971#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \
7972 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7973
7974
7975#define ID3D12GraphicsCommandList1_GetType(This) \
7976 ( (This)->lpVtbl -> GetType(This) )
7977
7978
7979#define ID3D12GraphicsCommandList1_Close(This) \
7980 ( (This)->lpVtbl -> Close(This) )
7981
7982#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \
7983 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
7984
7985#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \
7986 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
7987
7988#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
7989 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
7990
7991#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
7992 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
7993
7994#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
7995 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
7996
7997#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
7998 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
7999
8000#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
8001 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
8002
8003#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \
8004 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8005
8006#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
8007 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
8008
8009#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
8010 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
8011
8012#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \
8013 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
8014
8015#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \
8016 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8017
8018#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \
8019 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8020
8021#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \
8022 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
8023
8024#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \
8025 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
8026
8027#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \
8028 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
8029
8030#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
8031 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8032
8033#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \
8034 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
8035
8036#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
8037 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
8038
8039#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \
8040 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
8041
8042#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \
8043 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
8044
8045#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8046 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8047
8048#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8049 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8050
8051#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8052 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8053
8054#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8055 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8056
8057#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8058 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8059
8060#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8061 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8062
8063#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8064 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8065
8066#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8067 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8068
8069#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8070 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8071
8072#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8073 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8074
8075#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8076 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8077
8078#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8079 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8080
8081#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \
8082 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
8083
8084#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
8085 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
8086
8087#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \
8088 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
8089
8090#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
8091 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
8092
8093#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
8094 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
8095
8096#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
8097 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
8098
8099#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8100 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8101
8102#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8103 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8104
8105#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \
8106 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8107
8108#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
8109 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8110
8111#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
8112 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8113
8114#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8115 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8116
8117#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8118 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8119
8120#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \
8121 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8122
8123#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \
8124 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8125
8126#define ID3D12GraphicsCommandList1_EndEvent(This) \
8127 ( (This)->lpVtbl -> EndEvent(This) )
8128
8129#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8130 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8131
8132
8133#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8134 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8135
8136#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8137 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8138
8139#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \
8140 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8141
8142#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8143 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8144
8145#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8146 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8147
8148#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \
8149 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8150
8151#endif /* COBJMACROS */
8152
8153
8154#endif /* C style interface */
8155
8156
8157
8158
8159#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
8160
8161
8162/* interface __MIDL_itf_d3d12_0000_0019 */
8163/* [local] */
8164
8165typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
8166 {
8167 D3D12_GPU_VIRTUAL_ADDRESS Dest;
8168 UINT32 Value;
8169 } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
8170
8171typedef
8172enum D3D12_WRITEBUFFERIMMEDIATE_MODE
8173 {
8174 D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0,
8175 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
8176 D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
8177 } D3D12_WRITEBUFFERIMMEDIATE_MODE;
8178
8179
8180
8181extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec;
8182extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec;
8183
8184#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
8185#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
8186
8187/* interface ID3D12GraphicsCommandList2 */
8188/* [unique][local][object][uuid] */
8189
8190
8191EXTERN_C const IID IID_ID3D12GraphicsCommandList2;
8192
8193#if defined(__cplusplus) && !defined(CINTERFACE)
8194
8195 MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28")
8196 ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
8197 {
8198 public:
8199 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
8200 UINT Count,
8201 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8202 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
8203
8204 };
8205
8206
8207#else /* C style interface */
8208
8209 typedef struct ID3D12GraphicsCommandList2Vtbl
8210 {
8211 BEGIN_INTERFACE
8212
8213 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8214 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8215 ID3D12GraphicsCommandList2 * This,
8216 REFIID riid,
8217 _COM_Outptr_ void **ppvObject);
8218
8219 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8220 ULONG ( STDMETHODCALLTYPE *AddRef )(
8221 ID3D12GraphicsCommandList2 * This);
8222
8223 DECLSPEC_XFGVIRT(IUnknown, Release)
8224 ULONG ( STDMETHODCALLTYPE *Release )(
8225 ID3D12GraphicsCommandList2 * This);
8226
8227 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8228 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8229 ID3D12GraphicsCommandList2 * This,
8230 _In_ REFGUID guid,
8231 _Inout_ UINT *pDataSize,
8232 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
8233
8234 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8235 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8236 ID3D12GraphicsCommandList2 * This,
8237 _In_ REFGUID guid,
8238 _In_ UINT DataSize,
8239 _In_reads_bytes_opt_( DataSize ) const void *pData);
8240
8241 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8242 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8243 ID3D12GraphicsCommandList2 * This,
8244 _In_ REFGUID guid,
8245 _In_opt_ const IUnknown *pData);
8246
8247 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8248 HRESULT ( STDMETHODCALLTYPE *SetName )(
8249 ID3D12GraphicsCommandList2 * This,
8250 _In_z_ LPCWSTR Name);
8251
8252 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8253 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8254 ID3D12GraphicsCommandList2 * This,
8255 REFIID riid,
8256 _COM_Outptr_opt_ void **ppvDevice);
8257
8258 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
8259 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
8260 ID3D12GraphicsCommandList2 * This);
8261
8262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
8263 HRESULT ( STDMETHODCALLTYPE *Close )(
8264 ID3D12GraphicsCommandList2 * This);
8265
8266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
8267 HRESULT ( STDMETHODCALLTYPE *Reset )(
8268 ID3D12GraphicsCommandList2 * This,
8269 _In_ ID3D12CommandAllocator *pAllocator,
8270 _In_opt_ ID3D12PipelineState *pInitialState);
8271
8272 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
8273 void ( STDMETHODCALLTYPE *ClearState )(
8274 ID3D12GraphicsCommandList2 * This,
8275 _In_opt_ ID3D12PipelineState *pPipelineState);
8276
8277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
8278 void ( STDMETHODCALLTYPE *DrawInstanced )(
8279 ID3D12GraphicsCommandList2 * This,
8280 _In_ UINT VertexCountPerInstance,
8281 _In_ UINT InstanceCount,
8282 _In_ UINT StartVertexLocation,
8283 _In_ UINT StartInstanceLocation);
8284
8285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
8286 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
8287 ID3D12GraphicsCommandList2 * This,
8288 _In_ UINT IndexCountPerInstance,
8289 _In_ UINT InstanceCount,
8290 _In_ UINT StartIndexLocation,
8291 _In_ INT BaseVertexLocation,
8292 _In_ UINT StartInstanceLocation);
8293
8294 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
8295 void ( STDMETHODCALLTYPE *Dispatch )(
8296 ID3D12GraphicsCommandList2 * This,
8297 _In_ UINT ThreadGroupCountX,
8298 _In_ UINT ThreadGroupCountY,
8299 _In_ UINT ThreadGroupCountZ);
8300
8301 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
8302 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
8303 ID3D12GraphicsCommandList2 * This,
8304 _In_ ID3D12Resource *pDstBuffer,
8305 UINT64 DstOffset,
8306 _In_ ID3D12Resource *pSrcBuffer,
8307 UINT64 SrcOffset,
8308 UINT64 NumBytes);
8309
8310 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
8311 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
8312 ID3D12GraphicsCommandList2 * This,
8313 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
8314 UINT DstX,
8315 UINT DstY,
8316 UINT DstZ,
8317 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
8318 _In_opt_ const D3D12_BOX *pSrcBox);
8319
8320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
8321 void ( STDMETHODCALLTYPE *CopyResource )(
8322 ID3D12GraphicsCommandList2 * This,
8323 _In_ ID3D12Resource *pDstResource,
8324 _In_ ID3D12Resource *pSrcResource);
8325
8326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
8327 void ( STDMETHODCALLTYPE *CopyTiles )(
8328 ID3D12GraphicsCommandList2 * This,
8329 _In_ ID3D12Resource *pTiledResource,
8330 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
8331 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
8332 _In_ ID3D12Resource *pBuffer,
8333 UINT64 BufferStartOffsetInBytes,
8334 D3D12_TILE_COPY_FLAGS Flags);
8335
8336 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
8337 void ( STDMETHODCALLTYPE *ResolveSubresource )(
8338 ID3D12GraphicsCommandList2 * This,
8339 _In_ ID3D12Resource *pDstResource,
8340 _In_ UINT DstSubresource,
8341 _In_ ID3D12Resource *pSrcResource,
8342 _In_ UINT SrcSubresource,
8343 _In_ DXGI_FORMAT Format);
8344
8345 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
8346 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
8347 ID3D12GraphicsCommandList2 * This,
8348 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
8349
8350 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
8351 void ( STDMETHODCALLTYPE *RSSetViewports )(
8352 ID3D12GraphicsCommandList2 * This,
8353 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
8354 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
8355
8356 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
8357 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
8358 ID3D12GraphicsCommandList2 * This,
8359 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
8360 _In_reads_( NumRects) const D3D12_RECT *pRects);
8361
8362 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
8363 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
8364 ID3D12GraphicsCommandList2 * This,
8365 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
8366
8367 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
8368 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
8369 ID3D12GraphicsCommandList2 * This,
8370 _In_ UINT StencilRef);
8371
8372 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
8373 void ( STDMETHODCALLTYPE *SetPipelineState )(
8374 ID3D12GraphicsCommandList2 * This,
8375 _In_ ID3D12PipelineState *pPipelineState);
8376
8377 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
8378 void ( STDMETHODCALLTYPE *ResourceBarrier )(
8379 ID3D12GraphicsCommandList2 * This,
8380 _In_ UINT NumBarriers,
8381 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
8382
8383 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
8384 void ( STDMETHODCALLTYPE *ExecuteBundle )(
8385 ID3D12GraphicsCommandList2 * This,
8386 _In_ ID3D12GraphicsCommandList *pCommandList);
8387
8388 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
8389 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
8390 ID3D12GraphicsCommandList2 * This,
8391 _In_ UINT NumDescriptorHeaps,
8392 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
8393
8394 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
8395 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
8396 ID3D12GraphicsCommandList2 * This,
8397 _In_opt_ ID3D12RootSignature *pRootSignature);
8398
8399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
8400 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
8401 ID3D12GraphicsCommandList2 * This,
8402 _In_opt_ ID3D12RootSignature *pRootSignature);
8403
8404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
8405 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
8406 ID3D12GraphicsCommandList2 * This,
8407 _In_ UINT RootParameterIndex,
8408 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8409
8410 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
8411 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
8412 ID3D12GraphicsCommandList2 * This,
8413 _In_ UINT RootParameterIndex,
8414 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
8415
8416 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
8417 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
8418 ID3D12GraphicsCommandList2 * This,
8419 _In_ UINT RootParameterIndex,
8420 _In_ UINT SrcData,
8421 _In_ UINT DestOffsetIn32BitValues);
8422
8423 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
8424 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
8425 ID3D12GraphicsCommandList2 * This,
8426 _In_ UINT RootParameterIndex,
8427 _In_ UINT SrcData,
8428 _In_ UINT DestOffsetIn32BitValues);
8429
8430 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
8431 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
8432 ID3D12GraphicsCommandList2 * This,
8433 _In_ UINT RootParameterIndex,
8434 _In_ UINT Num32BitValuesToSet,
8435 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8436 _In_ UINT DestOffsetIn32BitValues);
8437
8438 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
8439 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
8440 ID3D12GraphicsCommandList2 * This,
8441 _In_ UINT RootParameterIndex,
8442 _In_ UINT Num32BitValuesToSet,
8443 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
8444 _In_ UINT DestOffsetIn32BitValues);
8445
8446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
8447 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
8448 ID3D12GraphicsCommandList2 * This,
8449 _In_ UINT RootParameterIndex,
8450 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8451
8452 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
8453 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
8454 ID3D12GraphicsCommandList2 * This,
8455 _In_ UINT RootParameterIndex,
8456 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8457
8458 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
8459 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
8460 ID3D12GraphicsCommandList2 * This,
8461 _In_ UINT RootParameterIndex,
8462 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8463
8464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
8465 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
8466 ID3D12GraphicsCommandList2 * This,
8467 _In_ UINT RootParameterIndex,
8468 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8469
8470 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
8471 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
8472 ID3D12GraphicsCommandList2 * This,
8473 _In_ UINT RootParameterIndex,
8474 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8475
8476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
8477 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
8478 ID3D12GraphicsCommandList2 * This,
8479 _In_ UINT RootParameterIndex,
8480 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
8481
8482 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
8483 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
8484 ID3D12GraphicsCommandList2 * This,
8485 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
8486
8487 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
8488 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
8489 ID3D12GraphicsCommandList2 * This,
8490 _In_ UINT StartSlot,
8491 _In_ UINT NumViews,
8492 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
8493
8494 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
8495 void ( STDMETHODCALLTYPE *SOSetTargets )(
8496 ID3D12GraphicsCommandList2 * This,
8497 _In_ UINT StartSlot,
8498 _In_ UINT NumViews,
8499 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
8500
8501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
8502 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
8503 ID3D12GraphicsCommandList2 * This,
8504 _In_ UINT NumRenderTargetDescriptors,
8505 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
8506 _In_ BOOL RTsSingleHandleToDescriptorRange,
8507 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
8508
8509 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
8510 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
8511 ID3D12GraphicsCommandList2 * This,
8512 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
8513 _In_ D3D12_CLEAR_FLAGS ClearFlags,
8514 _In_ FLOAT Depth,
8515 _In_ UINT8 Stencil,
8516 _In_ UINT NumRects,
8517 _In_reads_(NumRects) const D3D12_RECT *pRects);
8518
8519 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
8520 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
8521 ID3D12GraphicsCommandList2 * This,
8522 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
8523 _In_ const FLOAT ColorRGBA[ 4 ],
8524 _In_ UINT NumRects,
8525 _In_reads_(NumRects) const D3D12_RECT *pRects);
8526
8527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
8528 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
8529 ID3D12GraphicsCommandList2 * This,
8530 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8531 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8532 _In_ ID3D12Resource *pResource,
8533 _In_ const UINT Values[ 4 ],
8534 _In_ UINT NumRects,
8535 _In_reads_(NumRects) const D3D12_RECT *pRects);
8536
8537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
8538 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
8539 ID3D12GraphicsCommandList2 * This,
8540 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
8541 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
8542 _In_ ID3D12Resource *pResource,
8543 _In_ const FLOAT Values[ 4 ],
8544 _In_ UINT NumRects,
8545 _In_reads_(NumRects) const D3D12_RECT *pRects);
8546
8547 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
8548 void ( STDMETHODCALLTYPE *DiscardResource )(
8549 ID3D12GraphicsCommandList2 * This,
8550 _In_ ID3D12Resource *pResource,
8551 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
8552
8553 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
8554 void ( STDMETHODCALLTYPE *BeginQuery )(
8555 ID3D12GraphicsCommandList2 * This,
8556 _In_ ID3D12QueryHeap *pQueryHeap,
8557 _In_ D3D12_QUERY_TYPE Type,
8558 _In_ UINT Index);
8559
8560 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
8561 void ( STDMETHODCALLTYPE *EndQuery )(
8562 ID3D12GraphicsCommandList2 * This,
8563 _In_ ID3D12QueryHeap *pQueryHeap,
8564 _In_ D3D12_QUERY_TYPE Type,
8565 _In_ UINT Index);
8566
8567 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
8568 void ( STDMETHODCALLTYPE *ResolveQueryData )(
8569 ID3D12GraphicsCommandList2 * This,
8570 _In_ ID3D12QueryHeap *pQueryHeap,
8571 _In_ D3D12_QUERY_TYPE Type,
8572 _In_ UINT StartIndex,
8573 _In_ UINT NumQueries,
8574 _In_ ID3D12Resource *pDestinationBuffer,
8575 _In_ UINT64 AlignedDestinationBufferOffset);
8576
8577 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
8578 void ( STDMETHODCALLTYPE *SetPredication )(
8579 ID3D12GraphicsCommandList2 * This,
8580 _In_opt_ ID3D12Resource *pBuffer,
8581 _In_ UINT64 AlignedBufferOffset,
8582 _In_ D3D12_PREDICATION_OP Operation);
8583
8584 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
8585 void ( STDMETHODCALLTYPE *SetMarker )(
8586 ID3D12GraphicsCommandList2 * This,
8587 UINT Metadata,
8588 _In_reads_bytes_opt_(Size) const void *pData,
8589 UINT Size);
8590
8591 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
8592 void ( STDMETHODCALLTYPE *BeginEvent )(
8593 ID3D12GraphicsCommandList2 * This,
8594 UINT Metadata,
8595 _In_reads_bytes_opt_(Size) const void *pData,
8596 UINT Size);
8597
8598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
8599 void ( STDMETHODCALLTYPE *EndEvent )(
8600 ID3D12GraphicsCommandList2 * This);
8601
8602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
8603 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
8604 ID3D12GraphicsCommandList2 * This,
8605 _In_ ID3D12CommandSignature *pCommandSignature,
8606 _In_ UINT MaxCommandCount,
8607 _In_ ID3D12Resource *pArgumentBuffer,
8608 _In_ UINT64 ArgumentBufferOffset,
8609 _In_opt_ ID3D12Resource *pCountBuffer,
8610 _In_ UINT64 CountBufferOffset);
8611
8612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
8613 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
8614 ID3D12GraphicsCommandList2 * This,
8615 _In_ ID3D12Resource *pDstBuffer,
8616 UINT64 DstOffset,
8617 _In_ ID3D12Resource *pSrcBuffer,
8618 UINT64 SrcOffset,
8619 UINT Dependencies,
8620 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8621 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8622
8623 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
8624 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
8625 ID3D12GraphicsCommandList2 * This,
8626 _In_ ID3D12Resource *pDstBuffer,
8627 UINT64 DstOffset,
8628 _In_ ID3D12Resource *pSrcBuffer,
8629 UINT64 SrcOffset,
8630 UINT Dependencies,
8631 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
8632 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
8633
8634 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
8635 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
8636 ID3D12GraphicsCommandList2 * This,
8637 _In_ FLOAT Min,
8638 _In_ FLOAT Max);
8639
8640 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
8641 void ( STDMETHODCALLTYPE *SetSamplePositions )(
8642 ID3D12GraphicsCommandList2 * This,
8643 _In_ UINT NumSamplesPerPixel,
8644 _In_ UINT NumPixels,
8645 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
8646
8647 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
8648 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
8649 ID3D12GraphicsCommandList2 * This,
8650 _In_ ID3D12Resource *pDstResource,
8651 _In_ UINT DstSubresource,
8652 _In_ UINT DstX,
8653 _In_ UINT DstY,
8654 _In_ ID3D12Resource *pSrcResource,
8655 _In_ UINT SrcSubresource,
8656 _In_opt_ D3D12_RECT *pSrcRect,
8657 _In_ DXGI_FORMAT Format,
8658 _In_ D3D12_RESOLVE_MODE ResolveMode);
8659
8660 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
8661 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
8662 ID3D12GraphicsCommandList2 * This,
8663 _In_ UINT Mask);
8664
8665 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
8666 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
8667 ID3D12GraphicsCommandList2 * This,
8668 UINT Count,
8669 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8670 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
8671
8672 END_INTERFACE
8673 } ID3D12GraphicsCommandList2Vtbl;
8674
8675 interface ID3D12GraphicsCommandList2
8676 {
8677 CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl;
8678 };
8679
8680
8681
8682#ifdef COBJMACROS
8683
8684
8685#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \
8686 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8687
8688#define ID3D12GraphicsCommandList2_AddRef(This) \
8689 ( (This)->lpVtbl -> AddRef(This) )
8690
8691#define ID3D12GraphicsCommandList2_Release(This) \
8692 ( (This)->lpVtbl -> Release(This) )
8693
8694
8695#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
8696 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8697
8698#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \
8699 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8700
8701#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \
8702 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8703
8704#define ID3D12GraphicsCommandList2_SetName(This,Name) \
8705 ( (This)->lpVtbl -> SetName(This,Name) )
8706
8707
8708#define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \
8709 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8710
8711
8712#define ID3D12GraphicsCommandList2_GetType(This) \
8713 ( (This)->lpVtbl -> GetType(This) )
8714
8715
8716#define ID3D12GraphicsCommandList2_Close(This) \
8717 ( (This)->lpVtbl -> Close(This) )
8718
8719#define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \
8720 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
8721
8722#define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \
8723 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
8724
8725#define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
8726 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
8727
8728#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
8729 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
8730
8731#define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
8732 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8733
8734#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
8735 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
8736
8737#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
8738 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
8739
8740#define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \
8741 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8742
8743#define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
8744 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
8745
8746#define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
8747 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
8748
8749#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \
8750 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
8751
8752#define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \
8753 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8754
8755#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \
8756 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8757
8758#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \
8759 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
8760
8761#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \
8762 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
8763
8764#define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \
8765 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
8766
8767#define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
8768 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8769
8770#define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \
8771 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
8772
8773#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
8774 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
8775
8776#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \
8777 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
8778
8779#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \
8780 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
8781
8782#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8783 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8784
8785#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
8786 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
8787
8788#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8789 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8790
8791#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
8792 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
8793
8794#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8795 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8796
8797#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
8798 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
8799
8800#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8801 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8802
8803#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
8804 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
8805
8806#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8807 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8808
8809#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
8810 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
8811
8812#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8813 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8814
8815#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
8816 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
8817
8818#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \
8819 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
8820
8821#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
8822 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
8823
8824#define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \
8825 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
8826
8827#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
8828 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
8829
8830#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
8831 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
8832
8833#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
8834 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
8835
8836#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8837 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8838
8839#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
8840 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
8841
8842#define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \
8843 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8844
8845#define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
8846 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8847
8848#define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
8849 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8850
8851#define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8852 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8853
8854#define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8855 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8856
8857#define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \
8858 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8859
8860#define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \
8861 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8862
8863#define ID3D12GraphicsCommandList2_EndEvent(This) \
8864 ( (This)->lpVtbl -> EndEvent(This) )
8865
8866#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
8867 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
8868
8869
8870#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8871 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8872
8873#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
8874 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
8875
8876#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \
8877 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
8878
8879#define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
8880 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
8881
8882#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
8883 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
8884
8885#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \
8886 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
8887
8888
8889#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
8890 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
8891
8892#endif /* COBJMACROS */
8893
8894
8895#endif /* C style interface */
8896
8897
8898
8899
8900#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
8901
8902
8903#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
8904#define __ID3D12CommandQueue_INTERFACE_DEFINED__
8905
8906/* interface ID3D12CommandQueue */
8907/* [unique][local][object][uuid] */
8908
8909
8910EXTERN_C const IID IID_ID3D12CommandQueue;
8911
8912#if defined(__cplusplus) && !defined(CINTERFACE)
8913
8914 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
8915 ID3D12CommandQueue : public ID3D12Pageable
8916 {
8917 public:
8918 virtual void STDMETHODCALLTYPE UpdateTileMappings(
8919 _In_ ID3D12Resource *pResource,
8920 UINT NumResourceRegions,
8921 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
8922 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
8923 _In_opt_ ID3D12Heap *pHeap,
8924 UINT NumRanges,
8925 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
8926 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
8927 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
8928 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8929
8930 virtual void STDMETHODCALLTYPE CopyTileMappings(
8931 _In_ ID3D12Resource *pDstResource,
8932 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
8933 _In_ ID3D12Resource *pSrcResource,
8934 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
8935 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
8936 D3D12_TILE_MAPPING_FLAGS Flags) = 0;
8937
8938 virtual void STDMETHODCALLTYPE ExecuteCommandLists(
8939 _In_ UINT NumCommandLists,
8940 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
8941
8942 virtual void STDMETHODCALLTYPE SetMarker(
8943 UINT Metadata,
8944 _In_reads_bytes_opt_(Size) const void *pData,
8945 UINT Size) = 0;
8946
8947 virtual void STDMETHODCALLTYPE BeginEvent(
8948 UINT Metadata,
8949 _In_reads_bytes_opt_(Size) const void *pData,
8950 UINT Size) = 0;
8951
8952 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
8953
8954 virtual HRESULT STDMETHODCALLTYPE Signal(
8955 ID3D12Fence *pFence,
8956 UINT64 Value) = 0;
8957
8958 virtual HRESULT STDMETHODCALLTYPE Wait(
8959 ID3D12Fence *pFence,
8960 UINT64 Value) = 0;
8961
8962 virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
8963 _Out_ UINT64 *pFrequency) = 0;
8964
8965 virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
8966 _Out_ UINT64 *pGpuTimestamp,
8967 _Out_ UINT64 *pCpuTimestamp) = 0;
8968
8969#if defined(_MSC_VER) || !defined(_WIN32)
8970 virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
8971#else
8972 virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc(
8973 D3D12_COMMAND_QUEUE_DESC * RetVal) = 0;
8974#endif
8975
8976 };
8977
8978
8979#else /* C style interface */
8980
8981 typedef struct ID3D12CommandQueueVtbl
8982 {
8983 BEGIN_INTERFACE
8984
8985 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8986 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8987 ID3D12CommandQueue * This,
8988 REFIID riid,
8989 _COM_Outptr_ void **ppvObject);
8990
8991 DECLSPEC_XFGVIRT(IUnknown, AddRef)
8992 ULONG ( STDMETHODCALLTYPE *AddRef )(
8993 ID3D12CommandQueue * This);
8994
8995 DECLSPEC_XFGVIRT(IUnknown, Release)
8996 ULONG ( STDMETHODCALLTYPE *Release )(
8997 ID3D12CommandQueue * This);
8998
8999 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9000 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9001 ID3D12CommandQueue * This,
9002 _In_ REFGUID guid,
9003 _Inout_ UINT *pDataSize,
9004 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9005
9006 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9007 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9008 ID3D12CommandQueue * This,
9009 _In_ REFGUID guid,
9010 _In_ UINT DataSize,
9011 _In_reads_bytes_opt_( DataSize ) const void *pData);
9012
9013 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9014 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9015 ID3D12CommandQueue * This,
9016 _In_ REFGUID guid,
9017 _In_opt_ const IUnknown *pData);
9018
9019 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9020 HRESULT ( STDMETHODCALLTYPE *SetName )(
9021 ID3D12CommandQueue * This,
9022 _In_z_ LPCWSTR Name);
9023
9024 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9025 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9026 ID3D12CommandQueue * This,
9027 REFIID riid,
9028 _COM_Outptr_opt_ void **ppvDevice);
9029
9030 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
9031 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
9032 ID3D12CommandQueue * This,
9033 _In_ ID3D12Resource *pResource,
9034 UINT NumResourceRegions,
9035 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
9036 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
9037 _In_opt_ ID3D12Heap *pHeap,
9038 UINT NumRanges,
9039 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
9040 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
9041 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
9042 D3D12_TILE_MAPPING_FLAGS Flags);
9043
9044 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
9045 void ( STDMETHODCALLTYPE *CopyTileMappings )(
9046 ID3D12CommandQueue * This,
9047 _In_ ID3D12Resource *pDstResource,
9048 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
9049 _In_ ID3D12Resource *pSrcResource,
9050 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
9051 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
9052 D3D12_TILE_MAPPING_FLAGS Flags);
9053
9054 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
9055 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
9056 ID3D12CommandQueue * This,
9057 _In_ UINT NumCommandLists,
9058 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
9059
9060 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
9061 void ( STDMETHODCALLTYPE *SetMarker )(
9062 ID3D12CommandQueue * This,
9063 UINT Metadata,
9064 _In_reads_bytes_opt_(Size) const void *pData,
9065 UINT Size);
9066
9067 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
9068 void ( STDMETHODCALLTYPE *BeginEvent )(
9069 ID3D12CommandQueue * This,
9070 UINT Metadata,
9071 _In_reads_bytes_opt_(Size) const void *pData,
9072 UINT Size);
9073
9074 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
9075 void ( STDMETHODCALLTYPE *EndEvent )(
9076 ID3D12CommandQueue * This);
9077
9078 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
9079 HRESULT ( STDMETHODCALLTYPE *Signal )(
9080 ID3D12CommandQueue * This,
9081 ID3D12Fence *pFence,
9082 UINT64 Value);
9083
9084 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
9085 HRESULT ( STDMETHODCALLTYPE *Wait )(
9086 ID3D12CommandQueue * This,
9087 ID3D12Fence *pFence,
9088 UINT64 Value);
9089
9090 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
9091 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
9092 ID3D12CommandQueue * This,
9093 _Out_ UINT64 *pFrequency);
9094
9095 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
9096 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
9097 ID3D12CommandQueue * This,
9098 _Out_ UINT64 *pGpuTimestamp,
9099 _Out_ UINT64 *pCpuTimestamp);
9100
9101 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
9102#if !defined(_WIN32)
9103 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
9104 ID3D12CommandQueue * This);
9105
9106#else
9107 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
9108 ID3D12CommandQueue * This,
9109 D3D12_COMMAND_QUEUE_DESC * RetVal);
9110
9111#endif
9112
9113 END_INTERFACE
9114 } ID3D12CommandQueueVtbl;
9115
9116 interface ID3D12CommandQueue
9117 {
9118 CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
9119 };
9120
9121
9122
9123#ifdef COBJMACROS
9124
9125
9126#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \
9127 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9128
9129#define ID3D12CommandQueue_AddRef(This) \
9130 ( (This)->lpVtbl -> AddRef(This) )
9131
9132#define ID3D12CommandQueue_Release(This) \
9133 ( (This)->lpVtbl -> Release(This) )
9134
9135
9136#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \
9137 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9138
9139#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \
9140 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9141
9142#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \
9143 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9144
9145#define ID3D12CommandQueue_SetName(This,Name) \
9146 ( (This)->lpVtbl -> SetName(This,Name) )
9147
9148
9149#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \
9150 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9151
9152
9153
9154#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
9155 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
9156
9157#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
9158 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
9159
9160#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
9161 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
9162
9163#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \
9164 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
9165
9166#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \
9167 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
9168
9169#define ID3D12CommandQueue_EndEvent(This) \
9170 ( (This)->lpVtbl -> EndEvent(This) )
9171
9172#define ID3D12CommandQueue_Signal(This,pFence,Value) \
9173 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
9174
9175#define ID3D12CommandQueue_Wait(This,pFence,Value) \
9176 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
9177
9178#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \
9179 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
9180
9181#define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
9182 ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
9183#if !defined(_WIN32)
9184
9185#define ID3D12CommandQueue_GetDesc(This) \
9186 ( (This)->lpVtbl -> GetDesc(This) )
9187#else
9188#define ID3D12CommandQueue_GetDesc(This,RetVal) \
9189 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
9190#endif
9191
9192#endif /* COBJMACROS */
9193
9194
9195#endif /* C style interface */
9196
9197
9198
9199
9200#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
9201
9202
9203/* interface __MIDL_itf_d3d12_0000_0021 */
9204/* [local] */
9205
9206typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS
9207 {
9208 _Out_ UINT ComputeQueuesPer3DQueue;
9209 } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS;
9210
9211typedef
9212enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY
9213 {
9214 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0,
9215 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1
9216 } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY;
9217
9218typedef
9219enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY
9220 {
9221 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0,
9222 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1,
9223 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2,
9224 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18,
9225 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19,
9226 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20,
9227 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21,
9228 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22,
9229 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23,
9230 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24,
9231 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25,
9232 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26,
9233 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27,
9234 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28,
9235 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29,
9236 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30,
9237 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31,
9238 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32
9239 } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY;
9240
9241
9242
9243extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec;
9244extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec;
9245
9246#ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__
9247#define __ID3D12CommandQueue1_INTERFACE_DEFINED__
9248
9249/* interface ID3D12CommandQueue1 */
9250/* [unique][local][object][uuid] */
9251
9252
9253EXTERN_C const IID IID_ID3D12CommandQueue1;
9254
9255#if defined(__cplusplus) && !defined(CINTERFACE)
9256
9257 MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9")
9258 ID3D12CommandQueue1 : public ID3D12CommandQueue
9259 {
9260 public:
9261 virtual HRESULT STDMETHODCALLTYPE SetProcessPriority(
9262 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0;
9263
9264 virtual HRESULT STDMETHODCALLTYPE GetProcessPriority(
9265 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0;
9266
9267 virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority(
9268 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0;
9269
9270 virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority(
9271 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0;
9272
9273 };
9274
9275
9276#else /* C style interface */
9277
9278 typedef struct ID3D12CommandQueue1Vtbl
9279 {
9280 BEGIN_INTERFACE
9281
9282 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9283 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9284 ID3D12CommandQueue1 * This,
9285 REFIID riid,
9286 _COM_Outptr_ void **ppvObject);
9287
9288 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9289 ULONG ( STDMETHODCALLTYPE *AddRef )(
9290 ID3D12CommandQueue1 * This);
9291
9292 DECLSPEC_XFGVIRT(IUnknown, Release)
9293 ULONG ( STDMETHODCALLTYPE *Release )(
9294 ID3D12CommandQueue1 * This);
9295
9296 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9297 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9298 ID3D12CommandQueue1 * This,
9299 _In_ REFGUID guid,
9300 _Inout_ UINT *pDataSize,
9301 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9302
9303 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9304 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9305 ID3D12CommandQueue1 * This,
9306 _In_ REFGUID guid,
9307 _In_ UINT DataSize,
9308 _In_reads_bytes_opt_( DataSize ) const void *pData);
9309
9310 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9311 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9312 ID3D12CommandQueue1 * This,
9313 _In_ REFGUID guid,
9314 _In_opt_ const IUnknown *pData);
9315
9316 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9317 HRESULT ( STDMETHODCALLTYPE *SetName )(
9318 ID3D12CommandQueue1 * This,
9319 _In_z_ LPCWSTR Name);
9320
9321 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
9322 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9323 ID3D12CommandQueue1 * This,
9324 REFIID riid,
9325 _COM_Outptr_opt_ void **ppvDevice);
9326
9327 DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings)
9328 void ( STDMETHODCALLTYPE *UpdateTileMappings )(
9329 ID3D12CommandQueue1 * This,
9330 _In_ ID3D12Resource *pResource,
9331 UINT NumResourceRegions,
9332 _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
9333 _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
9334 _In_opt_ ID3D12Heap *pHeap,
9335 UINT NumRanges,
9336 _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
9337 _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
9338 _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
9339 D3D12_TILE_MAPPING_FLAGS Flags);
9340
9341 DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings)
9342 void ( STDMETHODCALLTYPE *CopyTileMappings )(
9343 ID3D12CommandQueue1 * This,
9344 _In_ ID3D12Resource *pDstResource,
9345 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
9346 _In_ ID3D12Resource *pSrcResource,
9347 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
9348 _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
9349 D3D12_TILE_MAPPING_FLAGS Flags);
9350
9351 DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists)
9352 void ( STDMETHODCALLTYPE *ExecuteCommandLists )(
9353 ID3D12CommandQueue1 * This,
9354 _In_ UINT NumCommandLists,
9355 _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
9356
9357 DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker)
9358 void ( STDMETHODCALLTYPE *SetMarker )(
9359 ID3D12CommandQueue1 * This,
9360 UINT Metadata,
9361 _In_reads_bytes_opt_(Size) const void *pData,
9362 UINT Size);
9363
9364 DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent)
9365 void ( STDMETHODCALLTYPE *BeginEvent )(
9366 ID3D12CommandQueue1 * This,
9367 UINT Metadata,
9368 _In_reads_bytes_opt_(Size) const void *pData,
9369 UINT Size);
9370
9371 DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent)
9372 void ( STDMETHODCALLTYPE *EndEvent )(
9373 ID3D12CommandQueue1 * This);
9374
9375 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal)
9376 HRESULT ( STDMETHODCALLTYPE *Signal )(
9377 ID3D12CommandQueue1 * This,
9378 ID3D12Fence *pFence,
9379 UINT64 Value);
9380
9381 DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait)
9382 HRESULT ( STDMETHODCALLTYPE *Wait )(
9383 ID3D12CommandQueue1 * This,
9384 ID3D12Fence *pFence,
9385 UINT64 Value);
9386
9387 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency)
9388 HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )(
9389 ID3D12CommandQueue1 * This,
9390 _Out_ UINT64 *pFrequency);
9391
9392 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration)
9393 HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )(
9394 ID3D12CommandQueue1 * This,
9395 _Out_ UINT64 *pGpuTimestamp,
9396 _Out_ UINT64 *pCpuTimestamp);
9397
9398 DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc)
9399#if !defined(_WIN32)
9400 D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )(
9401 ID3D12CommandQueue1 * This);
9402
9403#else
9404 D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )(
9405 ID3D12CommandQueue1 * This,
9406 D3D12_COMMAND_QUEUE_DESC * RetVal);
9407
9408#endif
9409
9410 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority)
9411 HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )(
9412 ID3D12CommandQueue1 * This,
9413 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority);
9414
9415 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority)
9416 HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )(
9417 ID3D12CommandQueue1 * This,
9418 D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue);
9419
9420 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority)
9421 HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )(
9422 ID3D12CommandQueue1 * This,
9423 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority);
9424
9425 DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority)
9426 HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )(
9427 ID3D12CommandQueue1 * This,
9428 D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue);
9429
9430 END_INTERFACE
9431 } ID3D12CommandQueue1Vtbl;
9432
9433 interface ID3D12CommandQueue1
9434 {
9435 CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl;
9436 };
9437
9438
9439
9440#ifdef COBJMACROS
9441
9442
9443#define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \
9444 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9445
9446#define ID3D12CommandQueue1_AddRef(This) \
9447 ( (This)->lpVtbl -> AddRef(This) )
9448
9449#define ID3D12CommandQueue1_Release(This) \
9450 ( (This)->lpVtbl -> Release(This) )
9451
9452
9453#define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \
9454 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9455
9456#define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \
9457 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9458
9459#define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \
9460 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9461
9462#define ID3D12CommandQueue1_SetName(This,Name) \
9463 ( (This)->lpVtbl -> SetName(This,Name) )
9464
9465
9466#define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \
9467 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9468
9469
9470
9471#define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \
9472 ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) )
9473
9474#define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \
9475 ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) )
9476
9477#define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \
9478 ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) )
9479
9480#define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \
9481 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
9482
9483#define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \
9484 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
9485
9486#define ID3D12CommandQueue1_EndEvent(This) \
9487 ( (This)->lpVtbl -> EndEvent(This) )
9488
9489#define ID3D12CommandQueue1_Signal(This,pFence,Value) \
9490 ( (This)->lpVtbl -> Signal(This,pFence,Value) )
9491
9492#define ID3D12CommandQueue1_Wait(This,pFence,Value) \
9493 ( (This)->lpVtbl -> Wait(This,pFence,Value) )
9494
9495#define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \
9496 ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) )
9497
9498#define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \
9499 ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) )
9500#if !defined(_WIN32)
9501
9502#define ID3D12CommandQueue1_GetDesc(This) \
9503 ( (This)->lpVtbl -> GetDesc(This) )
9504#else
9505#define ID3D12CommandQueue1_GetDesc(This,RetVal) \
9506 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
9507#endif
9508
9509
9510#define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \
9511 ( (This)->lpVtbl -> SetProcessPriority(This,Priority) )
9512
9513#define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \
9514 ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) )
9515
9516#define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \
9517 ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) )
9518
9519#define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \
9520 ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) )
9521
9522#endif /* COBJMACROS */
9523
9524
9525#endif /* C style interface */
9526
9527
9528
9529
9530#endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */
9531
9532
9533#ifndef __ID3D12Device_INTERFACE_DEFINED__
9534#define __ID3D12Device_INTERFACE_DEFINED__
9535
9536/* interface ID3D12Device */
9537/* [unique][local][object][uuid] */
9538
9539
9540EXTERN_C const IID IID_ID3D12Device;
9541
9542#if defined(__cplusplus) && !defined(CINTERFACE)
9543
9544 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
9545 ID3D12Device : public ID3D12Object
9546 {
9547 public:
9548 virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0;
9549
9550 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
9551 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9552 REFIID riid,
9553 _COM_Outptr_ void **ppCommandQueue) = 0;
9554
9555 virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
9556 _In_ D3D12_COMMAND_LIST_TYPE type,
9557 REFIID riid,
9558 _COM_Outptr_ void **ppCommandAllocator) = 0;
9559
9560 virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
9561 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9562 REFIID riid,
9563 _COM_Outptr_ void **ppPipelineState) = 0;
9564
9565 virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
9566 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9567 REFIID riid,
9568 _COM_Outptr_ void **ppPipelineState) = 0;
9569
9570 virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
9571 _In_ UINT nodeMask,
9572 _In_ D3D12_COMMAND_LIST_TYPE type,
9573 _In_ ID3D12CommandAllocator *pCommandAllocator,
9574 _In_opt_ ID3D12PipelineState *pInitialState,
9575 REFIID riid,
9576 _COM_Outptr_ void **ppCommandList) = 0;
9577
9578 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
9579 D3D12_FEATURE Feature,
9580 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9581 UINT FeatureSupportDataSize) = 0;
9582
9583 virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
9584 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9585 REFIID riid,
9586 _COM_Outptr_ void **ppvHeap) = 0;
9587
9588 virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
9589 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
9590
9591 virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
9592 _In_ UINT nodeMask,
9593 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9594 _In_ SIZE_T blobLengthInBytes,
9595 REFIID riid,
9596 _COM_Outptr_ void **ppvRootSignature) = 0;
9597
9598 virtual void STDMETHODCALLTYPE CreateConstantBufferView(
9599 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9600 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9601
9602 virtual void STDMETHODCALLTYPE CreateShaderResourceView(
9603 _In_opt_ ID3D12Resource *pResource,
9604 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9605 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9606
9607 virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
9608 _In_opt_ ID3D12Resource *pResource,
9609 _In_opt_ ID3D12Resource *pCounterResource,
9610 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9611 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9612
9613 virtual void STDMETHODCALLTYPE CreateRenderTargetView(
9614 _In_opt_ ID3D12Resource *pResource,
9615 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9616 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9617
9618 virtual void STDMETHODCALLTYPE CreateDepthStencilView(
9619 _In_opt_ ID3D12Resource *pResource,
9620 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9621 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9622
9623 virtual void STDMETHODCALLTYPE CreateSampler(
9624 _In_ const D3D12_SAMPLER_DESC *pDesc,
9625 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
9626
9627 virtual void STDMETHODCALLTYPE CopyDescriptors(
9628 _In_ UINT NumDestDescriptorRanges,
9629 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9630 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9631 _In_ UINT NumSrcDescriptorRanges,
9632 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9633 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9634 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9635
9636 virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
9637 _In_ UINT NumDescriptors,
9638 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9639 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9640 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
9641
9642#if defined(_MSC_VER) || !defined(_WIN32)
9643 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
9644 _In_ UINT visibleMask,
9645 _In_ UINT numResourceDescs,
9646 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9647#else
9648 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo(
9649 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9650 _In_ UINT visibleMask,
9651 _In_ UINT numResourceDescs,
9652 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
9653#endif
9654
9655#if defined(_MSC_VER) || !defined(_WIN32)
9656 virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
9657 _In_ UINT nodeMask,
9658 D3D12_HEAP_TYPE heapType) = 0;
9659#else
9660 virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties(
9661 D3D12_HEAP_PROPERTIES * RetVal,
9662 _In_ UINT nodeMask,
9663 D3D12_HEAP_TYPE heapType) = 0;
9664#endif
9665
9666 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
9667 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9668 D3D12_HEAP_FLAGS HeapFlags,
9669 _In_ const D3D12_RESOURCE_DESC *pDesc,
9670 D3D12_RESOURCE_STATES InitialResourceState,
9671 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9672 REFIID riidResource,
9673 _COM_Outptr_opt_ void **ppvResource) = 0;
9674
9675 virtual HRESULT STDMETHODCALLTYPE CreateHeap(
9676 _In_ const D3D12_HEAP_DESC *pDesc,
9677 REFIID riid,
9678 _COM_Outptr_opt_ void **ppvHeap) = 0;
9679
9680 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
9681 _In_ ID3D12Heap *pHeap,
9682 UINT64 HeapOffset,
9683 _In_ const D3D12_RESOURCE_DESC *pDesc,
9684 D3D12_RESOURCE_STATES InitialState,
9685 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9686 REFIID riid,
9687 _COM_Outptr_opt_ void **ppvResource) = 0;
9688
9689 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
9690 _In_ const D3D12_RESOURCE_DESC *pDesc,
9691 D3D12_RESOURCE_STATES InitialState,
9692 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9693 REFIID riid,
9694 _COM_Outptr_opt_ void **ppvResource) = 0;
9695
9696 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
9697 _In_ ID3D12DeviceChild *pObject,
9698 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
9699 DWORD Access,
9700 _In_opt_ LPCWSTR Name,
9701 _Out_ HANDLE *pHandle) = 0;
9702
9703 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
9704 _In_ HANDLE NTHandle,
9705 REFIID riid,
9706 _COM_Outptr_opt_ void **ppvObj) = 0;
9707
9708 virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
9709 _In_ LPCWSTR Name,
9710 DWORD Access,
9711 /* [annotation][out] */
9712 _Out_ HANDLE *pNTHandle) = 0;
9713
9714 virtual HRESULT STDMETHODCALLTYPE MakeResident(
9715 UINT NumObjects,
9716 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9717
9718 virtual HRESULT STDMETHODCALLTYPE Evict(
9719 UINT NumObjects,
9720 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
9721
9722 virtual HRESULT STDMETHODCALLTYPE CreateFence(
9723 UINT64 InitialValue,
9724 D3D12_FENCE_FLAGS Flags,
9725 REFIID riid,
9726 _COM_Outptr_ void **ppFence) = 0;
9727
9728 virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
9729
9730 virtual void STDMETHODCALLTYPE GetCopyableFootprints(
9731 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
9732 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
9733 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
9734 UINT64 BaseOffset,
9735 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
9736 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
9737 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
9738 _Out_opt_ UINT64 *pTotalBytes) = 0;
9739
9740 virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
9741 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
9742 REFIID riid,
9743 _COM_Outptr_opt_ void **ppvHeap) = 0;
9744
9745 virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
9746 BOOL Enable) = 0;
9747
9748 virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
9749 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
9750 _In_opt_ ID3D12RootSignature *pRootSignature,
9751 REFIID riid,
9752 _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
9753
9754 virtual void STDMETHODCALLTYPE GetResourceTiling(
9755 _In_ ID3D12Resource *pTiledResource,
9756 _Out_opt_ UINT *pNumTilesForEntireResource,
9757 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
9758 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
9759 _Inout_opt_ UINT *pNumSubresourceTilings,
9760 _In_ UINT FirstSubresourceTilingToGet,
9761 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0;
9762
9763#if defined(_MSC_VER) || !defined(_WIN32)
9764 virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0;
9765#else
9766 virtual LUID *STDMETHODCALLTYPE GetAdapterLuid(
9767 LUID * RetVal) = 0;
9768#endif
9769
9770 };
9771
9772
9773#else /* C style interface */
9774
9775 typedef struct ID3D12DeviceVtbl
9776 {
9777 BEGIN_INTERFACE
9778
9779 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
9780 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9781 ID3D12Device * This,
9782 REFIID riid,
9783 _COM_Outptr_ void **ppvObject);
9784
9785 DECLSPEC_XFGVIRT(IUnknown, AddRef)
9786 ULONG ( STDMETHODCALLTYPE *AddRef )(
9787 ID3D12Device * This);
9788
9789 DECLSPEC_XFGVIRT(IUnknown, Release)
9790 ULONG ( STDMETHODCALLTYPE *Release )(
9791 ID3D12Device * This);
9792
9793 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
9794 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9795 ID3D12Device * This,
9796 _In_ REFGUID guid,
9797 _Inout_ UINT *pDataSize,
9798 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
9799
9800 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
9801 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9802 ID3D12Device * This,
9803 _In_ REFGUID guid,
9804 _In_ UINT DataSize,
9805 _In_reads_bytes_opt_( DataSize ) const void *pData);
9806
9807 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
9808 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9809 ID3D12Device * This,
9810 _In_ REFGUID guid,
9811 _In_opt_ const IUnknown *pData);
9812
9813 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
9814 HRESULT ( STDMETHODCALLTYPE *SetName )(
9815 ID3D12Device * This,
9816 _In_z_ LPCWSTR Name);
9817
9818 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
9819 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
9820 ID3D12Device * This);
9821
9822 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
9823 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
9824 ID3D12Device * This,
9825 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
9826 REFIID riid,
9827 _COM_Outptr_ void **ppCommandQueue);
9828
9829 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
9830 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
9831 ID3D12Device * This,
9832 _In_ D3D12_COMMAND_LIST_TYPE type,
9833 REFIID riid,
9834 _COM_Outptr_ void **ppCommandAllocator);
9835
9836 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
9837 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
9838 ID3D12Device * This,
9839 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
9840 REFIID riid,
9841 _COM_Outptr_ void **ppPipelineState);
9842
9843 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
9844 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
9845 ID3D12Device * This,
9846 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
9847 REFIID riid,
9848 _COM_Outptr_ void **ppPipelineState);
9849
9850 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
9851 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
9852 ID3D12Device * This,
9853 _In_ UINT nodeMask,
9854 _In_ D3D12_COMMAND_LIST_TYPE type,
9855 _In_ ID3D12CommandAllocator *pCommandAllocator,
9856 _In_opt_ ID3D12PipelineState *pInitialState,
9857 REFIID riid,
9858 _COM_Outptr_ void **ppCommandList);
9859
9860 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
9861 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9862 ID3D12Device * This,
9863 D3D12_FEATURE Feature,
9864 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
9865 UINT FeatureSupportDataSize);
9866
9867 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
9868 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
9869 ID3D12Device * This,
9870 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
9871 REFIID riid,
9872 _COM_Outptr_ void **ppvHeap);
9873
9874 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
9875 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
9876 ID3D12Device * This,
9877 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
9878
9879 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
9880 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
9881 ID3D12Device * This,
9882 _In_ UINT nodeMask,
9883 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
9884 _In_ SIZE_T blobLengthInBytes,
9885 REFIID riid,
9886 _COM_Outptr_ void **ppvRootSignature);
9887
9888 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
9889 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
9890 ID3D12Device * This,
9891 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
9892 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9893
9894 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
9895 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9896 ID3D12Device * This,
9897 _In_opt_ ID3D12Resource *pResource,
9898 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
9899 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9900
9901 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
9902 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9903 ID3D12Device * This,
9904 _In_opt_ ID3D12Resource *pResource,
9905 _In_opt_ ID3D12Resource *pCounterResource,
9906 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9907 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9908
9909 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
9910 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9911 ID3D12Device * This,
9912 _In_opt_ ID3D12Resource *pResource,
9913 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
9914 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9915
9916 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
9917 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9918 ID3D12Device * This,
9919 _In_opt_ ID3D12Resource *pResource,
9920 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
9921 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9922
9923 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
9924 void ( STDMETHODCALLTYPE *CreateSampler )(
9925 ID3D12Device * This,
9926 _In_ const D3D12_SAMPLER_DESC *pDesc,
9927 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
9928
9929 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
9930 void ( STDMETHODCALLTYPE *CopyDescriptors )(
9931 ID3D12Device * This,
9932 _In_ UINT NumDestDescriptorRanges,
9933 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
9934 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
9935 _In_ UINT NumSrcDescriptorRanges,
9936 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
9937 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
9938 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9939
9940 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
9941 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
9942 ID3D12Device * This,
9943 _In_ UINT NumDescriptors,
9944 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
9945 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
9946 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
9947
9948 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
9949#if !defined(_WIN32)
9950 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9951 ID3D12Device * This,
9952 _In_ UINT visibleMask,
9953 _In_ UINT numResourceDescs,
9954 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9955
9956#else
9957 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
9958 ID3D12Device * This,
9959 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
9960 _In_ UINT visibleMask,
9961 _In_ UINT numResourceDescs,
9962 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
9963
9964#endif
9965
9966 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
9967#if !defined(_WIN32)
9968 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9969 ID3D12Device * This,
9970 _In_ UINT nodeMask,
9971 D3D12_HEAP_TYPE heapType);
9972
9973#else
9974 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
9975 ID3D12Device * This,
9976 D3D12_HEAP_PROPERTIES * RetVal,
9977 _In_ UINT nodeMask,
9978 D3D12_HEAP_TYPE heapType);
9979
9980#endif
9981
9982 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
9983 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
9984 ID3D12Device * This,
9985 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
9986 D3D12_HEAP_FLAGS HeapFlags,
9987 _In_ const D3D12_RESOURCE_DESC *pDesc,
9988 D3D12_RESOURCE_STATES InitialResourceState,
9989 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
9990 REFIID riidResource,
9991 _COM_Outptr_opt_ void **ppvResource);
9992
9993 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
9994 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
9995 ID3D12Device * This,
9996 _In_ const D3D12_HEAP_DESC *pDesc,
9997 REFIID riid,
9998 _COM_Outptr_opt_ void **ppvHeap);
9999
10000 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10001 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10002 ID3D12Device * This,
10003 _In_ ID3D12Heap *pHeap,
10004 UINT64 HeapOffset,
10005 _In_ const D3D12_RESOURCE_DESC *pDesc,
10006 D3D12_RESOURCE_STATES InitialState,
10007 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10008 REFIID riid,
10009 _COM_Outptr_opt_ void **ppvResource);
10010
10011 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10012 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10013 ID3D12Device * This,
10014 _In_ const D3D12_RESOURCE_DESC *pDesc,
10015 D3D12_RESOURCE_STATES InitialState,
10016 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10017 REFIID riid,
10018 _COM_Outptr_opt_ void **ppvResource);
10019
10020 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10021 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10022 ID3D12Device * This,
10023 _In_ ID3D12DeviceChild *pObject,
10024 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10025 DWORD Access,
10026 _In_opt_ LPCWSTR Name,
10027 _Out_ HANDLE *pHandle);
10028
10029 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10030 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10031 ID3D12Device * This,
10032 _In_ HANDLE NTHandle,
10033 REFIID riid,
10034 _COM_Outptr_opt_ void **ppvObj);
10035
10036 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10037 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10038 ID3D12Device * This,
10039 _In_ LPCWSTR Name,
10040 DWORD Access,
10041 /* [annotation][out] */
10042 _Out_ HANDLE *pNTHandle);
10043
10044 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
10045 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
10046 ID3D12Device * This,
10047 UINT NumObjects,
10048 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10049
10050 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
10051 HRESULT ( STDMETHODCALLTYPE *Evict )(
10052 ID3D12Device * This,
10053 UINT NumObjects,
10054 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
10055
10056 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
10057 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
10058 ID3D12Device * This,
10059 UINT64 InitialValue,
10060 D3D12_FENCE_FLAGS Flags,
10061 REFIID riid,
10062 _COM_Outptr_ void **ppFence);
10063
10064 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
10065 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
10066 ID3D12Device * This);
10067
10068 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
10069 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
10070 ID3D12Device * This,
10071 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
10072 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
10073 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
10074 UINT64 BaseOffset,
10075 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
10076 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
10077 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
10078 _Out_opt_ UINT64 *pTotalBytes);
10079
10080 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
10081 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
10082 ID3D12Device * This,
10083 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
10084 REFIID riid,
10085 _COM_Outptr_opt_ void **ppvHeap);
10086
10087 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
10088 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
10089 ID3D12Device * This,
10090 BOOL Enable);
10091
10092 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
10093 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
10094 ID3D12Device * This,
10095 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
10096 _In_opt_ ID3D12RootSignature *pRootSignature,
10097 REFIID riid,
10098 _COM_Outptr_opt_ void **ppvCommandSignature);
10099
10100 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
10101 void ( STDMETHODCALLTYPE *GetResourceTiling )(
10102 ID3D12Device * This,
10103 _In_ ID3D12Resource *pTiledResource,
10104 _Out_opt_ UINT *pNumTilesForEntireResource,
10105 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
10106 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
10107 _Inout_opt_ UINT *pNumSubresourceTilings,
10108 _In_ UINT FirstSubresourceTilingToGet,
10109 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
10110
10111 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
10112#if !defined(_WIN32)
10113 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
10114 ID3D12Device * This);
10115
10116#else
10117 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
10118 ID3D12Device * This,
10119 LUID * RetVal);
10120
10121#endif
10122
10123 END_INTERFACE
10124 } ID3D12DeviceVtbl;
10125
10126 interface ID3D12Device
10127 {
10128 CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
10129 };
10130
10131
10132
10133#ifdef COBJMACROS
10134
10135
10136#define ID3D12Device_QueryInterface(This,riid,ppvObject) \
10137 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10138
10139#define ID3D12Device_AddRef(This) \
10140 ( (This)->lpVtbl -> AddRef(This) )
10141
10142#define ID3D12Device_Release(This) \
10143 ( (This)->lpVtbl -> Release(This) )
10144
10145
10146#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \
10147 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10148
10149#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \
10150 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10151
10152#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \
10153 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10154
10155#define ID3D12Device_SetName(This,Name) \
10156 ( (This)->lpVtbl -> SetName(This,Name) )
10157
10158
10159#define ID3D12Device_GetNodeCount(This) \
10160 ( (This)->lpVtbl -> GetNodeCount(This) )
10161
10162#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
10163 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
10164
10165#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
10166 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
10167
10168#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
10169 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
10170
10171#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
10172 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
10173
10174#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
10175 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
10176
10177#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
10178 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
10179
10180#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
10181 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
10182
10183#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
10184 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
10185
10186#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
10187 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
10188
10189#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \
10190 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
10191
10192#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
10193 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
10194
10195#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
10196 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
10197
10198#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
10199 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
10200
10201#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
10202 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
10203
10204#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \
10205 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
10206
10207#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
10208 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
10209
10210#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
10211 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
10212#if !defined(_WIN32)
10213
10214#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
10215 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
10216#else
10217#define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
10218 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
10219#endif
10220#if !defined(_WIN32)
10221
10222#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \
10223 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
10224#else
10225#define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
10226 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
10227#endif
10228
10229#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
10230 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
10231
10232#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
10233 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
10234
10235#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10236 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10237
10238#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
10239 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
10240
10241#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
10242 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
10243
10244#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
10245 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
10246
10247#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
10248 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
10249
10250#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \
10251 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
10252
10253#define ID3D12Device_Evict(This,NumObjects,ppObjects) \
10254 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
10255
10256#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \
10257 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
10258
10259#define ID3D12Device_GetDeviceRemovedReason(This) \
10260 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10261
10262#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
10263 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
10264
10265#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
10266 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
10267
10268#define ID3D12Device_SetStablePowerState(This,Enable) \
10269 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
10270
10271#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
10272 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
10273
10274#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
10275 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
10276#if !defined(_WIN32)
10277
10278#define ID3D12Device_GetAdapterLuid(This) \
10279 ( (This)->lpVtbl -> GetAdapterLuid(This) )
10280#else
10281#define ID3D12Device_GetAdapterLuid(This,RetVal) \
10282 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
10283#endif
10284
10285#endif /* COBJMACROS */
10286
10287
10288#endif /* C style interface */
10289
10290
10291
10292
10293#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
10294
10295
10296#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
10297#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
10298
10299/* interface ID3D12PipelineLibrary */
10300/* [unique][local][object][uuid] */
10301
10302
10303EXTERN_C const IID IID_ID3D12PipelineLibrary;
10304
10305#if defined(__cplusplus) && !defined(CINTERFACE)
10306
10307 MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
10308 ID3D12PipelineLibrary : public ID3D12DeviceChild
10309 {
10310 public:
10311 virtual HRESULT STDMETHODCALLTYPE StorePipeline(
10312 _In_opt_ LPCWSTR pName,
10313 _In_ ID3D12PipelineState *pPipeline) = 0;
10314
10315 virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
10316 _In_ LPCWSTR pName,
10317 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10318 REFIID riid,
10319 _COM_Outptr_ void **ppPipelineState) = 0;
10320
10321 virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
10322 _In_ LPCWSTR pName,
10323 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10324 REFIID riid,
10325 _COM_Outptr_ void **ppPipelineState) = 0;
10326
10327 virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
10328
10329 virtual HRESULT STDMETHODCALLTYPE Serialize(
10330 _Out_writes_(DataSizeInBytes) void *pData,
10331 SIZE_T DataSizeInBytes) = 0;
10332
10333 };
10334
10335
10336#else /* C style interface */
10337
10338 typedef struct ID3D12PipelineLibraryVtbl
10339 {
10340 BEGIN_INTERFACE
10341
10342 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10343 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10344 ID3D12PipelineLibrary * This,
10345 REFIID riid,
10346 _COM_Outptr_ void **ppvObject);
10347
10348 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10349 ULONG ( STDMETHODCALLTYPE *AddRef )(
10350 ID3D12PipelineLibrary * This);
10351
10352 DECLSPEC_XFGVIRT(IUnknown, Release)
10353 ULONG ( STDMETHODCALLTYPE *Release )(
10354 ID3D12PipelineLibrary * This);
10355
10356 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10357 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10358 ID3D12PipelineLibrary * This,
10359 _In_ REFGUID guid,
10360 _Inout_ UINT *pDataSize,
10361 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10362
10363 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10364 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10365 ID3D12PipelineLibrary * This,
10366 _In_ REFGUID guid,
10367 _In_ UINT DataSize,
10368 _In_reads_bytes_opt_( DataSize ) const void *pData);
10369
10370 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10371 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10372 ID3D12PipelineLibrary * This,
10373 _In_ REFGUID guid,
10374 _In_opt_ const IUnknown *pData);
10375
10376 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10377 HRESULT ( STDMETHODCALLTYPE *SetName )(
10378 ID3D12PipelineLibrary * This,
10379 _In_z_ LPCWSTR Name);
10380
10381 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
10382 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
10383 ID3D12PipelineLibrary * This,
10384 REFIID riid,
10385 _COM_Outptr_opt_ void **ppvDevice);
10386
10387 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
10388 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
10389 ID3D12PipelineLibrary * This,
10390 _In_opt_ LPCWSTR pName,
10391 _In_ ID3D12PipelineState *pPipeline);
10392
10393 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
10394 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
10395 ID3D12PipelineLibrary * This,
10396 _In_ LPCWSTR pName,
10397 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10398 REFIID riid,
10399 _COM_Outptr_ void **ppPipelineState);
10400
10401 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
10402 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
10403 ID3D12PipelineLibrary * This,
10404 _In_ LPCWSTR pName,
10405 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10406 REFIID riid,
10407 _COM_Outptr_ void **ppPipelineState);
10408
10409 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
10410 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
10411 ID3D12PipelineLibrary * This);
10412
10413 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
10414 HRESULT ( STDMETHODCALLTYPE *Serialize )(
10415 ID3D12PipelineLibrary * This,
10416 _Out_writes_(DataSizeInBytes) void *pData,
10417 SIZE_T DataSizeInBytes);
10418
10419 END_INTERFACE
10420 } ID3D12PipelineLibraryVtbl;
10421
10422 interface ID3D12PipelineLibrary
10423 {
10424 CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
10425 };
10426
10427
10428
10429#ifdef COBJMACROS
10430
10431
10432#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
10433 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10434
10435#define ID3D12PipelineLibrary_AddRef(This) \
10436 ( (This)->lpVtbl -> AddRef(This) )
10437
10438#define ID3D12PipelineLibrary_Release(This) \
10439 ( (This)->lpVtbl -> Release(This) )
10440
10441
10442#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
10443 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10444
10445#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
10446 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10447
10448#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
10449 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10450
10451#define ID3D12PipelineLibrary_SetName(This,Name) \
10452 ( (This)->lpVtbl -> SetName(This,Name) )
10453
10454
10455#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
10456 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
10457
10458
10459#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
10460 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
10461
10462#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
10463 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
10464
10465#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
10466 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
10467
10468#define ID3D12PipelineLibrary_GetSerializedSize(This) \
10469 ( (This)->lpVtbl -> GetSerializedSize(This) )
10470
10471#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
10472 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
10473
10474#endif /* COBJMACROS */
10475
10476
10477#endif /* C style interface */
10478
10479
10480
10481
10482#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
10483
10484
10485#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
10486#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__
10487
10488/* interface ID3D12PipelineLibrary1 */
10489/* [unique][local][object][uuid] */
10490
10491
10492EXTERN_C const IID IID_ID3D12PipelineLibrary1;
10493
10494#if defined(__cplusplus) && !defined(CINTERFACE)
10495
10496 MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3")
10497 ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary
10498 {
10499 public:
10500 virtual HRESULT STDMETHODCALLTYPE LoadPipeline(
10501 _In_ LPCWSTR pName,
10502 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10503 REFIID riid,
10504 _COM_Outptr_ void **ppPipelineState) = 0;
10505
10506 };
10507
10508
10509#else /* C style interface */
10510
10511 typedef struct ID3D12PipelineLibrary1Vtbl
10512 {
10513 BEGIN_INTERFACE
10514
10515 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10516 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10517 ID3D12PipelineLibrary1 * This,
10518 REFIID riid,
10519 _COM_Outptr_ void **ppvObject);
10520
10521 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10522 ULONG ( STDMETHODCALLTYPE *AddRef )(
10523 ID3D12PipelineLibrary1 * This);
10524
10525 DECLSPEC_XFGVIRT(IUnknown, Release)
10526 ULONG ( STDMETHODCALLTYPE *Release )(
10527 ID3D12PipelineLibrary1 * This);
10528
10529 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10530 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10531 ID3D12PipelineLibrary1 * This,
10532 _In_ REFGUID guid,
10533 _Inout_ UINT *pDataSize,
10534 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10535
10536 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10537 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10538 ID3D12PipelineLibrary1 * This,
10539 _In_ REFGUID guid,
10540 _In_ UINT DataSize,
10541 _In_reads_bytes_opt_( DataSize ) const void *pData);
10542
10543 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10544 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10545 ID3D12PipelineLibrary1 * This,
10546 _In_ REFGUID guid,
10547 _In_opt_ const IUnknown *pData);
10548
10549 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10550 HRESULT ( STDMETHODCALLTYPE *SetName )(
10551 ID3D12PipelineLibrary1 * This,
10552 _In_z_ LPCWSTR Name);
10553
10554 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
10555 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
10556 ID3D12PipelineLibrary1 * This,
10557 REFIID riid,
10558 _COM_Outptr_opt_ void **ppvDevice);
10559
10560 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline)
10561 HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
10562 ID3D12PipelineLibrary1 * This,
10563 _In_opt_ LPCWSTR pName,
10564 _In_ ID3D12PipelineState *pPipeline);
10565
10566 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline)
10567 HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
10568 ID3D12PipelineLibrary1 * This,
10569 _In_ LPCWSTR pName,
10570 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10571 REFIID riid,
10572 _COM_Outptr_ void **ppPipelineState);
10573
10574 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline)
10575 HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
10576 ID3D12PipelineLibrary1 * This,
10577 _In_ LPCWSTR pName,
10578 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10579 REFIID riid,
10580 _COM_Outptr_ void **ppPipelineState);
10581
10582 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize)
10583 SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
10584 ID3D12PipelineLibrary1 * This);
10585
10586 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize)
10587 HRESULT ( STDMETHODCALLTYPE *Serialize )(
10588 ID3D12PipelineLibrary1 * This,
10589 _Out_writes_(DataSizeInBytes) void *pData,
10590 SIZE_T DataSizeInBytes);
10591
10592 DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline)
10593 HRESULT ( STDMETHODCALLTYPE *LoadPipeline )(
10594 ID3D12PipelineLibrary1 * This,
10595 _In_ LPCWSTR pName,
10596 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
10597 REFIID riid,
10598 _COM_Outptr_ void **ppPipelineState);
10599
10600 END_INTERFACE
10601 } ID3D12PipelineLibrary1Vtbl;
10602
10603 interface ID3D12PipelineLibrary1
10604 {
10605 CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl;
10606 };
10607
10608
10609
10610#ifdef COBJMACROS
10611
10612
10613#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \
10614 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10615
10616#define ID3D12PipelineLibrary1_AddRef(This) \
10617 ( (This)->lpVtbl -> AddRef(This) )
10618
10619#define ID3D12PipelineLibrary1_Release(This) \
10620 ( (This)->lpVtbl -> Release(This) )
10621
10622
10623#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \
10624 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
10625
10626#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \
10627 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
10628
10629#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \
10630 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
10631
10632#define ID3D12PipelineLibrary1_SetName(This,Name) \
10633 ( (This)->lpVtbl -> SetName(This,Name) )
10634
10635
10636#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \
10637 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
10638
10639
10640#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \
10641 ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
10642
10643#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
10644 ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
10645
10646#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
10647 ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
10648
10649#define ID3D12PipelineLibrary1_GetSerializedSize(This) \
10650 ( (This)->lpVtbl -> GetSerializedSize(This) )
10651
10652#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \
10653 ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
10654
10655
10656#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \
10657 ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) )
10658
10659#endif /* COBJMACROS */
10660
10661
10662#endif /* C style interface */
10663
10664
10665
10666
10667#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */
10668
10669
10670/* interface __MIDL_itf_d3d12_0000_0025 */
10671/* [local] */
10672
10673typedef
10674enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
10675 {
10676 D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
10677 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
10678 D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
10679 } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
10680
10681DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )
10682typedef
10683enum D3D12_RESIDENCY_PRIORITY
10684 {
10685 D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
10686 D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
10687 D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
10688 D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
10689 D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
10690 } D3D12_RESIDENCY_PRIORITY;
10691
10692
10693
10694extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec;
10695extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec;
10696
10697#ifndef __ID3D12Device1_INTERFACE_DEFINED__
10698#define __ID3D12Device1_INTERFACE_DEFINED__
10699
10700/* interface ID3D12Device1 */
10701/* [unique][local][object][uuid] */
10702
10703
10704EXTERN_C const IID IID_ID3D12Device1;
10705
10706#if defined(__cplusplus) && !defined(CINTERFACE)
10707
10708 MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
10709 ID3D12Device1 : public ID3D12Device
10710 {
10711 public:
10712 virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
10713 _In_reads_(BlobLength) const void *pLibraryBlob,
10714 SIZE_T BlobLength,
10715 REFIID riid,
10716 _COM_Outptr_ void **ppPipelineLibrary) = 0;
10717
10718 virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
10719 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
10720 _In_reads_(NumFences) const UINT64 *pFenceValues,
10721 UINT NumFences,
10722 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
10723 HANDLE hEvent) = 0;
10724
10725 virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
10726 UINT NumObjects,
10727 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
10728 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
10729
10730 };
10731
10732
10733#else /* C style interface */
10734
10735 typedef struct ID3D12Device1Vtbl
10736 {
10737 BEGIN_INTERFACE
10738
10739 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
10740 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10741 ID3D12Device1 * This,
10742 REFIID riid,
10743 _COM_Outptr_ void **ppvObject);
10744
10745 DECLSPEC_XFGVIRT(IUnknown, AddRef)
10746 ULONG ( STDMETHODCALLTYPE *AddRef )(
10747 ID3D12Device1 * This);
10748
10749 DECLSPEC_XFGVIRT(IUnknown, Release)
10750 ULONG ( STDMETHODCALLTYPE *Release )(
10751 ID3D12Device1 * This);
10752
10753 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
10754 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
10755 ID3D12Device1 * This,
10756 _In_ REFGUID guid,
10757 _Inout_ UINT *pDataSize,
10758 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
10759
10760 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
10761 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
10762 ID3D12Device1 * This,
10763 _In_ REFGUID guid,
10764 _In_ UINT DataSize,
10765 _In_reads_bytes_opt_( DataSize ) const void *pData);
10766
10767 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
10768 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
10769 ID3D12Device1 * This,
10770 _In_ REFGUID guid,
10771 _In_opt_ const IUnknown *pData);
10772
10773 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
10774 HRESULT ( STDMETHODCALLTYPE *SetName )(
10775 ID3D12Device1 * This,
10776 _In_z_ LPCWSTR Name);
10777
10778 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
10779 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
10780 ID3D12Device1 * This);
10781
10782 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
10783 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
10784 ID3D12Device1 * This,
10785 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
10786 REFIID riid,
10787 _COM_Outptr_ void **ppCommandQueue);
10788
10789 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
10790 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
10791 ID3D12Device1 * This,
10792 _In_ D3D12_COMMAND_LIST_TYPE type,
10793 REFIID riid,
10794 _COM_Outptr_ void **ppCommandAllocator);
10795
10796 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
10797 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
10798 ID3D12Device1 * This,
10799 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
10800 REFIID riid,
10801 _COM_Outptr_ void **ppPipelineState);
10802
10803 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
10804 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
10805 ID3D12Device1 * This,
10806 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
10807 REFIID riid,
10808 _COM_Outptr_ void **ppPipelineState);
10809
10810 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
10811 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
10812 ID3D12Device1 * This,
10813 _In_ UINT nodeMask,
10814 _In_ D3D12_COMMAND_LIST_TYPE type,
10815 _In_ ID3D12CommandAllocator *pCommandAllocator,
10816 _In_opt_ ID3D12PipelineState *pInitialState,
10817 REFIID riid,
10818 _COM_Outptr_ void **ppCommandList);
10819
10820 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
10821 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
10822 ID3D12Device1 * This,
10823 D3D12_FEATURE Feature,
10824 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
10825 UINT FeatureSupportDataSize);
10826
10827 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
10828 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
10829 ID3D12Device1 * This,
10830 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
10831 REFIID riid,
10832 _COM_Outptr_ void **ppvHeap);
10833
10834 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
10835 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
10836 ID3D12Device1 * This,
10837 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
10838
10839 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
10840 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
10841 ID3D12Device1 * This,
10842 _In_ UINT nodeMask,
10843 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
10844 _In_ SIZE_T blobLengthInBytes,
10845 REFIID riid,
10846 _COM_Outptr_ void **ppvRootSignature);
10847
10848 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
10849 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
10850 ID3D12Device1 * This,
10851 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
10852 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10853
10854 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
10855 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
10856 ID3D12Device1 * This,
10857 _In_opt_ ID3D12Resource *pResource,
10858 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
10859 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10860
10861 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
10862 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
10863 ID3D12Device1 * This,
10864 _In_opt_ ID3D12Resource *pResource,
10865 _In_opt_ ID3D12Resource *pCounterResource,
10866 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
10867 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10868
10869 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
10870 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
10871 ID3D12Device1 * This,
10872 _In_opt_ ID3D12Resource *pResource,
10873 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
10874 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10875
10876 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
10877 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
10878 ID3D12Device1 * This,
10879 _In_opt_ ID3D12Resource *pResource,
10880 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
10881 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10882
10883 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
10884 void ( STDMETHODCALLTYPE *CreateSampler )(
10885 ID3D12Device1 * This,
10886 _In_ const D3D12_SAMPLER_DESC *pDesc,
10887 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
10888
10889 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
10890 void ( STDMETHODCALLTYPE *CopyDescriptors )(
10891 ID3D12Device1 * This,
10892 _In_ UINT NumDestDescriptorRanges,
10893 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
10894 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
10895 _In_ UINT NumSrcDescriptorRanges,
10896 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
10897 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
10898 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10899
10900 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
10901 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
10902 ID3D12Device1 * This,
10903 _In_ UINT NumDescriptors,
10904 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
10905 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
10906 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
10907
10908 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
10909#if !defined(_WIN32)
10910 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10911 ID3D12Device1 * This,
10912 _In_ UINT visibleMask,
10913 _In_ UINT numResourceDescs,
10914 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10915
10916#else
10917 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
10918 ID3D12Device1 * This,
10919 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
10920 _In_ UINT visibleMask,
10921 _In_ UINT numResourceDescs,
10922 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
10923
10924#endif
10925
10926 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
10927#if !defined(_WIN32)
10928 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10929 ID3D12Device1 * This,
10930 _In_ UINT nodeMask,
10931 D3D12_HEAP_TYPE heapType);
10932
10933#else
10934 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
10935 ID3D12Device1 * This,
10936 D3D12_HEAP_PROPERTIES * RetVal,
10937 _In_ UINT nodeMask,
10938 D3D12_HEAP_TYPE heapType);
10939
10940#endif
10941
10942 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
10943 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
10944 ID3D12Device1 * This,
10945 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
10946 D3D12_HEAP_FLAGS HeapFlags,
10947 _In_ const D3D12_RESOURCE_DESC *pDesc,
10948 D3D12_RESOURCE_STATES InitialResourceState,
10949 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10950 REFIID riidResource,
10951 _COM_Outptr_opt_ void **ppvResource);
10952
10953 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
10954 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
10955 ID3D12Device1 * This,
10956 _In_ const D3D12_HEAP_DESC *pDesc,
10957 REFIID riid,
10958 _COM_Outptr_opt_ void **ppvHeap);
10959
10960 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
10961 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
10962 ID3D12Device1 * This,
10963 _In_ ID3D12Heap *pHeap,
10964 UINT64 HeapOffset,
10965 _In_ const D3D12_RESOURCE_DESC *pDesc,
10966 D3D12_RESOURCE_STATES InitialState,
10967 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10968 REFIID riid,
10969 _COM_Outptr_opt_ void **ppvResource);
10970
10971 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
10972 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
10973 ID3D12Device1 * This,
10974 _In_ const D3D12_RESOURCE_DESC *pDesc,
10975 D3D12_RESOURCE_STATES InitialState,
10976 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
10977 REFIID riid,
10978 _COM_Outptr_opt_ void **ppvResource);
10979
10980 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
10981 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
10982 ID3D12Device1 * This,
10983 _In_ ID3D12DeviceChild *pObject,
10984 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
10985 DWORD Access,
10986 _In_opt_ LPCWSTR Name,
10987 _Out_ HANDLE *pHandle);
10988
10989 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
10990 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
10991 ID3D12Device1 * This,
10992 _In_ HANDLE NTHandle,
10993 REFIID riid,
10994 _COM_Outptr_opt_ void **ppvObj);
10995
10996 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
10997 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
10998 ID3D12Device1 * This,
10999 _In_ LPCWSTR Name,
11000 DWORD Access,
11001 /* [annotation][out] */
11002 _Out_ HANDLE *pNTHandle);
11003
11004 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11005 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11006 ID3D12Device1 * This,
11007 UINT NumObjects,
11008 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11009
11010 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11011 HRESULT ( STDMETHODCALLTYPE *Evict )(
11012 ID3D12Device1 * This,
11013 UINT NumObjects,
11014 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11015
11016 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11017 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11018 ID3D12Device1 * This,
11019 UINT64 InitialValue,
11020 D3D12_FENCE_FLAGS Flags,
11021 REFIID riid,
11022 _COM_Outptr_ void **ppFence);
11023
11024 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11025 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11026 ID3D12Device1 * This);
11027
11028 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11029 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11030 ID3D12Device1 * This,
11031 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11032 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11033 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11034 UINT64 BaseOffset,
11035 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11036 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11037 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11038 _Out_opt_ UINT64 *pTotalBytes);
11039
11040 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11041 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11042 ID3D12Device1 * This,
11043 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11044 REFIID riid,
11045 _COM_Outptr_opt_ void **ppvHeap);
11046
11047 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11048 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11049 ID3D12Device1 * This,
11050 BOOL Enable);
11051
11052 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11053 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11054 ID3D12Device1 * This,
11055 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11056 _In_opt_ ID3D12RootSignature *pRootSignature,
11057 REFIID riid,
11058 _COM_Outptr_opt_ void **ppvCommandSignature);
11059
11060 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11061 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11062 ID3D12Device1 * This,
11063 _In_ ID3D12Resource *pTiledResource,
11064 _Out_opt_ UINT *pNumTilesForEntireResource,
11065 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11066 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11067 _Inout_opt_ UINT *pNumSubresourceTilings,
11068 _In_ UINT FirstSubresourceTilingToGet,
11069 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11070
11071 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11072#if !defined(_WIN32)
11073 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11074 ID3D12Device1 * This);
11075
11076#else
11077 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11078 ID3D12Device1 * This,
11079 LUID * RetVal);
11080
11081#endif
11082
11083 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11084 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11085 ID3D12Device1 * This,
11086 _In_reads_(BlobLength) const void *pLibraryBlob,
11087 SIZE_T BlobLength,
11088 REFIID riid,
11089 _COM_Outptr_ void **ppPipelineLibrary);
11090
11091 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11092 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11093 ID3D12Device1 * This,
11094 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11095 _In_reads_(NumFences) const UINT64 *pFenceValues,
11096 UINT NumFences,
11097 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11098 HANDLE hEvent);
11099
11100 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11101 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11102 ID3D12Device1 * This,
11103 UINT NumObjects,
11104 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11105 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11106
11107 END_INTERFACE
11108 } ID3D12Device1Vtbl;
11109
11110 interface ID3D12Device1
11111 {
11112 CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
11113 };
11114
11115
11116
11117#ifdef COBJMACROS
11118
11119
11120#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
11121 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11122
11123#define ID3D12Device1_AddRef(This) \
11124 ( (This)->lpVtbl -> AddRef(This) )
11125
11126#define ID3D12Device1_Release(This) \
11127 ( (This)->lpVtbl -> Release(This) )
11128
11129
11130#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
11131 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11132
11133#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
11134 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11135
11136#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
11137 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11138
11139#define ID3D12Device1_SetName(This,Name) \
11140 ( (This)->lpVtbl -> SetName(This,Name) )
11141
11142
11143#define ID3D12Device1_GetNodeCount(This) \
11144 ( (This)->lpVtbl -> GetNodeCount(This) )
11145
11146#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11147 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11148
11149#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11150 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11151
11152#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11153 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11154
11155#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11156 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11157
11158#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11159 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11160
11161#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11162 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11163
11164#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11165 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11166
11167#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11168 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11169
11170#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11171 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11172
11173#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11174 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11175
11176#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11177 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11178
11179#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11180 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11181
11182#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11183 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11184
11185#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11186 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11187
11188#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
11189 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11190
11191#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11192 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11193
11194#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11195 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11196#if !defined(_WIN32)
11197
11198#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11199 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11200#else
11201#define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11202 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11203#endif
11204#if !defined(_WIN32)
11205
11206#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \
11207 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11208#else
11209#define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11210 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11211#endif
11212
11213#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11214 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11215
11216#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
11217 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11218
11219#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11220 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11221
11222#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11223 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11224
11225#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11226 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11227
11228#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11229 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11230
11231#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11232 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11233
11234#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
11235 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11236
11237#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
11238 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11239
11240#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11241 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11242
11243#define ID3D12Device1_GetDeviceRemovedReason(This) \
11244 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11245
11246#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11247 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11248
11249#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11250 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11251
11252#define ID3D12Device1_SetStablePowerState(This,Enable) \
11253 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11254
11255#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11256 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11257
11258#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11259 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11260#if !defined(_WIN32)
11261
11262#define ID3D12Device1_GetAdapterLuid(This) \
11263 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11264#else
11265#define ID3D12Device1_GetAdapterLuid(This,RetVal) \
11266 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11267#endif
11268
11269
11270#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11271 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11272
11273#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11274 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11275
11276#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11277 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11278
11279#endif /* COBJMACROS */
11280
11281
11282#endif /* C style interface */
11283
11284
11285
11286
11287#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
11288
11289
11290#ifndef __ID3D12Device2_INTERFACE_DEFINED__
11291#define __ID3D12Device2_INTERFACE_DEFINED__
11292
11293/* interface ID3D12Device2 */
11294/* [unique][local][object][uuid] */
11295
11296
11297EXTERN_C const IID IID_ID3D12Device2;
11298
11299#if defined(__cplusplus) && !defined(CINTERFACE)
11300
11301 MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328")
11302 ID3D12Device2 : public ID3D12Device1
11303 {
11304 public:
11305 virtual HRESULT STDMETHODCALLTYPE CreatePipelineState(
11306 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11307 REFIID riid,
11308 _COM_Outptr_ void **ppPipelineState) = 0;
11309
11310 };
11311
11312
11313#else /* C style interface */
11314
11315 typedef struct ID3D12Device2Vtbl
11316 {
11317 BEGIN_INTERFACE
11318
11319 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11320 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11321 ID3D12Device2 * This,
11322 REFIID riid,
11323 _COM_Outptr_ void **ppvObject);
11324
11325 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11326 ULONG ( STDMETHODCALLTYPE *AddRef )(
11327 ID3D12Device2 * This);
11328
11329 DECLSPEC_XFGVIRT(IUnknown, Release)
11330 ULONG ( STDMETHODCALLTYPE *Release )(
11331 ID3D12Device2 * This);
11332
11333 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11334 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11335 ID3D12Device2 * This,
11336 _In_ REFGUID guid,
11337 _Inout_ UINT *pDataSize,
11338 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11339
11340 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11341 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11342 ID3D12Device2 * This,
11343 _In_ REFGUID guid,
11344 _In_ UINT DataSize,
11345 _In_reads_bytes_opt_( DataSize ) const void *pData);
11346
11347 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11348 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11349 ID3D12Device2 * This,
11350 _In_ REFGUID guid,
11351 _In_opt_ const IUnknown *pData);
11352
11353 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11354 HRESULT ( STDMETHODCALLTYPE *SetName )(
11355 ID3D12Device2 * This,
11356 _In_z_ LPCWSTR Name);
11357
11358 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11359 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11360 ID3D12Device2 * This);
11361
11362 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11363 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11364 ID3D12Device2 * This,
11365 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11366 REFIID riid,
11367 _COM_Outptr_ void **ppCommandQueue);
11368
11369 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11370 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11371 ID3D12Device2 * This,
11372 _In_ D3D12_COMMAND_LIST_TYPE type,
11373 REFIID riid,
11374 _COM_Outptr_ void **ppCommandAllocator);
11375
11376 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
11377 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
11378 ID3D12Device2 * This,
11379 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
11380 REFIID riid,
11381 _COM_Outptr_ void **ppPipelineState);
11382
11383 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
11384 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
11385 ID3D12Device2 * This,
11386 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
11387 REFIID riid,
11388 _COM_Outptr_ void **ppPipelineState);
11389
11390 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
11391 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
11392 ID3D12Device2 * This,
11393 _In_ UINT nodeMask,
11394 _In_ D3D12_COMMAND_LIST_TYPE type,
11395 _In_ ID3D12CommandAllocator *pCommandAllocator,
11396 _In_opt_ ID3D12PipelineState *pInitialState,
11397 REFIID riid,
11398 _COM_Outptr_ void **ppCommandList);
11399
11400 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
11401 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
11402 ID3D12Device2 * This,
11403 D3D12_FEATURE Feature,
11404 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
11405 UINT FeatureSupportDataSize);
11406
11407 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
11408 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
11409 ID3D12Device2 * This,
11410 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
11411 REFIID riid,
11412 _COM_Outptr_ void **ppvHeap);
11413
11414 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
11415 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
11416 ID3D12Device2 * This,
11417 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
11418
11419 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
11420 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
11421 ID3D12Device2 * This,
11422 _In_ UINT nodeMask,
11423 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
11424 _In_ SIZE_T blobLengthInBytes,
11425 REFIID riid,
11426 _COM_Outptr_ void **ppvRootSignature);
11427
11428 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
11429 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
11430 ID3D12Device2 * This,
11431 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
11432 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11433
11434 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
11435 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
11436 ID3D12Device2 * This,
11437 _In_opt_ ID3D12Resource *pResource,
11438 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
11439 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11440
11441 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
11442 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
11443 ID3D12Device2 * This,
11444 _In_opt_ ID3D12Resource *pResource,
11445 _In_opt_ ID3D12Resource *pCounterResource,
11446 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
11447 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11448
11449 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
11450 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
11451 ID3D12Device2 * This,
11452 _In_opt_ ID3D12Resource *pResource,
11453 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
11454 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11455
11456 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
11457 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
11458 ID3D12Device2 * This,
11459 _In_opt_ ID3D12Resource *pResource,
11460 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
11461 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11462
11463 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
11464 void ( STDMETHODCALLTYPE *CreateSampler )(
11465 ID3D12Device2 * This,
11466 _In_ const D3D12_SAMPLER_DESC *pDesc,
11467 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
11468
11469 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
11470 void ( STDMETHODCALLTYPE *CopyDescriptors )(
11471 ID3D12Device2 * This,
11472 _In_ UINT NumDestDescriptorRanges,
11473 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
11474 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
11475 _In_ UINT NumSrcDescriptorRanges,
11476 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
11477 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
11478 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11479
11480 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
11481 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
11482 ID3D12Device2 * This,
11483 _In_ UINT NumDescriptors,
11484 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
11485 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
11486 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
11487
11488 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
11489#if !defined(_WIN32)
11490 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11491 ID3D12Device2 * This,
11492 _In_ UINT visibleMask,
11493 _In_ UINT numResourceDescs,
11494 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11495
11496#else
11497 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
11498 ID3D12Device2 * This,
11499 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
11500 _In_ UINT visibleMask,
11501 _In_ UINT numResourceDescs,
11502 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
11503
11504#endif
11505
11506 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
11507#if !defined(_WIN32)
11508 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11509 ID3D12Device2 * This,
11510 _In_ UINT nodeMask,
11511 D3D12_HEAP_TYPE heapType);
11512
11513#else
11514 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
11515 ID3D12Device2 * This,
11516 D3D12_HEAP_PROPERTIES * RetVal,
11517 _In_ UINT nodeMask,
11518 D3D12_HEAP_TYPE heapType);
11519
11520#endif
11521
11522 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
11523 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
11524 ID3D12Device2 * This,
11525 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
11526 D3D12_HEAP_FLAGS HeapFlags,
11527 _In_ const D3D12_RESOURCE_DESC *pDesc,
11528 D3D12_RESOURCE_STATES InitialResourceState,
11529 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11530 REFIID riidResource,
11531 _COM_Outptr_opt_ void **ppvResource);
11532
11533 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
11534 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
11535 ID3D12Device2 * This,
11536 _In_ const D3D12_HEAP_DESC *pDesc,
11537 REFIID riid,
11538 _COM_Outptr_opt_ void **ppvHeap);
11539
11540 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
11541 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
11542 ID3D12Device2 * This,
11543 _In_ ID3D12Heap *pHeap,
11544 UINT64 HeapOffset,
11545 _In_ const D3D12_RESOURCE_DESC *pDesc,
11546 D3D12_RESOURCE_STATES InitialState,
11547 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11548 REFIID riid,
11549 _COM_Outptr_opt_ void **ppvResource);
11550
11551 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
11552 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
11553 ID3D12Device2 * This,
11554 _In_ const D3D12_RESOURCE_DESC *pDesc,
11555 D3D12_RESOURCE_STATES InitialState,
11556 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
11557 REFIID riid,
11558 _COM_Outptr_opt_ void **ppvResource);
11559
11560 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
11561 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
11562 ID3D12Device2 * This,
11563 _In_ ID3D12DeviceChild *pObject,
11564 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
11565 DWORD Access,
11566 _In_opt_ LPCWSTR Name,
11567 _Out_ HANDLE *pHandle);
11568
11569 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
11570 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
11571 ID3D12Device2 * This,
11572 _In_ HANDLE NTHandle,
11573 REFIID riid,
11574 _COM_Outptr_opt_ void **ppvObj);
11575
11576 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
11577 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
11578 ID3D12Device2 * This,
11579 _In_ LPCWSTR Name,
11580 DWORD Access,
11581 /* [annotation][out] */
11582 _Out_ HANDLE *pNTHandle);
11583
11584 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
11585 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
11586 ID3D12Device2 * This,
11587 UINT NumObjects,
11588 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11589
11590 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
11591 HRESULT ( STDMETHODCALLTYPE *Evict )(
11592 ID3D12Device2 * This,
11593 UINT NumObjects,
11594 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
11595
11596 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
11597 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
11598 ID3D12Device2 * This,
11599 UINT64 InitialValue,
11600 D3D12_FENCE_FLAGS Flags,
11601 REFIID riid,
11602 _COM_Outptr_ void **ppFence);
11603
11604 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
11605 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
11606 ID3D12Device2 * This);
11607
11608 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
11609 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
11610 ID3D12Device2 * This,
11611 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
11612 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
11613 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
11614 UINT64 BaseOffset,
11615 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
11616 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
11617 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
11618 _Out_opt_ UINT64 *pTotalBytes);
11619
11620 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
11621 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
11622 ID3D12Device2 * This,
11623 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
11624 REFIID riid,
11625 _COM_Outptr_opt_ void **ppvHeap);
11626
11627 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
11628 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
11629 ID3D12Device2 * This,
11630 BOOL Enable);
11631
11632 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
11633 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
11634 ID3D12Device2 * This,
11635 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
11636 _In_opt_ ID3D12RootSignature *pRootSignature,
11637 REFIID riid,
11638 _COM_Outptr_opt_ void **ppvCommandSignature);
11639
11640 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
11641 void ( STDMETHODCALLTYPE *GetResourceTiling )(
11642 ID3D12Device2 * This,
11643 _In_ ID3D12Resource *pTiledResource,
11644 _Out_opt_ UINT *pNumTilesForEntireResource,
11645 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
11646 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
11647 _Inout_opt_ UINT *pNumSubresourceTilings,
11648 _In_ UINT FirstSubresourceTilingToGet,
11649 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
11650
11651 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
11652#if !defined(_WIN32)
11653 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
11654 ID3D12Device2 * This);
11655
11656#else
11657 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
11658 ID3D12Device2 * This,
11659 LUID * RetVal);
11660
11661#endif
11662
11663 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
11664 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
11665 ID3D12Device2 * This,
11666 _In_reads_(BlobLength) const void *pLibraryBlob,
11667 SIZE_T BlobLength,
11668 REFIID riid,
11669 _COM_Outptr_ void **ppPipelineLibrary);
11670
11671 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
11672 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
11673 ID3D12Device2 * This,
11674 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
11675 _In_reads_(NumFences) const UINT64 *pFenceValues,
11676 UINT NumFences,
11677 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
11678 HANDLE hEvent);
11679
11680 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
11681 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
11682 ID3D12Device2 * This,
11683 UINT NumObjects,
11684 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11685 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
11686
11687 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
11688 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
11689 ID3D12Device2 * This,
11690 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
11691 REFIID riid,
11692 _COM_Outptr_ void **ppPipelineState);
11693
11694 END_INTERFACE
11695 } ID3D12Device2Vtbl;
11696
11697 interface ID3D12Device2
11698 {
11699 CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl;
11700 };
11701
11702
11703
11704#ifdef COBJMACROS
11705
11706
11707#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \
11708 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11709
11710#define ID3D12Device2_AddRef(This) \
11711 ( (This)->lpVtbl -> AddRef(This) )
11712
11713#define ID3D12Device2_Release(This) \
11714 ( (This)->lpVtbl -> Release(This) )
11715
11716
11717#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \
11718 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
11719
11720#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \
11721 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
11722
11723#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \
11724 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
11725
11726#define ID3D12Device2_SetName(This,Name) \
11727 ( (This)->lpVtbl -> SetName(This,Name) )
11728
11729
11730#define ID3D12Device2_GetNodeCount(This) \
11731 ( (This)->lpVtbl -> GetNodeCount(This) )
11732
11733#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
11734 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
11735
11736#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
11737 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
11738
11739#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
11740 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
11741
11742#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
11743 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
11744
11745#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
11746 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
11747
11748#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
11749 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
11750
11751#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
11752 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
11753
11754#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
11755 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
11756
11757#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
11758 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
11759
11760#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \
11761 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
11762
11763#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
11764 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
11765
11766#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
11767 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
11768
11769#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
11770 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
11771
11772#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
11773 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
11774
11775#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \
11776 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
11777
11778#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
11779 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
11780
11781#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
11782 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
11783#if !defined(_WIN32)
11784
11785#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
11786 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
11787#else
11788#define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
11789 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
11790#endif
11791#if !defined(_WIN32)
11792
11793#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \
11794 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
11795#else
11796#define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
11797 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
11798#endif
11799
11800#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
11801 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
11802
11803#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \
11804 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
11805
11806#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11807 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11808
11809#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
11810 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
11811
11812#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
11813 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
11814
11815#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
11816 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
11817
11818#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
11819 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
11820
11821#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \
11822 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
11823
11824#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \
11825 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
11826
11827#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \
11828 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
11829
11830#define ID3D12Device2_GetDeviceRemovedReason(This) \
11831 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
11832
11833#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
11834 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
11835
11836#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
11837 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
11838
11839#define ID3D12Device2_SetStablePowerState(This,Enable) \
11840 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
11841
11842#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
11843 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
11844
11845#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
11846 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
11847#if !defined(_WIN32)
11848
11849#define ID3D12Device2_GetAdapterLuid(This) \
11850 ( (This)->lpVtbl -> GetAdapterLuid(This) )
11851#else
11852#define ID3D12Device2_GetAdapterLuid(This,RetVal) \
11853 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
11854#endif
11855
11856
11857#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
11858 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
11859
11860#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
11861 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
11862
11863#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
11864 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
11865
11866
11867#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
11868 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
11869
11870#endif /* COBJMACROS */
11871
11872
11873#endif /* C style interface */
11874
11875
11876
11877
11878#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */
11879
11880
11881/* interface __MIDL_itf_d3d12_0000_0027 */
11882/* [local] */
11883
11884typedef
11885enum D3D12_RESIDENCY_FLAGS
11886 {
11887 D3D12_RESIDENCY_FLAG_NONE = 0,
11888 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1
11889 } D3D12_RESIDENCY_FLAGS;
11890
11891DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )
11892
11893
11894extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec;
11895extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec;
11896
11897#ifndef __ID3D12Device3_INTERFACE_DEFINED__
11898#define __ID3D12Device3_INTERFACE_DEFINED__
11899
11900/* interface ID3D12Device3 */
11901/* [unique][local][object][uuid] */
11902
11903
11904EXTERN_C const IID IID_ID3D12Device3;
11905
11906#if defined(__cplusplus) && !defined(CINTERFACE)
11907
11908 MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98")
11909 ID3D12Device3 : public ID3D12Device2
11910 {
11911 public:
11912 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress(
11913 _In_ const void *pAddress,
11914 REFIID riid,
11915 _COM_Outptr_ void **ppvHeap) = 0;
11916
11917 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping(
11918 _In_ HANDLE hFileMapping,
11919 REFIID riid,
11920 _COM_Outptr_ void **ppvHeap) = 0;
11921
11922 virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident(
11923 D3D12_RESIDENCY_FLAGS Flags,
11924 UINT NumObjects,
11925 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
11926 _In_ ID3D12Fence *pFenceToSignal,
11927 UINT64 FenceValueToSignal) = 0;
11928
11929 };
11930
11931
11932#else /* C style interface */
11933
11934 typedef struct ID3D12Device3Vtbl
11935 {
11936 BEGIN_INTERFACE
11937
11938 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
11939 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11940 ID3D12Device3 * This,
11941 REFIID riid,
11942 _COM_Outptr_ void **ppvObject);
11943
11944 DECLSPEC_XFGVIRT(IUnknown, AddRef)
11945 ULONG ( STDMETHODCALLTYPE *AddRef )(
11946 ID3D12Device3 * This);
11947
11948 DECLSPEC_XFGVIRT(IUnknown, Release)
11949 ULONG ( STDMETHODCALLTYPE *Release )(
11950 ID3D12Device3 * This);
11951
11952 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
11953 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
11954 ID3D12Device3 * This,
11955 _In_ REFGUID guid,
11956 _Inout_ UINT *pDataSize,
11957 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
11958
11959 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
11960 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
11961 ID3D12Device3 * This,
11962 _In_ REFGUID guid,
11963 _In_ UINT DataSize,
11964 _In_reads_bytes_opt_( DataSize ) const void *pData);
11965
11966 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
11967 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
11968 ID3D12Device3 * This,
11969 _In_ REFGUID guid,
11970 _In_opt_ const IUnknown *pData);
11971
11972 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
11973 HRESULT ( STDMETHODCALLTYPE *SetName )(
11974 ID3D12Device3 * This,
11975 _In_z_ LPCWSTR Name);
11976
11977 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
11978 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
11979 ID3D12Device3 * This);
11980
11981 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
11982 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
11983 ID3D12Device3 * This,
11984 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
11985 REFIID riid,
11986 _COM_Outptr_ void **ppCommandQueue);
11987
11988 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
11989 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
11990 ID3D12Device3 * This,
11991 _In_ D3D12_COMMAND_LIST_TYPE type,
11992 REFIID riid,
11993 _COM_Outptr_ void **ppCommandAllocator);
11994
11995 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
11996 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
11997 ID3D12Device3 * This,
11998 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
11999 REFIID riid,
12000 _COM_Outptr_ void **ppPipelineState);
12001
12002 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
12003 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
12004 ID3D12Device3 * This,
12005 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
12006 REFIID riid,
12007 _COM_Outptr_ void **ppPipelineState);
12008
12009 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
12010 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
12011 ID3D12Device3 * This,
12012 _In_ UINT nodeMask,
12013 _In_ D3D12_COMMAND_LIST_TYPE type,
12014 _In_ ID3D12CommandAllocator *pCommandAllocator,
12015 _In_opt_ ID3D12PipelineState *pInitialState,
12016 REFIID riid,
12017 _COM_Outptr_ void **ppCommandList);
12018
12019 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
12020 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
12021 ID3D12Device3 * This,
12022 D3D12_FEATURE Feature,
12023 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
12024 UINT FeatureSupportDataSize);
12025
12026 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
12027 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
12028 ID3D12Device3 * This,
12029 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
12030 REFIID riid,
12031 _COM_Outptr_ void **ppvHeap);
12032
12033 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
12034 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
12035 ID3D12Device3 * This,
12036 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
12037
12038 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
12039 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
12040 ID3D12Device3 * This,
12041 _In_ UINT nodeMask,
12042 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
12043 _In_ SIZE_T blobLengthInBytes,
12044 REFIID riid,
12045 _COM_Outptr_ void **ppvRootSignature);
12046
12047 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
12048 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
12049 ID3D12Device3 * This,
12050 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
12051 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12052
12053 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
12054 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
12055 ID3D12Device3 * This,
12056 _In_opt_ ID3D12Resource *pResource,
12057 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
12058 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12059
12060 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
12061 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
12062 ID3D12Device3 * This,
12063 _In_opt_ ID3D12Resource *pResource,
12064 _In_opt_ ID3D12Resource *pCounterResource,
12065 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
12066 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12067
12068 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
12069 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
12070 ID3D12Device3 * This,
12071 _In_opt_ ID3D12Resource *pResource,
12072 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
12073 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12074
12075 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
12076 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
12077 ID3D12Device3 * This,
12078 _In_opt_ ID3D12Resource *pResource,
12079 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
12080 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12081
12082 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
12083 void ( STDMETHODCALLTYPE *CreateSampler )(
12084 ID3D12Device3 * This,
12085 _In_ const D3D12_SAMPLER_DESC *pDesc,
12086 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
12087
12088 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
12089 void ( STDMETHODCALLTYPE *CopyDescriptors )(
12090 ID3D12Device3 * This,
12091 _In_ UINT NumDestDescriptorRanges,
12092 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
12093 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
12094 _In_ UINT NumSrcDescriptorRanges,
12095 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
12096 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
12097 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12098
12099 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
12100 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
12101 ID3D12Device3 * This,
12102 _In_ UINT NumDescriptors,
12103 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
12104 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
12105 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
12106
12107 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
12108#if !defined(_WIN32)
12109 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12110 ID3D12Device3 * This,
12111 _In_ UINT visibleMask,
12112 _In_ UINT numResourceDescs,
12113 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12114
12115#else
12116 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
12117 ID3D12Device3 * This,
12118 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12119 _In_ UINT visibleMask,
12120 _In_ UINT numResourceDescs,
12121 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
12122
12123#endif
12124
12125 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
12126#if !defined(_WIN32)
12127 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12128 ID3D12Device3 * This,
12129 _In_ UINT nodeMask,
12130 D3D12_HEAP_TYPE heapType);
12131
12132#else
12133 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
12134 ID3D12Device3 * This,
12135 D3D12_HEAP_PROPERTIES * RetVal,
12136 _In_ UINT nodeMask,
12137 D3D12_HEAP_TYPE heapType);
12138
12139#endif
12140
12141 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
12142 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
12143 ID3D12Device3 * This,
12144 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12145 D3D12_HEAP_FLAGS HeapFlags,
12146 _In_ const D3D12_RESOURCE_DESC *pDesc,
12147 D3D12_RESOURCE_STATES InitialResourceState,
12148 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12149 REFIID riidResource,
12150 _COM_Outptr_opt_ void **ppvResource);
12151
12152 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
12153 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
12154 ID3D12Device3 * This,
12155 _In_ const D3D12_HEAP_DESC *pDesc,
12156 REFIID riid,
12157 _COM_Outptr_opt_ void **ppvHeap);
12158
12159 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
12160 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
12161 ID3D12Device3 * This,
12162 _In_ ID3D12Heap *pHeap,
12163 UINT64 HeapOffset,
12164 _In_ const D3D12_RESOURCE_DESC *pDesc,
12165 D3D12_RESOURCE_STATES InitialState,
12166 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12167 REFIID riid,
12168 _COM_Outptr_opt_ void **ppvResource);
12169
12170 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
12171 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
12172 ID3D12Device3 * This,
12173 _In_ const D3D12_RESOURCE_DESC *pDesc,
12174 D3D12_RESOURCE_STATES InitialState,
12175 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12176 REFIID riid,
12177 _COM_Outptr_opt_ void **ppvResource);
12178
12179 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
12180 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
12181 ID3D12Device3 * This,
12182 _In_ ID3D12DeviceChild *pObject,
12183 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
12184 DWORD Access,
12185 _In_opt_ LPCWSTR Name,
12186 _Out_ HANDLE *pHandle);
12187
12188 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
12189 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
12190 ID3D12Device3 * This,
12191 _In_ HANDLE NTHandle,
12192 REFIID riid,
12193 _COM_Outptr_opt_ void **ppvObj);
12194
12195 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
12196 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
12197 ID3D12Device3 * This,
12198 _In_ LPCWSTR Name,
12199 DWORD Access,
12200 /* [annotation][out] */
12201 _Out_ HANDLE *pNTHandle);
12202
12203 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
12204 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
12205 ID3D12Device3 * This,
12206 UINT NumObjects,
12207 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12208
12209 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
12210 HRESULT ( STDMETHODCALLTYPE *Evict )(
12211 ID3D12Device3 * This,
12212 UINT NumObjects,
12213 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
12214
12215 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
12216 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
12217 ID3D12Device3 * This,
12218 UINT64 InitialValue,
12219 D3D12_FENCE_FLAGS Flags,
12220 REFIID riid,
12221 _COM_Outptr_ void **ppFence);
12222
12223 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
12224 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
12225 ID3D12Device3 * This);
12226
12227 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
12228 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
12229 ID3D12Device3 * This,
12230 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
12231 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
12232 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
12233 UINT64 BaseOffset,
12234 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
12235 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
12236 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
12237 _Out_opt_ UINT64 *pTotalBytes);
12238
12239 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
12240 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
12241 ID3D12Device3 * This,
12242 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
12243 REFIID riid,
12244 _COM_Outptr_opt_ void **ppvHeap);
12245
12246 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
12247 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
12248 ID3D12Device3 * This,
12249 BOOL Enable);
12250
12251 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
12252 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
12253 ID3D12Device3 * This,
12254 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
12255 _In_opt_ ID3D12RootSignature *pRootSignature,
12256 REFIID riid,
12257 _COM_Outptr_opt_ void **ppvCommandSignature);
12258
12259 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
12260 void ( STDMETHODCALLTYPE *GetResourceTiling )(
12261 ID3D12Device3 * This,
12262 _In_ ID3D12Resource *pTiledResource,
12263 _Out_opt_ UINT *pNumTilesForEntireResource,
12264 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
12265 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
12266 _Inout_opt_ UINT *pNumSubresourceTilings,
12267 _In_ UINT FirstSubresourceTilingToGet,
12268 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
12269
12270 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
12271#if !defined(_WIN32)
12272 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
12273 ID3D12Device3 * This);
12274
12275#else
12276 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
12277 ID3D12Device3 * This,
12278 LUID * RetVal);
12279
12280#endif
12281
12282 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
12283 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
12284 ID3D12Device3 * This,
12285 _In_reads_(BlobLength) const void *pLibraryBlob,
12286 SIZE_T BlobLength,
12287 REFIID riid,
12288 _COM_Outptr_ void **ppPipelineLibrary);
12289
12290 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
12291 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
12292 ID3D12Device3 * This,
12293 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
12294 _In_reads_(NumFences) const UINT64 *pFenceValues,
12295 UINT NumFences,
12296 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
12297 HANDLE hEvent);
12298
12299 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
12300 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
12301 ID3D12Device3 * This,
12302 UINT NumObjects,
12303 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12304 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
12305
12306 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
12307 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
12308 ID3D12Device3 * This,
12309 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
12310 REFIID riid,
12311 _COM_Outptr_ void **ppPipelineState);
12312
12313 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
12314 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
12315 ID3D12Device3 * This,
12316 _In_ const void *pAddress,
12317 REFIID riid,
12318 _COM_Outptr_ void **ppvHeap);
12319
12320 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
12321 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
12322 ID3D12Device3 * This,
12323 _In_ HANDLE hFileMapping,
12324 REFIID riid,
12325 _COM_Outptr_ void **ppvHeap);
12326
12327 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
12328 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
12329 ID3D12Device3 * This,
12330 D3D12_RESIDENCY_FLAGS Flags,
12331 UINT NumObjects,
12332 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
12333 _In_ ID3D12Fence *pFenceToSignal,
12334 UINT64 FenceValueToSignal);
12335
12336 END_INTERFACE
12337 } ID3D12Device3Vtbl;
12338
12339 interface ID3D12Device3
12340 {
12341 CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl;
12342 };
12343
12344
12345
12346#ifdef COBJMACROS
12347
12348
12349#define ID3D12Device3_QueryInterface(This,riid,ppvObject) \
12350 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12351
12352#define ID3D12Device3_AddRef(This) \
12353 ( (This)->lpVtbl -> AddRef(This) )
12354
12355#define ID3D12Device3_Release(This) \
12356 ( (This)->lpVtbl -> Release(This) )
12357
12358
12359#define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \
12360 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12361
12362#define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \
12363 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12364
12365#define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \
12366 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12367
12368#define ID3D12Device3_SetName(This,Name) \
12369 ( (This)->lpVtbl -> SetName(This,Name) )
12370
12371
12372#define ID3D12Device3_GetNodeCount(This) \
12373 ( (This)->lpVtbl -> GetNodeCount(This) )
12374
12375#define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
12376 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
12377
12378#define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
12379 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
12380
12381#define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
12382 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
12383
12384#define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
12385 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
12386
12387#define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
12388 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
12389
12390#define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
12391 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
12392
12393#define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
12394 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
12395
12396#define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
12397 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
12398
12399#define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
12400 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
12401
12402#define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \
12403 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
12404
12405#define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
12406 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
12407
12408#define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
12409 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
12410
12411#define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
12412 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
12413
12414#define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
12415 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
12416
12417#define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \
12418 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
12419
12420#define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
12421 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
12422
12423#define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
12424 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
12425#if !defined(_WIN32)
12426
12427#define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
12428 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
12429#else
12430#define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
12431 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
12432#endif
12433#if !defined(_WIN32)
12434
12435#define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \
12436 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
12437#else
12438#define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
12439 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
12440#endif
12441
12442#define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
12443 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
12444
12445#define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \
12446 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
12447
12448#define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12449 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12450
12451#define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
12452 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
12453
12454#define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
12455 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
12456
12457#define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
12458 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
12459
12460#define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
12461 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
12462
12463#define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \
12464 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
12465
12466#define ID3D12Device3_Evict(This,NumObjects,ppObjects) \
12467 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
12468
12469#define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \
12470 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
12471
12472#define ID3D12Device3_GetDeviceRemovedReason(This) \
12473 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
12474
12475#define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
12476 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
12477
12478#define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
12479 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
12480
12481#define ID3D12Device3_SetStablePowerState(This,Enable) \
12482 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
12483
12484#define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
12485 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
12486
12487#define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
12488 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
12489#if !defined(_WIN32)
12490
12491#define ID3D12Device3_GetAdapterLuid(This) \
12492 ( (This)->lpVtbl -> GetAdapterLuid(This) )
12493#else
12494#define ID3D12Device3_GetAdapterLuid(This,RetVal) \
12495 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
12496#endif
12497
12498
12499#define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
12500 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
12501
12502#define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
12503 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
12504
12505#define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
12506 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
12507
12508
12509#define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
12510 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
12511
12512
12513#define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
12514 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
12515
12516#define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
12517 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
12518
12519#define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
12520 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
12521
12522#endif /* COBJMACROS */
12523
12524
12525#endif /* C style interface */
12526
12527
12528
12529
12530#endif /* __ID3D12Device3_INTERFACE_DEFINED__ */
12531
12532
12533/* interface __MIDL_itf_d3d12_0000_0028 */
12534/* [local] */
12535
12536typedef
12537enum D3D12_COMMAND_LIST_FLAGS
12538 {
12539 D3D12_COMMAND_LIST_FLAG_NONE = 0
12540 } D3D12_COMMAND_LIST_FLAGS;
12541
12542DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )
12543typedef
12544enum D3D12_COMMAND_POOL_FLAGS
12545 {
12546 D3D12_COMMAND_POOL_FLAG_NONE = 0
12547 } D3D12_COMMAND_POOL_FLAGS;
12548
12549DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )
12550typedef
12551enum D3D12_COMMAND_RECORDER_FLAGS
12552 {
12553 D3D12_COMMAND_RECORDER_FLAG_NONE = 0
12554 } D3D12_COMMAND_RECORDER_FLAGS;
12555
12556DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )
12557typedef
12558enum D3D12_PROTECTED_SESSION_STATUS
12559 {
12560 D3D12_PROTECTED_SESSION_STATUS_OK = 0,
12561 D3D12_PROTECTED_SESSION_STATUS_INVALID = 1
12562 } D3D12_PROTECTED_SESSION_STATUS;
12563
12564
12565
12566extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec;
12567extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec;
12568
12569#ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__
12570#define __ID3D12ProtectedSession_INTERFACE_DEFINED__
12571
12572/* interface ID3D12ProtectedSession */
12573/* [unique][local][object][uuid] */
12574
12575
12576EXTERN_C const IID IID_ID3D12ProtectedSession;
12577
12578#if defined(__cplusplus) && !defined(CINTERFACE)
12579
12580 MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B")
12581 ID3D12ProtectedSession : public ID3D12DeviceChild
12582 {
12583 public:
12584 virtual HRESULT STDMETHODCALLTYPE GetStatusFence(
12585 REFIID riid,
12586 _COM_Outptr_opt_ void **ppFence) = 0;
12587
12588 virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0;
12589
12590 };
12591
12592
12593#else /* C style interface */
12594
12595 typedef struct ID3D12ProtectedSessionVtbl
12596 {
12597 BEGIN_INTERFACE
12598
12599 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12600 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12601 ID3D12ProtectedSession * This,
12602 REFIID riid,
12603 _COM_Outptr_ void **ppvObject);
12604
12605 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12606 ULONG ( STDMETHODCALLTYPE *AddRef )(
12607 ID3D12ProtectedSession * This);
12608
12609 DECLSPEC_XFGVIRT(IUnknown, Release)
12610 ULONG ( STDMETHODCALLTYPE *Release )(
12611 ID3D12ProtectedSession * This);
12612
12613 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12614 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12615 ID3D12ProtectedSession * This,
12616 _In_ REFGUID guid,
12617 _Inout_ UINT *pDataSize,
12618 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12619
12620 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12621 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12622 ID3D12ProtectedSession * This,
12623 _In_ REFGUID guid,
12624 _In_ UINT DataSize,
12625 _In_reads_bytes_opt_( DataSize ) const void *pData);
12626
12627 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12628 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12629 ID3D12ProtectedSession * This,
12630 _In_ REFGUID guid,
12631 _In_opt_ const IUnknown *pData);
12632
12633 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12634 HRESULT ( STDMETHODCALLTYPE *SetName )(
12635 ID3D12ProtectedSession * This,
12636 _In_z_ LPCWSTR Name);
12637
12638 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12639 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12640 ID3D12ProtectedSession * This,
12641 REFIID riid,
12642 _COM_Outptr_opt_ void **ppvDevice);
12643
12644 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12645 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12646 ID3D12ProtectedSession * This,
12647 REFIID riid,
12648 _COM_Outptr_opt_ void **ppFence);
12649
12650 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12651 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12652 ID3D12ProtectedSession * This);
12653
12654 END_INTERFACE
12655 } ID3D12ProtectedSessionVtbl;
12656
12657 interface ID3D12ProtectedSession
12658 {
12659 CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl;
12660 };
12661
12662
12663
12664#ifdef COBJMACROS
12665
12666
12667#define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \
12668 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12669
12670#define ID3D12ProtectedSession_AddRef(This) \
12671 ( (This)->lpVtbl -> AddRef(This) )
12672
12673#define ID3D12ProtectedSession_Release(This) \
12674 ( (This)->lpVtbl -> Release(This) )
12675
12676
12677#define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \
12678 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12679
12680#define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \
12681 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12682
12683#define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \
12684 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12685
12686#define ID3D12ProtectedSession_SetName(This,Name) \
12687 ( (This)->lpVtbl -> SetName(This,Name) )
12688
12689
12690#define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \
12691 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12692
12693
12694#define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \
12695 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12696
12697#define ID3D12ProtectedSession_GetSessionStatus(This) \
12698 ( (This)->lpVtbl -> GetSessionStatus(This) )
12699
12700#endif /* COBJMACROS */
12701
12702
12703#endif /* C style interface */
12704
12705
12706
12707
12708#endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */
12709
12710
12711/* interface __MIDL_itf_d3d12_0000_0029 */
12712/* [local] */
12713
12714typedef
12715enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
12716 {
12717 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0,
12718 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1
12719 } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
12720
12721DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )
12722typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
12723 {
12724 UINT NodeIndex;
12725 D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support;
12726 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
12727
12728typedef
12729enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
12730 {
12731 D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0
12732 } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
12733
12734DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )
12735typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
12736 {
12737 UINT NodeMask;
12738 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
12739 } D3D12_PROTECTED_RESOURCE_SESSION_DESC;
12740
12741
12742
12743extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec;
12744extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec;
12745
12746#ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12747#define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__
12748
12749/* interface ID3D12ProtectedResourceSession */
12750/* [unique][local][object][uuid] */
12751
12752
12753EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
12754
12755#if defined(__cplusplus) && !defined(CINTERFACE)
12756
12757 MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D")
12758 ID3D12ProtectedResourceSession : public ID3D12ProtectedSession
12759 {
12760 public:
12761#if defined(_MSC_VER) || !defined(_WIN32)
12762 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
12763#else
12764 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
12765 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0;
12766#endif
12767
12768 };
12769
12770
12771#else /* C style interface */
12772
12773 typedef struct ID3D12ProtectedResourceSessionVtbl
12774 {
12775 BEGIN_INTERFACE
12776
12777 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12778 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12779 ID3D12ProtectedResourceSession * This,
12780 REFIID riid,
12781 _COM_Outptr_ void **ppvObject);
12782
12783 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12784 ULONG ( STDMETHODCALLTYPE *AddRef )(
12785 ID3D12ProtectedResourceSession * This);
12786
12787 DECLSPEC_XFGVIRT(IUnknown, Release)
12788 ULONG ( STDMETHODCALLTYPE *Release )(
12789 ID3D12ProtectedResourceSession * This);
12790
12791 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
12792 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
12793 ID3D12ProtectedResourceSession * This,
12794 _In_ REFGUID guid,
12795 _Inout_ UINT *pDataSize,
12796 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
12797
12798 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
12799 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
12800 ID3D12ProtectedResourceSession * This,
12801 _In_ REFGUID guid,
12802 _In_ UINT DataSize,
12803 _In_reads_bytes_opt_( DataSize ) const void *pData);
12804
12805 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
12806 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
12807 ID3D12ProtectedResourceSession * This,
12808 _In_ REFGUID guid,
12809 _In_opt_ const IUnknown *pData);
12810
12811 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
12812 HRESULT ( STDMETHODCALLTYPE *SetName )(
12813 ID3D12ProtectedResourceSession * This,
12814 _In_z_ LPCWSTR Name);
12815
12816 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
12817 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
12818 ID3D12ProtectedResourceSession * This,
12819 REFIID riid,
12820 _COM_Outptr_opt_ void **ppvDevice);
12821
12822 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
12823 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
12824 ID3D12ProtectedResourceSession * This,
12825 REFIID riid,
12826 _COM_Outptr_opt_ void **ppFence);
12827
12828 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
12829 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
12830 ID3D12ProtectedResourceSession * This);
12831
12832 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
12833#if !defined(_WIN32)
12834 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
12835 ID3D12ProtectedResourceSession * This);
12836
12837#else
12838 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
12839 ID3D12ProtectedResourceSession * This,
12840 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
12841
12842#endif
12843
12844 END_INTERFACE
12845 } ID3D12ProtectedResourceSessionVtbl;
12846
12847 interface ID3D12ProtectedResourceSession
12848 {
12849 CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl;
12850 };
12851
12852
12853
12854#ifdef COBJMACROS
12855
12856
12857#define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \
12858 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12859
12860#define ID3D12ProtectedResourceSession_AddRef(This) \
12861 ( (This)->lpVtbl -> AddRef(This) )
12862
12863#define ID3D12ProtectedResourceSession_Release(This) \
12864 ( (This)->lpVtbl -> Release(This) )
12865
12866
12867#define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \
12868 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
12869
12870#define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \
12871 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
12872
12873#define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \
12874 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
12875
12876#define ID3D12ProtectedResourceSession_SetName(This,Name) \
12877 ( (This)->lpVtbl -> SetName(This,Name) )
12878
12879
12880#define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \
12881 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
12882
12883
12884#define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \
12885 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
12886
12887#define ID3D12ProtectedResourceSession_GetSessionStatus(This) \
12888 ( (This)->lpVtbl -> GetSessionStatus(This) )
12889
12890#if !defined(_WIN32)
12891
12892#define ID3D12ProtectedResourceSession_GetDesc(This) \
12893 ( (This)->lpVtbl -> GetDesc(This) )
12894#else
12895#define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \
12896 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
12897#endif
12898
12899#endif /* COBJMACROS */
12900
12901
12902#endif /* C style interface */
12903
12904
12905
12906
12907#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
12908
12909
12910#ifndef __ID3D12Device4_INTERFACE_DEFINED__
12911#define __ID3D12Device4_INTERFACE_DEFINED__
12912
12913/* interface ID3D12Device4 */
12914/* [unique][local][object][uuid] */
12915
12916
12917EXTERN_C const IID IID_ID3D12Device4;
12918
12919#if defined(__cplusplus) && !defined(CINTERFACE)
12920
12921 MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5")
12922 ID3D12Device4 : public ID3D12Device3
12923 {
12924 public:
12925 virtual HRESULT STDMETHODCALLTYPE CreateCommandList1(
12926 _In_ UINT nodeMask,
12927 _In_ D3D12_COMMAND_LIST_TYPE type,
12928 _In_ D3D12_COMMAND_LIST_FLAGS flags,
12929 REFIID riid,
12930 _COM_Outptr_ void **ppCommandList) = 0;
12931
12932 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession(
12933 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
12934 _In_ REFIID riid,
12935 _COM_Outptr_ void **ppSession) = 0;
12936
12937 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1(
12938 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
12939 D3D12_HEAP_FLAGS HeapFlags,
12940 _In_ const D3D12_RESOURCE_DESC *pDesc,
12941 D3D12_RESOURCE_STATES InitialResourceState,
12942 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12943 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12944 REFIID riidResource,
12945 _COM_Outptr_opt_ void **ppvResource) = 0;
12946
12947 virtual HRESULT STDMETHODCALLTYPE CreateHeap1(
12948 _In_ const D3D12_HEAP_DESC *pDesc,
12949 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12950 REFIID riid,
12951 _COM_Outptr_opt_ void **ppvHeap) = 0;
12952
12953 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1(
12954 _In_ const D3D12_RESOURCE_DESC *pDesc,
12955 D3D12_RESOURCE_STATES InitialState,
12956 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
12957 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
12958 REFIID riid,
12959 _COM_Outptr_opt_ void **ppvResource) = 0;
12960
12961#if defined(_MSC_VER) || !defined(_WIN32)
12962 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1(
12963 UINT visibleMask,
12964 UINT numResourceDescs,
12965 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12966 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12967#else
12968 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1(
12969 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
12970 UINT visibleMask,
12971 UINT numResourceDescs,
12972 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
12973 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
12974#endif
12975
12976 };
12977
12978
12979#else /* C style interface */
12980
12981 typedef struct ID3D12Device4Vtbl
12982 {
12983 BEGIN_INTERFACE
12984
12985 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
12986 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12987 ID3D12Device4 * This,
12988 REFIID riid,
12989 _COM_Outptr_ void **ppvObject);
12990
12991 DECLSPEC_XFGVIRT(IUnknown, AddRef)
12992 ULONG ( STDMETHODCALLTYPE *AddRef )(
12993 ID3D12Device4 * This);
12994
12995 DECLSPEC_XFGVIRT(IUnknown, Release)
12996 ULONG ( STDMETHODCALLTYPE *Release )(
12997 ID3D12Device4 * This);
12998
12999 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13000 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13001 ID3D12Device4 * This,
13002 _In_ REFGUID guid,
13003 _Inout_ UINT *pDataSize,
13004 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13005
13006 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13007 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13008 ID3D12Device4 * This,
13009 _In_ REFGUID guid,
13010 _In_ UINT DataSize,
13011 _In_reads_bytes_opt_( DataSize ) const void *pData);
13012
13013 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13014 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13015 ID3D12Device4 * This,
13016 _In_ REFGUID guid,
13017 _In_opt_ const IUnknown *pData);
13018
13019 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13020 HRESULT ( STDMETHODCALLTYPE *SetName )(
13021 ID3D12Device4 * This,
13022 _In_z_ LPCWSTR Name);
13023
13024 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
13025 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
13026 ID3D12Device4 * This);
13027
13028 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
13029 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
13030 ID3D12Device4 * This,
13031 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
13032 REFIID riid,
13033 _COM_Outptr_ void **ppCommandQueue);
13034
13035 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
13036 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
13037 ID3D12Device4 * This,
13038 _In_ D3D12_COMMAND_LIST_TYPE type,
13039 REFIID riid,
13040 _COM_Outptr_ void **ppCommandAllocator);
13041
13042 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
13043 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
13044 ID3D12Device4 * This,
13045 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
13046 REFIID riid,
13047 _COM_Outptr_ void **ppPipelineState);
13048
13049 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
13050 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
13051 ID3D12Device4 * This,
13052 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
13053 REFIID riid,
13054 _COM_Outptr_ void **ppPipelineState);
13055
13056 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
13057 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
13058 ID3D12Device4 * This,
13059 _In_ UINT nodeMask,
13060 _In_ D3D12_COMMAND_LIST_TYPE type,
13061 _In_ ID3D12CommandAllocator *pCommandAllocator,
13062 _In_opt_ ID3D12PipelineState *pInitialState,
13063 REFIID riid,
13064 _COM_Outptr_ void **ppCommandList);
13065
13066 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
13067 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
13068 ID3D12Device4 * This,
13069 D3D12_FEATURE Feature,
13070 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
13071 UINT FeatureSupportDataSize);
13072
13073 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
13074 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
13075 ID3D12Device4 * This,
13076 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
13077 REFIID riid,
13078 _COM_Outptr_ void **ppvHeap);
13079
13080 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
13081 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
13082 ID3D12Device4 * This,
13083 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
13084
13085 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
13086 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
13087 ID3D12Device4 * This,
13088 _In_ UINT nodeMask,
13089 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
13090 _In_ SIZE_T blobLengthInBytes,
13091 REFIID riid,
13092 _COM_Outptr_ void **ppvRootSignature);
13093
13094 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
13095 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
13096 ID3D12Device4 * This,
13097 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
13098 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13099
13100 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
13101 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
13102 ID3D12Device4 * This,
13103 _In_opt_ ID3D12Resource *pResource,
13104 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
13105 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13106
13107 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
13108 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
13109 ID3D12Device4 * This,
13110 _In_opt_ ID3D12Resource *pResource,
13111 _In_opt_ ID3D12Resource *pCounterResource,
13112 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
13113 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13114
13115 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
13116 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
13117 ID3D12Device4 * This,
13118 _In_opt_ ID3D12Resource *pResource,
13119 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
13120 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13121
13122 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
13123 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
13124 ID3D12Device4 * This,
13125 _In_opt_ ID3D12Resource *pResource,
13126 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
13127 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13128
13129 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
13130 void ( STDMETHODCALLTYPE *CreateSampler )(
13131 ID3D12Device4 * This,
13132 _In_ const D3D12_SAMPLER_DESC *pDesc,
13133 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
13134
13135 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
13136 void ( STDMETHODCALLTYPE *CopyDescriptors )(
13137 ID3D12Device4 * This,
13138 _In_ UINT NumDestDescriptorRanges,
13139 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
13140 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
13141 _In_ UINT NumSrcDescriptorRanges,
13142 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
13143 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
13144 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13145
13146 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
13147 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
13148 ID3D12Device4 * This,
13149 _In_ UINT NumDescriptors,
13150 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
13151 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
13152 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
13153
13154 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
13155#if !defined(_WIN32)
13156 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
13157 ID3D12Device4 * This,
13158 _In_ UINT visibleMask,
13159 _In_ UINT numResourceDescs,
13160 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
13161
13162#else
13163 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
13164 ID3D12Device4 * This,
13165 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13166 _In_ UINT visibleMask,
13167 _In_ UINT numResourceDescs,
13168 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
13169
13170#endif
13171
13172 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
13173#if !defined(_WIN32)
13174 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
13175 ID3D12Device4 * This,
13176 _In_ UINT nodeMask,
13177 D3D12_HEAP_TYPE heapType);
13178
13179#else
13180 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
13181 ID3D12Device4 * This,
13182 D3D12_HEAP_PROPERTIES * RetVal,
13183 _In_ UINT nodeMask,
13184 D3D12_HEAP_TYPE heapType);
13185
13186#endif
13187
13188 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
13189 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
13190 ID3D12Device4 * This,
13191 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13192 D3D12_HEAP_FLAGS HeapFlags,
13193 _In_ const D3D12_RESOURCE_DESC *pDesc,
13194 D3D12_RESOURCE_STATES InitialResourceState,
13195 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13196 REFIID riidResource,
13197 _COM_Outptr_opt_ void **ppvResource);
13198
13199 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
13200 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
13201 ID3D12Device4 * This,
13202 _In_ const D3D12_HEAP_DESC *pDesc,
13203 REFIID riid,
13204 _COM_Outptr_opt_ void **ppvHeap);
13205
13206 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
13207 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
13208 ID3D12Device4 * This,
13209 _In_ ID3D12Heap *pHeap,
13210 UINT64 HeapOffset,
13211 _In_ const D3D12_RESOURCE_DESC *pDesc,
13212 D3D12_RESOURCE_STATES InitialState,
13213 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13214 REFIID riid,
13215 _COM_Outptr_opt_ void **ppvResource);
13216
13217 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
13218 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
13219 ID3D12Device4 * This,
13220 _In_ const D3D12_RESOURCE_DESC *pDesc,
13221 D3D12_RESOURCE_STATES InitialState,
13222 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13223 REFIID riid,
13224 _COM_Outptr_opt_ void **ppvResource);
13225
13226 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
13227 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
13228 ID3D12Device4 * This,
13229 _In_ ID3D12DeviceChild *pObject,
13230 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
13231 DWORD Access,
13232 _In_opt_ LPCWSTR Name,
13233 _Out_ HANDLE *pHandle);
13234
13235 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
13236 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
13237 ID3D12Device4 * This,
13238 _In_ HANDLE NTHandle,
13239 REFIID riid,
13240 _COM_Outptr_opt_ void **ppvObj);
13241
13242 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
13243 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
13244 ID3D12Device4 * This,
13245 _In_ LPCWSTR Name,
13246 DWORD Access,
13247 /* [annotation][out] */
13248 _Out_ HANDLE *pNTHandle);
13249
13250 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
13251 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
13252 ID3D12Device4 * This,
13253 UINT NumObjects,
13254 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13255
13256 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
13257 HRESULT ( STDMETHODCALLTYPE *Evict )(
13258 ID3D12Device4 * This,
13259 UINT NumObjects,
13260 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
13261
13262 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
13263 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
13264 ID3D12Device4 * This,
13265 UINT64 InitialValue,
13266 D3D12_FENCE_FLAGS Flags,
13267 REFIID riid,
13268 _COM_Outptr_ void **ppFence);
13269
13270 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
13271 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
13272 ID3D12Device4 * This);
13273
13274 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
13275 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
13276 ID3D12Device4 * This,
13277 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
13278 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
13279 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
13280 UINT64 BaseOffset,
13281 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
13282 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
13283 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
13284 _Out_opt_ UINT64 *pTotalBytes);
13285
13286 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
13287 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
13288 ID3D12Device4 * This,
13289 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
13290 REFIID riid,
13291 _COM_Outptr_opt_ void **ppvHeap);
13292
13293 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
13294 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
13295 ID3D12Device4 * This,
13296 BOOL Enable);
13297
13298 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
13299 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
13300 ID3D12Device4 * This,
13301 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
13302 _In_opt_ ID3D12RootSignature *pRootSignature,
13303 REFIID riid,
13304 _COM_Outptr_opt_ void **ppvCommandSignature);
13305
13306 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
13307 void ( STDMETHODCALLTYPE *GetResourceTiling )(
13308 ID3D12Device4 * This,
13309 _In_ ID3D12Resource *pTiledResource,
13310 _Out_opt_ UINT *pNumTilesForEntireResource,
13311 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
13312 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
13313 _Inout_opt_ UINT *pNumSubresourceTilings,
13314 _In_ UINT FirstSubresourceTilingToGet,
13315 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
13316
13317 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
13318#if !defined(_WIN32)
13319 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
13320 ID3D12Device4 * This);
13321
13322#else
13323 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
13324 ID3D12Device4 * This,
13325 LUID * RetVal);
13326
13327#endif
13328
13329 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
13330 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
13331 ID3D12Device4 * This,
13332 _In_reads_(BlobLength) const void *pLibraryBlob,
13333 SIZE_T BlobLength,
13334 REFIID riid,
13335 _COM_Outptr_ void **ppPipelineLibrary);
13336
13337 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
13338 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
13339 ID3D12Device4 * This,
13340 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
13341 _In_reads_(NumFences) const UINT64 *pFenceValues,
13342 UINT NumFences,
13343 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
13344 HANDLE hEvent);
13345
13346 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
13347 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
13348 ID3D12Device4 * This,
13349 UINT NumObjects,
13350 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13351 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
13352
13353 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
13354 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
13355 ID3D12Device4 * This,
13356 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
13357 REFIID riid,
13358 _COM_Outptr_ void **ppPipelineState);
13359
13360 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
13361 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
13362 ID3D12Device4 * This,
13363 _In_ const void *pAddress,
13364 REFIID riid,
13365 _COM_Outptr_ void **ppvHeap);
13366
13367 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
13368 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
13369 ID3D12Device4 * This,
13370 _In_ HANDLE hFileMapping,
13371 REFIID riid,
13372 _COM_Outptr_ void **ppvHeap);
13373
13374 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
13375 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
13376 ID3D12Device4 * This,
13377 D3D12_RESIDENCY_FLAGS Flags,
13378 UINT NumObjects,
13379 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
13380 _In_ ID3D12Fence *pFenceToSignal,
13381 UINT64 FenceValueToSignal);
13382
13383 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
13384 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
13385 ID3D12Device4 * This,
13386 _In_ UINT nodeMask,
13387 _In_ D3D12_COMMAND_LIST_TYPE type,
13388 _In_ D3D12_COMMAND_LIST_FLAGS flags,
13389 REFIID riid,
13390 _COM_Outptr_ void **ppCommandList);
13391
13392 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
13393 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
13394 ID3D12Device4 * This,
13395 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
13396 _In_ REFIID riid,
13397 _COM_Outptr_ void **ppSession);
13398
13399 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
13400 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
13401 ID3D12Device4 * This,
13402 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
13403 D3D12_HEAP_FLAGS HeapFlags,
13404 _In_ const D3D12_RESOURCE_DESC *pDesc,
13405 D3D12_RESOURCE_STATES InitialResourceState,
13406 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13407 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13408 REFIID riidResource,
13409 _COM_Outptr_opt_ void **ppvResource);
13410
13411 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
13412 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
13413 ID3D12Device4 * This,
13414 _In_ const D3D12_HEAP_DESC *pDesc,
13415 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13416 REFIID riid,
13417 _COM_Outptr_opt_ void **ppvHeap);
13418
13419 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
13420 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
13421 ID3D12Device4 * This,
13422 _In_ const D3D12_RESOURCE_DESC *pDesc,
13423 D3D12_RESOURCE_STATES InitialState,
13424 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
13425 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
13426 REFIID riid,
13427 _COM_Outptr_opt_ void **ppvResource);
13428
13429 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
13430#if !defined(_WIN32)
13431 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
13432 ID3D12Device4 * This,
13433 UINT visibleMask,
13434 UINT numResourceDescs,
13435 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
13436 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
13437
13438#else
13439 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
13440 ID3D12Device4 * This,
13441 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
13442 UINT visibleMask,
13443 UINT numResourceDescs,
13444 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
13445 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
13446
13447#endif
13448
13449 END_INTERFACE
13450 } ID3D12Device4Vtbl;
13451
13452 interface ID3D12Device4
13453 {
13454 CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl;
13455 };
13456
13457
13458
13459#ifdef COBJMACROS
13460
13461
13462#define ID3D12Device4_QueryInterface(This,riid,ppvObject) \
13463 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13464
13465#define ID3D12Device4_AddRef(This) \
13466 ( (This)->lpVtbl -> AddRef(This) )
13467
13468#define ID3D12Device4_Release(This) \
13469 ( (This)->lpVtbl -> Release(This) )
13470
13471
13472#define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \
13473 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
13474
13475#define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \
13476 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
13477
13478#define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \
13479 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
13480
13481#define ID3D12Device4_SetName(This,Name) \
13482 ( (This)->lpVtbl -> SetName(This,Name) )
13483
13484
13485#define ID3D12Device4_GetNodeCount(This) \
13486 ( (This)->lpVtbl -> GetNodeCount(This) )
13487
13488#define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
13489 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
13490
13491#define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
13492 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
13493
13494#define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
13495 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
13496
13497#define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
13498 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
13499
13500#define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
13501 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
13502
13503#define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
13504 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
13505
13506#define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
13507 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
13508
13509#define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
13510 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
13511
13512#define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
13513 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
13514
13515#define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \
13516 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
13517
13518#define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
13519 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
13520
13521#define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
13522 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
13523
13524#define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
13525 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
13526
13527#define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
13528 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
13529
13530#define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \
13531 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
13532
13533#define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
13534 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
13535
13536#define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
13537 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
13538#if !defined(_WIN32)
13539
13540#define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
13541 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
13542#else
13543#define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
13544 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
13545#endif
13546#if !defined(_WIN32)
13547
13548#define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \
13549 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
13550#else
13551#define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
13552 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
13553#endif
13554
13555#define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
13556 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
13557
13558#define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \
13559 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
13560
13561#define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13562 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13563
13564#define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
13565 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
13566
13567#define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
13568 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
13569
13570#define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
13571 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
13572
13573#define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
13574 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
13575
13576#define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \
13577 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
13578
13579#define ID3D12Device4_Evict(This,NumObjects,ppObjects) \
13580 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
13581
13582#define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \
13583 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
13584
13585#define ID3D12Device4_GetDeviceRemovedReason(This) \
13586 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
13587
13588#define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
13589 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
13590
13591#define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
13592 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
13593
13594#define ID3D12Device4_SetStablePowerState(This,Enable) \
13595 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
13596
13597#define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
13598 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
13599
13600#define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
13601 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
13602#if !defined(_WIN32)
13603
13604#define ID3D12Device4_GetAdapterLuid(This) \
13605 ( (This)->lpVtbl -> GetAdapterLuid(This) )
13606#else
13607#define ID3D12Device4_GetAdapterLuid(This,RetVal) \
13608 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
13609#endif
13610
13611
13612#define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
13613 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
13614
13615#define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
13616 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
13617
13618#define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
13619 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
13620
13621
13622#define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
13623 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
13624
13625
13626#define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
13627 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
13628
13629#define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
13630 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
13631
13632#define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
13633 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
13634
13635
13636#define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
13637 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
13638
13639#define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
13640 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
13641
13642#define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
13643 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
13644
13645#define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
13646 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
13647
13648#define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
13649 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
13650#if !defined(_WIN32)
13651
13652#define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13653 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13654#else
13655#define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
13656 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
13657#endif
13658
13659#endif /* COBJMACROS */
13660
13661
13662#endif /* C style interface */
13663
13664
13665
13666
13667#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
13668
13669
13670/* interface __MIDL_itf_d3d12_0000_0031 */
13671/* [local] */
13672
13673typedef
13674enum D3D12_LIFETIME_STATE
13675 {
13676 D3D12_LIFETIME_STATE_IN_USE = 0,
13677 D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 )
13678 } D3D12_LIFETIME_STATE;
13679
13680
13681
13682
13683extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec;
13684extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec;
13685
13686#ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13687#define __ID3D12LifetimeOwner_INTERFACE_DEFINED__
13688
13689/* interface ID3D12LifetimeOwner */
13690/* [unique][local][object][uuid] */
13691
13692
13693EXTERN_C const IID IID_ID3D12LifetimeOwner;
13694
13695#if defined(__cplusplus) && !defined(CINTERFACE)
13696
13697 MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8")
13698 ID3D12LifetimeOwner : public IUnknown
13699 {
13700 public:
13701 virtual void STDMETHODCALLTYPE LifetimeStateUpdated(
13702 D3D12_LIFETIME_STATE NewState) = 0;
13703
13704 };
13705
13706
13707#else /* C style interface */
13708
13709 typedef struct ID3D12LifetimeOwnerVtbl
13710 {
13711 BEGIN_INTERFACE
13712
13713 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13714 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13715 ID3D12LifetimeOwner * This,
13716 REFIID riid,
13717 _COM_Outptr_ void **ppvObject);
13718
13719 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13720 ULONG ( STDMETHODCALLTYPE *AddRef )(
13721 ID3D12LifetimeOwner * This);
13722
13723 DECLSPEC_XFGVIRT(IUnknown, Release)
13724 ULONG ( STDMETHODCALLTYPE *Release )(
13725 ID3D12LifetimeOwner * This);
13726
13727 DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated)
13728 void ( STDMETHODCALLTYPE *LifetimeStateUpdated )(
13729 ID3D12LifetimeOwner * This,
13730 D3D12_LIFETIME_STATE NewState);
13731
13732 END_INTERFACE
13733 } ID3D12LifetimeOwnerVtbl;
13734
13735 interface ID3D12LifetimeOwner
13736 {
13737 CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl;
13738 };
13739
13740
13741
13742#ifdef COBJMACROS
13743
13744
13745#define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \
13746 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13747
13748#define ID3D12LifetimeOwner_AddRef(This) \
13749 ( (This)->lpVtbl -> AddRef(This) )
13750
13751#define ID3D12LifetimeOwner_Release(This) \
13752 ( (This)->lpVtbl -> Release(This) )
13753
13754
13755#define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \
13756 ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) )
13757
13758#endif /* COBJMACROS */
13759
13760
13761#endif /* C style interface */
13762
13763
13764
13765
13766#endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */
13767
13768
13769#ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13770#define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__
13771
13772/* interface ID3D12SwapChainAssistant */
13773/* [unique][local][object][uuid] */
13774
13775
13776EXTERN_C const IID IID_ID3D12SwapChainAssistant;
13777
13778#if defined(__cplusplus) && !defined(CINTERFACE)
13779
13780 MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f")
13781 ID3D12SwapChainAssistant : public IUnknown
13782 {
13783 public:
13784#if defined(_MSC_VER) || !defined(_WIN32)
13785 virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0;
13786#else
13787 virtual LUID *STDMETHODCALLTYPE GetLUID(
13788 LUID * RetVal) = 0;
13789#endif
13790
13791 virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject(
13792 REFIID riid,
13793 _COM_Outptr_ void **ppv) = 0;
13794
13795 virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue(
13796 REFIID riidResource,
13797 _COM_Outptr_ void **ppvResource,
13798 REFIID riidQueue,
13799 _COM_Outptr_ void **ppvQueue) = 0;
13800
13801 virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0;
13802
13803 };
13804
13805
13806#else /* C style interface */
13807
13808 typedef struct ID3D12SwapChainAssistantVtbl
13809 {
13810 BEGIN_INTERFACE
13811
13812 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13813 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13814 ID3D12SwapChainAssistant * This,
13815 REFIID riid,
13816 _COM_Outptr_ void **ppvObject);
13817
13818 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13819 ULONG ( STDMETHODCALLTYPE *AddRef )(
13820 ID3D12SwapChainAssistant * This);
13821
13822 DECLSPEC_XFGVIRT(IUnknown, Release)
13823 ULONG ( STDMETHODCALLTYPE *Release )(
13824 ID3D12SwapChainAssistant * This);
13825
13826 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID)
13827#if !defined(_WIN32)
13828 LUID ( STDMETHODCALLTYPE *GetLUID )(
13829 ID3D12SwapChainAssistant * This);
13830
13831#else
13832 LUID *( STDMETHODCALLTYPE *GetLUID )(
13833 ID3D12SwapChainAssistant * This,
13834 LUID * RetVal);
13835
13836#endif
13837
13838 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject)
13839 HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )(
13840 ID3D12SwapChainAssistant * This,
13841 REFIID riid,
13842 _COM_Outptr_ void **ppv);
13843
13844 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue)
13845 HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )(
13846 ID3D12SwapChainAssistant * This,
13847 REFIID riidResource,
13848 _COM_Outptr_ void **ppvResource,
13849 REFIID riidQueue,
13850 _COM_Outptr_ void **ppvQueue);
13851
13852 DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync)
13853 HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )(
13854 ID3D12SwapChainAssistant * This);
13855
13856 END_INTERFACE
13857 } ID3D12SwapChainAssistantVtbl;
13858
13859 interface ID3D12SwapChainAssistant
13860 {
13861 CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl;
13862 };
13863
13864
13865
13866#ifdef COBJMACROS
13867
13868
13869#define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \
13870 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13871
13872#define ID3D12SwapChainAssistant_AddRef(This) \
13873 ( (This)->lpVtbl -> AddRef(This) )
13874
13875#define ID3D12SwapChainAssistant_Release(This) \
13876 ( (This)->lpVtbl -> Release(This) )
13877
13878#if !defined(_WIN32)
13879
13880#define ID3D12SwapChainAssistant_GetLUID(This) \
13881 ( (This)->lpVtbl -> GetLUID(This) )
13882#else
13883#define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \
13884 ( (This)->lpVtbl -> GetLUID(This,RetVal) )
13885#endif
13886
13887#define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \
13888 ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) )
13889
13890#define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \
13891 ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) )
13892
13893#define ID3D12SwapChainAssistant_InsertImplicitSync(This) \
13894 ( (This)->lpVtbl -> InsertImplicitSync(This) )
13895
13896#endif /* COBJMACROS */
13897
13898
13899#endif /* C style interface */
13900
13901
13902
13903
13904#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
13905
13906
13907#ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13908#define __ID3D12LifetimeTracker_INTERFACE_DEFINED__
13909
13910/* interface ID3D12LifetimeTracker */
13911/* [unique][local][object][uuid] */
13912
13913
13914EXTERN_C const IID IID_ID3D12LifetimeTracker;
13915
13916#if defined(__cplusplus) && !defined(CINTERFACE)
13917
13918 MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813")
13919 ID3D12LifetimeTracker : public ID3D12DeviceChild
13920 {
13921 public:
13922 virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject(
13923 _In_ ID3D12DeviceChild *pObject) = 0;
13924
13925 };
13926
13927
13928#else /* C style interface */
13929
13930 typedef struct ID3D12LifetimeTrackerVtbl
13931 {
13932 BEGIN_INTERFACE
13933
13934 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
13935 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13936 ID3D12LifetimeTracker * This,
13937 REFIID riid,
13938 _COM_Outptr_ void **ppvObject);
13939
13940 DECLSPEC_XFGVIRT(IUnknown, AddRef)
13941 ULONG ( STDMETHODCALLTYPE *AddRef )(
13942 ID3D12LifetimeTracker * This);
13943
13944 DECLSPEC_XFGVIRT(IUnknown, Release)
13945 ULONG ( STDMETHODCALLTYPE *Release )(
13946 ID3D12LifetimeTracker * This);
13947
13948 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
13949 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
13950 ID3D12LifetimeTracker * This,
13951 _In_ REFGUID guid,
13952 _Inout_ UINT *pDataSize,
13953 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
13954
13955 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
13956 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
13957 ID3D12LifetimeTracker * This,
13958 _In_ REFGUID guid,
13959 _In_ UINT DataSize,
13960 _In_reads_bytes_opt_( DataSize ) const void *pData);
13961
13962 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
13963 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
13964 ID3D12LifetimeTracker * This,
13965 _In_ REFGUID guid,
13966 _In_opt_ const IUnknown *pData);
13967
13968 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
13969 HRESULT ( STDMETHODCALLTYPE *SetName )(
13970 ID3D12LifetimeTracker * This,
13971 _In_z_ LPCWSTR Name);
13972
13973 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
13974 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
13975 ID3D12LifetimeTracker * This,
13976 REFIID riid,
13977 _COM_Outptr_opt_ void **ppvDevice);
13978
13979 DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject)
13980 HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )(
13981 ID3D12LifetimeTracker * This,
13982 _In_ ID3D12DeviceChild *pObject);
13983
13984 END_INTERFACE
13985 } ID3D12LifetimeTrackerVtbl;
13986
13987 interface ID3D12LifetimeTracker
13988 {
13989 CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl;
13990 };
13991
13992
13993
13994#ifdef COBJMACROS
13995
13996
13997#define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \
13998 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13999
14000#define ID3D12LifetimeTracker_AddRef(This) \
14001 ( (This)->lpVtbl -> AddRef(This) )
14002
14003#define ID3D12LifetimeTracker_Release(This) \
14004 ( (This)->lpVtbl -> Release(This) )
14005
14006
14007#define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \
14008 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
14009
14010#define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \
14011 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
14012
14013#define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \
14014 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
14015
14016#define ID3D12LifetimeTracker_SetName(This,Name) \
14017 ( (This)->lpVtbl -> SetName(This,Name) )
14018
14019
14020#define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \
14021 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
14022
14023
14024#define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \
14025 ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) )
14026
14027#endif /* COBJMACROS */
14028
14029
14030#endif /* C style interface */
14031
14032
14033
14034
14035#endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */
14036
14037
14038/* interface __MIDL_itf_d3d12_0000_0034 */
14039/* [local] */
14040
14041typedef
14042enum D3D12_META_COMMAND_PARAMETER_TYPE
14043 {
14044 D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
14045 D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
14046 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
14047 D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
14048 D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4
14049 } D3D12_META_COMMAND_PARAMETER_TYPE;
14050
14051typedef
14052enum D3D12_META_COMMAND_PARAMETER_FLAGS
14053 {
14054 D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1,
14055 D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2
14056 } D3D12_META_COMMAND_PARAMETER_FLAGS;
14057
14058DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )
14059typedef
14060enum D3D12_META_COMMAND_PARAMETER_STAGE
14061 {
14062 D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
14063 D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
14064 D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2
14065 } D3D12_META_COMMAND_PARAMETER_STAGE;
14066
14067typedef struct D3D12_META_COMMAND_PARAMETER_DESC
14068 {
14069 LPCWSTR Name;
14070 D3D12_META_COMMAND_PARAMETER_TYPE Type;
14071 D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
14072 D3D12_RESOURCE_STATES RequiredResourceState;
14073 UINT StructureOffset;
14074 } D3D12_META_COMMAND_PARAMETER_DESC;
14075
14076typedef
14077enum D3D12_GRAPHICS_STATES
14078 {
14079 D3D12_GRAPHICS_STATE_NONE = 0,
14080 D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) ,
14081 D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) ,
14082 D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) ,
14083 D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) ,
14084 D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) ,
14085 D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) ,
14086 D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) ,
14087 D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) ,
14088 D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) ,
14089 D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) ,
14090 D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) ,
14091 D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) ,
14092 D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) ,
14093 D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) ,
14094 D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) ,
14095 D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) ,
14096 D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 )
14097 } D3D12_GRAPHICS_STATES;
14098
14099DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )
14100typedef struct D3D12_META_COMMAND_DESC
14101 {
14102 GUID Id;
14103 LPCWSTR Name;
14104 D3D12_GRAPHICS_STATES InitializationDirtyState;
14105 D3D12_GRAPHICS_STATES ExecutionDirtyState;
14106 } D3D12_META_COMMAND_DESC;
14107
14108
14109
14110extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec;
14111extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec;
14112
14113#ifndef __ID3D12StateObject_INTERFACE_DEFINED__
14114#define __ID3D12StateObject_INTERFACE_DEFINED__
14115
14116/* interface ID3D12StateObject */
14117/* [unique][local][object][uuid] */
14118
14119
14120EXTERN_C const IID IID_ID3D12StateObject;
14121
14122#if defined(__cplusplus) && !defined(CINTERFACE)
14123
14124 MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d")
14125 ID3D12StateObject : public ID3D12Pageable
14126 {
14127 public:
14128 };
14129
14130
14131#else /* C style interface */
14132
14133 typedef struct ID3D12StateObjectVtbl
14134 {
14135 BEGIN_INTERFACE
14136
14137 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14138 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14139 ID3D12StateObject * This,
14140 REFIID riid,
14141 _COM_Outptr_ void **ppvObject);
14142
14143 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14144 ULONG ( STDMETHODCALLTYPE *AddRef )(
14145 ID3D12StateObject * This);
14146
14147 DECLSPEC_XFGVIRT(IUnknown, Release)
14148 ULONG ( STDMETHODCALLTYPE *Release )(
14149 ID3D12StateObject * This);
14150
14151 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
14152 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
14153 ID3D12StateObject * This,
14154 _In_ REFGUID guid,
14155 _Inout_ UINT *pDataSize,
14156 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
14157
14158 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
14159 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
14160 ID3D12StateObject * This,
14161 _In_ REFGUID guid,
14162 _In_ UINT DataSize,
14163 _In_reads_bytes_opt_( DataSize ) const void *pData);
14164
14165 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
14166 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
14167 ID3D12StateObject * This,
14168 _In_ REFGUID guid,
14169 _In_opt_ const IUnknown *pData);
14170
14171 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
14172 HRESULT ( STDMETHODCALLTYPE *SetName )(
14173 ID3D12StateObject * This,
14174 _In_z_ LPCWSTR Name);
14175
14176 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
14177 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
14178 ID3D12StateObject * This,
14179 REFIID riid,
14180 _COM_Outptr_opt_ void **ppvDevice);
14181
14182 END_INTERFACE
14183 } ID3D12StateObjectVtbl;
14184
14185 interface ID3D12StateObject
14186 {
14187 CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl;
14188 };
14189
14190
14191
14192#ifdef COBJMACROS
14193
14194
14195#define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \
14196 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14197
14198#define ID3D12StateObject_AddRef(This) \
14199 ( (This)->lpVtbl -> AddRef(This) )
14200
14201#define ID3D12StateObject_Release(This) \
14202 ( (This)->lpVtbl -> Release(This) )
14203
14204
14205#define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \
14206 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
14207
14208#define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \
14209 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
14210
14211#define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \
14212 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
14213
14214#define ID3D12StateObject_SetName(This,Name) \
14215 ( (This)->lpVtbl -> SetName(This,Name) )
14216
14217
14218#define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \
14219 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
14220
14221
14222
14223#endif /* COBJMACROS */
14224
14225
14226#endif /* C style interface */
14227
14228
14229
14230
14231#endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */
14232
14233
14234#ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__
14235#define __ID3D12StateObjectProperties_INTERFACE_DEFINED__
14236
14237/* interface ID3D12StateObjectProperties */
14238/* [unique][local][object][uuid] */
14239
14240
14241EXTERN_C const IID IID_ID3D12StateObjectProperties;
14242
14243#if defined(__cplusplus) && !defined(CINTERFACE)
14244
14245 MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860")
14246 ID3D12StateObjectProperties : public IUnknown
14247 {
14248 public:
14249 virtual void *STDMETHODCALLTYPE GetShaderIdentifier(
14250 _In_ LPCWSTR pExportName) = 0;
14251
14252 virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize(
14253 _In_ LPCWSTR pExportName) = 0;
14254
14255 virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0;
14256
14257 virtual void STDMETHODCALLTYPE SetPipelineStackSize(
14258 UINT64 PipelineStackSizeInBytes) = 0;
14259
14260 };
14261
14262
14263#else /* C style interface */
14264
14265 typedef struct ID3D12StateObjectPropertiesVtbl
14266 {
14267 BEGIN_INTERFACE
14268
14269 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14270 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14271 ID3D12StateObjectProperties * This,
14272 REFIID riid,
14273 _COM_Outptr_ void **ppvObject);
14274
14275 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14276 ULONG ( STDMETHODCALLTYPE *AddRef )(
14277 ID3D12StateObjectProperties * This);
14278
14279 DECLSPEC_XFGVIRT(IUnknown, Release)
14280 ULONG ( STDMETHODCALLTYPE *Release )(
14281 ID3D12StateObjectProperties * This);
14282
14283 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14284 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14285 ID3D12StateObjectProperties * This,
14286 _In_ LPCWSTR pExportName);
14287
14288 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14289 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14290 ID3D12StateObjectProperties * This,
14291 _In_ LPCWSTR pExportName);
14292
14293 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14294 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14295 ID3D12StateObjectProperties * This);
14296
14297 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14298 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14299 ID3D12StateObjectProperties * This,
14300 UINT64 PipelineStackSizeInBytes);
14301
14302 END_INTERFACE
14303 } ID3D12StateObjectPropertiesVtbl;
14304
14305 interface ID3D12StateObjectProperties
14306 {
14307 CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl;
14308 };
14309
14310
14311
14312#ifdef COBJMACROS
14313
14314
14315#define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \
14316 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14317
14318#define ID3D12StateObjectProperties_AddRef(This) \
14319 ( (This)->lpVtbl -> AddRef(This) )
14320
14321#define ID3D12StateObjectProperties_Release(This) \
14322 ( (This)->lpVtbl -> Release(This) )
14323
14324
14325#define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \
14326 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14327
14328#define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \
14329 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14330
14331#define ID3D12StateObjectProperties_GetPipelineStackSize(This) \
14332 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14333
14334#define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14335 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14336
14337#endif /* COBJMACROS */
14338
14339
14340#endif /* C style interface */
14341
14342
14343
14344
14345#endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */
14346
14347
14348/* interface __MIDL_itf_d3d12_0000_0036 */
14349/* [local] */
14350
14351typedef struct D3D12_PROGRAM_IDENTIFIER
14352 {
14353 UINT64 OpaqueData[ 4 ];
14354 } D3D12_PROGRAM_IDENTIFIER;
14355
14356
14357
14358extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec;
14359extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec;
14360
14361#ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
14362#define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__
14363
14364/* interface ID3D12StateObjectProperties1 */
14365/* [unique][local][object][uuid] */
14366
14367
14368EXTERN_C const IID IID_ID3D12StateObjectProperties1;
14369
14370#if defined(__cplusplus) && !defined(CINTERFACE)
14371
14372 MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138")
14373 ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties
14374 {
14375 public:
14376#if defined(_MSC_VER) || !defined(_WIN32)
14377 virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier(
14378 LPCWSTR pProgramName) = 0;
14379#else
14380 virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier(
14381 D3D12_PROGRAM_IDENTIFIER * RetVal,
14382 LPCWSTR pProgramName) = 0;
14383#endif
14384
14385 };
14386
14387
14388#else /* C style interface */
14389
14390 typedef struct ID3D12StateObjectProperties1Vtbl
14391 {
14392 BEGIN_INTERFACE
14393
14394 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14395 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14396 ID3D12StateObjectProperties1 * This,
14397 REFIID riid,
14398 _COM_Outptr_ void **ppvObject);
14399
14400 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14401 ULONG ( STDMETHODCALLTYPE *AddRef )(
14402 ID3D12StateObjectProperties1 * This);
14403
14404 DECLSPEC_XFGVIRT(IUnknown, Release)
14405 ULONG ( STDMETHODCALLTYPE *Release )(
14406 ID3D12StateObjectProperties1 * This);
14407
14408 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14409 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14410 ID3D12StateObjectProperties1 * This,
14411 _In_ LPCWSTR pExportName);
14412
14413 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14414 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14415 ID3D12StateObjectProperties1 * This,
14416 _In_ LPCWSTR pExportName);
14417
14418 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14419 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14420 ID3D12StateObjectProperties1 * This);
14421
14422 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14423 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14424 ID3D12StateObjectProperties1 * This,
14425 UINT64 PipelineStackSizeInBytes);
14426
14427 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
14428#if !defined(_WIN32)
14429 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
14430 ID3D12StateObjectProperties1 * This,
14431 LPCWSTR pProgramName);
14432
14433#else
14434 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
14435 ID3D12StateObjectProperties1 * This,
14436 D3D12_PROGRAM_IDENTIFIER * RetVal,
14437 LPCWSTR pProgramName);
14438
14439#endif
14440
14441 END_INTERFACE
14442 } ID3D12StateObjectProperties1Vtbl;
14443
14444 interface ID3D12StateObjectProperties1
14445 {
14446 CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl;
14447 };
14448
14449
14450
14451#ifdef COBJMACROS
14452
14453
14454#define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \
14455 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14456
14457#define ID3D12StateObjectProperties1_AddRef(This) \
14458 ( (This)->lpVtbl -> AddRef(This) )
14459
14460#define ID3D12StateObjectProperties1_Release(This) \
14461 ( (This)->lpVtbl -> Release(This) )
14462
14463
14464#define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \
14465 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14466
14467#define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \
14468 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14469
14470#define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \
14471 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14472
14473#define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14474 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14475
14476#if !defined(_WIN32)
14477
14478#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \
14479 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
14480#else
14481#define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \
14482 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
14483#endif
14484
14485#endif /* COBJMACROS */
14486
14487
14488#endif /* C style interface */
14489
14490
14491
14492
14493#endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */
14494
14495
14496#ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
14497#define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__
14498
14499/* interface ID3D12StateObjectProperties2 */
14500/* [unique][local][object][uuid] */
14501
14502
14503EXTERN_C const IID IID_ID3D12StateObjectProperties2;
14504
14505#if defined(__cplusplus) && !defined(CINTERFACE)
14506
14507 MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884")
14508 ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1
14509 {
14510 public:
14511 virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram(
14512 LPCWSTR pProgramName,
14513 REFIID riid,
14514 _COM_Outptr_ void **ppvRootSignature) = 0;
14515
14516 virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader(
14517 LPCWSTR pExportName,
14518 REFIID riid,
14519 _COM_Outptr_ void **ppvRootSignature) = 0;
14520
14521 };
14522
14523
14524#else /* C style interface */
14525
14526 typedef struct ID3D12StateObjectProperties2Vtbl
14527 {
14528 BEGIN_INTERFACE
14529
14530 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14531 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14532 ID3D12StateObjectProperties2 * This,
14533 REFIID riid,
14534 _COM_Outptr_ void **ppvObject);
14535
14536 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14537 ULONG ( STDMETHODCALLTYPE *AddRef )(
14538 ID3D12StateObjectProperties2 * This);
14539
14540 DECLSPEC_XFGVIRT(IUnknown, Release)
14541 ULONG ( STDMETHODCALLTYPE *Release )(
14542 ID3D12StateObjectProperties2 * This);
14543
14544 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier)
14545 void *( STDMETHODCALLTYPE *GetShaderIdentifier )(
14546 ID3D12StateObjectProperties2 * This,
14547 _In_ LPCWSTR pExportName);
14548
14549 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize)
14550 UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )(
14551 ID3D12StateObjectProperties2 * This,
14552 _In_ LPCWSTR pExportName);
14553
14554 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize)
14555 UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )(
14556 ID3D12StateObjectProperties2 * This);
14557
14558 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize)
14559 void ( STDMETHODCALLTYPE *SetPipelineStackSize )(
14560 ID3D12StateObjectProperties2 * This,
14561 UINT64 PipelineStackSizeInBytes);
14562
14563 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier)
14564#if !defined(_WIN32)
14565 D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )(
14566 ID3D12StateObjectProperties2 * This,
14567 LPCWSTR pProgramName);
14568
14569#else
14570 D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )(
14571 ID3D12StateObjectProperties2 * This,
14572 D3D12_PROGRAM_IDENTIFIER * RetVal,
14573 LPCWSTR pProgramName);
14574
14575#endif
14576
14577 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram)
14578 HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )(
14579 ID3D12StateObjectProperties2 * This,
14580 LPCWSTR pProgramName,
14581 REFIID riid,
14582 _COM_Outptr_ void **ppvRootSignature);
14583
14584 DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader)
14585 HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )(
14586 ID3D12StateObjectProperties2 * This,
14587 LPCWSTR pExportName,
14588 REFIID riid,
14589 _COM_Outptr_ void **ppvRootSignature);
14590
14591 END_INTERFACE
14592 } ID3D12StateObjectProperties2Vtbl;
14593
14594 interface ID3D12StateObjectProperties2
14595 {
14596 CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl;
14597 };
14598
14599
14600
14601#ifdef COBJMACROS
14602
14603
14604#define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \
14605 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14606
14607#define ID3D12StateObjectProperties2_AddRef(This) \
14608 ( (This)->lpVtbl -> AddRef(This) )
14609
14610#define ID3D12StateObjectProperties2_Release(This) \
14611 ( (This)->lpVtbl -> Release(This) )
14612
14613
14614#define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \
14615 ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) )
14616
14617#define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \
14618 ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) )
14619
14620#define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \
14621 ( (This)->lpVtbl -> GetPipelineStackSize(This) )
14622
14623#define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \
14624 ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) )
14625
14626#if !defined(_WIN32)
14627
14628#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \
14629 ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) )
14630#else
14631#define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \
14632 ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) )
14633#endif
14634
14635
14636#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \
14637 ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) )
14638
14639#define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \
14640 ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) )
14641
14642#endif /* COBJMACROS */
14643
14644
14645#endif /* C style interface */
14646
14647
14648
14649
14650#endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */
14651
14652
14653/* interface __MIDL_itf_d3d12_0000_0038 */
14654/* [local] */
14655
14656typedef struct D3D12_NODE_ID
14657 {
14658 LPCWSTR Name;
14659 UINT ArrayIndex;
14660 } D3D12_NODE_ID;
14661
14662typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS
14663 {
14664 UINT64 MinSizeInBytes;
14665 UINT64 MaxSizeInBytes;
14666 UINT SizeGranularityInBytes;
14667 } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS;
14668
14669
14670
14671extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec;
14672extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec;
14673
14674#ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
14675#define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__
14676
14677/* interface ID3D12WorkGraphProperties */
14678/* [unique][local][object][uuid] */
14679
14680
14681EXTERN_C const IID IID_ID3D12WorkGraphProperties;
14682
14683#if defined(__cplusplus) && !defined(CINTERFACE)
14684
14685 MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757")
14686 ID3D12WorkGraphProperties : public IUnknown
14687 {
14688 public:
14689 virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0;
14690
14691 virtual LPCWSTR STDMETHODCALLTYPE GetProgramName(
14692 UINT WorkGraphIndex) = 0;
14693
14694 virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex(
14695 LPCWSTR pProgramName) = 0;
14696
14697 virtual UINT STDMETHODCALLTYPE GetNumNodes(
14698 UINT WorkGraphIndex) = 0;
14699
14700#if defined(_MSC_VER) || !defined(_WIN32)
14701 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID(
14702 UINT WorkGraphIndex,
14703 UINT NodeIndex) = 0;
14704#else
14705 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID(
14706 D3D12_NODE_ID * RetVal,
14707 UINT WorkGraphIndex,
14708 UINT NodeIndex) = 0;
14709#endif
14710
14711 virtual UINT STDMETHODCALLTYPE GetNodeIndex(
14712 UINT WorkGraphIndex,
14713 D3D12_NODE_ID NodeID) = 0;
14714
14715 virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex(
14716 UINT WorkGraphIndex,
14717 UINT NodeIndex) = 0;
14718
14719 virtual UINT STDMETHODCALLTYPE GetNumEntrypoints(
14720 UINT WorkGraphIndex) = 0;
14721
14722#if defined(_MSC_VER) || !defined(_WIN32)
14723 virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID(
14724 UINT WorkGraphIndex,
14725 UINT EntrypointIndex) = 0;
14726#else
14727 virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID(
14728 D3D12_NODE_ID * RetVal,
14729 UINT WorkGraphIndex,
14730 UINT EntrypointIndex) = 0;
14731#endif
14732
14733 virtual UINT STDMETHODCALLTYPE GetEntrypointIndex(
14734 UINT WorkGraphIndex,
14735 D3D12_NODE_ID NodeID) = 0;
14736
14737 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes(
14738 UINT WorkGraphIndex,
14739 UINT EntrypointIndex) = 0;
14740
14741 virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements(
14742 UINT WorkGraphIndex,
14743 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0;
14744
14745 virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes(
14746 UINT WorkGraphIndex,
14747 UINT EntrypointIndex) = 0;
14748
14749 };
14750
14751
14752#else /* C style interface */
14753
14754 typedef struct ID3D12WorkGraphPropertiesVtbl
14755 {
14756 BEGIN_INTERFACE
14757
14758 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
14759 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14760 ID3D12WorkGraphProperties * This,
14761 REFIID riid,
14762 _COM_Outptr_ void **ppvObject);
14763
14764 DECLSPEC_XFGVIRT(IUnknown, AddRef)
14765 ULONG ( STDMETHODCALLTYPE *AddRef )(
14766 ID3D12WorkGraphProperties * This);
14767
14768 DECLSPEC_XFGVIRT(IUnknown, Release)
14769 ULONG ( STDMETHODCALLTYPE *Release )(
14770 ID3D12WorkGraphProperties * This);
14771
14772 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs)
14773 UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )(
14774 ID3D12WorkGraphProperties * This);
14775
14776 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName)
14777 LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )(
14778 ID3D12WorkGraphProperties * This,
14779 UINT WorkGraphIndex);
14780
14781 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex)
14782 UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )(
14783 ID3D12WorkGraphProperties * This,
14784 LPCWSTR pProgramName);
14785
14786 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes)
14787 UINT ( STDMETHODCALLTYPE *GetNumNodes )(
14788 ID3D12WorkGraphProperties * This,
14789 UINT WorkGraphIndex);
14790
14791 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID)
14792#if !defined(_WIN32)
14793 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )(
14794 ID3D12WorkGraphProperties * This,
14795 UINT WorkGraphIndex,
14796 UINT NodeIndex);
14797
14798#else
14799 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )(
14800 ID3D12WorkGraphProperties * This,
14801 D3D12_NODE_ID * RetVal,
14802 UINT WorkGraphIndex,
14803 UINT NodeIndex);
14804
14805#endif
14806
14807 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex)
14808 UINT ( STDMETHODCALLTYPE *GetNodeIndex )(
14809 ID3D12WorkGraphProperties * This,
14810 UINT WorkGraphIndex,
14811 D3D12_NODE_ID NodeID);
14812
14813 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex)
14814 UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )(
14815 ID3D12WorkGraphProperties * This,
14816 UINT WorkGraphIndex,
14817 UINT NodeIndex);
14818
14819 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints)
14820 UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )(
14821 ID3D12WorkGraphProperties * This,
14822 UINT WorkGraphIndex);
14823
14824 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID)
14825#if !defined(_WIN32)
14826 D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )(
14827 ID3D12WorkGraphProperties * This,
14828 UINT WorkGraphIndex,
14829 UINT EntrypointIndex);
14830
14831#else
14832 D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )(
14833 ID3D12WorkGraphProperties * This,
14834 D3D12_NODE_ID * RetVal,
14835 UINT WorkGraphIndex,
14836 UINT EntrypointIndex);
14837
14838#endif
14839
14840 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex)
14841 UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )(
14842 ID3D12WorkGraphProperties * This,
14843 UINT WorkGraphIndex,
14844 D3D12_NODE_ID NodeID);
14845
14846 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes)
14847 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )(
14848 ID3D12WorkGraphProperties * This,
14849 UINT WorkGraphIndex,
14850 UINT EntrypointIndex);
14851
14852 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements)
14853 void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )(
14854 ID3D12WorkGraphProperties * This,
14855 UINT WorkGraphIndex,
14856 _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements);
14857
14858 DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes)
14859 UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )(
14860 ID3D12WorkGraphProperties * This,
14861 UINT WorkGraphIndex,
14862 UINT EntrypointIndex);
14863
14864 END_INTERFACE
14865 } ID3D12WorkGraphPropertiesVtbl;
14866
14867 interface ID3D12WorkGraphProperties
14868 {
14869 CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl;
14870 };
14871
14872
14873
14874#ifdef COBJMACROS
14875
14876
14877#define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \
14878 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14879
14880#define ID3D12WorkGraphProperties_AddRef(This) \
14881 ( (This)->lpVtbl -> AddRef(This) )
14882
14883#define ID3D12WorkGraphProperties_Release(This) \
14884 ( (This)->lpVtbl -> Release(This) )
14885
14886
14887#define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \
14888 ( (This)->lpVtbl -> GetNumWorkGraphs(This) )
14889
14890#define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \
14891 ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) )
14892
14893#define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \
14894 ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) )
14895
14896#define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \
14897 ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) )
14898#if !defined(_WIN32)
14899
14900#define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \
14901 ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) )
14902#else
14903#define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \
14904 ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) )
14905#endif
14906
14907#define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \
14908 ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) )
14909
14910#define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \
14911 ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) )
14912
14913#define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \
14914 ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) )
14915#if !defined(_WIN32)
14916
14917#define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \
14918 ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) )
14919#else
14920#define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \
14921 ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) )
14922#endif
14923
14924#define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \
14925 ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) )
14926
14927#define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \
14928 ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) )
14929
14930#define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \
14931 ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) )
14932
14933#define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \
14934 ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) )
14935
14936#endif /* COBJMACROS */
14937
14938
14939#endif /* C style interface */
14940
14941
14942
14943
14944#endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */
14945
14946
14947/* interface __MIDL_itf_d3d12_0000_0039 */
14948/* [local] */
14949
14950typedef
14951enum D3D12_STATE_SUBOBJECT_TYPE
14952 {
14953 D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0,
14954 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1,
14955 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2,
14956 D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3,
14957 D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5,
14958 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6,
14959 D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7,
14960 D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8,
14961 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9,
14962 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10,
14963 D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11,
14964 D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12,
14965 D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13,
14966 D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14,
14967 D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15,
14968 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16,
14969 D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17,
14970 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18,
14971 D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19,
14972 D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20,
14973 D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21,
14974 D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22,
14975 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23,
14976 D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24,
14977 D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26,
14978 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27,
14979 D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28,
14980 D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29,
14981 D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30,
14982 D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31,
14983 D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32,
14984 D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33,
14985 D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36,
14986 D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 )
14987 } D3D12_STATE_SUBOBJECT_TYPE;
14988
14989typedef struct D3D12_STATE_SUBOBJECT
14990 {
14991 D3D12_STATE_SUBOBJECT_TYPE Type;
14992 const void *pDesc;
14993 } D3D12_STATE_SUBOBJECT;
14994
14995typedef
14996enum D3D12_STATE_OBJECT_FLAGS
14997 {
14998 D3D12_STATE_OBJECT_FLAG_NONE = 0,
14999 D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
15000 D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
15001 D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4
15002 } D3D12_STATE_OBJECT_FLAGS;
15003
15004DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )
15005typedef struct D3D12_STATE_OBJECT_CONFIG
15006 {
15007 D3D12_STATE_OBJECT_FLAGS Flags;
15008 } D3D12_STATE_OBJECT_CONFIG;
15009
15010typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
15011 {
15012 ID3D12RootSignature *pGlobalRootSignature;
15013 } D3D12_GLOBAL_ROOT_SIGNATURE;
15014
15015typedef struct D3D12_LOCAL_ROOT_SIGNATURE
15016 {
15017 ID3D12RootSignature *pLocalRootSignature;
15018 } D3D12_LOCAL_ROOT_SIGNATURE;
15019
15020typedef struct D3D12_NODE_MASK
15021 {
15022 UINT NodeMask;
15023 } D3D12_NODE_MASK;
15024
15025typedef struct D3D12_SAMPLE_MASK
15026 {
15027 UINT SampleMask;
15028 } D3D12_SAMPLE_MASK;
15029
15030typedef struct D3D12_IB_STRIP_CUT_VALUE
15031 {
15032 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue;
15033 } D3D12_IB_STRIP_CUT_VALUE;
15034
15035typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC
15036 {
15037 D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology;
15038 } D3D12_PRIMITIVE_TOPOLOGY_DESC;
15039
15040typedef struct D3D12_DEPTH_STENCIL_FORMAT
15041 {
15042 DXGI_FORMAT DepthStencilFormat;
15043 } D3D12_DEPTH_STENCIL_FORMAT;
15044
15045typedef
15046enum D3D12_EXPORT_FLAGS
15047 {
15048 D3D12_EXPORT_FLAG_NONE = 0
15049 } D3D12_EXPORT_FLAGS;
15050
15051DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )
15052typedef struct D3D12_EXPORT_DESC
15053 {
15054 LPCWSTR Name;
15055 _In_opt_ LPCWSTR ExportToRename;
15056 D3D12_EXPORT_FLAGS Flags;
15057 } D3D12_EXPORT_DESC;
15058
15059typedef struct D3D12_DXIL_LIBRARY_DESC
15060 {
15061 D3D12_SHADER_BYTECODE DXILLibrary;
15062 UINT NumExports;
15063 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
15064 } D3D12_DXIL_LIBRARY_DESC;
15065
15066typedef struct D3D12_EXISTING_COLLECTION_DESC
15067 {
15068 ID3D12StateObject *pExistingCollection;
15069 UINT NumExports;
15070 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
15071 } D3D12_EXISTING_COLLECTION_DESC;
15072
15073typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
15074 {
15075 const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate;
15076 UINT NumExports;
15077 _In_reads_(NumExports) LPCWSTR *pExports;
15078 } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
15079
15080typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
15081 {
15082 LPCWSTR SubobjectToAssociate;
15083 UINT NumExports;
15084 _In_reads_(NumExports) LPCWSTR *pExports;
15085 } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
15086
15087typedef
15088enum D3D12_HIT_GROUP_TYPE
15089 {
15090 D3D12_HIT_GROUP_TYPE_TRIANGLES = 0,
15091 D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1
15092 } D3D12_HIT_GROUP_TYPE;
15093
15094typedef struct D3D12_HIT_GROUP_DESC
15095 {
15096 LPCWSTR HitGroupExport;
15097 D3D12_HIT_GROUP_TYPE Type;
15098 _In_opt_ LPCWSTR AnyHitShaderImport;
15099 _In_opt_ LPCWSTR ClosestHitShaderImport;
15100 _In_opt_ LPCWSTR IntersectionShaderImport;
15101 } D3D12_HIT_GROUP_DESC;
15102
15103typedef struct D3D12_RAYTRACING_SHADER_CONFIG
15104 {
15105 UINT MaxPayloadSizeInBytes;
15106 UINT MaxAttributeSizeInBytes;
15107 } D3D12_RAYTRACING_SHADER_CONFIG;
15108
15109typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
15110 {
15111 UINT MaxTraceRecursionDepth;
15112 } D3D12_RAYTRACING_PIPELINE_CONFIG;
15113
15114typedef
15115enum D3D12_RAYTRACING_PIPELINE_FLAGS
15116 {
15117 D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0,
15118 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
15119 D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
15120 D3D12_RAYTRACING_PIPELINE_FLAG_ALLOW_OPACITY_MICROMAPS = 0x400
15121 } D3D12_RAYTRACING_PIPELINE_FLAGS;
15122
15123DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )
15124typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
15125 {
15126 UINT MaxTraceRecursionDepth;
15127 D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
15128 } D3D12_RAYTRACING_PIPELINE_CONFIG1;
15129
15130typedef struct D3D12_NODE_OUTPUT_OVERRIDES
15131 {
15132 UINT OutputIndex;
15133 _In_opt_ const D3D12_NODE_ID *pNewName;
15134 _In_opt_ const BOOL *pAllowSparseNodes;
15135 _In_opt_ const UINT *pMaxRecords;
15136 _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex;
15137 } D3D12_NODE_OUTPUT_OVERRIDES;
15138
15139typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES
15140 {
15141 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15142 _In_opt_ const BOOL *pProgramEntry;
15143 _In_opt_ const D3D12_NODE_ID *pNewName;
15144 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15145 _In_reads_opt_(3) const UINT *pDispatchGrid;
15146 _In_reads_opt_(3) const UINT *pMaxDispatchGrid;
15147 UINT NumOutputOverrides;
15148 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15149 } D3D12_BROADCASTING_LAUNCH_OVERRIDES;
15150
15151typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES
15152 {
15153 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15154 _In_opt_ const BOOL *pProgramEntry;
15155 _In_opt_ const D3D12_NODE_ID *pNewName;
15156 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15157 UINT NumOutputOverrides;
15158 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15159 } D3D12_COALESCING_LAUNCH_OVERRIDES;
15160
15161typedef struct D3D12_THREAD_LAUNCH_OVERRIDES
15162 {
15163 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15164 _In_opt_ const BOOL *pProgramEntry;
15165 _In_opt_ const D3D12_NODE_ID *pNewName;
15166 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15167 UINT NumOutputOverrides;
15168 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15169 } D3D12_THREAD_LAUNCH_OVERRIDES;
15170
15171typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES
15172 {
15173 _In_opt_ const UINT *pLocalRootArgumentsTableIndex;
15174 _In_opt_ const BOOL *pProgramEntry;
15175 _In_opt_ const D3D12_NODE_ID *pNewName;
15176 _In_opt_ const D3D12_NODE_ID *pShareInputOf;
15177 UINT NumOutputOverrides;
15178 _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides;
15179 } D3D12_COMMON_COMPUTE_NODE_OVERRIDES;
15180
15181typedef
15182enum D3D12_NODE_OVERRIDES_TYPE
15183 {
15184 D3D12_NODE_OVERRIDES_TYPE_NONE = 0,
15185 D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1,
15186 D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2,
15187 D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3,
15188 D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4
15189 } D3D12_NODE_OVERRIDES_TYPE;
15190
15191typedef struct D3D12_SHADER_NODE
15192 {
15193 LPCWSTR Shader;
15194 D3D12_NODE_OVERRIDES_TYPE OverridesType;
15195 union
15196 {
15197 const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides;
15198 const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides;
15199 const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides;
15200 const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides;
15201 } ;
15202 } D3D12_SHADER_NODE;
15203
15204typedef
15205enum D3D12_NODE_TYPE
15206 {
15207 D3D12_NODE_TYPE_SHADER = 0
15208 } D3D12_NODE_TYPE;
15209
15210typedef struct D3D12_NODE
15211 {
15212 D3D12_NODE_TYPE NodeType;
15213 union
15214 {
15215 D3D12_SHADER_NODE Shader;
15216 } ;
15217 } D3D12_NODE;
15218
15219typedef
15220enum D3D12_WORK_GRAPH_FLAGS
15221 {
15222 D3D12_WORK_GRAPH_FLAG_NONE = 0,
15223 D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1
15224 } D3D12_WORK_GRAPH_FLAGS;
15225
15226DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )
15227typedef struct D3D12_WORK_GRAPH_DESC
15228 {
15229 LPCWSTR ProgramName;
15230 D3D12_WORK_GRAPH_FLAGS Flags;
15231 UINT NumEntrypoints;
15232 _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints;
15233 UINT NumExplicitlyDefinedNodes;
15234 _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes;
15235 } D3D12_WORK_GRAPH_DESC;
15236
15237typedef struct D3D12_GENERIC_PROGRAM_DESC
15238 {
15239 LPCWSTR ProgramName;
15240 UINT NumExports;
15241 _In_reads_(NumExports) LPCWSTR *pExports;
15242 UINT NumSubobjects;
15243 _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects;
15244 } D3D12_GENERIC_PROGRAM_DESC;
15245
15246typedef
15247enum D3D12_STATE_OBJECT_TYPE
15248 {
15249 D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
15250 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3,
15251 D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4
15252 } D3D12_STATE_OBJECT_TYPE;
15253
15254typedef struct D3D12_STATE_OBJECT_DESC
15255 {
15256 D3D12_STATE_OBJECT_TYPE Type;
15257 UINT NumSubobjects;
15258 _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects;
15259 } D3D12_STATE_OBJECT_DESC;
15260
15261typedef
15262enum D3D12_RAYTRACING_GEOMETRY_FLAGS
15263 {
15264 D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
15265 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
15266 D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
15267 } D3D12_RAYTRACING_GEOMETRY_FLAGS;
15268
15269DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )
15270typedef
15271enum D3D12_RAYTRACING_GEOMETRY_TYPE
15272 {
15273 D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0,
15274 D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) ,
15275 D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES = ( D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS + 1 )
15276 } D3D12_RAYTRACING_GEOMETRY_TYPE;
15277
15278typedef
15279enum D3D12_RAYTRACING_INSTANCE_FLAGS
15280 {
15281 D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
15282 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
15283 D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
15284 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
15285 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8,
15286 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 0x10,
15287 D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 0x20
15288 } D3D12_RAYTRACING_INSTANCE_FLAGS;
15289
15290DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )
15291typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
15292 {
15293 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15294 UINT64 StrideInBytes;
15295 } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
15296
15297typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
15298 {
15299 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15300 UINT64 SizeInBytes;
15301 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
15302
15303typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
15304 {
15305 D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
15306 UINT64 SizeInBytes;
15307 UINT64 StrideInBytes;
15308 } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
15309
15310typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
15311 {
15312 D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
15313 DXGI_FORMAT IndexFormat;
15314 DXGI_FORMAT VertexFormat;
15315 UINT IndexCount;
15316 UINT VertexCount;
15317 D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
15318 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
15319 } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
15320
15321typedef struct D3D12_RAYTRACING_AABB
15322 {
15323 FLOAT MinX;
15324 FLOAT MinY;
15325 FLOAT MinZ;
15326 FLOAT MaxX;
15327 FLOAT MaxY;
15328 FLOAT MaxZ;
15329 } D3D12_RAYTRACING_AABB;
15330
15331typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
15332 {
15333 UINT64 AABBCount;
15334 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
15335 } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
15336
15337typedef
15338enum D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX
15339 {
15340 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1,
15341 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2,
15342 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3,
15343 D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4
15344 } D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX;
15345
15346typedef
15347enum D3D12_RAYTRACING_OPACITY_MICROMAP_STATE
15348 {
15349 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0,
15350 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1,
15351 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2,
15352 D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3
15353 } D3D12_RAYTRACING_OPACITY_MICROMAP_STATE;
15354
15355typedef
15356enum D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT
15357 {
15358 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1,
15359 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2
15360 } D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT;
15361
15362typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_DESC
15363{
15364 UINT ByteOffset;
15365 UINT SubdivisionLevel : 16;
15366 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format : 16;
15367} D3D12_RAYTRACING_OPACITY_MICROMAP_DESC;
15368typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC
15369 {
15370 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE OpacityMicromapIndexBuffer;
15371 DXGI_FORMAT OpacityMicromapIndexFormat;
15372 UINT OpacityMicromapBaseLocation;
15373 D3D12_GPU_VIRTUAL_ADDRESS OpacityMicromapArray;
15374 } D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC;
15375
15376typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC
15377 {
15378 const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC *pTriangles;
15379 const D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC *pOmmLinkage;
15380 } D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC;
15381
15382typedef
15383enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
15384 {
15385 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
15386 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
15387 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
15388 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
15389 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
15390 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
15391 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
15392 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE = 0x40,
15393 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS = 0x80
15394 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
15395
15396DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )
15397typedef
15398enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
15399 {
15400 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
15401 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
15402 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
15403 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
15404 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
15405 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
15406
15407typedef
15408enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
15409 {
15410 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0,
15411 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1,
15412 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_ARRAY = 0x2
15413 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
15414
15415typedef
15416enum D3D12_ELEMENTS_LAYOUT
15417 {
15418 D3D12_ELEMENTS_LAYOUT_ARRAY = 0,
15419 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
15420 } D3D12_ELEMENTS_LAYOUT;
15421
15422typedef
15423enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
15424 {
15425 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0,
15426 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
15427 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
15428 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3
15429 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
15430
15431typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
15432 {
15433 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
15434 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
15435 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
15436
15437typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
15438 {
15439 UINT64 CompactedSizeInBytes;
15440 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
15441
15442typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
15443 {
15444 UINT64 DecodedSizeInBytes;
15445 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
15446
15447typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
15448 {
15449 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
15450 UINT NumDescs;
15451 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
15452
15453// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,
15454// depending on Type field, NumDescs above is followed by either:
15455// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]
15456// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].
15457// or D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC (NumDescs == 1 in this case).
15458//
15459// For D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC, the pOmmHistogram pointer becomes a GPUVA instead of CPU pointer
15460//
15461// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.
15462
15463typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
15464 {
15465 UINT64 SerializedSizeInBytes;
15466 union
15467 {
15468 UINT64 NumBottomLevelAccelerationStructurePointers;
15469 UINT64 NumBottomLevelAccelerationStructureHeaderAndPointerListPairs;
15470 } ;
15471 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
15472
15473typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
15474 {
15475 GUID DriverOpaqueGUID;
15476 BYTE DriverOpaqueVersioningData[ 16 ];
15477 } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
15478
15479typedef
15480enum D3D12_SERIALIZED_DATA_TYPE
15481 {
15482 D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0,
15483 D3D12_SERIALIZED_DATA_APPLICATION_SPECIFIC_DRIVER_STATE = 0x1
15484 } D3D12_SERIALIZED_DATA_TYPE;
15485
15486typedef
15487enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
15488 {
15489 D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0,
15490 D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
15491 D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
15492 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
15493 D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4
15494 } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
15495
15496typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
15497 {
15498 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
15499 UINT64 SerializedSizeInBytesIncludingHeader;
15500 UINT64 DeserializedSizeInBytes;
15501 UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
15502 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
15503
15504typedef
15505enum D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE
15506 {
15507 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_NONE = 0,
15508 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BOTTOM_LEVEL_POINTERS = 0,
15509 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BLOCKS = 0xffffffff
15510 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE;
15511
15512typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1
15513 {
15514 D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
15515 UINT64 SerializedSizeInBytesIncludingHeader;
15516 UINT64 DeserializedSizeInBytes;
15517 union
15518 {
15519 UINT NumBottomLevelAccelerationStructurePointersAfterHeader;
15520 UINT NumBlocks;
15521 } ;
15522 D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE HeaderPostambleType;
15523 } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1;
15524
15525typedef
15526enum D3D12_SERIALIZED_BLOCK_TYPE
15527 {
15528 D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAPS = 0
15529 } D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE;
15530
15531typedef struct D3D12_RAYTRACING_SERIALIZED_BLOCK
15532 {
15533 D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE Type;
15534 UINT64 NumBlockPointersAfterHeader;
15535 } D3D12_RAYTRACING_SERIALIZED_BLOCK;
15536
15537typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
15538 {
15539 UINT64 CurrentSizeInBytes;
15540 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
15541
15542typedef struct D3D12_RAYTRACING_INSTANCE_DESC
15543 {
15544 FLOAT Transform[ 3 ][ 4 ];
15545 UINT InstanceID : 24;
15546 UINT InstanceMask : 8;
15547 UINT InstanceContributionToHitGroupIndex : 24;
15548 UINT Flags : 8;
15549 D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
15550 } D3D12_RAYTRACING_INSTANCE_DESC;
15551
15552typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
15553 {
15554 D3D12_RAYTRACING_GEOMETRY_TYPE Type;
15555 D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
15556 union
15557 {
15558 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
15559 D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
15560 D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC OmmTriangles;
15561 } ;
15562 } D3D12_RAYTRACING_GEOMETRY_DESC;
15563
15564typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY
15565 {
15566 UINT Count;
15567 UINT SubdivisionLevel;
15568 D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format;
15569 } D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY;
15570
15571typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC
15572 {
15573 UINT NumOmmHistogramEntries;
15574 const D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY *pOmmHistogram;
15575 D3D12_GPU_VIRTUAL_ADDRESS InputBuffer;
15576 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE PerOmmDescs;
15577 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC;
15578
15579typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
15580 {
15581 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
15582 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
15583 UINT NumDescs;
15584 D3D12_ELEMENTS_LAYOUT DescsLayout;
15585 union
15586 {
15587 D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
15588 const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
15589 const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs;
15590 const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC *pOpacityMicromapArrayDesc;
15591 } ;
15592 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
15593
15594typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
15595 {
15596 D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
15597 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
15598 _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
15599 D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
15600 } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
15601
15602typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
15603 {
15604 UINT64 ResultDataMaxSizeInBytes;
15605 UINT64 ScratchDataSizeInBytes;
15606 UINT64 UpdateScratchDataSizeInBytes;
15607 } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
15608
15609typedef
15610enum D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE
15611 {
15612 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0,
15613 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1
15614 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE;
15615
15616typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
15617 {
15618 D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
15619 D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE InfoType;
15620 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC;
15621
15622typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
15623 {
15624 UINT64 CurrentSizeInBytes;
15625 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC;
15626
15627typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
15628 {
15629 UINT64 DecodedSizeInBytes;
15630 } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
15631
15632typedef
15633enum D3D12_RAY_FLAGS
15634 {
15635 D3D12_RAY_FLAG_NONE = 0,
15636 D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
15637 D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
15638 D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
15639 D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
15640 D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
15641 D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
15642 D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
15643 D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
15644 D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
15645 D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
15646 D3D12_RAY_FLAG_FORCE_OMM_2_STATE = 0x400
15647 } D3D12_RAY_FLAGS;
15648
15649DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )
15650typedef
15651enum D3D12_HIT_KIND
15652 {
15653 D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
15654 D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff
15655 } D3D12_HIT_KIND;
15656
15657
15658
15659extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec;
15660extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec;
15661
15662#ifndef __ID3D12Device5_INTERFACE_DEFINED__
15663#define __ID3D12Device5_INTERFACE_DEFINED__
15664
15665/* interface ID3D12Device5 */
15666/* [unique][local][object][uuid] */
15667
15668
15669EXTERN_C const IID IID_ID3D12Device5;
15670
15671#if defined(__cplusplus) && !defined(CINTERFACE)
15672
15673 MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d")
15674 ID3D12Device5 : public ID3D12Device4
15675 {
15676 public:
15677 virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker(
15678 _In_ ID3D12LifetimeOwner *pOwner,
15679 REFIID riid,
15680 _COM_Outptr_ void **ppvTracker) = 0;
15681
15682 virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0;
15683
15684 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands(
15685 _Inout_ UINT *pNumMetaCommands,
15686 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0;
15687
15688 virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters(
15689 _In_ REFGUID CommandId,
15690 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
15691 _Out_opt_ UINT *pTotalStructureSizeInBytes,
15692 _Inout_ UINT *pParameterCount,
15693 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0;
15694
15695 virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand(
15696 _In_ REFGUID CommandId,
15697 _In_ UINT NodeMask,
15698 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
15699 _In_ SIZE_T CreationParametersDataSizeInBytes,
15700 REFIID riid,
15701 _COM_Outptr_ void **ppMetaCommand) = 0;
15702
15703 virtual HRESULT STDMETHODCALLTYPE CreateStateObject(
15704 const D3D12_STATE_OBJECT_DESC *pDesc,
15705 REFIID riid,
15706 _COM_Outptr_ void **ppStateObject) = 0;
15707
15708 virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo(
15709 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
15710 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0;
15711
15712 virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier(
15713 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
15714 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0;
15715
15716 };
15717
15718
15719#else /* C style interface */
15720
15721 typedef struct ID3D12Device5Vtbl
15722 {
15723 BEGIN_INTERFACE
15724
15725 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
15726 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15727 ID3D12Device5 * This,
15728 REFIID riid,
15729 _COM_Outptr_ void **ppvObject);
15730
15731 DECLSPEC_XFGVIRT(IUnknown, AddRef)
15732 ULONG ( STDMETHODCALLTYPE *AddRef )(
15733 ID3D12Device5 * This);
15734
15735 DECLSPEC_XFGVIRT(IUnknown, Release)
15736 ULONG ( STDMETHODCALLTYPE *Release )(
15737 ID3D12Device5 * This);
15738
15739 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
15740 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
15741 ID3D12Device5 * This,
15742 _In_ REFGUID guid,
15743 _Inout_ UINT *pDataSize,
15744 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
15745
15746 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
15747 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
15748 ID3D12Device5 * This,
15749 _In_ REFGUID guid,
15750 _In_ UINT DataSize,
15751 _In_reads_bytes_opt_( DataSize ) const void *pData);
15752
15753 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
15754 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
15755 ID3D12Device5 * This,
15756 _In_ REFGUID guid,
15757 _In_opt_ const IUnknown *pData);
15758
15759 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
15760 HRESULT ( STDMETHODCALLTYPE *SetName )(
15761 ID3D12Device5 * This,
15762 _In_z_ LPCWSTR Name);
15763
15764 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
15765 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
15766 ID3D12Device5 * This);
15767
15768 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
15769 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
15770 ID3D12Device5 * This,
15771 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
15772 REFIID riid,
15773 _COM_Outptr_ void **ppCommandQueue);
15774
15775 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
15776 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
15777 ID3D12Device5 * This,
15778 _In_ D3D12_COMMAND_LIST_TYPE type,
15779 REFIID riid,
15780 _COM_Outptr_ void **ppCommandAllocator);
15781
15782 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
15783 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
15784 ID3D12Device5 * This,
15785 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
15786 REFIID riid,
15787 _COM_Outptr_ void **ppPipelineState);
15788
15789 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
15790 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
15791 ID3D12Device5 * This,
15792 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
15793 REFIID riid,
15794 _COM_Outptr_ void **ppPipelineState);
15795
15796 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
15797 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
15798 ID3D12Device5 * This,
15799 _In_ UINT nodeMask,
15800 _In_ D3D12_COMMAND_LIST_TYPE type,
15801 _In_ ID3D12CommandAllocator *pCommandAllocator,
15802 _In_opt_ ID3D12PipelineState *pInitialState,
15803 REFIID riid,
15804 _COM_Outptr_ void **ppCommandList);
15805
15806 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
15807 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
15808 ID3D12Device5 * This,
15809 D3D12_FEATURE Feature,
15810 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
15811 UINT FeatureSupportDataSize);
15812
15813 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
15814 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
15815 ID3D12Device5 * This,
15816 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
15817 REFIID riid,
15818 _COM_Outptr_ void **ppvHeap);
15819
15820 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
15821 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
15822 ID3D12Device5 * This,
15823 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
15824
15825 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
15826 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
15827 ID3D12Device5 * This,
15828 _In_ UINT nodeMask,
15829 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
15830 _In_ SIZE_T blobLengthInBytes,
15831 REFIID riid,
15832 _COM_Outptr_ void **ppvRootSignature);
15833
15834 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
15835 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
15836 ID3D12Device5 * This,
15837 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
15838 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15839
15840 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
15841 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
15842 ID3D12Device5 * This,
15843 _In_opt_ ID3D12Resource *pResource,
15844 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
15845 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15846
15847 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
15848 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
15849 ID3D12Device5 * This,
15850 _In_opt_ ID3D12Resource *pResource,
15851 _In_opt_ ID3D12Resource *pCounterResource,
15852 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
15853 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15854
15855 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
15856 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
15857 ID3D12Device5 * This,
15858 _In_opt_ ID3D12Resource *pResource,
15859 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
15860 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15861
15862 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
15863 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
15864 ID3D12Device5 * This,
15865 _In_opt_ ID3D12Resource *pResource,
15866 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
15867 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15868
15869 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
15870 void ( STDMETHODCALLTYPE *CreateSampler )(
15871 ID3D12Device5 * This,
15872 _In_ const D3D12_SAMPLER_DESC *pDesc,
15873 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
15874
15875 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
15876 void ( STDMETHODCALLTYPE *CopyDescriptors )(
15877 ID3D12Device5 * This,
15878 _In_ UINT NumDestDescriptorRanges,
15879 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
15880 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
15881 _In_ UINT NumSrcDescriptorRanges,
15882 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
15883 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
15884 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15885
15886 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
15887 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
15888 ID3D12Device5 * This,
15889 _In_ UINT NumDescriptors,
15890 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
15891 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
15892 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
15893
15894 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
15895#if !defined(_WIN32)
15896 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15897 ID3D12Device5 * This,
15898 _In_ UINT visibleMask,
15899 _In_ UINT numResourceDescs,
15900 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15901
15902#else
15903 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
15904 ID3D12Device5 * This,
15905 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
15906 _In_ UINT visibleMask,
15907 _In_ UINT numResourceDescs,
15908 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
15909
15910#endif
15911
15912 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
15913#if !defined(_WIN32)
15914 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15915 ID3D12Device5 * This,
15916 _In_ UINT nodeMask,
15917 D3D12_HEAP_TYPE heapType);
15918
15919#else
15920 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
15921 ID3D12Device5 * This,
15922 D3D12_HEAP_PROPERTIES * RetVal,
15923 _In_ UINT nodeMask,
15924 D3D12_HEAP_TYPE heapType);
15925
15926#endif
15927
15928 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
15929 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
15930 ID3D12Device5 * This,
15931 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
15932 D3D12_HEAP_FLAGS HeapFlags,
15933 _In_ const D3D12_RESOURCE_DESC *pDesc,
15934 D3D12_RESOURCE_STATES InitialResourceState,
15935 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15936 REFIID riidResource,
15937 _COM_Outptr_opt_ void **ppvResource);
15938
15939 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
15940 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
15941 ID3D12Device5 * This,
15942 _In_ const D3D12_HEAP_DESC *pDesc,
15943 REFIID riid,
15944 _COM_Outptr_opt_ void **ppvHeap);
15945
15946 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
15947 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
15948 ID3D12Device5 * This,
15949 _In_ ID3D12Heap *pHeap,
15950 UINT64 HeapOffset,
15951 _In_ const D3D12_RESOURCE_DESC *pDesc,
15952 D3D12_RESOURCE_STATES InitialState,
15953 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15954 REFIID riid,
15955 _COM_Outptr_opt_ void **ppvResource);
15956
15957 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
15958 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
15959 ID3D12Device5 * This,
15960 _In_ const D3D12_RESOURCE_DESC *pDesc,
15961 D3D12_RESOURCE_STATES InitialState,
15962 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
15963 REFIID riid,
15964 _COM_Outptr_opt_ void **ppvResource);
15965
15966 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
15967 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
15968 ID3D12Device5 * This,
15969 _In_ ID3D12DeviceChild *pObject,
15970 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
15971 DWORD Access,
15972 _In_opt_ LPCWSTR Name,
15973 _Out_ HANDLE *pHandle);
15974
15975 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
15976 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
15977 ID3D12Device5 * This,
15978 _In_ HANDLE NTHandle,
15979 REFIID riid,
15980 _COM_Outptr_opt_ void **ppvObj);
15981
15982 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
15983 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
15984 ID3D12Device5 * This,
15985 _In_ LPCWSTR Name,
15986 DWORD Access,
15987 /* [annotation][out] */
15988 _Out_ HANDLE *pNTHandle);
15989
15990 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
15991 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
15992 ID3D12Device5 * This,
15993 UINT NumObjects,
15994 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
15995
15996 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
15997 HRESULT ( STDMETHODCALLTYPE *Evict )(
15998 ID3D12Device5 * This,
15999 UINT NumObjects,
16000 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
16001
16002 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
16003 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
16004 ID3D12Device5 * This,
16005 UINT64 InitialValue,
16006 D3D12_FENCE_FLAGS Flags,
16007 REFIID riid,
16008 _COM_Outptr_ void **ppFence);
16009
16010 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
16011 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
16012 ID3D12Device5 * This);
16013
16014 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
16015 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
16016 ID3D12Device5 * This,
16017 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
16018 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
16019 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
16020 UINT64 BaseOffset,
16021 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
16022 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
16023 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
16024 _Out_opt_ UINT64 *pTotalBytes);
16025
16026 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
16027 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
16028 ID3D12Device5 * This,
16029 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
16030 REFIID riid,
16031 _COM_Outptr_opt_ void **ppvHeap);
16032
16033 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
16034 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
16035 ID3D12Device5 * This,
16036 BOOL Enable);
16037
16038 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
16039 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
16040 ID3D12Device5 * This,
16041 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
16042 _In_opt_ ID3D12RootSignature *pRootSignature,
16043 REFIID riid,
16044 _COM_Outptr_opt_ void **ppvCommandSignature);
16045
16046 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
16047 void ( STDMETHODCALLTYPE *GetResourceTiling )(
16048 ID3D12Device5 * This,
16049 _In_ ID3D12Resource *pTiledResource,
16050 _Out_opt_ UINT *pNumTilesForEntireResource,
16051 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
16052 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
16053 _Inout_opt_ UINT *pNumSubresourceTilings,
16054 _In_ UINT FirstSubresourceTilingToGet,
16055 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
16056
16057 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
16058#if !defined(_WIN32)
16059 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
16060 ID3D12Device5 * This);
16061
16062#else
16063 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
16064 ID3D12Device5 * This,
16065 LUID * RetVal);
16066
16067#endif
16068
16069 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
16070 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
16071 ID3D12Device5 * This,
16072 _In_reads_(BlobLength) const void *pLibraryBlob,
16073 SIZE_T BlobLength,
16074 REFIID riid,
16075 _COM_Outptr_ void **ppPipelineLibrary);
16076
16077 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
16078 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
16079 ID3D12Device5 * This,
16080 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
16081 _In_reads_(NumFences) const UINT64 *pFenceValues,
16082 UINT NumFences,
16083 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
16084 HANDLE hEvent);
16085
16086 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
16087 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
16088 ID3D12Device5 * This,
16089 UINT NumObjects,
16090 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16091 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
16092
16093 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
16094 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
16095 ID3D12Device5 * This,
16096 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
16097 REFIID riid,
16098 _COM_Outptr_ void **ppPipelineState);
16099
16100 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
16101 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
16102 ID3D12Device5 * This,
16103 _In_ const void *pAddress,
16104 REFIID riid,
16105 _COM_Outptr_ void **ppvHeap);
16106
16107 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
16108 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
16109 ID3D12Device5 * This,
16110 _In_ HANDLE hFileMapping,
16111 REFIID riid,
16112 _COM_Outptr_ void **ppvHeap);
16113
16114 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
16115 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
16116 ID3D12Device5 * This,
16117 D3D12_RESIDENCY_FLAGS Flags,
16118 UINT NumObjects,
16119 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
16120 _In_ ID3D12Fence *pFenceToSignal,
16121 UINT64 FenceValueToSignal);
16122
16123 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
16124 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
16125 ID3D12Device5 * This,
16126 _In_ UINT nodeMask,
16127 _In_ D3D12_COMMAND_LIST_TYPE type,
16128 _In_ D3D12_COMMAND_LIST_FLAGS flags,
16129 REFIID riid,
16130 _COM_Outptr_ void **ppCommandList);
16131
16132 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
16133 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
16134 ID3D12Device5 * This,
16135 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
16136 _In_ REFIID riid,
16137 _COM_Outptr_ void **ppSession);
16138
16139 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
16140 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
16141 ID3D12Device5 * This,
16142 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
16143 D3D12_HEAP_FLAGS HeapFlags,
16144 _In_ const D3D12_RESOURCE_DESC *pDesc,
16145 D3D12_RESOURCE_STATES InitialResourceState,
16146 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16147 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16148 REFIID riidResource,
16149 _COM_Outptr_opt_ void **ppvResource);
16150
16151 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
16152 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
16153 ID3D12Device5 * This,
16154 _In_ const D3D12_HEAP_DESC *pDesc,
16155 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16156 REFIID riid,
16157 _COM_Outptr_opt_ void **ppvHeap);
16158
16159 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
16160 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
16161 ID3D12Device5 * This,
16162 _In_ const D3D12_RESOURCE_DESC *pDesc,
16163 D3D12_RESOURCE_STATES InitialState,
16164 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
16165 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
16166 REFIID riid,
16167 _COM_Outptr_opt_ void **ppvResource);
16168
16169 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
16170#if !defined(_WIN32)
16171 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
16172 ID3D12Device5 * This,
16173 UINT visibleMask,
16174 UINT numResourceDescs,
16175 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
16176 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
16177
16178#else
16179 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
16180 ID3D12Device5 * This,
16181 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
16182 UINT visibleMask,
16183 UINT numResourceDescs,
16184 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
16185 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
16186
16187#endif
16188
16189 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
16190 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
16191 ID3D12Device5 * This,
16192 _In_ ID3D12LifetimeOwner *pOwner,
16193 REFIID riid,
16194 _COM_Outptr_ void **ppvTracker);
16195
16196 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
16197 void ( STDMETHODCALLTYPE *RemoveDevice )(
16198 ID3D12Device5 * This);
16199
16200 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
16201 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
16202 ID3D12Device5 * This,
16203 _Inout_ UINT *pNumMetaCommands,
16204 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
16205
16206 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
16207 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
16208 ID3D12Device5 * This,
16209 _In_ REFGUID CommandId,
16210 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
16211 _Out_opt_ UINT *pTotalStructureSizeInBytes,
16212 _Inout_ UINT *pParameterCount,
16213 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
16214
16215 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
16216 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
16217 ID3D12Device5 * This,
16218 _In_ REFGUID CommandId,
16219 _In_ UINT NodeMask,
16220 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
16221 _In_ SIZE_T CreationParametersDataSizeInBytes,
16222 REFIID riid,
16223 _COM_Outptr_ void **ppMetaCommand);
16224
16225 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
16226 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
16227 ID3D12Device5 * This,
16228 const D3D12_STATE_OBJECT_DESC *pDesc,
16229 REFIID riid,
16230 _COM_Outptr_ void **ppStateObject);
16231
16232 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
16233 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
16234 ID3D12Device5 * This,
16235 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
16236 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
16237
16238 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
16239 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
16240 ID3D12Device5 * This,
16241 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
16242 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
16243
16244 END_INTERFACE
16245 } ID3D12Device5Vtbl;
16246
16247 interface ID3D12Device5
16248 {
16249 CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl;
16250 };
16251
16252
16253
16254#ifdef COBJMACROS
16255
16256
16257#define ID3D12Device5_QueryInterface(This,riid,ppvObject) \
16258 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16259
16260#define ID3D12Device5_AddRef(This) \
16261 ( (This)->lpVtbl -> AddRef(This) )
16262
16263#define ID3D12Device5_Release(This) \
16264 ( (This)->lpVtbl -> Release(This) )
16265
16266
16267#define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \
16268 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
16269
16270#define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \
16271 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
16272
16273#define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \
16274 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
16275
16276#define ID3D12Device5_SetName(This,Name) \
16277 ( (This)->lpVtbl -> SetName(This,Name) )
16278
16279
16280#define ID3D12Device5_GetNodeCount(This) \
16281 ( (This)->lpVtbl -> GetNodeCount(This) )
16282
16283#define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
16284 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
16285
16286#define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
16287 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
16288
16289#define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
16290 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
16291
16292#define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
16293 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
16294
16295#define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
16296 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
16297
16298#define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
16299 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
16300
16301#define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
16302 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
16303
16304#define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
16305 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
16306
16307#define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
16308 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
16309
16310#define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \
16311 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
16312
16313#define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
16314 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
16315
16316#define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
16317 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
16318
16319#define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
16320 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
16321
16322#define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
16323 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
16324
16325#define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \
16326 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
16327
16328#define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
16329 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
16330
16331#define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
16332 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
16333#if !defined(_WIN32)
16334
16335#define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
16336 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
16337#else
16338#define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
16339 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
16340#endif
16341#if !defined(_WIN32)
16342
16343#define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \
16344 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
16345#else
16346#define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
16347 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
16348#endif
16349
16350#define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
16351 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
16352
16353#define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \
16354 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
16355
16356#define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16357 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16358
16359#define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
16360 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
16361
16362#define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
16363 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
16364
16365#define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
16366 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
16367
16368#define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
16369 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
16370
16371#define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \
16372 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
16373
16374#define ID3D12Device5_Evict(This,NumObjects,ppObjects) \
16375 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
16376
16377#define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \
16378 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
16379
16380#define ID3D12Device5_GetDeviceRemovedReason(This) \
16381 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
16382
16383#define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
16384 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
16385
16386#define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
16387 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
16388
16389#define ID3D12Device5_SetStablePowerState(This,Enable) \
16390 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
16391
16392#define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
16393 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
16394
16395#define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
16396 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
16397#if !defined(_WIN32)
16398
16399#define ID3D12Device5_GetAdapterLuid(This) \
16400 ( (This)->lpVtbl -> GetAdapterLuid(This) )
16401#else
16402#define ID3D12Device5_GetAdapterLuid(This,RetVal) \
16403 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
16404#endif
16405
16406
16407#define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
16408 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
16409
16410#define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
16411 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
16412
16413#define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
16414 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
16415
16416
16417#define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
16418 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
16419
16420
16421#define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
16422 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
16423
16424#define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
16425 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
16426
16427#define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
16428 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
16429
16430
16431#define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
16432 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
16433
16434#define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
16435 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
16436
16437#define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
16438 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
16439
16440#define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
16441 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
16442
16443#define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
16444 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
16445#if !defined(_WIN32)
16446
16447#define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
16448 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
16449#else
16450#define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
16451 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
16452#endif
16453
16454
16455#define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
16456 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
16457
16458#define ID3D12Device5_RemoveDevice(This) \
16459 ( (This)->lpVtbl -> RemoveDevice(This) )
16460
16461#define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
16462 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
16463
16464#define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
16465 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
16466
16467#define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
16468 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
16469
16470#define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \
16471 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
16472
16473#define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
16474 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
16475
16476#define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
16477 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
16478
16479#endif /* COBJMACROS */
16480
16481
16482#endif /* C style interface */
16483
16484
16485
16486
16487#endif /* __ID3D12Device5_INTERFACE_DEFINED__ */
16488
16489
16490/* interface __MIDL_itf_d3d12_0000_0040 */
16491/* [local] */
16492
16493typedef
16494enum D3D12_MARKER_API
16495 {
16496 D3D12_MARKER_API_SETMARKER = 0,
16497 D3D12_MARKER_API_BEGINEVENT = 1,
16498 D3D12_MARKER_API_ENDEVENT = 2,
16499 D3D12_MARKER_API_DRAWINSTANCED = 3,
16500 D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4,
16501 D3D12_MARKER_API_EXECUTEINDIRECT = 5,
16502 D3D12_MARKER_API_DISPATCH = 6,
16503 D3D12_MARKER_API_COPYBUFFERREGION = 7,
16504 D3D12_MARKER_API_COPYTEXTUREREGION = 8,
16505 D3D12_MARKER_API_COPYRESOURCE = 9,
16506 D3D12_MARKER_API_COPYTILES = 10,
16507 D3D12_MARKER_API_RESOLVESUBRESOURCE = 11,
16508 D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12,
16509 D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13,
16510 D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14,
16511 D3D12_MARKER_API_RESOURCEBARRIER = 15,
16512 D3D12_MARKER_API_EXECUTEBUNDLE = 16,
16513 D3D12_MARKER_API_PRESENT = 17,
16514 D3D12_MARKER_API_RESOLVEQUERYDATA = 18,
16515 D3D12_MARKER_API_BEGINSUBMISSION = 19,
16516 D3D12_MARKER_API_ENDSUBMISSION = 20,
16517 D3D12_MARKER_API_DECODEFRAME = 21,
16518 D3D12_MARKER_API_PROCESSFRAMES = 22,
16519 D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23,
16520 D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24,
16521 D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25,
16522 D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26,
16523 D3D12_MARKER_API_DECODEFRAME1 = 27,
16524 D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28,
16525 D3D12_MARKER_API_DECODEFRAME2 = 29,
16526 D3D12_MARKER_API_PROCESSFRAMES1 = 30,
16527 D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
16528 D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
16529 D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
16530 D3D12_MARKER_API_DISPATCHRAYS = 34,
16531 D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35,
16532 D3D12_MARKER_API_EXECUTEMETACOMMAND = 36,
16533 D3D12_MARKER_API_ESTIMATEMOTION = 37,
16534 D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38,
16535 D3D12_MARKER_API_SETPIPELINESTATE1 = 39,
16536 D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40,
16537 D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41,
16538 D3D12_MARKER_API_DISPATCHMESH = 42,
16539 D3D12_MARKER_API_ENCODEFRAME = 43,
16540 D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44,
16541 D3D12_MARKER_API_BARRIER = 45,
16542 D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46,
16543 D3D12_MARKER_API_DISPATCHGRAPH = 47,
16544 D3D12_MARKER_API_SETPROGRAM = 48,
16545 D3D12_MARKER_API_ENCODEFRAME1 = 49,
16546 D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50,
16547 D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51,
16548 D3D12_MARKER_API_PROCESSFRAMES2 = 52,
16549 D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53
16550 } D3D12_MARKER_API;
16551
16552typedef
16553enum D3D12_AUTO_BREADCRUMB_OP
16554 {
16555 D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER,
16556 D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT,
16557 D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT,
16558 D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED,
16559 D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED,
16560 D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT,
16561 D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH,
16562 D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION,
16563 D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION,
16564 D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE,
16565 D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES,
16566 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE,
16567 D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW,
16568 D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW,
16569 D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW,
16570 D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER,
16571 D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE,
16572 D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT,
16573 D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA,
16574 D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION,
16575 D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION,
16576 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME,
16577 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES,
16578 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT,
16579 D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64,
16580 D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION,
16581 D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE,
16582 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1,
16583 D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION,
16584 D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2,
16585 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1,
16586 D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE,
16587 D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO,
16588 D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE,
16589 D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS,
16590 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND,
16591 D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND,
16592 D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION,
16593 D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP,
16594 D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1,
16595 D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND,
16596 D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND,
16597 D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH,
16598 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME,
16599 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA,
16600 D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER,
16601 D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST,
16602 D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH,
16603 D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM,
16604 D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1,
16605 D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1,
16606 D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT,
16607 D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2,
16608 D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS
16609 } D3D12_AUTO_BREADCRUMB_OP;
16610
16611typedef struct D3D12_AUTO_BREADCRUMB_NODE
16612 {
16613 const char *pCommandListDebugNameA;
16614 const wchar_t *pCommandListDebugNameW;
16615 const char *pCommandQueueDebugNameA;
16616 const wchar_t *pCommandQueueDebugNameW;
16617 ID3D12GraphicsCommandList *pCommandList;
16618 ID3D12CommandQueue *pCommandQueue;
16619 UINT32 BreadcrumbCount;
16620 const UINT32 *pLastBreadcrumbValue;
16621 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
16622 const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
16623 } D3D12_AUTO_BREADCRUMB_NODE;
16624
16625typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
16626 {
16627 UINT BreadcrumbIndex;
16628 const wchar_t *pContextString;
16629 } D3D12_DRED_BREADCRUMB_CONTEXT;
16630
16631typedef struct D3D12_AUTO_BREADCRUMB_NODE1
16632 {
16633 const char *pCommandListDebugNameA;
16634 const wchar_t *pCommandListDebugNameW;
16635 const char *pCommandQueueDebugNameA;
16636 const wchar_t *pCommandQueueDebugNameW;
16637 ID3D12GraphicsCommandList *pCommandList;
16638 ID3D12CommandQueue *pCommandQueue;
16639 UINT BreadcrumbCount;
16640 const UINT *pLastBreadcrumbValue;
16641 const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
16642 const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
16643 UINT BreadcrumbContextsCount;
16644 D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
16645 } D3D12_AUTO_BREADCRUMB_NODE1;
16646
16647typedef
16648enum D3D12_DRED_VERSION
16649 {
16650 D3D12_DRED_VERSION_1_0 = 0x1,
16651 D3D12_DRED_VERSION_1_1 = 0x2,
16652 D3D12_DRED_VERSION_1_2 = 0x3,
16653 D3D12_DRED_VERSION_1_3 = 0x4
16654 } D3D12_DRED_VERSION;
16655
16656typedef
16657enum D3D12_DRED_FLAGS
16658 {
16659 D3D12_DRED_FLAG_NONE = 0,
16660 D3D12_DRED_FLAG_FORCE_ENABLE = 1,
16661 D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2
16662 } D3D12_DRED_FLAGS;
16663
16664DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )
16665typedef
16666enum D3D12_DRED_ENABLEMENT
16667 {
16668 D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
16669 D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
16670 D3D12_DRED_ENABLEMENT_FORCED_ON = 2
16671 } D3D12_DRED_ENABLEMENT;
16672
16673typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
16674 {
16675 _In_ D3D12_DRED_FLAGS Flags;
16676 _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
16677 } D3D12_DEVICE_REMOVED_EXTENDED_DATA;
16678
16679typedef
16680enum D3D12_DRED_ALLOCATION_TYPE
16681 {
16682 D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
16683 D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
16684 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
16685 D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
16686 D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
16687 D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
16688 D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
16689 D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
16690 D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
16691 D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
16692 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
16693 D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
16694 D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
16695 D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
16696 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
16697 D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
16698 D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
16699 D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
16700 D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
16701 D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
16702 D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
16703 D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
16704 D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
16705 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
16706 D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
16707 D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
16708 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
16709 D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
16710 D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff
16711 } D3D12_DRED_ALLOCATION_TYPE;
16712
16713typedef struct D3D12_DRED_ALLOCATION_NODE
16714 {
16715 const char *ObjectNameA;
16716 const wchar_t *ObjectNameW;
16717 D3D12_DRED_ALLOCATION_TYPE AllocationType;
16718 const struct D3D12_DRED_ALLOCATION_NODE *pNext;
16719 } D3D12_DRED_ALLOCATION_NODE;
16720
16721typedef struct D3D12_DRED_ALLOCATION_NODE1
16722 {
16723 const char *ObjectNameA;
16724 const wchar_t *ObjectNameW;
16725 D3D12_DRED_ALLOCATION_TYPE AllocationType;
16726 const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
16727 const IUnknown *pObject;
16728 } D3D12_DRED_ALLOCATION_NODE1;
16729
16730typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
16731 {
16732 _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
16733 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
16734
16735typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
16736 {
16737 _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
16738 } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
16739
16740typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
16741 {
16742 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16743 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
16744 _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
16745 } D3D12_DRED_PAGE_FAULT_OUTPUT;
16746
16747typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
16748 {
16749 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16750 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
16751 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
16752 } D3D12_DRED_PAGE_FAULT_OUTPUT1;
16753
16754typedef
16755enum D3D12_DRED_PAGE_FAULT_FLAGS
16756 {
16757 D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0
16758 } D3D12_DRED_PAGE_FAULT_FLAGS;
16759
16760DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )
16761typedef
16762enum D3D12_DRED_DEVICE_STATE
16763 {
16764 D3D12_DRED_DEVICE_STATE_UNKNOWN = 0,
16765 D3D12_DRED_DEVICE_STATE_HUNG = 3,
16766 D3D12_DRED_DEVICE_STATE_FAULT = 6,
16767 D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7
16768 } D3D12_DRED_DEVICE_STATE;
16769
16770typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
16771 {
16772 D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
16773 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
16774 _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
16775 D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
16776 } D3D12_DRED_PAGE_FAULT_OUTPUT2;
16777
16778typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
16779 {
16780 HRESULT DeviceRemovedReason;
16781 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
16782 D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
16783 } D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
16784
16785typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
16786 {
16787 HRESULT DeviceRemovedReason;
16788 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
16789 D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
16790 } D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
16791
16792typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
16793 {
16794 HRESULT DeviceRemovedReason;
16795 D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
16796 D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
16797 D3D12_DRED_DEVICE_STATE DeviceState;
16798 } D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
16799
16800typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
16801 {
16802 D3D12_DRED_VERSION Version;
16803 union
16804 {
16805 D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
16806 D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
16807 D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
16808 D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
16809 } ;
16810 } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
16811
16812
16813
16814extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec;
16815extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec;
16816
16817#ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
16818#define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__
16819
16820/* interface ID3D12DeviceRemovedExtendedDataSettings */
16821/* [unique][local][object][uuid] */
16822
16823
16824EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings;
16825
16826#if defined(__cplusplus) && !defined(CINTERFACE)
16827
16828 MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63")
16829 ID3D12DeviceRemovedExtendedDataSettings : public IUnknown
16830 {
16831 public:
16832 virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement(
16833 D3D12_DRED_ENABLEMENT Enablement) = 0;
16834
16835 virtual void STDMETHODCALLTYPE SetPageFaultEnablement(
16836 D3D12_DRED_ENABLEMENT Enablement) = 0;
16837
16838 virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement(
16839 D3D12_DRED_ENABLEMENT Enablement) = 0;
16840
16841 };
16842
16843
16844#else /* C style interface */
16845
16846 typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl
16847 {
16848 BEGIN_INTERFACE
16849
16850 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16851 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16852 ID3D12DeviceRemovedExtendedDataSettings * This,
16853 REFIID riid,
16854 _COM_Outptr_ void **ppvObject);
16855
16856 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16857 ULONG ( STDMETHODCALLTYPE *AddRef )(
16858 ID3D12DeviceRemovedExtendedDataSettings * This);
16859
16860 DECLSPEC_XFGVIRT(IUnknown, Release)
16861 ULONG ( STDMETHODCALLTYPE *Release )(
16862 ID3D12DeviceRemovedExtendedDataSettings * This);
16863
16864 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16865 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16866 ID3D12DeviceRemovedExtendedDataSettings * This,
16867 D3D12_DRED_ENABLEMENT Enablement);
16868
16869 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16870 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16871 ID3D12DeviceRemovedExtendedDataSettings * This,
16872 D3D12_DRED_ENABLEMENT Enablement);
16873
16874 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16875 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16876 ID3D12DeviceRemovedExtendedDataSettings * This,
16877 D3D12_DRED_ENABLEMENT Enablement);
16878
16879 END_INTERFACE
16880 } ID3D12DeviceRemovedExtendedDataSettingsVtbl;
16881
16882 interface ID3D12DeviceRemovedExtendedDataSettings
16883 {
16884 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl;
16885 };
16886
16887
16888
16889#ifdef COBJMACROS
16890
16891
16892#define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \
16893 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16894
16895#define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \
16896 ( (This)->lpVtbl -> AddRef(This) )
16897
16898#define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \
16899 ( (This)->lpVtbl -> Release(This) )
16900
16901
16902#define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \
16903 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
16904
16905#define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \
16906 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
16907
16908#define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \
16909 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
16910
16911#endif /* COBJMACROS */
16912
16913
16914#endif /* C style interface */
16915
16916
16917
16918
16919#endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */
16920
16921
16922#ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
16923#define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__
16924
16925/* interface ID3D12DeviceRemovedExtendedDataSettings1 */
16926/* [unique][local][object][uuid] */
16927
16928
16929EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1;
16930
16931#if defined(__cplusplus) && !defined(CINTERFACE)
16932
16933 MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B")
16934 ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings
16935 {
16936 public:
16937 virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement(
16938 D3D12_DRED_ENABLEMENT Enablement) = 0;
16939
16940 };
16941
16942
16943#else /* C style interface */
16944
16945 typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl
16946 {
16947 BEGIN_INTERFACE
16948
16949 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
16950 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16951 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16952 REFIID riid,
16953 _COM_Outptr_ void **ppvObject);
16954
16955 DECLSPEC_XFGVIRT(IUnknown, AddRef)
16956 ULONG ( STDMETHODCALLTYPE *AddRef )(
16957 ID3D12DeviceRemovedExtendedDataSettings1 * This);
16958
16959 DECLSPEC_XFGVIRT(IUnknown, Release)
16960 ULONG ( STDMETHODCALLTYPE *Release )(
16961 ID3D12DeviceRemovedExtendedDataSettings1 * This);
16962
16963 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
16964 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
16965 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16966 D3D12_DRED_ENABLEMENT Enablement);
16967
16968 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
16969 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
16970 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16971 D3D12_DRED_ENABLEMENT Enablement);
16972
16973 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
16974 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
16975 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16976 D3D12_DRED_ENABLEMENT Enablement);
16977
16978 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
16979 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
16980 ID3D12DeviceRemovedExtendedDataSettings1 * This,
16981 D3D12_DRED_ENABLEMENT Enablement);
16982
16983 END_INTERFACE
16984 } ID3D12DeviceRemovedExtendedDataSettings1Vtbl;
16985
16986 interface ID3D12DeviceRemovedExtendedDataSettings1
16987 {
16988 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl;
16989 };
16990
16991
16992
16993#ifdef COBJMACROS
16994
16995
16996#define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \
16997 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16998
16999#define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \
17000 ( (This)->lpVtbl -> AddRef(This) )
17001
17002#define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \
17003 ( (This)->lpVtbl -> Release(This) )
17004
17005
17006#define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \
17007 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
17008
17009#define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \
17010 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
17011
17012#define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \
17013 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
17014
17015
17016#define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \
17017 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
17018
17019#endif /* COBJMACROS */
17020
17021
17022#endif /* C style interface */
17023
17024
17025
17026
17027#endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */
17028
17029
17030#ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
17031#define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__
17032
17033/* interface ID3D12DeviceRemovedExtendedDataSettings2 */
17034/* [unique][local][object][uuid] */
17035
17036
17037EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2;
17038
17039#if defined(__cplusplus) && !defined(CINTERFACE)
17040
17041 MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea")
17042 ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1
17043 {
17044 public:
17045 virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs(
17046 BOOL MarkersOnly) = 0;
17047
17048 };
17049
17050
17051#else /* C style interface */
17052
17053 typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl
17054 {
17055 BEGIN_INTERFACE
17056
17057 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17058 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17059 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17060 REFIID riid,
17061 _COM_Outptr_ void **ppvObject);
17062
17063 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17064 ULONG ( STDMETHODCALLTYPE *AddRef )(
17065 ID3D12DeviceRemovedExtendedDataSettings2 * This);
17066
17067 DECLSPEC_XFGVIRT(IUnknown, Release)
17068 ULONG ( STDMETHODCALLTYPE *Release )(
17069 ID3D12DeviceRemovedExtendedDataSettings2 * This);
17070
17071 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement)
17072 void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )(
17073 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17074 D3D12_DRED_ENABLEMENT Enablement);
17075
17076 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement)
17077 void ( STDMETHODCALLTYPE *SetPageFaultEnablement )(
17078 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17079 D3D12_DRED_ENABLEMENT Enablement);
17080
17081 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement)
17082 void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )(
17083 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17084 D3D12_DRED_ENABLEMENT Enablement);
17085
17086 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement)
17087 void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )(
17088 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17089 D3D12_DRED_ENABLEMENT Enablement);
17090
17091 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs)
17092 void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )(
17093 ID3D12DeviceRemovedExtendedDataSettings2 * This,
17094 BOOL MarkersOnly);
17095
17096 END_INTERFACE
17097 } ID3D12DeviceRemovedExtendedDataSettings2Vtbl;
17098
17099 interface ID3D12DeviceRemovedExtendedDataSettings2
17100 {
17101 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl;
17102 };
17103
17104
17105
17106#ifdef COBJMACROS
17107
17108
17109#define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \
17110 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17111
17112#define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \
17113 ( (This)->lpVtbl -> AddRef(This) )
17114
17115#define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \
17116 ( (This)->lpVtbl -> Release(This) )
17117
17118
17119#define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \
17120 ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) )
17121
17122#define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \
17123 ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) )
17124
17125#define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \
17126 ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) )
17127
17128
17129#define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \
17130 ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) )
17131
17132
17133#define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \
17134 ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) )
17135
17136#endif /* COBJMACROS */
17137
17138
17139#endif /* C style interface */
17140
17141
17142
17143
17144#endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */
17145
17146
17147#ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
17148#define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__
17149
17150/* interface ID3D12DeviceRemovedExtendedData */
17151/* [unique][local][object][uuid] */
17152
17153
17154EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData;
17155
17156#if defined(__cplusplus) && !defined(CINTERFACE)
17157
17158 MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71")
17159 ID3D12DeviceRemovedExtendedData : public IUnknown
17160 {
17161 public:
17162 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput(
17163 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0;
17164
17165 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput(
17166 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0;
17167
17168 };
17169
17170
17171#else /* C style interface */
17172
17173 typedef struct ID3D12DeviceRemovedExtendedDataVtbl
17174 {
17175 BEGIN_INTERFACE
17176
17177 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17178 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17179 ID3D12DeviceRemovedExtendedData * This,
17180 REFIID riid,
17181 _COM_Outptr_ void **ppvObject);
17182
17183 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17184 ULONG ( STDMETHODCALLTYPE *AddRef )(
17185 ID3D12DeviceRemovedExtendedData * This);
17186
17187 DECLSPEC_XFGVIRT(IUnknown, Release)
17188 ULONG ( STDMETHODCALLTYPE *Release )(
17189 ID3D12DeviceRemovedExtendedData * This);
17190
17191 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17192 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17193 ID3D12DeviceRemovedExtendedData * This,
17194 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17195
17196 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17197 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17198 ID3D12DeviceRemovedExtendedData * This,
17199 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17200
17201 END_INTERFACE
17202 } ID3D12DeviceRemovedExtendedDataVtbl;
17203
17204 interface ID3D12DeviceRemovedExtendedData
17205 {
17206 CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl;
17207 };
17208
17209
17210
17211#ifdef COBJMACROS
17212
17213
17214#define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \
17215 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17216
17217#define ID3D12DeviceRemovedExtendedData_AddRef(This) \
17218 ( (This)->lpVtbl -> AddRef(This) )
17219
17220#define ID3D12DeviceRemovedExtendedData_Release(This) \
17221 ( (This)->lpVtbl -> Release(This) )
17222
17223
17224#define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \
17225 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17226
17227#define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \
17228 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17229
17230#endif /* COBJMACROS */
17231
17232
17233#endif /* C style interface */
17234
17235
17236
17237
17238#endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */
17239
17240
17241#ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
17242#define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__
17243
17244/* interface ID3D12DeviceRemovedExtendedData1 */
17245/* [unique][local][object][uuid] */
17246
17247
17248EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1;
17249
17250#if defined(__cplusplus) && !defined(CINTERFACE)
17251
17252 MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506")
17253 ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData
17254 {
17255 public:
17256 virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1(
17257 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0;
17258
17259 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1(
17260 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0;
17261
17262 };
17263
17264
17265#else /* C style interface */
17266
17267 typedef struct ID3D12DeviceRemovedExtendedData1Vtbl
17268 {
17269 BEGIN_INTERFACE
17270
17271 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17272 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17273 ID3D12DeviceRemovedExtendedData1 * This,
17274 REFIID riid,
17275 _COM_Outptr_ void **ppvObject);
17276
17277 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17278 ULONG ( STDMETHODCALLTYPE *AddRef )(
17279 ID3D12DeviceRemovedExtendedData1 * This);
17280
17281 DECLSPEC_XFGVIRT(IUnknown, Release)
17282 ULONG ( STDMETHODCALLTYPE *Release )(
17283 ID3D12DeviceRemovedExtendedData1 * This);
17284
17285 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17286 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17287 ID3D12DeviceRemovedExtendedData1 * This,
17288 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17289
17290 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17291 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17292 ID3D12DeviceRemovedExtendedData1 * This,
17293 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17294
17295 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
17296 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
17297 ID3D12DeviceRemovedExtendedData1 * This,
17298 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
17299
17300 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
17301 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
17302 ID3D12DeviceRemovedExtendedData1 * This,
17303 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
17304
17305 END_INTERFACE
17306 } ID3D12DeviceRemovedExtendedData1Vtbl;
17307
17308 interface ID3D12DeviceRemovedExtendedData1
17309 {
17310 CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl;
17311 };
17312
17313
17314
17315#ifdef COBJMACROS
17316
17317
17318#define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \
17319 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17320
17321#define ID3D12DeviceRemovedExtendedData1_AddRef(This) \
17322 ( (This)->lpVtbl -> AddRef(This) )
17323
17324#define ID3D12DeviceRemovedExtendedData1_Release(This) \
17325 ( (This)->lpVtbl -> Release(This) )
17326
17327
17328#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \
17329 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17330
17331#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \
17332 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17333
17334
17335#define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \
17336 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
17337
17338#define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \
17339 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
17340
17341#endif /* COBJMACROS */
17342
17343
17344#endif /* C style interface */
17345
17346
17347
17348
17349#endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */
17350
17351
17352#ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
17353#define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__
17354
17355/* interface ID3D12DeviceRemovedExtendedData2 */
17356/* [unique][local][object][uuid] */
17357
17358
17359EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2;
17360
17361#if defined(__cplusplus) && !defined(CINTERFACE)
17362
17363 MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54")
17364 ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1
17365 {
17366 public:
17367 virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2(
17368 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0;
17369
17370 virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0;
17371
17372 };
17373
17374
17375#else /* C style interface */
17376
17377 typedef struct ID3D12DeviceRemovedExtendedData2Vtbl
17378 {
17379 BEGIN_INTERFACE
17380
17381 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17382 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17383 ID3D12DeviceRemovedExtendedData2 * This,
17384 REFIID riid,
17385 _COM_Outptr_ void **ppvObject);
17386
17387 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17388 ULONG ( STDMETHODCALLTYPE *AddRef )(
17389 ID3D12DeviceRemovedExtendedData2 * This);
17390
17391 DECLSPEC_XFGVIRT(IUnknown, Release)
17392 ULONG ( STDMETHODCALLTYPE *Release )(
17393 ID3D12DeviceRemovedExtendedData2 * This);
17394
17395 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput)
17396 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )(
17397 ID3D12DeviceRemovedExtendedData2 * This,
17398 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
17399
17400 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput)
17401 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )(
17402 ID3D12DeviceRemovedExtendedData2 * This,
17403 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
17404
17405 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1)
17406 HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )(
17407 ID3D12DeviceRemovedExtendedData2 * This,
17408 _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
17409
17410 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1)
17411 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )(
17412 ID3D12DeviceRemovedExtendedData2 * This,
17413 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
17414
17415 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2)
17416 HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )(
17417 ID3D12DeviceRemovedExtendedData2 * This,
17418 _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
17419
17420 DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState)
17421 D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )(
17422 ID3D12DeviceRemovedExtendedData2 * This);
17423
17424 END_INTERFACE
17425 } ID3D12DeviceRemovedExtendedData2Vtbl;
17426
17427 interface ID3D12DeviceRemovedExtendedData2
17428 {
17429 CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl;
17430 };
17431
17432
17433
17434#ifdef COBJMACROS
17435
17436
17437#define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \
17438 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17439
17440#define ID3D12DeviceRemovedExtendedData2_AddRef(This) \
17441 ( (This)->lpVtbl -> AddRef(This) )
17442
17443#define ID3D12DeviceRemovedExtendedData2_Release(This) \
17444 ( (This)->lpVtbl -> Release(This) )
17445
17446
17447#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \
17448 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) )
17449
17450#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \
17451 ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) )
17452
17453
17454#define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \
17455 ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) )
17456
17457#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \
17458 ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) )
17459
17460
17461#define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \
17462 ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) )
17463
17464#define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \
17465 ( (This)->lpVtbl -> GetDeviceState(This) )
17466
17467#endif /* COBJMACROS */
17468
17469
17470#endif /* C style interface */
17471
17472
17473
17474
17475#endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */
17476
17477
17478/* interface __MIDL_itf_d3d12_0000_0046 */
17479/* [local] */
17480
17481typedef
17482enum D3D12_BACKGROUND_PROCESSING_MODE
17483 {
17484 D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
17485 D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) ,
17486 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) ,
17487 D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 )
17488 } D3D12_BACKGROUND_PROCESSING_MODE;
17489
17490typedef
17491enum D3D12_MEASUREMENTS_ACTION
17492 {
17493 D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
17494 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) ,
17495 D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) ,
17496 D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 )
17497 } D3D12_MEASUREMENTS_ACTION;
17498
17499
17500
17501extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec;
17502extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec;
17503
17504#ifndef __ID3D12Device6_INTERFACE_DEFINED__
17505#define __ID3D12Device6_INTERFACE_DEFINED__
17506
17507/* interface ID3D12Device6 */
17508/* [unique][local][object][uuid] */
17509
17510
17511EXTERN_C const IID IID_ID3D12Device6;
17512
17513#if defined(__cplusplus) && !defined(CINTERFACE)
17514
17515 MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc")
17516 ID3D12Device6 : public ID3D12Device5
17517 {
17518 public:
17519 virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode(
17520 D3D12_BACKGROUND_PROCESSING_MODE Mode,
17521 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
17522 _In_opt_ HANDLE hEventToSignalUponCompletion,
17523 _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0;
17524
17525 };
17526
17527
17528#else /* C style interface */
17529
17530 typedef struct ID3D12Device6Vtbl
17531 {
17532 BEGIN_INTERFACE
17533
17534 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
17535 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17536 ID3D12Device6 * This,
17537 REFIID riid,
17538 _COM_Outptr_ void **ppvObject);
17539
17540 DECLSPEC_XFGVIRT(IUnknown, AddRef)
17541 ULONG ( STDMETHODCALLTYPE *AddRef )(
17542 ID3D12Device6 * This);
17543
17544 DECLSPEC_XFGVIRT(IUnknown, Release)
17545 ULONG ( STDMETHODCALLTYPE *Release )(
17546 ID3D12Device6 * This);
17547
17548 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
17549 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
17550 ID3D12Device6 * This,
17551 _In_ REFGUID guid,
17552 _Inout_ UINT *pDataSize,
17553 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
17554
17555 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
17556 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
17557 ID3D12Device6 * This,
17558 _In_ REFGUID guid,
17559 _In_ UINT DataSize,
17560 _In_reads_bytes_opt_( DataSize ) const void *pData);
17561
17562 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
17563 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
17564 ID3D12Device6 * This,
17565 _In_ REFGUID guid,
17566 _In_opt_ const IUnknown *pData);
17567
17568 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
17569 HRESULT ( STDMETHODCALLTYPE *SetName )(
17570 ID3D12Device6 * This,
17571 _In_z_ LPCWSTR Name);
17572
17573 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
17574 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
17575 ID3D12Device6 * This);
17576
17577 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
17578 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
17579 ID3D12Device6 * This,
17580 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
17581 REFIID riid,
17582 _COM_Outptr_ void **ppCommandQueue);
17583
17584 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
17585 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
17586 ID3D12Device6 * This,
17587 _In_ D3D12_COMMAND_LIST_TYPE type,
17588 REFIID riid,
17589 _COM_Outptr_ void **ppCommandAllocator);
17590
17591 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
17592 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
17593 ID3D12Device6 * This,
17594 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
17595 REFIID riid,
17596 _COM_Outptr_ void **ppPipelineState);
17597
17598 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
17599 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
17600 ID3D12Device6 * This,
17601 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
17602 REFIID riid,
17603 _COM_Outptr_ void **ppPipelineState);
17604
17605 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
17606 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
17607 ID3D12Device6 * This,
17608 _In_ UINT nodeMask,
17609 _In_ D3D12_COMMAND_LIST_TYPE type,
17610 _In_ ID3D12CommandAllocator *pCommandAllocator,
17611 _In_opt_ ID3D12PipelineState *pInitialState,
17612 REFIID riid,
17613 _COM_Outptr_ void **ppCommandList);
17614
17615 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
17616 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
17617 ID3D12Device6 * This,
17618 D3D12_FEATURE Feature,
17619 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
17620 UINT FeatureSupportDataSize);
17621
17622 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
17623 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
17624 ID3D12Device6 * This,
17625 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
17626 REFIID riid,
17627 _COM_Outptr_ void **ppvHeap);
17628
17629 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
17630 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
17631 ID3D12Device6 * This,
17632 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
17633
17634 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
17635 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
17636 ID3D12Device6 * This,
17637 _In_ UINT nodeMask,
17638 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
17639 _In_ SIZE_T blobLengthInBytes,
17640 REFIID riid,
17641 _COM_Outptr_ void **ppvRootSignature);
17642
17643 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
17644 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
17645 ID3D12Device6 * This,
17646 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
17647 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17648
17649 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
17650 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
17651 ID3D12Device6 * This,
17652 _In_opt_ ID3D12Resource *pResource,
17653 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
17654 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17655
17656 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
17657 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
17658 ID3D12Device6 * This,
17659 _In_opt_ ID3D12Resource *pResource,
17660 _In_opt_ ID3D12Resource *pCounterResource,
17661 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
17662 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17663
17664 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
17665 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
17666 ID3D12Device6 * This,
17667 _In_opt_ ID3D12Resource *pResource,
17668 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
17669 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17670
17671 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
17672 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
17673 ID3D12Device6 * This,
17674 _In_opt_ ID3D12Resource *pResource,
17675 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
17676 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17677
17678 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
17679 void ( STDMETHODCALLTYPE *CreateSampler )(
17680 ID3D12Device6 * This,
17681 _In_ const D3D12_SAMPLER_DESC *pDesc,
17682 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
17683
17684 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
17685 void ( STDMETHODCALLTYPE *CopyDescriptors )(
17686 ID3D12Device6 * This,
17687 _In_ UINT NumDestDescriptorRanges,
17688 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
17689 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
17690 _In_ UINT NumSrcDescriptorRanges,
17691 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
17692 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
17693 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17694
17695 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
17696 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
17697 ID3D12Device6 * This,
17698 _In_ UINT NumDescriptors,
17699 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
17700 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
17701 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
17702
17703 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
17704#if !defined(_WIN32)
17705 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17706 ID3D12Device6 * This,
17707 _In_ UINT visibleMask,
17708 _In_ UINT numResourceDescs,
17709 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17710
17711#else
17712 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
17713 ID3D12Device6 * This,
17714 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17715 _In_ UINT visibleMask,
17716 _In_ UINT numResourceDescs,
17717 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
17718
17719#endif
17720
17721 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
17722#if !defined(_WIN32)
17723 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17724 ID3D12Device6 * This,
17725 _In_ UINT nodeMask,
17726 D3D12_HEAP_TYPE heapType);
17727
17728#else
17729 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
17730 ID3D12Device6 * This,
17731 D3D12_HEAP_PROPERTIES * RetVal,
17732 _In_ UINT nodeMask,
17733 D3D12_HEAP_TYPE heapType);
17734
17735#endif
17736
17737 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
17738 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
17739 ID3D12Device6 * This,
17740 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17741 D3D12_HEAP_FLAGS HeapFlags,
17742 _In_ const D3D12_RESOURCE_DESC *pDesc,
17743 D3D12_RESOURCE_STATES InitialResourceState,
17744 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17745 REFIID riidResource,
17746 _COM_Outptr_opt_ void **ppvResource);
17747
17748 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
17749 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
17750 ID3D12Device6 * This,
17751 _In_ const D3D12_HEAP_DESC *pDesc,
17752 REFIID riid,
17753 _COM_Outptr_opt_ void **ppvHeap);
17754
17755 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
17756 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
17757 ID3D12Device6 * This,
17758 _In_ ID3D12Heap *pHeap,
17759 UINT64 HeapOffset,
17760 _In_ const D3D12_RESOURCE_DESC *pDesc,
17761 D3D12_RESOURCE_STATES InitialState,
17762 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17763 REFIID riid,
17764 _COM_Outptr_opt_ void **ppvResource);
17765
17766 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
17767 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
17768 ID3D12Device6 * This,
17769 _In_ const D3D12_RESOURCE_DESC *pDesc,
17770 D3D12_RESOURCE_STATES InitialState,
17771 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17772 REFIID riid,
17773 _COM_Outptr_opt_ void **ppvResource);
17774
17775 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
17776 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
17777 ID3D12Device6 * This,
17778 _In_ ID3D12DeviceChild *pObject,
17779 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
17780 DWORD Access,
17781 _In_opt_ LPCWSTR Name,
17782 _Out_ HANDLE *pHandle);
17783
17784 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
17785 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
17786 ID3D12Device6 * This,
17787 _In_ HANDLE NTHandle,
17788 REFIID riid,
17789 _COM_Outptr_opt_ void **ppvObj);
17790
17791 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
17792 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
17793 ID3D12Device6 * This,
17794 _In_ LPCWSTR Name,
17795 DWORD Access,
17796 /* [annotation][out] */
17797 _Out_ HANDLE *pNTHandle);
17798
17799 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
17800 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
17801 ID3D12Device6 * This,
17802 UINT NumObjects,
17803 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17804
17805 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
17806 HRESULT ( STDMETHODCALLTYPE *Evict )(
17807 ID3D12Device6 * This,
17808 UINT NumObjects,
17809 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
17810
17811 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
17812 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
17813 ID3D12Device6 * This,
17814 UINT64 InitialValue,
17815 D3D12_FENCE_FLAGS Flags,
17816 REFIID riid,
17817 _COM_Outptr_ void **ppFence);
17818
17819 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
17820 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
17821 ID3D12Device6 * This);
17822
17823 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
17824 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
17825 ID3D12Device6 * This,
17826 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
17827 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
17828 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
17829 UINT64 BaseOffset,
17830 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
17831 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
17832 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
17833 _Out_opt_ UINT64 *pTotalBytes);
17834
17835 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
17836 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
17837 ID3D12Device6 * This,
17838 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
17839 REFIID riid,
17840 _COM_Outptr_opt_ void **ppvHeap);
17841
17842 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
17843 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
17844 ID3D12Device6 * This,
17845 BOOL Enable);
17846
17847 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
17848 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
17849 ID3D12Device6 * This,
17850 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
17851 _In_opt_ ID3D12RootSignature *pRootSignature,
17852 REFIID riid,
17853 _COM_Outptr_opt_ void **ppvCommandSignature);
17854
17855 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
17856 void ( STDMETHODCALLTYPE *GetResourceTiling )(
17857 ID3D12Device6 * This,
17858 _In_ ID3D12Resource *pTiledResource,
17859 _Out_opt_ UINT *pNumTilesForEntireResource,
17860 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
17861 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
17862 _Inout_opt_ UINT *pNumSubresourceTilings,
17863 _In_ UINT FirstSubresourceTilingToGet,
17864 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
17865
17866 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
17867#if !defined(_WIN32)
17868 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
17869 ID3D12Device6 * This);
17870
17871#else
17872 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
17873 ID3D12Device6 * This,
17874 LUID * RetVal);
17875
17876#endif
17877
17878 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
17879 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
17880 ID3D12Device6 * This,
17881 _In_reads_(BlobLength) const void *pLibraryBlob,
17882 SIZE_T BlobLength,
17883 REFIID riid,
17884 _COM_Outptr_ void **ppPipelineLibrary);
17885
17886 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
17887 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
17888 ID3D12Device6 * This,
17889 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
17890 _In_reads_(NumFences) const UINT64 *pFenceValues,
17891 UINT NumFences,
17892 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
17893 HANDLE hEvent);
17894
17895 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
17896 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
17897 ID3D12Device6 * This,
17898 UINT NumObjects,
17899 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17900 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
17901
17902 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
17903 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
17904 ID3D12Device6 * This,
17905 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
17906 REFIID riid,
17907 _COM_Outptr_ void **ppPipelineState);
17908
17909 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
17910 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
17911 ID3D12Device6 * This,
17912 _In_ const void *pAddress,
17913 REFIID riid,
17914 _COM_Outptr_ void **ppvHeap);
17915
17916 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
17917 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
17918 ID3D12Device6 * This,
17919 _In_ HANDLE hFileMapping,
17920 REFIID riid,
17921 _COM_Outptr_ void **ppvHeap);
17922
17923 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
17924 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
17925 ID3D12Device6 * This,
17926 D3D12_RESIDENCY_FLAGS Flags,
17927 UINT NumObjects,
17928 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
17929 _In_ ID3D12Fence *pFenceToSignal,
17930 UINT64 FenceValueToSignal);
17931
17932 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
17933 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
17934 ID3D12Device6 * This,
17935 _In_ UINT nodeMask,
17936 _In_ D3D12_COMMAND_LIST_TYPE type,
17937 _In_ D3D12_COMMAND_LIST_FLAGS flags,
17938 REFIID riid,
17939 _COM_Outptr_ void **ppCommandList);
17940
17941 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
17942 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
17943 ID3D12Device6 * This,
17944 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
17945 _In_ REFIID riid,
17946 _COM_Outptr_ void **ppSession);
17947
17948 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
17949 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
17950 ID3D12Device6 * This,
17951 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
17952 D3D12_HEAP_FLAGS HeapFlags,
17953 _In_ const D3D12_RESOURCE_DESC *pDesc,
17954 D3D12_RESOURCE_STATES InitialResourceState,
17955 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17956 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17957 REFIID riidResource,
17958 _COM_Outptr_opt_ void **ppvResource);
17959
17960 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
17961 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
17962 ID3D12Device6 * This,
17963 _In_ const D3D12_HEAP_DESC *pDesc,
17964 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17965 REFIID riid,
17966 _COM_Outptr_opt_ void **ppvHeap);
17967
17968 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
17969 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
17970 ID3D12Device6 * This,
17971 _In_ const D3D12_RESOURCE_DESC *pDesc,
17972 D3D12_RESOURCE_STATES InitialState,
17973 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
17974 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
17975 REFIID riid,
17976 _COM_Outptr_opt_ void **ppvResource);
17977
17978 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
17979#if !defined(_WIN32)
17980 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17981 ID3D12Device6 * This,
17982 UINT visibleMask,
17983 UINT numResourceDescs,
17984 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17985 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17986
17987#else
17988 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
17989 ID3D12Device6 * This,
17990 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
17991 UINT visibleMask,
17992 UINT numResourceDescs,
17993 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
17994 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
17995
17996#endif
17997
17998 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
17999 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
18000 ID3D12Device6 * This,
18001 _In_ ID3D12LifetimeOwner *pOwner,
18002 REFIID riid,
18003 _COM_Outptr_ void **ppvTracker);
18004
18005 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
18006 void ( STDMETHODCALLTYPE *RemoveDevice )(
18007 ID3D12Device6 * This);
18008
18009 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
18010 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
18011 ID3D12Device6 * This,
18012 _Inout_ UINT *pNumMetaCommands,
18013 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
18014
18015 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
18016 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
18017 ID3D12Device6 * This,
18018 _In_ REFGUID CommandId,
18019 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
18020 _Out_opt_ UINT *pTotalStructureSizeInBytes,
18021 _Inout_ UINT *pParameterCount,
18022 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
18023
18024 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
18025 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
18026 ID3D12Device6 * This,
18027 _In_ REFGUID CommandId,
18028 _In_ UINT NodeMask,
18029 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
18030 _In_ SIZE_T CreationParametersDataSizeInBytes,
18031 REFIID riid,
18032 _COM_Outptr_ void **ppMetaCommand);
18033
18034 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
18035 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
18036 ID3D12Device6 * This,
18037 const D3D12_STATE_OBJECT_DESC *pDesc,
18038 REFIID riid,
18039 _COM_Outptr_ void **ppStateObject);
18040
18041 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
18042 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
18043 ID3D12Device6 * This,
18044 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
18045 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
18046
18047 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
18048 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
18049 ID3D12Device6 * This,
18050 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
18051 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
18052
18053 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
18054 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
18055 ID3D12Device6 * This,
18056 D3D12_BACKGROUND_PROCESSING_MODE Mode,
18057 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
18058 _In_opt_ HANDLE hEventToSignalUponCompletion,
18059 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
18060
18061 END_INTERFACE
18062 } ID3D12Device6Vtbl;
18063
18064 interface ID3D12Device6
18065 {
18066 CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl;
18067 };
18068
18069
18070
18071#ifdef COBJMACROS
18072
18073
18074#define ID3D12Device6_QueryInterface(This,riid,ppvObject) \
18075 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18076
18077#define ID3D12Device6_AddRef(This) \
18078 ( (This)->lpVtbl -> AddRef(This) )
18079
18080#define ID3D12Device6_Release(This) \
18081 ( (This)->lpVtbl -> Release(This) )
18082
18083
18084#define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \
18085 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18086
18087#define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \
18088 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18089
18090#define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \
18091 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18092
18093#define ID3D12Device6_SetName(This,Name) \
18094 ( (This)->lpVtbl -> SetName(This,Name) )
18095
18096
18097#define ID3D12Device6_GetNodeCount(This) \
18098 ( (This)->lpVtbl -> GetNodeCount(This) )
18099
18100#define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
18101 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
18102
18103#define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
18104 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
18105
18106#define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
18107 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
18108
18109#define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
18110 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
18111
18112#define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
18113 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
18114
18115#define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
18116 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
18117
18118#define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
18119 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
18120
18121#define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
18122 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
18123
18124#define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
18125 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
18126
18127#define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \
18128 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
18129
18130#define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
18131 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
18132
18133#define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
18134 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
18135
18136#define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
18137 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
18138
18139#define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
18140 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
18141
18142#define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \
18143 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
18144
18145#define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
18146 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
18147
18148#define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
18149 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
18150#if !defined(_WIN32)
18151
18152#define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
18153 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
18154#else
18155#define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
18156 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
18157#endif
18158#if !defined(_WIN32)
18159
18160#define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \
18161 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
18162#else
18163#define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
18164 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
18165#endif
18166
18167#define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
18168 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
18169
18170#define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \
18171 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
18172
18173#define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18174 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18175
18176#define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
18177 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
18178
18179#define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
18180 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
18181
18182#define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
18183 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
18184
18185#define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
18186 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
18187
18188#define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \
18189 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
18190
18191#define ID3D12Device6_Evict(This,NumObjects,ppObjects) \
18192 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
18193
18194#define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \
18195 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
18196
18197#define ID3D12Device6_GetDeviceRemovedReason(This) \
18198 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
18199
18200#define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
18201 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
18202
18203#define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
18204 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
18205
18206#define ID3D12Device6_SetStablePowerState(This,Enable) \
18207 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
18208
18209#define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
18210 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
18211
18212#define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
18213 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
18214#if !defined(_WIN32)
18215
18216#define ID3D12Device6_GetAdapterLuid(This) \
18217 ( (This)->lpVtbl -> GetAdapterLuid(This) )
18218#else
18219#define ID3D12Device6_GetAdapterLuid(This,RetVal) \
18220 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
18221#endif
18222
18223
18224#define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
18225 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
18226
18227#define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
18228 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
18229
18230#define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
18231 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
18232
18233
18234#define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
18235 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
18236
18237
18238#define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
18239 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
18240
18241#define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
18242 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
18243
18244#define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
18245 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
18246
18247
18248#define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
18249 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
18250
18251#define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
18252 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
18253
18254#define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
18255 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
18256
18257#define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
18258 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
18259
18260#define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
18261 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
18262#if !defined(_WIN32)
18263
18264#define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18265 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18266#else
18267#define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
18268 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
18269#endif
18270
18271
18272#define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
18273 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
18274
18275#define ID3D12Device6_RemoveDevice(This) \
18276 ( (This)->lpVtbl -> RemoveDevice(This) )
18277
18278#define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
18279 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
18280
18281#define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
18282 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
18283
18284#define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
18285 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
18286
18287#define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \
18288 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
18289
18290#define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
18291 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
18292
18293#define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
18294 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
18295
18296
18297#define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
18298 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
18299
18300#endif /* COBJMACROS */
18301
18302
18303#endif /* C style interface */
18304
18305
18306
18307
18308#endif /* __ID3D12Device6_INTERFACE_DEFINED__ */
18309
18310
18311/* interface __MIDL_itf_d3d12_0000_0047 */
18312/* [local] */
18313
18314DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82);
18315typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
18316 {
18317 UINT NodeIndex;
18318 UINT Count;
18319 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
18320
18321typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
18322 {
18323 UINT NodeIndex;
18324 UINT Count;
18325 GUID *pTypes;
18326 } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
18327
18328typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
18329 {
18330 UINT NodeMask;
18331 D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
18332 GUID ProtectionType;
18333 } D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
18334
18335
18336
18337extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec;
18338extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec;
18339
18340#ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
18341#define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__
18342
18343/* interface ID3D12ProtectedResourceSession1 */
18344/* [unique][local][object][uuid] */
18345
18346
18347EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
18348
18349#if defined(__cplusplus) && !defined(CINTERFACE)
18350
18351 MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409")
18352 ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession
18353 {
18354 public:
18355#if defined(_MSC_VER) || !defined(_WIN32)
18356 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
18357#else
18358 virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1(
18359 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0;
18360#endif
18361
18362 };
18363
18364
18365#else /* C style interface */
18366
18367 typedef struct ID3D12ProtectedResourceSession1Vtbl
18368 {
18369 BEGIN_INTERFACE
18370
18371 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18372 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18373 ID3D12ProtectedResourceSession1 * This,
18374 REFIID riid,
18375 _COM_Outptr_ void **ppvObject);
18376
18377 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18378 ULONG ( STDMETHODCALLTYPE *AddRef )(
18379 ID3D12ProtectedResourceSession1 * This);
18380
18381 DECLSPEC_XFGVIRT(IUnknown, Release)
18382 ULONG ( STDMETHODCALLTYPE *Release )(
18383 ID3D12ProtectedResourceSession1 * This);
18384
18385 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18386 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18387 ID3D12ProtectedResourceSession1 * This,
18388 _In_ REFGUID guid,
18389 _Inout_ UINT *pDataSize,
18390 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18391
18392 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18393 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18394 ID3D12ProtectedResourceSession1 * This,
18395 _In_ REFGUID guid,
18396 _In_ UINT DataSize,
18397 _In_reads_bytes_opt_( DataSize ) const void *pData);
18398
18399 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18400 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18401 ID3D12ProtectedResourceSession1 * This,
18402 _In_ REFGUID guid,
18403 _In_opt_ const IUnknown *pData);
18404
18405 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18406 HRESULT ( STDMETHODCALLTYPE *SetName )(
18407 ID3D12ProtectedResourceSession1 * This,
18408 _In_z_ LPCWSTR Name);
18409
18410 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
18411 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
18412 ID3D12ProtectedResourceSession1 * This,
18413 REFIID riid,
18414 _COM_Outptr_opt_ void **ppvDevice);
18415
18416 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence)
18417 HRESULT ( STDMETHODCALLTYPE *GetStatusFence )(
18418 ID3D12ProtectedResourceSession1 * This,
18419 REFIID riid,
18420 _COM_Outptr_opt_ void **ppFence);
18421
18422 DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus)
18423 D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )(
18424 ID3D12ProtectedResourceSession1 * This);
18425
18426 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc)
18427#if !defined(_WIN32)
18428 D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
18429 ID3D12ProtectedResourceSession1 * This);
18430
18431#else
18432 D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
18433 ID3D12ProtectedResourceSession1 * This,
18434 D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal);
18435
18436#endif
18437
18438 DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1)
18439#if !defined(_WIN32)
18440 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
18441 ID3D12ProtectedResourceSession1 * This);
18442
18443#else
18444 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
18445 ID3D12ProtectedResourceSession1 * This,
18446 D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal);
18447
18448#endif
18449
18450 END_INTERFACE
18451 } ID3D12ProtectedResourceSession1Vtbl;
18452
18453 interface ID3D12ProtectedResourceSession1
18454 {
18455 CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl;
18456 };
18457
18458
18459
18460#ifdef COBJMACROS
18461
18462
18463#define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \
18464 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
18465
18466#define ID3D12ProtectedResourceSession1_AddRef(This) \
18467 ( (This)->lpVtbl -> AddRef(This) )
18468
18469#define ID3D12ProtectedResourceSession1_Release(This) \
18470 ( (This)->lpVtbl -> Release(This) )
18471
18472
18473#define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \
18474 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
18475
18476#define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \
18477 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
18478
18479#define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \
18480 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
18481
18482#define ID3D12ProtectedResourceSession1_SetName(This,Name) \
18483 ( (This)->lpVtbl -> SetName(This,Name) )
18484
18485
18486#define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \
18487 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
18488
18489
18490#define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \
18491 ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) )
18492
18493#define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \
18494 ( (This)->lpVtbl -> GetSessionStatus(This) )
18495
18496#if !defined(_WIN32)
18497
18498#define ID3D12ProtectedResourceSession1_GetDesc(This) \
18499 ( (This)->lpVtbl -> GetDesc(This) )
18500#else
18501#define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \
18502 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
18503#endif
18504
18505#if !defined(_WIN32)
18506
18507#define ID3D12ProtectedResourceSession1_GetDesc1(This) \
18508 ( (This)->lpVtbl -> GetDesc1(This) )
18509#else
18510#define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \
18511 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
18512#endif
18513
18514#endif /* COBJMACROS */
18515
18516
18517#endif /* C style interface */
18518
18519
18520
18521
18522#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
18523
18524
18525#ifndef __ID3D12Device7_INTERFACE_DEFINED__
18526#define __ID3D12Device7_INTERFACE_DEFINED__
18527
18528/* interface ID3D12Device7 */
18529/* [unique][local][object][uuid] */
18530
18531
18532EXTERN_C const IID IID_ID3D12Device7;
18533
18534#if defined(__cplusplus) && !defined(CINTERFACE)
18535
18536 MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b")
18537 ID3D12Device7 : public ID3D12Device6
18538 {
18539 public:
18540 virtual HRESULT STDMETHODCALLTYPE AddToStateObject(
18541 const D3D12_STATE_OBJECT_DESC *pAddition,
18542 ID3D12StateObject *pStateObjectToGrowFrom,
18543 REFIID riid,
18544 _COM_Outptr_ void **ppNewStateObject) = 0;
18545
18546 virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1(
18547 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
18548 _In_ REFIID riid,
18549 _COM_Outptr_ void **ppSession) = 0;
18550
18551 };
18552
18553
18554#else /* C style interface */
18555
18556 typedef struct ID3D12Device7Vtbl
18557 {
18558 BEGIN_INTERFACE
18559
18560 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
18561 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
18562 ID3D12Device7 * This,
18563 REFIID riid,
18564 _COM_Outptr_ void **ppvObject);
18565
18566 DECLSPEC_XFGVIRT(IUnknown, AddRef)
18567 ULONG ( STDMETHODCALLTYPE *AddRef )(
18568 ID3D12Device7 * This);
18569
18570 DECLSPEC_XFGVIRT(IUnknown, Release)
18571 ULONG ( STDMETHODCALLTYPE *Release )(
18572 ID3D12Device7 * This);
18573
18574 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
18575 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
18576 ID3D12Device7 * This,
18577 _In_ REFGUID guid,
18578 _Inout_ UINT *pDataSize,
18579 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
18580
18581 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
18582 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
18583 ID3D12Device7 * This,
18584 _In_ REFGUID guid,
18585 _In_ UINT DataSize,
18586 _In_reads_bytes_opt_( DataSize ) const void *pData);
18587
18588 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
18589 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
18590 ID3D12Device7 * This,
18591 _In_ REFGUID guid,
18592 _In_opt_ const IUnknown *pData);
18593
18594 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
18595 HRESULT ( STDMETHODCALLTYPE *SetName )(
18596 ID3D12Device7 * This,
18597 _In_z_ LPCWSTR Name);
18598
18599 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
18600 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
18601 ID3D12Device7 * This);
18602
18603 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
18604 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
18605 ID3D12Device7 * This,
18606 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
18607 REFIID riid,
18608 _COM_Outptr_ void **ppCommandQueue);
18609
18610 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
18611 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
18612 ID3D12Device7 * This,
18613 _In_ D3D12_COMMAND_LIST_TYPE type,
18614 REFIID riid,
18615 _COM_Outptr_ void **ppCommandAllocator);
18616
18617 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
18618 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
18619 ID3D12Device7 * This,
18620 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
18621 REFIID riid,
18622 _COM_Outptr_ void **ppPipelineState);
18623
18624 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
18625 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
18626 ID3D12Device7 * This,
18627 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
18628 REFIID riid,
18629 _COM_Outptr_ void **ppPipelineState);
18630
18631 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
18632 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
18633 ID3D12Device7 * This,
18634 _In_ UINT nodeMask,
18635 _In_ D3D12_COMMAND_LIST_TYPE type,
18636 _In_ ID3D12CommandAllocator *pCommandAllocator,
18637 _In_opt_ ID3D12PipelineState *pInitialState,
18638 REFIID riid,
18639 _COM_Outptr_ void **ppCommandList);
18640
18641 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
18642 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
18643 ID3D12Device7 * This,
18644 D3D12_FEATURE Feature,
18645 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
18646 UINT FeatureSupportDataSize);
18647
18648 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
18649 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
18650 ID3D12Device7 * This,
18651 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
18652 REFIID riid,
18653 _COM_Outptr_ void **ppvHeap);
18654
18655 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
18656 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
18657 ID3D12Device7 * This,
18658 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
18659
18660 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
18661 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
18662 ID3D12Device7 * This,
18663 _In_ UINT nodeMask,
18664 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
18665 _In_ SIZE_T blobLengthInBytes,
18666 REFIID riid,
18667 _COM_Outptr_ void **ppvRootSignature);
18668
18669 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
18670 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
18671 ID3D12Device7 * This,
18672 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
18673 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18674
18675 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
18676 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
18677 ID3D12Device7 * This,
18678 _In_opt_ ID3D12Resource *pResource,
18679 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
18680 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18681
18682 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
18683 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
18684 ID3D12Device7 * This,
18685 _In_opt_ ID3D12Resource *pResource,
18686 _In_opt_ ID3D12Resource *pCounterResource,
18687 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
18688 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18689
18690 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
18691 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
18692 ID3D12Device7 * This,
18693 _In_opt_ ID3D12Resource *pResource,
18694 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
18695 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18696
18697 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
18698 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
18699 ID3D12Device7 * This,
18700 _In_opt_ ID3D12Resource *pResource,
18701 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
18702 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18703
18704 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
18705 void ( STDMETHODCALLTYPE *CreateSampler )(
18706 ID3D12Device7 * This,
18707 _In_ const D3D12_SAMPLER_DESC *pDesc,
18708 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
18709
18710 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
18711 void ( STDMETHODCALLTYPE *CopyDescriptors )(
18712 ID3D12Device7 * This,
18713 _In_ UINT NumDestDescriptorRanges,
18714 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
18715 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
18716 _In_ UINT NumSrcDescriptorRanges,
18717 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
18718 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
18719 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18720
18721 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
18722 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
18723 ID3D12Device7 * This,
18724 _In_ UINT NumDescriptors,
18725 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
18726 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
18727 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
18728
18729 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
18730#if !defined(_WIN32)
18731 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18732 ID3D12Device7 * This,
18733 _In_ UINT visibleMask,
18734 _In_ UINT numResourceDescs,
18735 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18736
18737#else
18738 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
18739 ID3D12Device7 * This,
18740 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
18741 _In_ UINT visibleMask,
18742 _In_ UINT numResourceDescs,
18743 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
18744
18745#endif
18746
18747 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
18748#if !defined(_WIN32)
18749 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18750 ID3D12Device7 * This,
18751 _In_ UINT nodeMask,
18752 D3D12_HEAP_TYPE heapType);
18753
18754#else
18755 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
18756 ID3D12Device7 * This,
18757 D3D12_HEAP_PROPERTIES * RetVal,
18758 _In_ UINT nodeMask,
18759 D3D12_HEAP_TYPE heapType);
18760
18761#endif
18762
18763 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
18764 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
18765 ID3D12Device7 * This,
18766 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18767 D3D12_HEAP_FLAGS HeapFlags,
18768 _In_ const D3D12_RESOURCE_DESC *pDesc,
18769 D3D12_RESOURCE_STATES InitialResourceState,
18770 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18771 REFIID riidResource,
18772 _COM_Outptr_opt_ void **ppvResource);
18773
18774 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
18775 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
18776 ID3D12Device7 * This,
18777 _In_ const D3D12_HEAP_DESC *pDesc,
18778 REFIID riid,
18779 _COM_Outptr_opt_ void **ppvHeap);
18780
18781 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
18782 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
18783 ID3D12Device7 * This,
18784 _In_ ID3D12Heap *pHeap,
18785 UINT64 HeapOffset,
18786 _In_ const D3D12_RESOURCE_DESC *pDesc,
18787 D3D12_RESOURCE_STATES InitialState,
18788 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18789 REFIID riid,
18790 _COM_Outptr_opt_ void **ppvResource);
18791
18792 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
18793 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
18794 ID3D12Device7 * This,
18795 _In_ const D3D12_RESOURCE_DESC *pDesc,
18796 D3D12_RESOURCE_STATES InitialState,
18797 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18798 REFIID riid,
18799 _COM_Outptr_opt_ void **ppvResource);
18800
18801 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
18802 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
18803 ID3D12Device7 * This,
18804 _In_ ID3D12DeviceChild *pObject,
18805 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
18806 DWORD Access,
18807 _In_opt_ LPCWSTR Name,
18808 _Out_ HANDLE *pHandle);
18809
18810 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
18811 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
18812 ID3D12Device7 * This,
18813 _In_ HANDLE NTHandle,
18814 REFIID riid,
18815 _COM_Outptr_opt_ void **ppvObj);
18816
18817 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
18818 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
18819 ID3D12Device7 * This,
18820 _In_ LPCWSTR Name,
18821 DWORD Access,
18822 /* [annotation][out] */
18823 _Out_ HANDLE *pNTHandle);
18824
18825 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
18826 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
18827 ID3D12Device7 * This,
18828 UINT NumObjects,
18829 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18830
18831 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
18832 HRESULT ( STDMETHODCALLTYPE *Evict )(
18833 ID3D12Device7 * This,
18834 UINT NumObjects,
18835 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
18836
18837 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
18838 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
18839 ID3D12Device7 * This,
18840 UINT64 InitialValue,
18841 D3D12_FENCE_FLAGS Flags,
18842 REFIID riid,
18843 _COM_Outptr_ void **ppFence);
18844
18845 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
18846 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
18847 ID3D12Device7 * This);
18848
18849 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
18850 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
18851 ID3D12Device7 * This,
18852 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
18853 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
18854 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
18855 UINT64 BaseOffset,
18856 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
18857 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
18858 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
18859 _Out_opt_ UINT64 *pTotalBytes);
18860
18861 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
18862 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
18863 ID3D12Device7 * This,
18864 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
18865 REFIID riid,
18866 _COM_Outptr_opt_ void **ppvHeap);
18867
18868 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
18869 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
18870 ID3D12Device7 * This,
18871 BOOL Enable);
18872
18873 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
18874 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
18875 ID3D12Device7 * This,
18876 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
18877 _In_opt_ ID3D12RootSignature *pRootSignature,
18878 REFIID riid,
18879 _COM_Outptr_opt_ void **ppvCommandSignature);
18880
18881 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
18882 void ( STDMETHODCALLTYPE *GetResourceTiling )(
18883 ID3D12Device7 * This,
18884 _In_ ID3D12Resource *pTiledResource,
18885 _Out_opt_ UINT *pNumTilesForEntireResource,
18886 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
18887 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
18888 _Inout_opt_ UINT *pNumSubresourceTilings,
18889 _In_ UINT FirstSubresourceTilingToGet,
18890 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
18891
18892 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
18893#if !defined(_WIN32)
18894 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
18895 ID3D12Device7 * This);
18896
18897#else
18898 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
18899 ID3D12Device7 * This,
18900 LUID * RetVal);
18901
18902#endif
18903
18904 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
18905 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
18906 ID3D12Device7 * This,
18907 _In_reads_(BlobLength) const void *pLibraryBlob,
18908 SIZE_T BlobLength,
18909 REFIID riid,
18910 _COM_Outptr_ void **ppPipelineLibrary);
18911
18912 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
18913 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
18914 ID3D12Device7 * This,
18915 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
18916 _In_reads_(NumFences) const UINT64 *pFenceValues,
18917 UINT NumFences,
18918 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
18919 HANDLE hEvent);
18920
18921 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
18922 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
18923 ID3D12Device7 * This,
18924 UINT NumObjects,
18925 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18926 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
18927
18928 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
18929 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
18930 ID3D12Device7 * This,
18931 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
18932 REFIID riid,
18933 _COM_Outptr_ void **ppPipelineState);
18934
18935 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
18936 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
18937 ID3D12Device7 * This,
18938 _In_ const void *pAddress,
18939 REFIID riid,
18940 _COM_Outptr_ void **ppvHeap);
18941
18942 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
18943 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
18944 ID3D12Device7 * This,
18945 _In_ HANDLE hFileMapping,
18946 REFIID riid,
18947 _COM_Outptr_ void **ppvHeap);
18948
18949 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
18950 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
18951 ID3D12Device7 * This,
18952 D3D12_RESIDENCY_FLAGS Flags,
18953 UINT NumObjects,
18954 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
18955 _In_ ID3D12Fence *pFenceToSignal,
18956 UINT64 FenceValueToSignal);
18957
18958 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
18959 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
18960 ID3D12Device7 * This,
18961 _In_ UINT nodeMask,
18962 _In_ D3D12_COMMAND_LIST_TYPE type,
18963 _In_ D3D12_COMMAND_LIST_FLAGS flags,
18964 REFIID riid,
18965 _COM_Outptr_ void **ppCommandList);
18966
18967 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
18968 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
18969 ID3D12Device7 * This,
18970 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
18971 _In_ REFIID riid,
18972 _COM_Outptr_ void **ppSession);
18973
18974 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
18975 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
18976 ID3D12Device7 * This,
18977 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
18978 D3D12_HEAP_FLAGS HeapFlags,
18979 _In_ const D3D12_RESOURCE_DESC *pDesc,
18980 D3D12_RESOURCE_STATES InitialResourceState,
18981 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
18982 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18983 REFIID riidResource,
18984 _COM_Outptr_opt_ void **ppvResource);
18985
18986 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
18987 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
18988 ID3D12Device7 * This,
18989 _In_ const D3D12_HEAP_DESC *pDesc,
18990 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
18991 REFIID riid,
18992 _COM_Outptr_opt_ void **ppvHeap);
18993
18994 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
18995 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
18996 ID3D12Device7 * This,
18997 _In_ const D3D12_RESOURCE_DESC *pDesc,
18998 D3D12_RESOURCE_STATES InitialState,
18999 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19000 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19001 REFIID riid,
19002 _COM_Outptr_opt_ void **ppvResource);
19003
19004 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
19005#if !defined(_WIN32)
19006 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19007 ID3D12Device7 * This,
19008 UINT visibleMask,
19009 UINT numResourceDescs,
19010 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19011 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19012
19013#else
19014 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19015 ID3D12Device7 * This,
19016 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19017 UINT visibleMask,
19018 UINT numResourceDescs,
19019 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19020 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19021
19022#endif
19023
19024 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
19025 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
19026 ID3D12Device7 * This,
19027 _In_ ID3D12LifetimeOwner *pOwner,
19028 REFIID riid,
19029 _COM_Outptr_ void **ppvTracker);
19030
19031 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
19032 void ( STDMETHODCALLTYPE *RemoveDevice )(
19033 ID3D12Device7 * This);
19034
19035 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
19036 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
19037 ID3D12Device7 * This,
19038 _Inout_ UINT *pNumMetaCommands,
19039 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
19040
19041 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
19042 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
19043 ID3D12Device7 * This,
19044 _In_ REFGUID CommandId,
19045 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
19046 _Out_opt_ UINT *pTotalStructureSizeInBytes,
19047 _Inout_ UINT *pParameterCount,
19048 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
19049
19050 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
19051 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
19052 ID3D12Device7 * This,
19053 _In_ REFGUID CommandId,
19054 _In_ UINT NodeMask,
19055 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
19056 _In_ SIZE_T CreationParametersDataSizeInBytes,
19057 REFIID riid,
19058 _COM_Outptr_ void **ppMetaCommand);
19059
19060 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
19061 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
19062 ID3D12Device7 * This,
19063 const D3D12_STATE_OBJECT_DESC *pDesc,
19064 REFIID riid,
19065 _COM_Outptr_ void **ppStateObject);
19066
19067 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
19068 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
19069 ID3D12Device7 * This,
19070 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
19071 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
19072
19073 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
19074 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
19075 ID3D12Device7 * This,
19076 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
19077 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
19078
19079 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
19080 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
19081 ID3D12Device7 * This,
19082 D3D12_BACKGROUND_PROCESSING_MODE Mode,
19083 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
19084 _In_opt_ HANDLE hEventToSignalUponCompletion,
19085 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
19086
19087 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
19088 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
19089 ID3D12Device7 * This,
19090 const D3D12_STATE_OBJECT_DESC *pAddition,
19091 ID3D12StateObject *pStateObjectToGrowFrom,
19092 REFIID riid,
19093 _COM_Outptr_ void **ppNewStateObject);
19094
19095 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
19096 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
19097 ID3D12Device7 * This,
19098 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
19099 _In_ REFIID riid,
19100 _COM_Outptr_ void **ppSession);
19101
19102 END_INTERFACE
19103 } ID3D12Device7Vtbl;
19104
19105 interface ID3D12Device7
19106 {
19107 CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl;
19108 };
19109
19110
19111
19112#ifdef COBJMACROS
19113
19114
19115#define ID3D12Device7_QueryInterface(This,riid,ppvObject) \
19116 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
19117
19118#define ID3D12Device7_AddRef(This) \
19119 ( (This)->lpVtbl -> AddRef(This) )
19120
19121#define ID3D12Device7_Release(This) \
19122 ( (This)->lpVtbl -> Release(This) )
19123
19124
19125#define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \
19126 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
19127
19128#define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \
19129 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
19130
19131#define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \
19132 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
19133
19134#define ID3D12Device7_SetName(This,Name) \
19135 ( (This)->lpVtbl -> SetName(This,Name) )
19136
19137
19138#define ID3D12Device7_GetNodeCount(This) \
19139 ( (This)->lpVtbl -> GetNodeCount(This) )
19140
19141#define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
19142 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
19143
19144#define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
19145 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
19146
19147#define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
19148 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
19149
19150#define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
19151 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
19152
19153#define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
19154 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
19155
19156#define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
19157 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
19158
19159#define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
19160 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
19161
19162#define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
19163 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
19164
19165#define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
19166 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
19167
19168#define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \
19169 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
19170
19171#define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
19172 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
19173
19174#define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
19175 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
19176
19177#define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
19178 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
19179
19180#define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
19181 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
19182
19183#define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \
19184 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
19185
19186#define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
19187 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
19188
19189#define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
19190 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
19191#if !defined(_WIN32)
19192
19193#define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
19194 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
19195#else
19196#define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
19197 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
19198#endif
19199#if !defined(_WIN32)
19200
19201#define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \
19202 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
19203#else
19204#define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
19205 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
19206#endif
19207
19208#define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
19209 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
19210
19211#define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \
19212 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
19213
19214#define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19215 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19216
19217#define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
19218 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
19219
19220#define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
19221 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
19222
19223#define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
19224 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
19225
19226#define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
19227 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
19228
19229#define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \
19230 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
19231
19232#define ID3D12Device7_Evict(This,NumObjects,ppObjects) \
19233 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
19234
19235#define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \
19236 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
19237
19238#define ID3D12Device7_GetDeviceRemovedReason(This) \
19239 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
19240
19241#define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
19242 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
19243
19244#define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
19245 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
19246
19247#define ID3D12Device7_SetStablePowerState(This,Enable) \
19248 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
19249
19250#define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
19251 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
19252
19253#define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
19254 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
19255#if !defined(_WIN32)
19256
19257#define ID3D12Device7_GetAdapterLuid(This) \
19258 ( (This)->lpVtbl -> GetAdapterLuid(This) )
19259#else
19260#define ID3D12Device7_GetAdapterLuid(This,RetVal) \
19261 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
19262#endif
19263
19264
19265#define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
19266 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
19267
19268#define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
19269 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
19270
19271#define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
19272 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
19273
19274
19275#define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
19276 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
19277
19278
19279#define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
19280 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
19281
19282#define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
19283 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
19284
19285#define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
19286 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
19287
19288
19289#define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
19290 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
19291
19292#define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
19293 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
19294
19295#define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
19296 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
19297
19298#define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
19299 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
19300
19301#define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
19302 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
19303#if !defined(_WIN32)
19304
19305#define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19306 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19307#else
19308#define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
19309 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
19310#endif
19311
19312
19313#define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
19314 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
19315
19316#define ID3D12Device7_RemoveDevice(This) \
19317 ( (This)->lpVtbl -> RemoveDevice(This) )
19318
19319#define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
19320 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
19321
19322#define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
19323 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
19324
19325#define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
19326 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
19327
19328#define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \
19329 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
19330
19331#define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
19332 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
19333
19334#define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
19335 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
19336
19337
19338#define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
19339 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
19340
19341
19342#define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
19343 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
19344
19345#define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
19346 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
19347
19348#endif /* COBJMACROS */
19349
19350
19351#endif /* C style interface */
19352
19353
19354
19355
19356#endif /* __ID3D12Device7_INTERFACE_DEFINED__ */
19357
19358
19359#ifndef __ID3D12Device8_INTERFACE_DEFINED__
19360#define __ID3D12Device8_INTERFACE_DEFINED__
19361
19362/* interface ID3D12Device8 */
19363/* [unique][local][object][uuid] */
19364
19365
19366EXTERN_C const IID IID_ID3D12Device8;
19367
19368#if defined(__cplusplus) && !defined(CINTERFACE)
19369
19370 MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3")
19371 ID3D12Device8 : public ID3D12Device7
19372 {
19373 public:
19374#if defined(_MSC_VER) || !defined(_WIN32)
19375 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2(
19376 UINT visibleMask,
19377 UINT numResourceDescs,
19378 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19379 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
19380#else
19381 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2(
19382 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19383 UINT visibleMask,
19384 UINT numResourceDescs,
19385 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19386 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
19387#endif
19388
19389 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2(
19390 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19391 D3D12_HEAP_FLAGS HeapFlags,
19392 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19393 D3D12_RESOURCE_STATES InitialResourceState,
19394 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19395 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19396 REFIID riidResource,
19397 _COM_Outptr_opt_ void **ppvResource) = 0;
19398
19399 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1(
19400 _In_ ID3D12Heap *pHeap,
19401 UINT64 HeapOffset,
19402 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
19403 D3D12_RESOURCE_STATES InitialState,
19404 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19405 REFIID riid,
19406 _COM_Outptr_opt_ void **ppvResource) = 0;
19407
19408 virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView(
19409 _In_opt_ ID3D12Resource *pTargetedResource,
19410 _In_opt_ ID3D12Resource *pFeedbackResource,
19411 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
19412
19413 virtual void STDMETHODCALLTYPE GetCopyableFootprints1(
19414 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
19415 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
19416 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
19417 UINT64 BaseOffset,
19418 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
19419 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
19420 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
19421 _Out_opt_ UINT64 *pTotalBytes) = 0;
19422
19423 };
19424
19425
19426#else /* C style interface */
19427
19428 typedef struct ID3D12Device8Vtbl
19429 {
19430 BEGIN_INTERFACE
19431
19432 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
19433 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
19434 ID3D12Device8 * This,
19435 REFIID riid,
19436 _COM_Outptr_ void **ppvObject);
19437
19438 DECLSPEC_XFGVIRT(IUnknown, AddRef)
19439 ULONG ( STDMETHODCALLTYPE *AddRef )(
19440 ID3D12Device8 * This);
19441
19442 DECLSPEC_XFGVIRT(IUnknown, Release)
19443 ULONG ( STDMETHODCALLTYPE *Release )(
19444 ID3D12Device8 * This);
19445
19446 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
19447 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
19448 ID3D12Device8 * This,
19449 _In_ REFGUID guid,
19450 _Inout_ UINT *pDataSize,
19451 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
19452
19453 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
19454 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
19455 ID3D12Device8 * This,
19456 _In_ REFGUID guid,
19457 _In_ UINT DataSize,
19458 _In_reads_bytes_opt_( DataSize ) const void *pData);
19459
19460 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
19461 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
19462 ID3D12Device8 * This,
19463 _In_ REFGUID guid,
19464 _In_opt_ const IUnknown *pData);
19465
19466 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
19467 HRESULT ( STDMETHODCALLTYPE *SetName )(
19468 ID3D12Device8 * This,
19469 _In_z_ LPCWSTR Name);
19470
19471 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
19472 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
19473 ID3D12Device8 * This);
19474
19475 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
19476 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
19477 ID3D12Device8 * This,
19478 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
19479 REFIID riid,
19480 _COM_Outptr_ void **ppCommandQueue);
19481
19482 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
19483 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
19484 ID3D12Device8 * This,
19485 _In_ D3D12_COMMAND_LIST_TYPE type,
19486 REFIID riid,
19487 _COM_Outptr_ void **ppCommandAllocator);
19488
19489 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
19490 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
19491 ID3D12Device8 * This,
19492 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
19493 REFIID riid,
19494 _COM_Outptr_ void **ppPipelineState);
19495
19496 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
19497 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
19498 ID3D12Device8 * This,
19499 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
19500 REFIID riid,
19501 _COM_Outptr_ void **ppPipelineState);
19502
19503 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
19504 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
19505 ID3D12Device8 * This,
19506 _In_ UINT nodeMask,
19507 _In_ D3D12_COMMAND_LIST_TYPE type,
19508 _In_ ID3D12CommandAllocator *pCommandAllocator,
19509 _In_opt_ ID3D12PipelineState *pInitialState,
19510 REFIID riid,
19511 _COM_Outptr_ void **ppCommandList);
19512
19513 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
19514 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
19515 ID3D12Device8 * This,
19516 D3D12_FEATURE Feature,
19517 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
19518 UINT FeatureSupportDataSize);
19519
19520 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
19521 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
19522 ID3D12Device8 * This,
19523 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
19524 REFIID riid,
19525 _COM_Outptr_ void **ppvHeap);
19526
19527 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
19528 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
19529 ID3D12Device8 * This,
19530 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
19531
19532 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
19533 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
19534 ID3D12Device8 * This,
19535 _In_ UINT nodeMask,
19536 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
19537 _In_ SIZE_T blobLengthInBytes,
19538 REFIID riid,
19539 _COM_Outptr_ void **ppvRootSignature);
19540
19541 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
19542 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
19543 ID3D12Device8 * This,
19544 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
19545 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19546
19547 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
19548 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
19549 ID3D12Device8 * This,
19550 _In_opt_ ID3D12Resource *pResource,
19551 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
19552 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19553
19554 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
19555 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
19556 ID3D12Device8 * This,
19557 _In_opt_ ID3D12Resource *pResource,
19558 _In_opt_ ID3D12Resource *pCounterResource,
19559 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
19560 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19561
19562 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
19563 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
19564 ID3D12Device8 * This,
19565 _In_opt_ ID3D12Resource *pResource,
19566 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
19567 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19568
19569 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
19570 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
19571 ID3D12Device8 * This,
19572 _In_opt_ ID3D12Resource *pResource,
19573 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
19574 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19575
19576 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
19577 void ( STDMETHODCALLTYPE *CreateSampler )(
19578 ID3D12Device8 * This,
19579 _In_ const D3D12_SAMPLER_DESC *pDesc,
19580 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
19581
19582 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
19583 void ( STDMETHODCALLTYPE *CopyDescriptors )(
19584 ID3D12Device8 * This,
19585 _In_ UINT NumDestDescriptorRanges,
19586 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
19587 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
19588 _In_ UINT NumSrcDescriptorRanges,
19589 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
19590 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
19591 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
19592
19593 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
19594 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
19595 ID3D12Device8 * This,
19596 _In_ UINT NumDescriptors,
19597 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
19598 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
19599 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
19600
19601 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
19602#if !defined(_WIN32)
19603 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
19604 ID3D12Device8 * This,
19605 _In_ UINT visibleMask,
19606 _In_ UINT numResourceDescs,
19607 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
19608
19609#else
19610 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
19611 ID3D12Device8 * This,
19612 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19613 _In_ UINT visibleMask,
19614 _In_ UINT numResourceDescs,
19615 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
19616
19617#endif
19618
19619 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
19620#if !defined(_WIN32)
19621 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
19622 ID3D12Device8 * This,
19623 _In_ UINT nodeMask,
19624 D3D12_HEAP_TYPE heapType);
19625
19626#else
19627 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
19628 ID3D12Device8 * This,
19629 D3D12_HEAP_PROPERTIES * RetVal,
19630 _In_ UINT nodeMask,
19631 D3D12_HEAP_TYPE heapType);
19632
19633#endif
19634
19635 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
19636 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
19637 ID3D12Device8 * This,
19638 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19639 D3D12_HEAP_FLAGS HeapFlags,
19640 _In_ const D3D12_RESOURCE_DESC *pDesc,
19641 D3D12_RESOURCE_STATES InitialResourceState,
19642 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19643 REFIID riidResource,
19644 _COM_Outptr_opt_ void **ppvResource);
19645
19646 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
19647 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
19648 ID3D12Device8 * This,
19649 _In_ const D3D12_HEAP_DESC *pDesc,
19650 REFIID riid,
19651 _COM_Outptr_opt_ void **ppvHeap);
19652
19653 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
19654 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
19655 ID3D12Device8 * This,
19656 _In_ ID3D12Heap *pHeap,
19657 UINT64 HeapOffset,
19658 _In_ const D3D12_RESOURCE_DESC *pDesc,
19659 D3D12_RESOURCE_STATES InitialState,
19660 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19661 REFIID riid,
19662 _COM_Outptr_opt_ void **ppvResource);
19663
19664 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
19665 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
19666 ID3D12Device8 * This,
19667 _In_ const D3D12_RESOURCE_DESC *pDesc,
19668 D3D12_RESOURCE_STATES InitialState,
19669 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19670 REFIID riid,
19671 _COM_Outptr_opt_ void **ppvResource);
19672
19673 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
19674 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
19675 ID3D12Device8 * This,
19676 _In_ ID3D12DeviceChild *pObject,
19677 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
19678 DWORD Access,
19679 _In_opt_ LPCWSTR Name,
19680 _Out_ HANDLE *pHandle);
19681
19682 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
19683 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
19684 ID3D12Device8 * This,
19685 _In_ HANDLE NTHandle,
19686 REFIID riid,
19687 _COM_Outptr_opt_ void **ppvObj);
19688
19689 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
19690 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
19691 ID3D12Device8 * This,
19692 _In_ LPCWSTR Name,
19693 DWORD Access,
19694 /* [annotation][out] */
19695 _Out_ HANDLE *pNTHandle);
19696
19697 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
19698 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
19699 ID3D12Device8 * This,
19700 UINT NumObjects,
19701 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
19702
19703 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
19704 HRESULT ( STDMETHODCALLTYPE *Evict )(
19705 ID3D12Device8 * This,
19706 UINT NumObjects,
19707 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
19708
19709 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
19710 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
19711 ID3D12Device8 * This,
19712 UINT64 InitialValue,
19713 D3D12_FENCE_FLAGS Flags,
19714 REFIID riid,
19715 _COM_Outptr_ void **ppFence);
19716
19717 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
19718 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
19719 ID3D12Device8 * This);
19720
19721 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
19722 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
19723 ID3D12Device8 * This,
19724 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
19725 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
19726 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
19727 UINT64 BaseOffset,
19728 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
19729 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
19730 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
19731 _Out_opt_ UINT64 *pTotalBytes);
19732
19733 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
19734 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
19735 ID3D12Device8 * This,
19736 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
19737 REFIID riid,
19738 _COM_Outptr_opt_ void **ppvHeap);
19739
19740 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
19741 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
19742 ID3D12Device8 * This,
19743 BOOL Enable);
19744
19745 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
19746 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
19747 ID3D12Device8 * This,
19748 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
19749 _In_opt_ ID3D12RootSignature *pRootSignature,
19750 REFIID riid,
19751 _COM_Outptr_opt_ void **ppvCommandSignature);
19752
19753 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
19754 void ( STDMETHODCALLTYPE *GetResourceTiling )(
19755 ID3D12Device8 * This,
19756 _In_ ID3D12Resource *pTiledResource,
19757 _Out_opt_ UINT *pNumTilesForEntireResource,
19758 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
19759 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
19760 _Inout_opt_ UINT *pNumSubresourceTilings,
19761 _In_ UINT FirstSubresourceTilingToGet,
19762 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
19763
19764 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
19765#if !defined(_WIN32)
19766 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
19767 ID3D12Device8 * This);
19768
19769#else
19770 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
19771 ID3D12Device8 * This,
19772 LUID * RetVal);
19773
19774#endif
19775
19776 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
19777 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
19778 ID3D12Device8 * This,
19779 _In_reads_(BlobLength) const void *pLibraryBlob,
19780 SIZE_T BlobLength,
19781 REFIID riid,
19782 _COM_Outptr_ void **ppPipelineLibrary);
19783
19784 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
19785 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
19786 ID3D12Device8 * This,
19787 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
19788 _In_reads_(NumFences) const UINT64 *pFenceValues,
19789 UINT NumFences,
19790 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
19791 HANDLE hEvent);
19792
19793 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
19794 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
19795 ID3D12Device8 * This,
19796 UINT NumObjects,
19797 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
19798 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
19799
19800 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
19801 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
19802 ID3D12Device8 * This,
19803 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
19804 REFIID riid,
19805 _COM_Outptr_ void **ppPipelineState);
19806
19807 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
19808 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
19809 ID3D12Device8 * This,
19810 _In_ const void *pAddress,
19811 REFIID riid,
19812 _COM_Outptr_ void **ppvHeap);
19813
19814 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
19815 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
19816 ID3D12Device8 * This,
19817 _In_ HANDLE hFileMapping,
19818 REFIID riid,
19819 _COM_Outptr_ void **ppvHeap);
19820
19821 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
19822 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
19823 ID3D12Device8 * This,
19824 D3D12_RESIDENCY_FLAGS Flags,
19825 UINT NumObjects,
19826 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
19827 _In_ ID3D12Fence *pFenceToSignal,
19828 UINT64 FenceValueToSignal);
19829
19830 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
19831 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
19832 ID3D12Device8 * This,
19833 _In_ UINT nodeMask,
19834 _In_ D3D12_COMMAND_LIST_TYPE type,
19835 _In_ D3D12_COMMAND_LIST_FLAGS flags,
19836 REFIID riid,
19837 _COM_Outptr_ void **ppCommandList);
19838
19839 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
19840 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
19841 ID3D12Device8 * This,
19842 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
19843 _In_ REFIID riid,
19844 _COM_Outptr_ void **ppSession);
19845
19846 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
19847 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
19848 ID3D12Device8 * This,
19849 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19850 D3D12_HEAP_FLAGS HeapFlags,
19851 _In_ const D3D12_RESOURCE_DESC *pDesc,
19852 D3D12_RESOURCE_STATES InitialResourceState,
19853 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19854 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19855 REFIID riidResource,
19856 _COM_Outptr_opt_ void **ppvResource);
19857
19858 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
19859 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
19860 ID3D12Device8 * This,
19861 _In_ const D3D12_HEAP_DESC *pDesc,
19862 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19863 REFIID riid,
19864 _COM_Outptr_opt_ void **ppvHeap);
19865
19866 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
19867 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
19868 ID3D12Device8 * This,
19869 _In_ const D3D12_RESOURCE_DESC *pDesc,
19870 D3D12_RESOURCE_STATES InitialState,
19871 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
19872 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
19873 REFIID riid,
19874 _COM_Outptr_opt_ void **ppvResource);
19875
19876 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
19877#if !defined(_WIN32)
19878 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19879 ID3D12Device8 * This,
19880 UINT visibleMask,
19881 UINT numResourceDescs,
19882 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19883 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19884
19885#else
19886 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
19887 ID3D12Device8 * This,
19888 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19889 UINT visibleMask,
19890 UINT numResourceDescs,
19891 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
19892 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19893
19894#endif
19895
19896 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
19897 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
19898 ID3D12Device8 * This,
19899 _In_ ID3D12LifetimeOwner *pOwner,
19900 REFIID riid,
19901 _COM_Outptr_ void **ppvTracker);
19902
19903 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
19904 void ( STDMETHODCALLTYPE *RemoveDevice )(
19905 ID3D12Device8 * This);
19906
19907 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
19908 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
19909 ID3D12Device8 * This,
19910 _Inout_ UINT *pNumMetaCommands,
19911 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
19912
19913 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
19914 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
19915 ID3D12Device8 * This,
19916 _In_ REFGUID CommandId,
19917 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
19918 _Out_opt_ UINT *pTotalStructureSizeInBytes,
19919 _Inout_ UINT *pParameterCount,
19920 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
19921
19922 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
19923 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
19924 ID3D12Device8 * This,
19925 _In_ REFGUID CommandId,
19926 _In_ UINT NodeMask,
19927 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
19928 _In_ SIZE_T CreationParametersDataSizeInBytes,
19929 REFIID riid,
19930 _COM_Outptr_ void **ppMetaCommand);
19931
19932 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
19933 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
19934 ID3D12Device8 * This,
19935 const D3D12_STATE_OBJECT_DESC *pDesc,
19936 REFIID riid,
19937 _COM_Outptr_ void **ppStateObject);
19938
19939 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
19940 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
19941 ID3D12Device8 * This,
19942 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
19943 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
19944
19945 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
19946 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
19947 ID3D12Device8 * This,
19948 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
19949 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
19950
19951 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
19952 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
19953 ID3D12Device8 * This,
19954 D3D12_BACKGROUND_PROCESSING_MODE Mode,
19955 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
19956 _In_opt_ HANDLE hEventToSignalUponCompletion,
19957 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
19958
19959 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
19960 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
19961 ID3D12Device8 * This,
19962 const D3D12_STATE_OBJECT_DESC *pAddition,
19963 ID3D12StateObject *pStateObjectToGrowFrom,
19964 REFIID riid,
19965 _COM_Outptr_ void **ppNewStateObject);
19966
19967 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
19968 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
19969 ID3D12Device8 * This,
19970 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
19971 _In_ REFIID riid,
19972 _COM_Outptr_ void **ppSession);
19973
19974 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
19975#if !defined(_WIN32)
19976 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19977 ID3D12Device8 * This,
19978 UINT visibleMask,
19979 UINT numResourceDescs,
19980 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19981 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19982
19983#else
19984 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
19985 ID3D12Device8 * This,
19986 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
19987 UINT visibleMask,
19988 UINT numResourceDescs,
19989 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
19990 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
19991
19992#endif
19993
19994 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
19995 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
19996 ID3D12Device8 * This,
19997 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
19998 D3D12_HEAP_FLAGS HeapFlags,
19999 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20000 D3D12_RESOURCE_STATES InitialResourceState,
20001 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20002 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
20003 REFIID riidResource,
20004 _COM_Outptr_opt_ void **ppvResource);
20005
20006 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
20007 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
20008 ID3D12Device8 * This,
20009 _In_ ID3D12Heap *pHeap,
20010 UINT64 HeapOffset,
20011 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
20012 D3D12_RESOURCE_STATES InitialState,
20013 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
20014 REFIID riid,
20015 _COM_Outptr_opt_ void **ppvResource);
20016
20017 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
20018 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
20019 ID3D12Device8 * This,
20020 _In_opt_ ID3D12Resource *pTargetedResource,
20021 _In_opt_ ID3D12Resource *pFeedbackResource,
20022 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
20023
20024 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
20025 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
20026 ID3D12Device8 * This,
20027 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
20028 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
20029 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
20030 UINT64 BaseOffset,
20031 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
20032 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
20033 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
20034 _Out_opt_ UINT64 *pTotalBytes);
20035
20036 END_INTERFACE
20037 } ID3D12Device8Vtbl;
20038
20039 interface ID3D12Device8
20040 {
20041 CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl;
20042 };
20043
20044
20045
20046#ifdef COBJMACROS
20047
20048
20049#define ID3D12Device8_QueryInterface(This,riid,ppvObject) \
20050 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20051
20052#define ID3D12Device8_AddRef(This) \
20053 ( (This)->lpVtbl -> AddRef(This) )
20054
20055#define ID3D12Device8_Release(This) \
20056 ( (This)->lpVtbl -> Release(This) )
20057
20058
20059#define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \
20060 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20061
20062#define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \
20063 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20064
20065#define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \
20066 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20067
20068#define ID3D12Device8_SetName(This,Name) \
20069 ( (This)->lpVtbl -> SetName(This,Name) )
20070
20071
20072#define ID3D12Device8_GetNodeCount(This) \
20073 ( (This)->lpVtbl -> GetNodeCount(This) )
20074
20075#define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
20076 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
20077
20078#define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
20079 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
20080
20081#define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
20082 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
20083
20084#define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
20085 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
20086
20087#define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
20088 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
20089
20090#define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
20091 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
20092
20093#define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
20094 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
20095
20096#define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
20097 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
20098
20099#define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
20100 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
20101
20102#define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \
20103 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
20104
20105#define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
20106 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
20107
20108#define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
20109 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
20110
20111#define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
20112 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
20113
20114#define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
20115 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
20116
20117#define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \
20118 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
20119
20120#define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
20121 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
20122
20123#define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
20124 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
20125#if !defined(_WIN32)
20126
20127#define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
20128 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
20129#else
20130#define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
20131 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
20132#endif
20133#if !defined(_WIN32)
20134
20135#define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \
20136 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
20137#else
20138#define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
20139 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
20140#endif
20141
20142#define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
20143 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
20144
20145#define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \
20146 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
20147
20148#define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20149 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20150
20151#define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20152 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20153
20154#define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
20155 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
20156
20157#define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
20158 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
20159
20160#define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
20161 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
20162
20163#define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \
20164 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
20165
20166#define ID3D12Device8_Evict(This,NumObjects,ppObjects) \
20167 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
20168
20169#define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \
20170 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
20171
20172#define ID3D12Device8_GetDeviceRemovedReason(This) \
20173 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
20174
20175#define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20176 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20177
20178#define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
20179 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
20180
20181#define ID3D12Device8_SetStablePowerState(This,Enable) \
20182 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
20183
20184#define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
20185 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
20186
20187#define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
20188 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
20189#if !defined(_WIN32)
20190
20191#define ID3D12Device8_GetAdapterLuid(This) \
20192 ( (This)->lpVtbl -> GetAdapterLuid(This) )
20193#else
20194#define ID3D12Device8_GetAdapterLuid(This,RetVal) \
20195 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
20196#endif
20197
20198
20199#define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
20200 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
20201
20202#define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
20203 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
20204
20205#define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
20206 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
20207
20208
20209#define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
20210 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
20211
20212
20213#define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
20214 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
20215
20216#define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
20217 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
20218
20219#define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
20220 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
20221
20222
20223#define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
20224 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
20225
20226#define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
20227 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
20228
20229#define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20230 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20231
20232#define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
20233 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
20234
20235#define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
20236 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
20237#if !defined(_WIN32)
20238
20239#define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20240 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20241#else
20242#define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20243 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20244#endif
20245
20246
20247#define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
20248 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
20249
20250#define ID3D12Device8_RemoveDevice(This) \
20251 ( (This)->lpVtbl -> RemoveDevice(This) )
20252
20253#define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
20254 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
20255
20256#define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
20257 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
20258
20259#define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
20260 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
20261
20262#define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \
20263 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
20264
20265#define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
20266 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
20267
20268#define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
20269 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
20270
20271
20272#define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
20273 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
20274
20275
20276#define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
20277 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
20278
20279#define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
20280 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
20281
20282#if !defined(_WIN32)
20283
20284#define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20285 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20286#else
20287#define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
20288 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
20289#endif
20290
20291#define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
20292 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
20293
20294#define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
20295 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
20296
20297#define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
20298 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
20299
20300#define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
20301 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
20302
20303#endif /* COBJMACROS */
20304
20305
20306#endif /* C style interface */
20307
20308
20309
20310
20311#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
20312
20313
20314#ifndef __ID3D12Resource1_INTERFACE_DEFINED__
20315#define __ID3D12Resource1_INTERFACE_DEFINED__
20316
20317/* interface ID3D12Resource1 */
20318/* [unique][local][object][uuid] */
20319
20320
20321EXTERN_C const IID IID_ID3D12Resource1;
20322
20323#if defined(__cplusplus) && !defined(CINTERFACE)
20324
20325 MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19")
20326 ID3D12Resource1 : public ID3D12Resource
20327 {
20328 public:
20329 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
20330 REFIID riid,
20331 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
20332
20333 };
20334
20335
20336#else /* C style interface */
20337
20338 typedef struct ID3D12Resource1Vtbl
20339 {
20340 BEGIN_INTERFACE
20341
20342 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20343 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20344 ID3D12Resource1 * This,
20345 REFIID riid,
20346 _COM_Outptr_ void **ppvObject);
20347
20348 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20349 ULONG ( STDMETHODCALLTYPE *AddRef )(
20350 ID3D12Resource1 * This);
20351
20352 DECLSPEC_XFGVIRT(IUnknown, Release)
20353 ULONG ( STDMETHODCALLTYPE *Release )(
20354 ID3D12Resource1 * This);
20355
20356 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20357 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20358 ID3D12Resource1 * This,
20359 _In_ REFGUID guid,
20360 _Inout_ UINT *pDataSize,
20361 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20362
20363 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20364 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20365 ID3D12Resource1 * This,
20366 _In_ REFGUID guid,
20367 _In_ UINT DataSize,
20368 _In_reads_bytes_opt_( DataSize ) const void *pData);
20369
20370 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20371 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20372 ID3D12Resource1 * This,
20373 _In_ REFGUID guid,
20374 _In_opt_ const IUnknown *pData);
20375
20376 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20377 HRESULT ( STDMETHODCALLTYPE *SetName )(
20378 ID3D12Resource1 * This,
20379 _In_z_ LPCWSTR Name);
20380
20381 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20382 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20383 ID3D12Resource1 * This,
20384 REFIID riid,
20385 _COM_Outptr_opt_ void **ppvDevice);
20386
20387 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
20388 HRESULT ( STDMETHODCALLTYPE *Map )(
20389 ID3D12Resource1 * This,
20390 UINT Subresource,
20391 _In_opt_ const D3D12_RANGE *pReadRange,
20392 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
20393
20394 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
20395 void ( STDMETHODCALLTYPE *Unmap )(
20396 ID3D12Resource1 * This,
20397 UINT Subresource,
20398 _In_opt_ const D3D12_RANGE *pWrittenRange);
20399
20400 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
20401#if !defined(_WIN32)
20402 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
20403 ID3D12Resource1 * This);
20404
20405#else
20406 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
20407 ID3D12Resource1 * This,
20408 D3D12_RESOURCE_DESC * RetVal);
20409
20410#endif
20411
20412 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
20413 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
20414 ID3D12Resource1 * This);
20415
20416 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
20417 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
20418 ID3D12Resource1 * This,
20419 UINT DstSubresource,
20420 _In_opt_ const D3D12_BOX *pDstBox,
20421 _In_ const void *pSrcData,
20422 UINT SrcRowPitch,
20423 UINT SrcDepthPitch);
20424
20425 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
20426 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
20427 ID3D12Resource1 * This,
20428 _Out_ void *pDstData,
20429 UINT DstRowPitch,
20430 UINT DstDepthPitch,
20431 UINT SrcSubresource,
20432 _In_opt_ const D3D12_BOX *pSrcBox);
20433
20434 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
20435 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
20436 ID3D12Resource1 * This,
20437 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
20438 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
20439
20440 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
20441 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20442 ID3D12Resource1 * This,
20443 REFIID riid,
20444 _COM_Outptr_opt_ void **ppProtectedSession);
20445
20446 END_INTERFACE
20447 } ID3D12Resource1Vtbl;
20448
20449 interface ID3D12Resource1
20450 {
20451 CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl;
20452 };
20453
20454
20455
20456#ifdef COBJMACROS
20457
20458
20459#define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \
20460 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20461
20462#define ID3D12Resource1_AddRef(This) \
20463 ( (This)->lpVtbl -> AddRef(This) )
20464
20465#define ID3D12Resource1_Release(This) \
20466 ( (This)->lpVtbl -> Release(This) )
20467
20468
20469#define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \
20470 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20471
20472#define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \
20473 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20474
20475#define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \
20476 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20477
20478#define ID3D12Resource1_SetName(This,Name) \
20479 ( (This)->lpVtbl -> SetName(This,Name) )
20480
20481
20482#define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \
20483 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20484
20485
20486
20487#define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \
20488 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
20489
20490#define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \
20491 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
20492#if !defined(_WIN32)
20493
20494#define ID3D12Resource1_GetDesc(This) \
20495 ( (This)->lpVtbl -> GetDesc(This) )
20496#else
20497#define ID3D12Resource1_GetDesc(This,RetVal) \
20498 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20499#endif
20500
20501#define ID3D12Resource1_GetGPUVirtualAddress(This) \
20502 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
20503
20504#define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
20505 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
20506
20507#define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
20508 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
20509
20510#define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
20511 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
20512
20513
20514#define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20515 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20516
20517#endif /* COBJMACROS */
20518
20519
20520#endif /* C style interface */
20521
20522
20523
20524
20525#endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */
20526
20527
20528#ifndef __ID3D12Resource2_INTERFACE_DEFINED__
20529#define __ID3D12Resource2_INTERFACE_DEFINED__
20530
20531/* interface ID3D12Resource2 */
20532/* [unique][local][object][uuid] */
20533
20534
20535EXTERN_C const IID IID_ID3D12Resource2;
20536
20537#if defined(__cplusplus) && !defined(CINTERFACE)
20538
20539 MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495")
20540 ID3D12Resource2 : public ID3D12Resource1
20541 {
20542 public:
20543#if defined(_MSC_VER) || !defined(_WIN32)
20544 virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0;
20545#else
20546 virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1(
20547 D3D12_RESOURCE_DESC1 * RetVal) = 0;
20548#endif
20549
20550 };
20551
20552
20553#else /* C style interface */
20554
20555 typedef struct ID3D12Resource2Vtbl
20556 {
20557 BEGIN_INTERFACE
20558
20559 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20560 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20561 ID3D12Resource2 * This,
20562 REFIID riid,
20563 _COM_Outptr_ void **ppvObject);
20564
20565 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20566 ULONG ( STDMETHODCALLTYPE *AddRef )(
20567 ID3D12Resource2 * This);
20568
20569 DECLSPEC_XFGVIRT(IUnknown, Release)
20570 ULONG ( STDMETHODCALLTYPE *Release )(
20571 ID3D12Resource2 * This);
20572
20573 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20574 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20575 ID3D12Resource2 * This,
20576 _In_ REFGUID guid,
20577 _Inout_ UINT *pDataSize,
20578 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20579
20580 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20581 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20582 ID3D12Resource2 * This,
20583 _In_ REFGUID guid,
20584 _In_ UINT DataSize,
20585 _In_reads_bytes_opt_( DataSize ) const void *pData);
20586
20587 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20588 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20589 ID3D12Resource2 * This,
20590 _In_ REFGUID guid,
20591 _In_opt_ const IUnknown *pData);
20592
20593 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20594 HRESULT ( STDMETHODCALLTYPE *SetName )(
20595 ID3D12Resource2 * This,
20596 _In_z_ LPCWSTR Name);
20597
20598 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20599 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20600 ID3D12Resource2 * This,
20601 REFIID riid,
20602 _COM_Outptr_opt_ void **ppvDevice);
20603
20604 DECLSPEC_XFGVIRT(ID3D12Resource, Map)
20605 HRESULT ( STDMETHODCALLTYPE *Map )(
20606 ID3D12Resource2 * This,
20607 UINT Subresource,
20608 _In_opt_ const D3D12_RANGE *pReadRange,
20609 _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
20610
20611 DECLSPEC_XFGVIRT(ID3D12Resource, Unmap)
20612 void ( STDMETHODCALLTYPE *Unmap )(
20613 ID3D12Resource2 * This,
20614 UINT Subresource,
20615 _In_opt_ const D3D12_RANGE *pWrittenRange);
20616
20617 DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc)
20618#if !defined(_WIN32)
20619 D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )(
20620 ID3D12Resource2 * This);
20621
20622#else
20623 D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )(
20624 ID3D12Resource2 * This,
20625 D3D12_RESOURCE_DESC * RetVal);
20626
20627#endif
20628
20629 DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress)
20630 D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )(
20631 ID3D12Resource2 * This);
20632
20633 DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource)
20634 HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )(
20635 ID3D12Resource2 * This,
20636 UINT DstSubresource,
20637 _In_opt_ const D3D12_BOX *pDstBox,
20638 _In_ const void *pSrcData,
20639 UINT SrcRowPitch,
20640 UINT SrcDepthPitch);
20641
20642 DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource)
20643 HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )(
20644 ID3D12Resource2 * This,
20645 _Out_ void *pDstData,
20646 UINT DstRowPitch,
20647 UINT DstDepthPitch,
20648 UINT SrcSubresource,
20649 _In_opt_ const D3D12_BOX *pSrcBox);
20650
20651 DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties)
20652 HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )(
20653 ID3D12Resource2 * This,
20654 _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties,
20655 _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags);
20656
20657 DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession)
20658 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20659 ID3D12Resource2 * This,
20660 REFIID riid,
20661 _COM_Outptr_opt_ void **ppProtectedSession);
20662
20663 DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1)
20664#if !defined(_WIN32)
20665 D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )(
20666 ID3D12Resource2 * This);
20667
20668#else
20669 D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )(
20670 ID3D12Resource2 * This,
20671 D3D12_RESOURCE_DESC1 * RetVal);
20672
20673#endif
20674
20675 END_INTERFACE
20676 } ID3D12Resource2Vtbl;
20677
20678 interface ID3D12Resource2
20679 {
20680 CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl;
20681 };
20682
20683
20684
20685#ifdef COBJMACROS
20686
20687
20688#define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \
20689 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20690
20691#define ID3D12Resource2_AddRef(This) \
20692 ( (This)->lpVtbl -> AddRef(This) )
20693
20694#define ID3D12Resource2_Release(This) \
20695 ( (This)->lpVtbl -> Release(This) )
20696
20697
20698#define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \
20699 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20700
20701#define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \
20702 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20703
20704#define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \
20705 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20706
20707#define ID3D12Resource2_SetName(This,Name) \
20708 ( (This)->lpVtbl -> SetName(This,Name) )
20709
20710
20711#define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \
20712 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20713
20714
20715
20716#define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \
20717 ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) )
20718
20719#define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \
20720 ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) )
20721#if !defined(_WIN32)
20722
20723#define ID3D12Resource2_GetDesc(This) \
20724 ( (This)->lpVtbl -> GetDesc(This) )
20725#else
20726#define ID3D12Resource2_GetDesc(This,RetVal) \
20727 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20728#endif
20729
20730#define ID3D12Resource2_GetGPUVirtualAddress(This) \
20731 ( (This)->lpVtbl -> GetGPUVirtualAddress(This) )
20732
20733#define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
20734 ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
20735
20736#define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \
20737 ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) )
20738
20739#define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \
20740 ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) )
20741
20742
20743#define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20744 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20745
20746#if !defined(_WIN32)
20747
20748#define ID3D12Resource2_GetDesc1(This) \
20749 ( (This)->lpVtbl -> GetDesc1(This) )
20750#else
20751#define ID3D12Resource2_GetDesc1(This,RetVal) \
20752 ( (This)->lpVtbl -> GetDesc1(This,RetVal) )
20753#endif
20754
20755#endif /* COBJMACROS */
20756
20757
20758#endif /* C style interface */
20759
20760
20761
20762
20763#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
20764
20765
20766#ifndef __ID3D12Heap1_INTERFACE_DEFINED__
20767#define __ID3D12Heap1_INTERFACE_DEFINED__
20768
20769/* interface ID3D12Heap1 */
20770/* [unique][local][object][uuid] */
20771
20772
20773EXTERN_C const IID IID_ID3D12Heap1;
20774
20775#if defined(__cplusplus) && !defined(CINTERFACE)
20776
20777 MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D")
20778 ID3D12Heap1 : public ID3D12Heap
20779 {
20780 public:
20781 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
20782 REFIID riid,
20783 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
20784
20785 };
20786
20787
20788#else /* C style interface */
20789
20790 typedef struct ID3D12Heap1Vtbl
20791 {
20792 BEGIN_INTERFACE
20793
20794 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20795 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20796 ID3D12Heap1 * This,
20797 REFIID riid,
20798 _COM_Outptr_ void **ppvObject);
20799
20800 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20801 ULONG ( STDMETHODCALLTYPE *AddRef )(
20802 ID3D12Heap1 * This);
20803
20804 DECLSPEC_XFGVIRT(IUnknown, Release)
20805 ULONG ( STDMETHODCALLTYPE *Release )(
20806 ID3D12Heap1 * This);
20807
20808 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20809 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20810 ID3D12Heap1 * This,
20811 _In_ REFGUID guid,
20812 _Inout_ UINT *pDataSize,
20813 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20814
20815 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20816 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20817 ID3D12Heap1 * This,
20818 _In_ REFGUID guid,
20819 _In_ UINT DataSize,
20820 _In_reads_bytes_opt_( DataSize ) const void *pData);
20821
20822 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20823 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20824 ID3D12Heap1 * This,
20825 _In_ REFGUID guid,
20826 _In_opt_ const IUnknown *pData);
20827
20828 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20829 HRESULT ( STDMETHODCALLTYPE *SetName )(
20830 ID3D12Heap1 * This,
20831 _In_z_ LPCWSTR Name);
20832
20833 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20834 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20835 ID3D12Heap1 * This,
20836 REFIID riid,
20837 _COM_Outptr_opt_ void **ppvDevice);
20838
20839 DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc)
20840#if !defined(_WIN32)
20841 D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
20842 ID3D12Heap1 * This);
20843
20844#else
20845 D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
20846 ID3D12Heap1 * This,
20847 D3D12_HEAP_DESC * RetVal);
20848
20849#endif
20850
20851 DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession)
20852 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
20853 ID3D12Heap1 * This,
20854 REFIID riid,
20855 _COM_Outptr_opt_ void **ppProtectedSession);
20856
20857 END_INTERFACE
20858 } ID3D12Heap1Vtbl;
20859
20860 interface ID3D12Heap1
20861 {
20862 CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl;
20863 };
20864
20865
20866
20867#ifdef COBJMACROS
20868
20869
20870#define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \
20871 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
20872
20873#define ID3D12Heap1_AddRef(This) \
20874 ( (This)->lpVtbl -> AddRef(This) )
20875
20876#define ID3D12Heap1_Release(This) \
20877 ( (This)->lpVtbl -> Release(This) )
20878
20879
20880#define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \
20881 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
20882
20883#define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \
20884 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
20885
20886#define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \
20887 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
20888
20889#define ID3D12Heap1_SetName(This,Name) \
20890 ( (This)->lpVtbl -> SetName(This,Name) )
20891
20892
20893#define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \
20894 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
20895
20896
20897#if !defined(_WIN32)
20898
20899#define ID3D12Heap1_GetDesc(This) \
20900 ( (This)->lpVtbl -> GetDesc(This) )
20901#else
20902#define ID3D12Heap1_GetDesc(This,RetVal) \
20903 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
20904#endif
20905
20906
20907#define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
20908 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
20909
20910#endif /* COBJMACROS */
20911
20912
20913#endif /* C style interface */
20914
20915
20916
20917
20918#endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */
20919
20920
20921#ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
20922#define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__
20923
20924/* interface ID3D12GraphicsCommandList3 */
20925/* [unique][local][object][uuid] */
20926
20927
20928EXTERN_C const IID IID_ID3D12GraphicsCommandList3;
20929
20930#if defined(__cplusplus) && !defined(CINTERFACE)
20931
20932 MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D")
20933 ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2
20934 {
20935 public:
20936 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
20937 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
20938
20939 };
20940
20941
20942#else /* C style interface */
20943
20944 typedef struct ID3D12GraphicsCommandList3Vtbl
20945 {
20946 BEGIN_INTERFACE
20947
20948 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
20949 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
20950 ID3D12GraphicsCommandList3 * This,
20951 REFIID riid,
20952 _COM_Outptr_ void **ppvObject);
20953
20954 DECLSPEC_XFGVIRT(IUnknown, AddRef)
20955 ULONG ( STDMETHODCALLTYPE *AddRef )(
20956 ID3D12GraphicsCommandList3 * This);
20957
20958 DECLSPEC_XFGVIRT(IUnknown, Release)
20959 ULONG ( STDMETHODCALLTYPE *Release )(
20960 ID3D12GraphicsCommandList3 * This);
20961
20962 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
20963 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
20964 ID3D12GraphicsCommandList3 * This,
20965 _In_ REFGUID guid,
20966 _Inout_ UINT *pDataSize,
20967 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
20968
20969 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
20970 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
20971 ID3D12GraphicsCommandList3 * This,
20972 _In_ REFGUID guid,
20973 _In_ UINT DataSize,
20974 _In_reads_bytes_opt_( DataSize ) const void *pData);
20975
20976 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
20977 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
20978 ID3D12GraphicsCommandList3 * This,
20979 _In_ REFGUID guid,
20980 _In_opt_ const IUnknown *pData);
20981
20982 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
20983 HRESULT ( STDMETHODCALLTYPE *SetName )(
20984 ID3D12GraphicsCommandList3 * This,
20985 _In_z_ LPCWSTR Name);
20986
20987 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
20988 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
20989 ID3D12GraphicsCommandList3 * This,
20990 REFIID riid,
20991 _COM_Outptr_opt_ void **ppvDevice);
20992
20993 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
20994 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
20995 ID3D12GraphicsCommandList3 * This);
20996
20997 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
20998 HRESULT ( STDMETHODCALLTYPE *Close )(
20999 ID3D12GraphicsCommandList3 * This);
21000
21001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
21002 HRESULT ( STDMETHODCALLTYPE *Reset )(
21003 ID3D12GraphicsCommandList3 * This,
21004 _In_ ID3D12CommandAllocator *pAllocator,
21005 _In_opt_ ID3D12PipelineState *pInitialState);
21006
21007 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
21008 void ( STDMETHODCALLTYPE *ClearState )(
21009 ID3D12GraphicsCommandList3 * This,
21010 _In_opt_ ID3D12PipelineState *pPipelineState);
21011
21012 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
21013 void ( STDMETHODCALLTYPE *DrawInstanced )(
21014 ID3D12GraphicsCommandList3 * This,
21015 _In_ UINT VertexCountPerInstance,
21016 _In_ UINT InstanceCount,
21017 _In_ UINT StartVertexLocation,
21018 _In_ UINT StartInstanceLocation);
21019
21020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
21021 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
21022 ID3D12GraphicsCommandList3 * This,
21023 _In_ UINT IndexCountPerInstance,
21024 _In_ UINT InstanceCount,
21025 _In_ UINT StartIndexLocation,
21026 _In_ INT BaseVertexLocation,
21027 _In_ UINT StartInstanceLocation);
21028
21029 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
21030 void ( STDMETHODCALLTYPE *Dispatch )(
21031 ID3D12GraphicsCommandList3 * This,
21032 _In_ UINT ThreadGroupCountX,
21033 _In_ UINT ThreadGroupCountY,
21034 _In_ UINT ThreadGroupCountZ);
21035
21036 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
21037 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
21038 ID3D12GraphicsCommandList3 * This,
21039 _In_ ID3D12Resource *pDstBuffer,
21040 UINT64 DstOffset,
21041 _In_ ID3D12Resource *pSrcBuffer,
21042 UINT64 SrcOffset,
21043 UINT64 NumBytes);
21044
21045 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
21046 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
21047 ID3D12GraphicsCommandList3 * This,
21048 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
21049 UINT DstX,
21050 UINT DstY,
21051 UINT DstZ,
21052 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
21053 _In_opt_ const D3D12_BOX *pSrcBox);
21054
21055 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
21056 void ( STDMETHODCALLTYPE *CopyResource )(
21057 ID3D12GraphicsCommandList3 * This,
21058 _In_ ID3D12Resource *pDstResource,
21059 _In_ ID3D12Resource *pSrcResource);
21060
21061 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
21062 void ( STDMETHODCALLTYPE *CopyTiles )(
21063 ID3D12GraphicsCommandList3 * This,
21064 _In_ ID3D12Resource *pTiledResource,
21065 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
21066 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
21067 _In_ ID3D12Resource *pBuffer,
21068 UINT64 BufferStartOffsetInBytes,
21069 D3D12_TILE_COPY_FLAGS Flags);
21070
21071 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
21072 void ( STDMETHODCALLTYPE *ResolveSubresource )(
21073 ID3D12GraphicsCommandList3 * This,
21074 _In_ ID3D12Resource *pDstResource,
21075 _In_ UINT DstSubresource,
21076 _In_ ID3D12Resource *pSrcResource,
21077 _In_ UINT SrcSubresource,
21078 _In_ DXGI_FORMAT Format);
21079
21080 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
21081 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
21082 ID3D12GraphicsCommandList3 * This,
21083 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
21084
21085 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
21086 void ( STDMETHODCALLTYPE *RSSetViewports )(
21087 ID3D12GraphicsCommandList3 * This,
21088 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
21089 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
21090
21091 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
21092 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
21093 ID3D12GraphicsCommandList3 * This,
21094 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
21095 _In_reads_( NumRects) const D3D12_RECT *pRects);
21096
21097 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
21098 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
21099 ID3D12GraphicsCommandList3 * This,
21100 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
21101
21102 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
21103 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
21104 ID3D12GraphicsCommandList3 * This,
21105 _In_ UINT StencilRef);
21106
21107 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
21108 void ( STDMETHODCALLTYPE *SetPipelineState )(
21109 ID3D12GraphicsCommandList3 * This,
21110 _In_ ID3D12PipelineState *pPipelineState);
21111
21112 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
21113 void ( STDMETHODCALLTYPE *ResourceBarrier )(
21114 ID3D12GraphicsCommandList3 * This,
21115 _In_ UINT NumBarriers,
21116 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
21117
21118 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
21119 void ( STDMETHODCALLTYPE *ExecuteBundle )(
21120 ID3D12GraphicsCommandList3 * This,
21121 _In_ ID3D12GraphicsCommandList *pCommandList);
21122
21123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
21124 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
21125 ID3D12GraphicsCommandList3 * This,
21126 _In_ UINT NumDescriptorHeaps,
21127 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
21128
21129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
21130 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
21131 ID3D12GraphicsCommandList3 * This,
21132 _In_opt_ ID3D12RootSignature *pRootSignature);
21133
21134 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
21135 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
21136 ID3D12GraphicsCommandList3 * This,
21137 _In_opt_ ID3D12RootSignature *pRootSignature);
21138
21139 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
21140 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
21141 ID3D12GraphicsCommandList3 * This,
21142 _In_ UINT RootParameterIndex,
21143 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21144
21145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
21146 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
21147 ID3D12GraphicsCommandList3 * This,
21148 _In_ UINT RootParameterIndex,
21149 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
21150
21151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
21152 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
21153 ID3D12GraphicsCommandList3 * This,
21154 _In_ UINT RootParameterIndex,
21155 _In_ UINT SrcData,
21156 _In_ UINT DestOffsetIn32BitValues);
21157
21158 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
21159 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
21160 ID3D12GraphicsCommandList3 * This,
21161 _In_ UINT RootParameterIndex,
21162 _In_ UINT SrcData,
21163 _In_ UINT DestOffsetIn32BitValues);
21164
21165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
21166 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
21167 ID3D12GraphicsCommandList3 * This,
21168 _In_ UINT RootParameterIndex,
21169 _In_ UINT Num32BitValuesToSet,
21170 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21171 _In_ UINT DestOffsetIn32BitValues);
21172
21173 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
21174 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
21175 ID3D12GraphicsCommandList3 * This,
21176 _In_ UINT RootParameterIndex,
21177 _In_ UINT Num32BitValuesToSet,
21178 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
21179 _In_ UINT DestOffsetIn32BitValues);
21180
21181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
21182 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
21183 ID3D12GraphicsCommandList3 * This,
21184 _In_ UINT RootParameterIndex,
21185 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21186
21187 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
21188 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
21189 ID3D12GraphicsCommandList3 * This,
21190 _In_ UINT RootParameterIndex,
21191 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21192
21193 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
21194 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
21195 ID3D12GraphicsCommandList3 * This,
21196 _In_ UINT RootParameterIndex,
21197 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21198
21199 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
21200 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
21201 ID3D12GraphicsCommandList3 * This,
21202 _In_ UINT RootParameterIndex,
21203 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21204
21205 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
21206 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
21207 ID3D12GraphicsCommandList3 * This,
21208 _In_ UINT RootParameterIndex,
21209 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21210
21211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
21212 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
21213 ID3D12GraphicsCommandList3 * This,
21214 _In_ UINT RootParameterIndex,
21215 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
21216
21217 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
21218 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
21219 ID3D12GraphicsCommandList3 * This,
21220 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
21221
21222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
21223 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
21224 ID3D12GraphicsCommandList3 * This,
21225 _In_ UINT StartSlot,
21226 _In_ UINT NumViews,
21227 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
21228
21229 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
21230 void ( STDMETHODCALLTYPE *SOSetTargets )(
21231 ID3D12GraphicsCommandList3 * This,
21232 _In_ UINT StartSlot,
21233 _In_ UINT NumViews,
21234 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
21235
21236 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
21237 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
21238 ID3D12GraphicsCommandList3 * This,
21239 _In_ UINT NumRenderTargetDescriptors,
21240 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
21241 _In_ BOOL RTsSingleHandleToDescriptorRange,
21242 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
21243
21244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
21245 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
21246 ID3D12GraphicsCommandList3 * This,
21247 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
21248 _In_ D3D12_CLEAR_FLAGS ClearFlags,
21249 _In_ FLOAT Depth,
21250 _In_ UINT8 Stencil,
21251 _In_ UINT NumRects,
21252 _In_reads_(NumRects) const D3D12_RECT *pRects);
21253
21254 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
21255 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
21256 ID3D12GraphicsCommandList3 * This,
21257 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
21258 _In_ const FLOAT ColorRGBA[ 4 ],
21259 _In_ UINT NumRects,
21260 _In_reads_(NumRects) const D3D12_RECT *pRects);
21261
21262 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
21263 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
21264 ID3D12GraphicsCommandList3 * This,
21265 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21266 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21267 _In_ ID3D12Resource *pResource,
21268 _In_ const UINT Values[ 4 ],
21269 _In_ UINT NumRects,
21270 _In_reads_(NumRects) const D3D12_RECT *pRects);
21271
21272 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
21273 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
21274 ID3D12GraphicsCommandList3 * This,
21275 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
21276 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
21277 _In_ ID3D12Resource *pResource,
21278 _In_ const FLOAT Values[ 4 ],
21279 _In_ UINT NumRects,
21280 _In_reads_(NumRects) const D3D12_RECT *pRects);
21281
21282 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
21283 void ( STDMETHODCALLTYPE *DiscardResource )(
21284 ID3D12GraphicsCommandList3 * This,
21285 _In_ ID3D12Resource *pResource,
21286 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
21287
21288 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
21289 void ( STDMETHODCALLTYPE *BeginQuery )(
21290 ID3D12GraphicsCommandList3 * This,
21291 _In_ ID3D12QueryHeap *pQueryHeap,
21292 _In_ D3D12_QUERY_TYPE Type,
21293 _In_ UINT Index);
21294
21295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
21296 void ( STDMETHODCALLTYPE *EndQuery )(
21297 ID3D12GraphicsCommandList3 * This,
21298 _In_ ID3D12QueryHeap *pQueryHeap,
21299 _In_ D3D12_QUERY_TYPE Type,
21300 _In_ UINT Index);
21301
21302 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
21303 void ( STDMETHODCALLTYPE *ResolveQueryData )(
21304 ID3D12GraphicsCommandList3 * This,
21305 _In_ ID3D12QueryHeap *pQueryHeap,
21306 _In_ D3D12_QUERY_TYPE Type,
21307 _In_ UINT StartIndex,
21308 _In_ UINT NumQueries,
21309 _In_ ID3D12Resource *pDestinationBuffer,
21310 _In_ UINT64 AlignedDestinationBufferOffset);
21311
21312 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
21313 void ( STDMETHODCALLTYPE *SetPredication )(
21314 ID3D12GraphicsCommandList3 * This,
21315 _In_opt_ ID3D12Resource *pBuffer,
21316 _In_ UINT64 AlignedBufferOffset,
21317 _In_ D3D12_PREDICATION_OP Operation);
21318
21319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
21320 void ( STDMETHODCALLTYPE *SetMarker )(
21321 ID3D12GraphicsCommandList3 * This,
21322 UINT Metadata,
21323 _In_reads_bytes_opt_(Size) const void *pData,
21324 UINT Size);
21325
21326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
21327 void ( STDMETHODCALLTYPE *BeginEvent )(
21328 ID3D12GraphicsCommandList3 * This,
21329 UINT Metadata,
21330 _In_reads_bytes_opt_(Size) const void *pData,
21331 UINT Size);
21332
21333 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
21334 void ( STDMETHODCALLTYPE *EndEvent )(
21335 ID3D12GraphicsCommandList3 * This);
21336
21337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
21338 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
21339 ID3D12GraphicsCommandList3 * This,
21340 _In_ ID3D12CommandSignature *pCommandSignature,
21341 _In_ UINT MaxCommandCount,
21342 _In_ ID3D12Resource *pArgumentBuffer,
21343 _In_ UINT64 ArgumentBufferOffset,
21344 _In_opt_ ID3D12Resource *pCountBuffer,
21345 _In_ UINT64 CountBufferOffset);
21346
21347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
21348 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
21349 ID3D12GraphicsCommandList3 * This,
21350 _In_ ID3D12Resource *pDstBuffer,
21351 UINT64 DstOffset,
21352 _In_ ID3D12Resource *pSrcBuffer,
21353 UINT64 SrcOffset,
21354 UINT Dependencies,
21355 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21356 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21357
21358 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
21359 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
21360 ID3D12GraphicsCommandList3 * This,
21361 _In_ ID3D12Resource *pDstBuffer,
21362 UINT64 DstOffset,
21363 _In_ ID3D12Resource *pSrcBuffer,
21364 UINT64 SrcOffset,
21365 UINT Dependencies,
21366 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
21367 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
21368
21369 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
21370 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
21371 ID3D12GraphicsCommandList3 * This,
21372 _In_ FLOAT Min,
21373 _In_ FLOAT Max);
21374
21375 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
21376 void ( STDMETHODCALLTYPE *SetSamplePositions )(
21377 ID3D12GraphicsCommandList3 * This,
21378 _In_ UINT NumSamplesPerPixel,
21379 _In_ UINT NumPixels,
21380 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
21381
21382 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
21383 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
21384 ID3D12GraphicsCommandList3 * This,
21385 _In_ ID3D12Resource *pDstResource,
21386 _In_ UINT DstSubresource,
21387 _In_ UINT DstX,
21388 _In_ UINT DstY,
21389 _In_ ID3D12Resource *pSrcResource,
21390 _In_ UINT SrcSubresource,
21391 _In_opt_ D3D12_RECT *pSrcRect,
21392 _In_ DXGI_FORMAT Format,
21393 _In_ D3D12_RESOLVE_MODE ResolveMode);
21394
21395 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
21396 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
21397 ID3D12GraphicsCommandList3 * This,
21398 _In_ UINT Mask);
21399
21400 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
21401 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
21402 ID3D12GraphicsCommandList3 * This,
21403 UINT Count,
21404 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
21405 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
21406
21407 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
21408 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
21409 ID3D12GraphicsCommandList3 * This,
21410 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
21411
21412 END_INTERFACE
21413 } ID3D12GraphicsCommandList3Vtbl;
21414
21415 interface ID3D12GraphicsCommandList3
21416 {
21417 CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl;
21418 };
21419
21420
21421
21422#ifdef COBJMACROS
21423
21424
21425#define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \
21426 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21427
21428#define ID3D12GraphicsCommandList3_AddRef(This) \
21429 ( (This)->lpVtbl -> AddRef(This) )
21430
21431#define ID3D12GraphicsCommandList3_Release(This) \
21432 ( (This)->lpVtbl -> Release(This) )
21433
21434
21435#define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
21436 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21437
21438#define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \
21439 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21440
21441#define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \
21442 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21443
21444#define ID3D12GraphicsCommandList3_SetName(This,Name) \
21445 ( (This)->lpVtbl -> SetName(This,Name) )
21446
21447
21448#define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \
21449 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21450
21451
21452#define ID3D12GraphicsCommandList3_GetType(This) \
21453 ( (This)->lpVtbl -> GetType(This) )
21454
21455
21456#define ID3D12GraphicsCommandList3_Close(This) \
21457 ( (This)->lpVtbl -> Close(This) )
21458
21459#define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \
21460 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
21461
21462#define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \
21463 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
21464
21465#define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
21466 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
21467
21468#define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
21469 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
21470
21471#define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
21472 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
21473
21474#define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
21475 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
21476
21477#define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
21478 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
21479
21480#define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \
21481 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
21482
21483#define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
21484 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
21485
21486#define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
21487 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
21488
21489#define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \
21490 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
21491
21492#define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \
21493 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
21494
21495#define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \
21496 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
21497
21498#define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \
21499 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
21500
21501#define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \
21502 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
21503
21504#define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \
21505 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
21506
21507#define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
21508 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
21509
21510#define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \
21511 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
21512
21513#define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
21514 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
21515
21516#define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \
21517 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
21518
21519#define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \
21520 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
21521
21522#define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21523 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21524
21525#define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
21526 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
21527
21528#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21529 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21530
21531#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
21532 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
21533
21534#define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21535 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21536
21537#define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
21538 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
21539
21540#define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21541 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21542
21543#define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
21544 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
21545
21546#define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21547 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21548
21549#define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
21550 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
21551
21552#define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21553 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21554
21555#define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
21556 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
21557
21558#define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \
21559 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
21560
21561#define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
21562 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
21563
21564#define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \
21565 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
21566
21567#define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
21568 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
21569
21570#define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
21571 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
21572
21573#define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
21574 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
21575
21576#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21577 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21578
21579#define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
21580 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
21581
21582#define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \
21583 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
21584
21585#define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
21586 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
21587
21588#define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
21589 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
21590
21591#define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
21592 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
21593
21594#define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
21595 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
21596
21597#define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \
21598 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
21599
21600#define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \
21601 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
21602
21603#define ID3D12GraphicsCommandList3_EndEvent(This) \
21604 ( (This)->lpVtbl -> EndEvent(This) )
21605
21606#define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
21607 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
21608
21609
21610#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21611 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21612
21613#define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
21614 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
21615
21616#define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \
21617 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
21618
21619#define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
21620 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
21621
21622#define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
21623 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
21624
21625#define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \
21626 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
21627
21628
21629#define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
21630 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
21631
21632
21633#define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
21634 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
21635
21636#endif /* COBJMACROS */
21637
21638
21639#endif /* C style interface */
21640
21641
21642
21643
21644#endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */
21645
21646
21647/* interface __MIDL_itf_d3d12_0000_0054 */
21648/* [local] */
21649
21650typedef
21651enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
21652 {
21653 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0,
21654 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) ,
21655 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) ,
21656 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) ,
21657 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
21658 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
21659 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
21660 } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
21661
21662typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
21663 {
21664 D3D12_CLEAR_VALUE ClearValue;
21665 } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
21666
21667typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS
21668 {
21669 UINT AdditionalWidth;
21670 UINT AdditionalHeight;
21671 } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
21672
21673typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
21674 {
21675 D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
21676 union
21677 {
21678 D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
21679 D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
21680 } ;
21681 } D3D12_RENDER_PASS_BEGINNING_ACCESS;
21682
21683typedef
21684enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
21685 {
21686 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0,
21687 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) ,
21688 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) ,
21689 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) ,
21690 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) ,
21691 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) ,
21692 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 )
21693 } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
21694
21695typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
21696 {
21697 UINT SrcSubresource;
21698 UINT DstSubresource;
21699 UINT DstX;
21700 UINT DstY;
21701 D3D12_RECT SrcRect;
21702 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
21703
21704typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
21705 {
21706 ID3D12Resource *pSrcResource;
21707 ID3D12Resource *pDstResource;
21708 UINT SubresourceCount;
21709 _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
21710 DXGI_FORMAT Format;
21711 D3D12_RESOLVE_MODE ResolveMode;
21712 BOOL PreserveResolveSource;
21713 } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
21714
21715typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS
21716 {
21717 UINT AdditionalWidth;
21718 UINT AdditionalHeight;
21719 } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS;
21720
21721typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
21722 {
21723 D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
21724 union
21725 {
21726 D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
21727 D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal;
21728 } ;
21729 } D3D12_RENDER_PASS_ENDING_ACCESS;
21730
21731typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
21732 {
21733 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
21734 D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
21735 D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
21736 } D3D12_RENDER_PASS_RENDER_TARGET_DESC;
21737
21738typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
21739 {
21740 D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
21741 D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
21742 D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
21743 D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
21744 D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
21745 } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
21746
21747typedef
21748enum D3D12_RENDER_PASS_FLAGS
21749 {
21750 D3D12_RENDER_PASS_FLAG_NONE = 0,
21751 D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
21752 D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
21753 D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
21754 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8,
21755 D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10
21756 } D3D12_RENDER_PASS_FLAGS;
21757
21758DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )
21759
21760
21761extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec;
21762extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec;
21763
21764#ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__
21765#define __ID3D12MetaCommand_INTERFACE_DEFINED__
21766
21767/* interface ID3D12MetaCommand */
21768/* [unique][local][object][uuid] */
21769
21770
21771EXTERN_C const IID IID_ID3D12MetaCommand;
21772
21773#if defined(__cplusplus) && !defined(CINTERFACE)
21774
21775 MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570")
21776 ID3D12MetaCommand : public ID3D12Pageable
21777 {
21778 public:
21779 virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize(
21780 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
21781 _In_ UINT ParameterIndex) = 0;
21782
21783 };
21784
21785
21786#else /* C style interface */
21787
21788 typedef struct ID3D12MetaCommandVtbl
21789 {
21790 BEGIN_INTERFACE
21791
21792 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
21793 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
21794 ID3D12MetaCommand * This,
21795 REFIID riid,
21796 _COM_Outptr_ void **ppvObject);
21797
21798 DECLSPEC_XFGVIRT(IUnknown, AddRef)
21799 ULONG ( STDMETHODCALLTYPE *AddRef )(
21800 ID3D12MetaCommand * This);
21801
21802 DECLSPEC_XFGVIRT(IUnknown, Release)
21803 ULONG ( STDMETHODCALLTYPE *Release )(
21804 ID3D12MetaCommand * This);
21805
21806 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
21807 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
21808 ID3D12MetaCommand * This,
21809 _In_ REFGUID guid,
21810 _Inout_ UINT *pDataSize,
21811 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
21812
21813 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
21814 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
21815 ID3D12MetaCommand * This,
21816 _In_ REFGUID guid,
21817 _In_ UINT DataSize,
21818 _In_reads_bytes_opt_( DataSize ) const void *pData);
21819
21820 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
21821 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
21822 ID3D12MetaCommand * This,
21823 _In_ REFGUID guid,
21824 _In_opt_ const IUnknown *pData);
21825
21826 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
21827 HRESULT ( STDMETHODCALLTYPE *SetName )(
21828 ID3D12MetaCommand * This,
21829 _In_z_ LPCWSTR Name);
21830
21831 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
21832 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
21833 ID3D12MetaCommand * This,
21834 REFIID riid,
21835 _COM_Outptr_opt_ void **ppvDevice);
21836
21837 DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize)
21838 UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )(
21839 ID3D12MetaCommand * This,
21840 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
21841 _In_ UINT ParameterIndex);
21842
21843 END_INTERFACE
21844 } ID3D12MetaCommandVtbl;
21845
21846 interface ID3D12MetaCommand
21847 {
21848 CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl;
21849 };
21850
21851
21852
21853#ifdef COBJMACROS
21854
21855
21856#define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \
21857 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
21858
21859#define ID3D12MetaCommand_AddRef(This) \
21860 ( (This)->lpVtbl -> AddRef(This) )
21861
21862#define ID3D12MetaCommand_Release(This) \
21863 ( (This)->lpVtbl -> Release(This) )
21864
21865
21866#define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \
21867 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
21868
21869#define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \
21870 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
21871
21872#define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \
21873 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
21874
21875#define ID3D12MetaCommand_SetName(This,Name) \
21876 ( (This)->lpVtbl -> SetName(This,Name) )
21877
21878
21879#define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \
21880 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
21881
21882
21883
21884#define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \
21885 ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) )
21886
21887#endif /* COBJMACROS */
21888
21889
21890#endif /* C style interface */
21891
21892
21893
21894
21895#endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */
21896
21897
21898/* interface __MIDL_itf_d3d12_0000_0055 */
21899/* [local] */
21900
21901typedef struct D3D12_DISPATCH_RAYS_DESC
21902 {
21903 D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
21904 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
21905 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
21906 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
21907 UINT Width;
21908 UINT Height;
21909 UINT Depth;
21910 } D3D12_DISPATCH_RAYS_DESC;
21911
21912typedef
21913enum D3D12_SET_WORK_GRAPH_FLAGS
21914 {
21915 D3D12_SET_WORK_GRAPH_FLAG_NONE = 0,
21916 D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1
21917 } D3D12_SET_WORK_GRAPH_FLAGS;
21918
21919DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )
21920typedef struct D3D12_SET_WORK_GRAPH_DESC
21921 {
21922 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21923 D3D12_SET_WORK_GRAPH_FLAGS Flags;
21924 D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory;
21925 D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable;
21926 } D3D12_SET_WORK_GRAPH_DESC;
21927
21928typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC
21929 {
21930 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21931 } D3D12_SET_RAYTRACING_PIPELINE_DESC;
21932
21933typedef struct D3D12_SET_GENERIC_PIPELINE_DESC
21934 {
21935 D3D12_PROGRAM_IDENTIFIER ProgramIdentifier;
21936 } D3D12_SET_GENERIC_PIPELINE_DESC;
21937
21938typedef
21939enum D3D12_PROGRAM_TYPE
21940 {
21941 D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1,
21942 D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4,
21943 D3D12_PROGRAM_TYPE_WORK_GRAPH = 5
21944 } D3D12_PROGRAM_TYPE;
21945
21946typedef struct D3D12_SET_PROGRAM_DESC
21947 {
21948 D3D12_PROGRAM_TYPE Type;
21949 union
21950 {
21951 D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline;
21952 D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline;
21953 D3D12_SET_WORK_GRAPH_DESC WorkGraph;
21954 } ;
21955 } D3D12_SET_PROGRAM_DESC;
21956
21957typedef
21958enum D3D12_DISPATCH_MODE
21959 {
21960 D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0,
21961 D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1,
21962 D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2,
21963 D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3
21964 } D3D12_DISPATCH_MODE;
21965
21966typedef struct D3D12_NODE_CPU_INPUT
21967 {
21968 UINT EntrypointIndex;
21969 UINT NumRecords;
21970 const void *pRecords;
21971 UINT64 RecordStrideInBytes;
21972 } D3D12_NODE_CPU_INPUT;
21973
21974typedef struct D3D12_NODE_GPU_INPUT
21975 {
21976 UINT EntrypointIndex;
21977 UINT NumRecords;
21978 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records;
21979 } D3D12_NODE_GPU_INPUT;
21980
21981typedef struct D3D12_MULTI_NODE_CPU_INPUT
21982 {
21983 UINT NumNodeInputs;
21984 const D3D12_NODE_CPU_INPUT *pNodeInputs;
21985 UINT64 NodeInputStrideInBytes;
21986 } D3D12_MULTI_NODE_CPU_INPUT;
21987
21988typedef struct D3D12_MULTI_NODE_GPU_INPUT
21989 {
21990 UINT NumNodeInputs;
21991 D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs;
21992 } D3D12_MULTI_NODE_GPU_INPUT;
21993
21994typedef struct D3D12_DISPATCH_GRAPH_DESC
21995 {
21996 D3D12_DISPATCH_MODE Mode;
21997 union
21998 {
21999 D3D12_NODE_CPU_INPUT NodeCPUInput;
22000 D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput;
22001 D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput;
22002 D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput;
22003 } ;
22004 } D3D12_DISPATCH_GRAPH_DESC;
22005
22006
22007
22008extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec;
22009extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec;
22010
22011#ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
22012#define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__
22013
22014/* interface ID3D12GraphicsCommandList4 */
22015/* [unique][local][object][uuid] */
22016
22017
22018EXTERN_C const IID IID_ID3D12GraphicsCommandList4;
22019
22020#if defined(__cplusplus) && !defined(CINTERFACE)
22021
22022 MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874")
22023 ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3
22024 {
22025 public:
22026 virtual void STDMETHODCALLTYPE BeginRenderPass(
22027 _In_ UINT NumRenderTargets,
22028 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
22029 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
22030 D3D12_RENDER_PASS_FLAGS Flags) = 0;
22031
22032 virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0;
22033
22034 virtual void STDMETHODCALLTYPE InitializeMetaCommand(
22035 _In_ ID3D12MetaCommand *pMetaCommand,
22036 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
22037 _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0;
22038
22039 virtual void STDMETHODCALLTYPE ExecuteMetaCommand(
22040 _In_ ID3D12MetaCommand *pMetaCommand,
22041 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
22042 _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0;
22043
22044 virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure(
22045 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
22046 _In_ UINT NumPostbuildInfoDescs,
22047 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0;
22048
22049 virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo(
22050 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
22051 _In_ UINT NumSourceAccelerationStructures,
22052 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0;
22053
22054 virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure(
22055 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
22056 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
22057 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0;
22058
22059 virtual void STDMETHODCALLTYPE SetPipelineState1(
22060 _In_ ID3D12StateObject *pStateObject) = 0;
22061
22062 virtual void STDMETHODCALLTYPE DispatchRays(
22063 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0;
22064
22065 };
22066
22067
22068#else /* C style interface */
22069
22070 typedef struct ID3D12GraphicsCommandList4Vtbl
22071 {
22072 BEGIN_INTERFACE
22073
22074 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
22075 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
22076 ID3D12GraphicsCommandList4 * This,
22077 REFIID riid,
22078 _COM_Outptr_ void **ppvObject);
22079
22080 DECLSPEC_XFGVIRT(IUnknown, AddRef)
22081 ULONG ( STDMETHODCALLTYPE *AddRef )(
22082 ID3D12GraphicsCommandList4 * This);
22083
22084 DECLSPEC_XFGVIRT(IUnknown, Release)
22085 ULONG ( STDMETHODCALLTYPE *Release )(
22086 ID3D12GraphicsCommandList4 * This);
22087
22088 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
22089 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
22090 ID3D12GraphicsCommandList4 * This,
22091 _In_ REFGUID guid,
22092 _Inout_ UINT *pDataSize,
22093 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
22094
22095 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
22096 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
22097 ID3D12GraphicsCommandList4 * This,
22098 _In_ REFGUID guid,
22099 _In_ UINT DataSize,
22100 _In_reads_bytes_opt_( DataSize ) const void *pData);
22101
22102 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
22103 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
22104 ID3D12GraphicsCommandList4 * This,
22105 _In_ REFGUID guid,
22106 _In_opt_ const IUnknown *pData);
22107
22108 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
22109 HRESULT ( STDMETHODCALLTYPE *SetName )(
22110 ID3D12GraphicsCommandList4 * This,
22111 _In_z_ LPCWSTR Name);
22112
22113 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
22114 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
22115 ID3D12GraphicsCommandList4 * This,
22116 REFIID riid,
22117 _COM_Outptr_opt_ void **ppvDevice);
22118
22119 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
22120 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
22121 ID3D12GraphicsCommandList4 * This);
22122
22123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
22124 HRESULT ( STDMETHODCALLTYPE *Close )(
22125 ID3D12GraphicsCommandList4 * This);
22126
22127 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
22128 HRESULT ( STDMETHODCALLTYPE *Reset )(
22129 ID3D12GraphicsCommandList4 * This,
22130 _In_ ID3D12CommandAllocator *pAllocator,
22131 _In_opt_ ID3D12PipelineState *pInitialState);
22132
22133 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
22134 void ( STDMETHODCALLTYPE *ClearState )(
22135 ID3D12GraphicsCommandList4 * This,
22136 _In_opt_ ID3D12PipelineState *pPipelineState);
22137
22138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
22139 void ( STDMETHODCALLTYPE *DrawInstanced )(
22140 ID3D12GraphicsCommandList4 * This,
22141 _In_ UINT VertexCountPerInstance,
22142 _In_ UINT InstanceCount,
22143 _In_ UINT StartVertexLocation,
22144 _In_ UINT StartInstanceLocation);
22145
22146 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
22147 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
22148 ID3D12GraphicsCommandList4 * This,
22149 _In_ UINT IndexCountPerInstance,
22150 _In_ UINT InstanceCount,
22151 _In_ UINT StartIndexLocation,
22152 _In_ INT BaseVertexLocation,
22153 _In_ UINT StartInstanceLocation);
22154
22155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
22156 void ( STDMETHODCALLTYPE *Dispatch )(
22157 ID3D12GraphicsCommandList4 * This,
22158 _In_ UINT ThreadGroupCountX,
22159 _In_ UINT ThreadGroupCountY,
22160 _In_ UINT ThreadGroupCountZ);
22161
22162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
22163 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
22164 ID3D12GraphicsCommandList4 * This,
22165 _In_ ID3D12Resource *pDstBuffer,
22166 UINT64 DstOffset,
22167 _In_ ID3D12Resource *pSrcBuffer,
22168 UINT64 SrcOffset,
22169 UINT64 NumBytes);
22170
22171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
22172 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
22173 ID3D12GraphicsCommandList4 * This,
22174 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
22175 UINT DstX,
22176 UINT DstY,
22177 UINT DstZ,
22178 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
22179 _In_opt_ const D3D12_BOX *pSrcBox);
22180
22181 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
22182 void ( STDMETHODCALLTYPE *CopyResource )(
22183 ID3D12GraphicsCommandList4 * This,
22184 _In_ ID3D12Resource *pDstResource,
22185 _In_ ID3D12Resource *pSrcResource);
22186
22187 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
22188 void ( STDMETHODCALLTYPE *CopyTiles )(
22189 ID3D12GraphicsCommandList4 * This,
22190 _In_ ID3D12Resource *pTiledResource,
22191 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
22192 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
22193 _In_ ID3D12Resource *pBuffer,
22194 UINT64 BufferStartOffsetInBytes,
22195 D3D12_TILE_COPY_FLAGS Flags);
22196
22197 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
22198 void ( STDMETHODCALLTYPE *ResolveSubresource )(
22199 ID3D12GraphicsCommandList4 * This,
22200 _In_ ID3D12Resource *pDstResource,
22201 _In_ UINT DstSubresource,
22202 _In_ ID3D12Resource *pSrcResource,
22203 _In_ UINT SrcSubresource,
22204 _In_ DXGI_FORMAT Format);
22205
22206 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
22207 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
22208 ID3D12GraphicsCommandList4 * This,
22209 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
22210
22211 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
22212 void ( STDMETHODCALLTYPE *RSSetViewports )(
22213 ID3D12GraphicsCommandList4 * This,
22214 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
22215 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
22216
22217 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
22218 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
22219 ID3D12GraphicsCommandList4 * This,
22220 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
22221 _In_reads_( NumRects) const D3D12_RECT *pRects);
22222
22223 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
22224 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
22225 ID3D12GraphicsCommandList4 * This,
22226 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
22227
22228 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
22229 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
22230 ID3D12GraphicsCommandList4 * This,
22231 _In_ UINT StencilRef);
22232
22233 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
22234 void ( STDMETHODCALLTYPE *SetPipelineState )(
22235 ID3D12GraphicsCommandList4 * This,
22236 _In_ ID3D12PipelineState *pPipelineState);
22237
22238 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
22239 void ( STDMETHODCALLTYPE *ResourceBarrier )(
22240 ID3D12GraphicsCommandList4 * This,
22241 _In_ UINT NumBarriers,
22242 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
22243
22244 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
22245 void ( STDMETHODCALLTYPE *ExecuteBundle )(
22246 ID3D12GraphicsCommandList4 * This,
22247 _In_ ID3D12GraphicsCommandList *pCommandList);
22248
22249 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
22250 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
22251 ID3D12GraphicsCommandList4 * This,
22252 _In_ UINT NumDescriptorHeaps,
22253 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
22254
22255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
22256 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
22257 ID3D12GraphicsCommandList4 * This,
22258 _In_opt_ ID3D12RootSignature *pRootSignature);
22259
22260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
22261 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
22262 ID3D12GraphicsCommandList4 * This,
22263 _In_opt_ ID3D12RootSignature *pRootSignature);
22264
22265 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
22266 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
22267 ID3D12GraphicsCommandList4 * This,
22268 _In_ UINT RootParameterIndex,
22269 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22270
22271 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
22272 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
22273 ID3D12GraphicsCommandList4 * This,
22274 _In_ UINT RootParameterIndex,
22275 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
22276
22277 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
22278 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
22279 ID3D12GraphicsCommandList4 * This,
22280 _In_ UINT RootParameterIndex,
22281 _In_ UINT SrcData,
22282 _In_ UINT DestOffsetIn32BitValues);
22283
22284 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
22285 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
22286 ID3D12GraphicsCommandList4 * This,
22287 _In_ UINT RootParameterIndex,
22288 _In_ UINT SrcData,
22289 _In_ UINT DestOffsetIn32BitValues);
22290
22291 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
22292 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
22293 ID3D12GraphicsCommandList4 * This,
22294 _In_ UINT RootParameterIndex,
22295 _In_ UINT Num32BitValuesToSet,
22296 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22297 _In_ UINT DestOffsetIn32BitValues);
22298
22299 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
22300 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
22301 ID3D12GraphicsCommandList4 * This,
22302 _In_ UINT RootParameterIndex,
22303 _In_ UINT Num32BitValuesToSet,
22304 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
22305 _In_ UINT DestOffsetIn32BitValues);
22306
22307 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
22308 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
22309 ID3D12GraphicsCommandList4 * This,
22310 _In_ UINT RootParameterIndex,
22311 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22312
22313 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
22314 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
22315 ID3D12GraphicsCommandList4 * This,
22316 _In_ UINT RootParameterIndex,
22317 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22318
22319 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
22320 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
22321 ID3D12GraphicsCommandList4 * This,
22322 _In_ UINT RootParameterIndex,
22323 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22324
22325 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
22326 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
22327 ID3D12GraphicsCommandList4 * This,
22328 _In_ UINT RootParameterIndex,
22329 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22330
22331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
22332 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
22333 ID3D12GraphicsCommandList4 * This,
22334 _In_ UINT RootParameterIndex,
22335 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22336
22337 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
22338 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
22339 ID3D12GraphicsCommandList4 * This,
22340 _In_ UINT RootParameterIndex,
22341 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
22342
22343 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
22344 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
22345 ID3D12GraphicsCommandList4 * This,
22346 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
22347
22348 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
22349 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
22350 ID3D12GraphicsCommandList4 * This,
22351 _In_ UINT StartSlot,
22352 _In_ UINT NumViews,
22353 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
22354
22355 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
22356 void ( STDMETHODCALLTYPE *SOSetTargets )(
22357 ID3D12GraphicsCommandList4 * This,
22358 _In_ UINT StartSlot,
22359 _In_ UINT NumViews,
22360 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
22361
22362 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
22363 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
22364 ID3D12GraphicsCommandList4 * This,
22365 _In_ UINT NumRenderTargetDescriptors,
22366 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
22367 _In_ BOOL RTsSingleHandleToDescriptorRange,
22368 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
22369
22370 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
22371 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
22372 ID3D12GraphicsCommandList4 * This,
22373 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
22374 _In_ D3D12_CLEAR_FLAGS ClearFlags,
22375 _In_ FLOAT Depth,
22376 _In_ UINT8 Stencil,
22377 _In_ UINT NumRects,
22378 _In_reads_(NumRects) const D3D12_RECT *pRects);
22379
22380 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
22381 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
22382 ID3D12GraphicsCommandList4 * This,
22383 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
22384 _In_ const FLOAT ColorRGBA[ 4 ],
22385 _In_ UINT NumRects,
22386 _In_reads_(NumRects) const D3D12_RECT *pRects);
22387
22388 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
22389 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
22390 ID3D12GraphicsCommandList4 * This,
22391 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22392 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22393 _In_ ID3D12Resource *pResource,
22394 _In_ const UINT Values[ 4 ],
22395 _In_ UINT NumRects,
22396 _In_reads_(NumRects) const D3D12_RECT *pRects);
22397
22398 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
22399 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
22400 ID3D12GraphicsCommandList4 * This,
22401 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
22402 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
22403 _In_ ID3D12Resource *pResource,
22404 _In_ const FLOAT Values[ 4 ],
22405 _In_ UINT NumRects,
22406 _In_reads_(NumRects) const D3D12_RECT *pRects);
22407
22408 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
22409 void ( STDMETHODCALLTYPE *DiscardResource )(
22410 ID3D12GraphicsCommandList4 * This,
22411 _In_ ID3D12Resource *pResource,
22412 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
22413
22414 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
22415 void ( STDMETHODCALLTYPE *BeginQuery )(
22416 ID3D12GraphicsCommandList4 * This,
22417 _In_ ID3D12QueryHeap *pQueryHeap,
22418 _In_ D3D12_QUERY_TYPE Type,
22419 _In_ UINT Index);
22420
22421 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
22422 void ( STDMETHODCALLTYPE *EndQuery )(
22423 ID3D12GraphicsCommandList4 * This,
22424 _In_ ID3D12QueryHeap *pQueryHeap,
22425 _In_ D3D12_QUERY_TYPE Type,
22426 _In_ UINT Index);
22427
22428 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
22429 void ( STDMETHODCALLTYPE *ResolveQueryData )(
22430 ID3D12GraphicsCommandList4 * This,
22431 _In_ ID3D12QueryHeap *pQueryHeap,
22432 _In_ D3D12_QUERY_TYPE Type,
22433 _In_ UINT StartIndex,
22434 _In_ UINT NumQueries,
22435 _In_ ID3D12Resource *pDestinationBuffer,
22436 _In_ UINT64 AlignedDestinationBufferOffset);
22437
22438 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
22439 void ( STDMETHODCALLTYPE *SetPredication )(
22440 ID3D12GraphicsCommandList4 * This,
22441 _In_opt_ ID3D12Resource *pBuffer,
22442 _In_ UINT64 AlignedBufferOffset,
22443 _In_ D3D12_PREDICATION_OP Operation);
22444
22445 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
22446 void ( STDMETHODCALLTYPE *SetMarker )(
22447 ID3D12GraphicsCommandList4 * This,
22448 UINT Metadata,
22449 _In_reads_bytes_opt_(Size) const void *pData,
22450 UINT Size);
22451
22452 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
22453 void ( STDMETHODCALLTYPE *BeginEvent )(
22454 ID3D12GraphicsCommandList4 * This,
22455 UINT Metadata,
22456 _In_reads_bytes_opt_(Size) const void *pData,
22457 UINT Size);
22458
22459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
22460 void ( STDMETHODCALLTYPE *EndEvent )(
22461 ID3D12GraphicsCommandList4 * This);
22462
22463 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
22464 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
22465 ID3D12GraphicsCommandList4 * This,
22466 _In_ ID3D12CommandSignature *pCommandSignature,
22467 _In_ UINT MaxCommandCount,
22468 _In_ ID3D12Resource *pArgumentBuffer,
22469 _In_ UINT64 ArgumentBufferOffset,
22470 _In_opt_ ID3D12Resource *pCountBuffer,
22471 _In_ UINT64 CountBufferOffset);
22472
22473 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
22474 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
22475 ID3D12GraphicsCommandList4 * This,
22476 _In_ ID3D12Resource *pDstBuffer,
22477 UINT64 DstOffset,
22478 _In_ ID3D12Resource *pSrcBuffer,
22479 UINT64 SrcOffset,
22480 UINT Dependencies,
22481 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22482 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22483
22484 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
22485 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
22486 ID3D12GraphicsCommandList4 * This,
22487 _In_ ID3D12Resource *pDstBuffer,
22488 UINT64 DstOffset,
22489 _In_ ID3D12Resource *pSrcBuffer,
22490 UINT64 SrcOffset,
22491 UINT Dependencies,
22492 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
22493 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
22494
22495 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
22496 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
22497 ID3D12GraphicsCommandList4 * This,
22498 _In_ FLOAT Min,
22499 _In_ FLOAT Max);
22500
22501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
22502 void ( STDMETHODCALLTYPE *SetSamplePositions )(
22503 ID3D12GraphicsCommandList4 * This,
22504 _In_ UINT NumSamplesPerPixel,
22505 _In_ UINT NumPixels,
22506 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
22507
22508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
22509 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
22510 ID3D12GraphicsCommandList4 * This,
22511 _In_ ID3D12Resource *pDstResource,
22512 _In_ UINT DstSubresource,
22513 _In_ UINT DstX,
22514 _In_ UINT DstY,
22515 _In_ ID3D12Resource *pSrcResource,
22516 _In_ UINT SrcSubresource,
22517 _In_opt_ D3D12_RECT *pSrcRect,
22518 _In_ DXGI_FORMAT Format,
22519 _In_ D3D12_RESOLVE_MODE ResolveMode);
22520
22521 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
22522 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
22523 ID3D12GraphicsCommandList4 * This,
22524 _In_ UINT Mask);
22525
22526 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
22527 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
22528 ID3D12GraphicsCommandList4 * This,
22529 UINT Count,
22530 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
22531 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
22532
22533 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
22534 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
22535 ID3D12GraphicsCommandList4 * This,
22536 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
22537
22538 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
22539 void ( STDMETHODCALLTYPE *BeginRenderPass )(
22540 ID3D12GraphicsCommandList4 * This,
22541 _In_ UINT NumRenderTargets,
22542 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
22543 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
22544 D3D12_RENDER_PASS_FLAGS Flags);
22545
22546 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
22547 void ( STDMETHODCALLTYPE *EndRenderPass )(
22548 ID3D12GraphicsCommandList4 * This);
22549
22550 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
22551 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
22552 ID3D12GraphicsCommandList4 * This,
22553 _In_ ID3D12MetaCommand *pMetaCommand,
22554 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
22555 _In_ SIZE_T InitializationParametersDataSizeInBytes);
22556
22557 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
22558 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
22559 ID3D12GraphicsCommandList4 * This,
22560 _In_ ID3D12MetaCommand *pMetaCommand,
22561 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
22562 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
22563
22564 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
22565 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
22566 ID3D12GraphicsCommandList4 * This,
22567 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
22568 _In_ UINT NumPostbuildInfoDescs,
22569 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
22570
22571 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
22572 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
22573 ID3D12GraphicsCommandList4 * This,
22574 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
22575 _In_ UINT NumSourceAccelerationStructures,
22576 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
22577
22578 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
22579 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
22580 ID3D12GraphicsCommandList4 * This,
22581 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
22582 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
22583 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
22584
22585 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
22586 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
22587 ID3D12GraphicsCommandList4 * This,
22588 _In_ ID3D12StateObject *pStateObject);
22589
22590 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
22591 void ( STDMETHODCALLTYPE *DispatchRays )(
22592 ID3D12GraphicsCommandList4 * This,
22593 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
22594
22595 END_INTERFACE
22596 } ID3D12GraphicsCommandList4Vtbl;
22597
22598 interface ID3D12GraphicsCommandList4
22599 {
22600 CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl;
22601 };
22602
22603
22604
22605#ifdef COBJMACROS
22606
22607
22608#define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \
22609 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
22610
22611#define ID3D12GraphicsCommandList4_AddRef(This) \
22612 ( (This)->lpVtbl -> AddRef(This) )
22613
22614#define ID3D12GraphicsCommandList4_Release(This) \
22615 ( (This)->lpVtbl -> Release(This) )
22616
22617
22618#define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \
22619 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
22620
22621#define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \
22622 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
22623
22624#define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \
22625 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
22626
22627#define ID3D12GraphicsCommandList4_SetName(This,Name) \
22628 ( (This)->lpVtbl -> SetName(This,Name) )
22629
22630
22631#define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \
22632 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
22633
22634
22635#define ID3D12GraphicsCommandList4_GetType(This) \
22636 ( (This)->lpVtbl -> GetType(This) )
22637
22638
22639#define ID3D12GraphicsCommandList4_Close(This) \
22640 ( (This)->lpVtbl -> Close(This) )
22641
22642#define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \
22643 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
22644
22645#define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \
22646 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
22647
22648#define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
22649 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
22650
22651#define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
22652 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
22653
22654#define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
22655 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
22656
22657#define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
22658 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
22659
22660#define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
22661 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
22662
22663#define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \
22664 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
22665
22666#define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
22667 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
22668
22669#define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
22670 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
22671
22672#define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \
22673 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
22674
22675#define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \
22676 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
22677
22678#define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \
22679 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
22680
22681#define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \
22682 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
22683
22684#define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \
22685 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
22686
22687#define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \
22688 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
22689
22690#define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \
22691 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
22692
22693#define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \
22694 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
22695
22696#define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
22697 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
22698
22699#define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \
22700 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
22701
22702#define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \
22703 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
22704
22705#define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22706 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22707
22708#define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
22709 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
22710
22711#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22712 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22713
22714#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
22715 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
22716
22717#define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22718 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22719
22720#define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
22721 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
22722
22723#define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22724 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22725
22726#define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
22727 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
22728
22729#define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22730 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22731
22732#define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
22733 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
22734
22735#define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22736 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22737
22738#define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
22739 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
22740
22741#define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \
22742 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
22743
22744#define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
22745 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
22746
22747#define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \
22748 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
22749
22750#define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
22751 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
22752
22753#define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
22754 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
22755
22756#define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
22757 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
22758
22759#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22760 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22761
22762#define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
22763 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
22764
22765#define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \
22766 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
22767
22768#define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \
22769 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
22770
22771#define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \
22772 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
22773
22774#define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
22775 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
22776
22777#define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
22778 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
22779
22780#define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \
22781 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
22782
22783#define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \
22784 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
22785
22786#define ID3D12GraphicsCommandList4_EndEvent(This) \
22787 ( (This)->lpVtbl -> EndEvent(This) )
22788
22789#define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
22790 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
22791
22792
22793#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22794 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22795
22796#define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
22797 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
22798
22799#define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \
22800 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
22801
22802#define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
22803 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
22804
22805#define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
22806 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
22807
22808#define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \
22809 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
22810
22811
22812#define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \
22813 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
22814
22815
22816#define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \
22817 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
22818
22819
22820#define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
22821 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
22822
22823#define ID3D12GraphicsCommandList4_EndRenderPass(This) \
22824 ( (This)->lpVtbl -> EndRenderPass(This) )
22825
22826#define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
22827 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
22828
22829#define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
22830 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
22831
22832#define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
22833 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
22834
22835#define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
22836 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
22837
22838#define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
22839 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
22840
22841#define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \
22842 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
22843
22844#define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \
22845 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
22846
22847#endif /* COBJMACROS */
22848
22849
22850#endif /* C style interface */
22851
22852
22853
22854
22855#endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */
22856
22857
22858/* interface __MIDL_itf_d3d12_0000_0056 */
22859/* [local] */
22860
22861typedef
22862enum D3D12_SHADER_CACHE_MODE
22863 {
22864 D3D12_SHADER_CACHE_MODE_MEMORY = 0,
22865 D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 )
22866 } D3D12_SHADER_CACHE_MODE;
22867
22868typedef
22869enum D3D12_SHADER_CACHE_FLAGS
22870 {
22871 D3D12_SHADER_CACHE_FLAG_NONE = 0,
22872 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
22873 D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2
22874 } D3D12_SHADER_CACHE_FLAGS;
22875
22876DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )
22877typedef struct D3D12_SHADER_CACHE_SESSION_DESC
22878 {
22879 GUID Identifier;
22880 D3D12_SHADER_CACHE_MODE Mode;
22881 D3D12_SHADER_CACHE_FLAGS Flags;
22882 UINT MaximumInMemoryCacheSizeBytes;
22883 UINT MaximumInMemoryCacheEntries;
22884 UINT MaximumValueFileSizeBytes;
22885 UINT64 Version;
22886 } D3D12_SHADER_CACHE_SESSION_DESC;
22887
22888typedef
22889enum D3D12_BARRIER_LAYOUT
22890 {
22891 D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
22892 D3D12_BARRIER_LAYOUT_COMMON = 0,
22893 D3D12_BARRIER_LAYOUT_PRESENT = 0,
22894 D3D12_BARRIER_LAYOUT_GENERIC_READ = 1,
22895 D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2,
22896 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3,
22897 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4,
22898 D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5,
22899 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6,
22900 D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7,
22901 D3D12_BARRIER_LAYOUT_COPY_DEST = 8,
22902 D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9,
22903 D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10,
22904 D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11,
22905 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12,
22906 D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13,
22907 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14,
22908 D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15,
22909 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16,
22910 D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17,
22911 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18,
22912 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19,
22913 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20,
22914 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21,
22915 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22,
22916 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23,
22917 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24,
22918 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25,
22919 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26,
22920 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27,
22921 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28,
22922 D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29,
22923 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31
22924 } D3D12_BARRIER_LAYOUT;
22925
22926typedef
22927enum D3D12_BARRIER_SYNC
22928 {
22929 D3D12_BARRIER_SYNC_NONE = 0,
22930 D3D12_BARRIER_SYNC_ALL = 0x1,
22931 D3D12_BARRIER_SYNC_DRAW = 0x2,
22932 D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
22933 D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
22934 D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
22935 D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
22936 D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
22937 D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
22938 D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
22939 D3D12_BARRIER_SYNC_COPY = 0x200,
22940 D3D12_BARRIER_SYNC_RESOLVE = 0x400,
22941 D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
22942 D3D12_BARRIER_SYNC_PREDICATION = 0x800,
22943 D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
22944 D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
22945 D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
22946 D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
22947 D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
22948 D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
22949 D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
22950 D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
22951 D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
22952 D3D12_BARRIER_SYNC_SPLIT = 0x80000000
22953 } D3D12_BARRIER_SYNC;
22954
22955DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )
22956typedef
22957enum D3D12_BARRIER_ACCESS
22958 {
22959 D3D12_BARRIER_ACCESS_COMMON = 0,
22960 D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
22961 D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
22962 D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
22963 D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8,
22964 D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
22965 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
22966 D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
22967 D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
22968 D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
22969 D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
22970 D3D12_BARRIER_ACCESS_PREDICATION = 0x200,
22971 D3D12_BARRIER_ACCESS_COPY_DEST = 0x400,
22972 D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800,
22973 D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
22974 D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
22975 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
22976 D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
22977 D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
22978 D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
22979 D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
22980 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
22981 D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
22982 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
22983 D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
22984 D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000
22985 } D3D12_BARRIER_ACCESS;
22986
22987DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )
22988typedef
22989enum D3D12_BARRIER_TYPE
22990 {
22991 D3D12_BARRIER_TYPE_GLOBAL = 0,
22992 D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) ,
22993 D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 )
22994 } D3D12_BARRIER_TYPE;
22995
22996typedef
22997enum D3D12_TEXTURE_BARRIER_FLAGS
22998 {
22999 D3D12_TEXTURE_BARRIER_FLAG_NONE = 0,
23000 D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1
23001 } D3D12_TEXTURE_BARRIER_FLAGS;
23002
23003DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )
23004typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE
23005 {
23006 UINT IndexOrFirstMipLevel;
23007 UINT NumMipLevels;
23008 UINT FirstArraySlice;
23009 UINT NumArraySlices;
23010 UINT FirstPlane;
23011 UINT NumPlanes;
23012 } D3D12_BARRIER_SUBRESOURCE_RANGE;
23013
23014typedef struct D3D12_GLOBAL_BARRIER
23015 {
23016 D3D12_BARRIER_SYNC SyncBefore;
23017 D3D12_BARRIER_SYNC SyncAfter;
23018 D3D12_BARRIER_ACCESS AccessBefore;
23019 D3D12_BARRIER_ACCESS AccessAfter;
23020 } D3D12_GLOBAL_BARRIER;
23021
23022typedef struct D3D12_TEXTURE_BARRIER
23023 {
23024 D3D12_BARRIER_SYNC SyncBefore;
23025 D3D12_BARRIER_SYNC SyncAfter;
23026 D3D12_BARRIER_ACCESS AccessBefore;
23027 D3D12_BARRIER_ACCESS AccessAfter;
23028 D3D12_BARRIER_LAYOUT LayoutBefore;
23029 D3D12_BARRIER_LAYOUT LayoutAfter;
23030 _In_ ID3D12Resource *pResource;
23031 D3D12_BARRIER_SUBRESOURCE_RANGE Subresources;
23032 D3D12_TEXTURE_BARRIER_FLAGS Flags;
23033 } D3D12_TEXTURE_BARRIER;
23034
23035typedef struct D3D12_BUFFER_BARRIER
23036 {
23037 D3D12_BARRIER_SYNC SyncBefore;
23038 D3D12_BARRIER_SYNC SyncAfter;
23039 D3D12_BARRIER_ACCESS AccessBefore;
23040 D3D12_BARRIER_ACCESS AccessAfter;
23041 _In_ ID3D12Resource *pResource;
23042 UINT64 Offset;
23043 UINT64 Size;
23044 } D3D12_BUFFER_BARRIER;
23045
23046typedef struct D3D12_BARRIER_GROUP
23047 {
23048 D3D12_BARRIER_TYPE Type;
23049 UINT32 NumBarriers;
23050 union
23051 {
23052 _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers;
23053 _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers;
23054 _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers;
23055 } ;
23056 } D3D12_BARRIER_GROUP;
23057
23058
23059
23060extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec;
23061extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec;
23062
23063#ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
23064#define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__
23065
23066/* interface ID3D12ShaderCacheSession */
23067/* [unique][local][object][uuid] */
23068
23069
23070EXTERN_C const IID IID_ID3D12ShaderCacheSession;
23071
23072#if defined(__cplusplus) && !defined(CINTERFACE)
23073
23074 MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8")
23075 ID3D12ShaderCacheSession : public ID3D12DeviceChild
23076 {
23077 public:
23078 virtual HRESULT STDMETHODCALLTYPE FindValue(
23079 /* [annotation][in] */
23080 _In_reads_bytes_(KeySize) const void *pKey,
23081 UINT KeySize,
23082 /* [annotation][out] */
23083 _Out_writes_bytes_(*pValueSize) void *pValue,
23084 _Inout_ UINT *pValueSize) = 0;
23085
23086 virtual HRESULT STDMETHODCALLTYPE StoreValue(
23087 /* [annotation][in] */
23088 _In_reads_bytes_(KeySize) const void *pKey,
23089 UINT KeySize,
23090 /* [annotation][in] */
23091 _In_reads_bytes_(ValueSize) const void *pValue,
23092 UINT ValueSize) = 0;
23093
23094 virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0;
23095
23096#if defined(_MSC_VER) || !defined(_WIN32)
23097 virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
23098#else
23099 virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc(
23100 D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0;
23101#endif
23102
23103 };
23104
23105
23106#else /* C style interface */
23107
23108 typedef struct ID3D12ShaderCacheSessionVtbl
23109 {
23110 BEGIN_INTERFACE
23111
23112 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
23113 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
23114 ID3D12ShaderCacheSession * This,
23115 REFIID riid,
23116 _COM_Outptr_ void **ppvObject);
23117
23118 DECLSPEC_XFGVIRT(IUnknown, AddRef)
23119 ULONG ( STDMETHODCALLTYPE *AddRef )(
23120 ID3D12ShaderCacheSession * This);
23121
23122 DECLSPEC_XFGVIRT(IUnknown, Release)
23123 ULONG ( STDMETHODCALLTYPE *Release )(
23124 ID3D12ShaderCacheSession * This);
23125
23126 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
23127 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
23128 ID3D12ShaderCacheSession * This,
23129 _In_ REFGUID guid,
23130 _Inout_ UINT *pDataSize,
23131 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
23132
23133 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
23134 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
23135 ID3D12ShaderCacheSession * This,
23136 _In_ REFGUID guid,
23137 _In_ UINT DataSize,
23138 _In_reads_bytes_opt_( DataSize ) const void *pData);
23139
23140 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
23141 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
23142 ID3D12ShaderCacheSession * This,
23143 _In_ REFGUID guid,
23144 _In_opt_ const IUnknown *pData);
23145
23146 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
23147 HRESULT ( STDMETHODCALLTYPE *SetName )(
23148 ID3D12ShaderCacheSession * This,
23149 _In_z_ LPCWSTR Name);
23150
23151 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
23152 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
23153 ID3D12ShaderCacheSession * This,
23154 REFIID riid,
23155 _COM_Outptr_opt_ void **ppvDevice);
23156
23157 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue)
23158 HRESULT ( STDMETHODCALLTYPE *FindValue )(
23159 ID3D12ShaderCacheSession * This,
23160 /* [annotation][in] */
23161 _In_reads_bytes_(KeySize) const void *pKey,
23162 UINT KeySize,
23163 /* [annotation][out] */
23164 _Out_writes_bytes_(*pValueSize) void *pValue,
23165 _Inout_ UINT *pValueSize);
23166
23167 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue)
23168 HRESULT ( STDMETHODCALLTYPE *StoreValue )(
23169 ID3D12ShaderCacheSession * This,
23170 /* [annotation][in] */
23171 _In_reads_bytes_(KeySize) const void *pKey,
23172 UINT KeySize,
23173 /* [annotation][in] */
23174 _In_reads_bytes_(ValueSize) const void *pValue,
23175 UINT ValueSize);
23176
23177 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy)
23178 void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )(
23179 ID3D12ShaderCacheSession * This);
23180
23181 DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc)
23182#if !defined(_WIN32)
23183 D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )(
23184 ID3D12ShaderCacheSession * This);
23185
23186#else
23187 D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )(
23188 ID3D12ShaderCacheSession * This,
23189 D3D12_SHADER_CACHE_SESSION_DESC * RetVal);
23190
23191#endif
23192
23193 END_INTERFACE
23194 } ID3D12ShaderCacheSessionVtbl;
23195
23196 interface ID3D12ShaderCacheSession
23197 {
23198 CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl;
23199 };
23200
23201
23202
23203#ifdef COBJMACROS
23204
23205
23206#define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \
23207 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
23208
23209#define ID3D12ShaderCacheSession_AddRef(This) \
23210 ( (This)->lpVtbl -> AddRef(This) )
23211
23212#define ID3D12ShaderCacheSession_Release(This) \
23213 ( (This)->lpVtbl -> Release(This) )
23214
23215
23216#define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \
23217 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
23218
23219#define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \
23220 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
23221
23222#define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \
23223 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
23224
23225#define ID3D12ShaderCacheSession_SetName(This,Name) \
23226 ( (This)->lpVtbl -> SetName(This,Name) )
23227
23228
23229#define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \
23230 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
23231
23232
23233#define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \
23234 ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) )
23235
23236#define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \
23237 ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) )
23238
23239#define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \
23240 ( (This)->lpVtbl -> SetDeleteOnDestroy(This) )
23241#if !defined(_WIN32)
23242
23243#define ID3D12ShaderCacheSession_GetDesc(This) \
23244 ( (This)->lpVtbl -> GetDesc(This) )
23245#else
23246#define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \
23247 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
23248#endif
23249
23250#endif /* COBJMACROS */
23251
23252
23253#endif /* C style interface */
23254
23255
23256
23257
23258#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
23259
23260
23261/* interface __MIDL_itf_d3d12_0000_0057 */
23262/* [local] */
23263
23264typedef
23265enum D3D12_SHADER_CACHE_KIND_FLAGS
23266 {
23267 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
23268 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
23269 D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
23270 D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8
23271 } D3D12_SHADER_CACHE_KIND_FLAGS;
23272
23273DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )
23274typedef
23275enum D3D12_SHADER_CACHE_CONTROL_FLAGS
23276 {
23277 D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
23278 D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
23279 D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4
23280 } D3D12_SHADER_CACHE_CONTROL_FLAGS;
23281
23282DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )
23283
23284
23285extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec;
23286extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec;
23287
23288#ifndef __ID3D12Device9_INTERFACE_DEFINED__
23289#define __ID3D12Device9_INTERFACE_DEFINED__
23290
23291/* interface ID3D12Device9 */
23292/* [unique][local][object][uuid] */
23293
23294
23295EXTERN_C const IID IID_ID3D12Device9;
23296
23297#if defined(__cplusplus) && !defined(CINTERFACE)
23298
23299 MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c")
23300 ID3D12Device9 : public ID3D12Device8
23301 {
23302 public:
23303 virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession(
23304 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
23305 REFIID riid,
23306 _COM_Outptr_opt_ void **ppvSession) = 0;
23307
23308 virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl(
23309 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
23310 D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0;
23311
23312 virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1(
23313 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23314 REFIID CreatorID,
23315 REFIID riid,
23316 _COM_Outptr_ void **ppCommandQueue) = 0;
23317
23318 };
23319
23320
23321#else /* C style interface */
23322
23323 typedef struct ID3D12Device9Vtbl
23324 {
23325 BEGIN_INTERFACE
23326
23327 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
23328 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
23329 ID3D12Device9 * This,
23330 REFIID riid,
23331 _COM_Outptr_ void **ppvObject);
23332
23333 DECLSPEC_XFGVIRT(IUnknown, AddRef)
23334 ULONG ( STDMETHODCALLTYPE *AddRef )(
23335 ID3D12Device9 * This);
23336
23337 DECLSPEC_XFGVIRT(IUnknown, Release)
23338 ULONG ( STDMETHODCALLTYPE *Release )(
23339 ID3D12Device9 * This);
23340
23341 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
23342 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
23343 ID3D12Device9 * This,
23344 _In_ REFGUID guid,
23345 _Inout_ UINT *pDataSize,
23346 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
23347
23348 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
23349 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
23350 ID3D12Device9 * This,
23351 _In_ REFGUID guid,
23352 _In_ UINT DataSize,
23353 _In_reads_bytes_opt_( DataSize ) const void *pData);
23354
23355 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
23356 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
23357 ID3D12Device9 * This,
23358 _In_ REFGUID guid,
23359 _In_opt_ const IUnknown *pData);
23360
23361 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
23362 HRESULT ( STDMETHODCALLTYPE *SetName )(
23363 ID3D12Device9 * This,
23364 _In_z_ LPCWSTR Name);
23365
23366 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
23367 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
23368 ID3D12Device9 * This);
23369
23370 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
23371 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
23372 ID3D12Device9 * This,
23373 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23374 REFIID riid,
23375 _COM_Outptr_ void **ppCommandQueue);
23376
23377 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
23378 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
23379 ID3D12Device9 * This,
23380 _In_ D3D12_COMMAND_LIST_TYPE type,
23381 REFIID riid,
23382 _COM_Outptr_ void **ppCommandAllocator);
23383
23384 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
23385 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
23386 ID3D12Device9 * This,
23387 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
23388 REFIID riid,
23389 _COM_Outptr_ void **ppPipelineState);
23390
23391 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
23392 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
23393 ID3D12Device9 * This,
23394 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
23395 REFIID riid,
23396 _COM_Outptr_ void **ppPipelineState);
23397
23398 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
23399 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
23400 ID3D12Device9 * This,
23401 _In_ UINT nodeMask,
23402 _In_ D3D12_COMMAND_LIST_TYPE type,
23403 _In_ ID3D12CommandAllocator *pCommandAllocator,
23404 _In_opt_ ID3D12PipelineState *pInitialState,
23405 REFIID riid,
23406 _COM_Outptr_ void **ppCommandList);
23407
23408 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
23409 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
23410 ID3D12Device9 * This,
23411 D3D12_FEATURE Feature,
23412 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
23413 UINT FeatureSupportDataSize);
23414
23415 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
23416 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
23417 ID3D12Device9 * This,
23418 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
23419 REFIID riid,
23420 _COM_Outptr_ void **ppvHeap);
23421
23422 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
23423 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
23424 ID3D12Device9 * This,
23425 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
23426
23427 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
23428 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
23429 ID3D12Device9 * This,
23430 _In_ UINT nodeMask,
23431 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
23432 _In_ SIZE_T blobLengthInBytes,
23433 REFIID riid,
23434 _COM_Outptr_ void **ppvRootSignature);
23435
23436 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
23437 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
23438 ID3D12Device9 * This,
23439 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
23440 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23441
23442 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
23443 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
23444 ID3D12Device9 * This,
23445 _In_opt_ ID3D12Resource *pResource,
23446 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
23447 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23448
23449 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
23450 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
23451 ID3D12Device9 * This,
23452 _In_opt_ ID3D12Resource *pResource,
23453 _In_opt_ ID3D12Resource *pCounterResource,
23454 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
23455 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23456
23457 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
23458 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
23459 ID3D12Device9 * This,
23460 _In_opt_ ID3D12Resource *pResource,
23461 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
23462 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23463
23464 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
23465 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
23466 ID3D12Device9 * This,
23467 _In_opt_ ID3D12Resource *pResource,
23468 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
23469 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23470
23471 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
23472 void ( STDMETHODCALLTYPE *CreateSampler )(
23473 ID3D12Device9 * This,
23474 _In_ const D3D12_SAMPLER_DESC *pDesc,
23475 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23476
23477 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
23478 void ( STDMETHODCALLTYPE *CopyDescriptors )(
23479 ID3D12Device9 * This,
23480 _In_ UINT NumDestDescriptorRanges,
23481 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
23482 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
23483 _In_ UINT NumSrcDescriptorRanges,
23484 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
23485 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
23486 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23487
23488 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
23489 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
23490 ID3D12Device9 * This,
23491 _In_ UINT NumDescriptors,
23492 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
23493 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
23494 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
23495
23496 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
23497#if !defined(_WIN32)
23498 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23499 ID3D12Device9 * This,
23500 _In_ UINT visibleMask,
23501 _In_ UINT numResourceDescs,
23502 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23503
23504#else
23505 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
23506 ID3D12Device9 * This,
23507 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23508 _In_ UINT visibleMask,
23509 _In_ UINT numResourceDescs,
23510 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
23511
23512#endif
23513
23514 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
23515#if !defined(_WIN32)
23516 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23517 ID3D12Device9 * This,
23518 _In_ UINT nodeMask,
23519 D3D12_HEAP_TYPE heapType);
23520
23521#else
23522 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
23523 ID3D12Device9 * This,
23524 D3D12_HEAP_PROPERTIES * RetVal,
23525 _In_ UINT nodeMask,
23526 D3D12_HEAP_TYPE heapType);
23527
23528#endif
23529
23530 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
23531 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
23532 ID3D12Device9 * This,
23533 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23534 D3D12_HEAP_FLAGS HeapFlags,
23535 _In_ const D3D12_RESOURCE_DESC *pDesc,
23536 D3D12_RESOURCE_STATES InitialResourceState,
23537 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23538 REFIID riidResource,
23539 _COM_Outptr_opt_ void **ppvResource);
23540
23541 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
23542 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
23543 ID3D12Device9 * This,
23544 _In_ const D3D12_HEAP_DESC *pDesc,
23545 REFIID riid,
23546 _COM_Outptr_opt_ void **ppvHeap);
23547
23548 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
23549 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
23550 ID3D12Device9 * This,
23551 _In_ ID3D12Heap *pHeap,
23552 UINT64 HeapOffset,
23553 _In_ const D3D12_RESOURCE_DESC *pDesc,
23554 D3D12_RESOURCE_STATES InitialState,
23555 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23556 REFIID riid,
23557 _COM_Outptr_opt_ void **ppvResource);
23558
23559 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
23560 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
23561 ID3D12Device9 * This,
23562 _In_ const D3D12_RESOURCE_DESC *pDesc,
23563 D3D12_RESOURCE_STATES InitialState,
23564 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23565 REFIID riid,
23566 _COM_Outptr_opt_ void **ppvResource);
23567
23568 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
23569 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
23570 ID3D12Device9 * This,
23571 _In_ ID3D12DeviceChild *pObject,
23572 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
23573 DWORD Access,
23574 _In_opt_ LPCWSTR Name,
23575 _Out_ HANDLE *pHandle);
23576
23577 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
23578 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
23579 ID3D12Device9 * This,
23580 _In_ HANDLE NTHandle,
23581 REFIID riid,
23582 _COM_Outptr_opt_ void **ppvObj);
23583
23584 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
23585 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
23586 ID3D12Device9 * This,
23587 _In_ LPCWSTR Name,
23588 DWORD Access,
23589 /* [annotation][out] */
23590 _Out_ HANDLE *pNTHandle);
23591
23592 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
23593 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
23594 ID3D12Device9 * This,
23595 UINT NumObjects,
23596 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23597
23598 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
23599 HRESULT ( STDMETHODCALLTYPE *Evict )(
23600 ID3D12Device9 * This,
23601 UINT NumObjects,
23602 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
23603
23604 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
23605 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
23606 ID3D12Device9 * This,
23607 UINT64 InitialValue,
23608 D3D12_FENCE_FLAGS Flags,
23609 REFIID riid,
23610 _COM_Outptr_ void **ppFence);
23611
23612 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
23613 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
23614 ID3D12Device9 * This);
23615
23616 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
23617 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
23618 ID3D12Device9 * This,
23619 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
23620 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23621 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23622 UINT64 BaseOffset,
23623 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23624 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23625 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23626 _Out_opt_ UINT64 *pTotalBytes);
23627
23628 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
23629 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
23630 ID3D12Device9 * This,
23631 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
23632 REFIID riid,
23633 _COM_Outptr_opt_ void **ppvHeap);
23634
23635 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
23636 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
23637 ID3D12Device9 * This,
23638 BOOL Enable);
23639
23640 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
23641 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
23642 ID3D12Device9 * This,
23643 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
23644 _In_opt_ ID3D12RootSignature *pRootSignature,
23645 REFIID riid,
23646 _COM_Outptr_opt_ void **ppvCommandSignature);
23647
23648 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
23649 void ( STDMETHODCALLTYPE *GetResourceTiling )(
23650 ID3D12Device9 * This,
23651 _In_ ID3D12Resource *pTiledResource,
23652 _Out_opt_ UINT *pNumTilesForEntireResource,
23653 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
23654 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
23655 _Inout_opt_ UINT *pNumSubresourceTilings,
23656 _In_ UINT FirstSubresourceTilingToGet,
23657 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
23658
23659 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
23660#if !defined(_WIN32)
23661 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
23662 ID3D12Device9 * This);
23663
23664#else
23665 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
23666 ID3D12Device9 * This,
23667 LUID * RetVal);
23668
23669#endif
23670
23671 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
23672 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
23673 ID3D12Device9 * This,
23674 _In_reads_(BlobLength) const void *pLibraryBlob,
23675 SIZE_T BlobLength,
23676 REFIID riid,
23677 _COM_Outptr_ void **ppPipelineLibrary);
23678
23679 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
23680 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
23681 ID3D12Device9 * This,
23682 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
23683 _In_reads_(NumFences) const UINT64 *pFenceValues,
23684 UINT NumFences,
23685 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
23686 HANDLE hEvent);
23687
23688 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
23689 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
23690 ID3D12Device9 * This,
23691 UINT NumObjects,
23692 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23693 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
23694
23695 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
23696 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
23697 ID3D12Device9 * This,
23698 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
23699 REFIID riid,
23700 _COM_Outptr_ void **ppPipelineState);
23701
23702 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
23703 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
23704 ID3D12Device9 * This,
23705 _In_ const void *pAddress,
23706 REFIID riid,
23707 _COM_Outptr_ void **ppvHeap);
23708
23709 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
23710 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
23711 ID3D12Device9 * This,
23712 _In_ HANDLE hFileMapping,
23713 REFIID riid,
23714 _COM_Outptr_ void **ppvHeap);
23715
23716 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
23717 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
23718 ID3D12Device9 * This,
23719 D3D12_RESIDENCY_FLAGS Flags,
23720 UINT NumObjects,
23721 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
23722 _In_ ID3D12Fence *pFenceToSignal,
23723 UINT64 FenceValueToSignal);
23724
23725 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
23726 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
23727 ID3D12Device9 * This,
23728 _In_ UINT nodeMask,
23729 _In_ D3D12_COMMAND_LIST_TYPE type,
23730 _In_ D3D12_COMMAND_LIST_FLAGS flags,
23731 REFIID riid,
23732 _COM_Outptr_ void **ppCommandList);
23733
23734 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
23735 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
23736 ID3D12Device9 * This,
23737 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
23738 _In_ REFIID riid,
23739 _COM_Outptr_ void **ppSession);
23740
23741 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
23742 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
23743 ID3D12Device9 * This,
23744 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23745 D3D12_HEAP_FLAGS HeapFlags,
23746 _In_ const D3D12_RESOURCE_DESC *pDesc,
23747 D3D12_RESOURCE_STATES InitialResourceState,
23748 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23749 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23750 REFIID riidResource,
23751 _COM_Outptr_opt_ void **ppvResource);
23752
23753 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
23754 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
23755 ID3D12Device9 * This,
23756 _In_ const D3D12_HEAP_DESC *pDesc,
23757 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23758 REFIID riid,
23759 _COM_Outptr_opt_ void **ppvHeap);
23760
23761 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
23762 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
23763 ID3D12Device9 * This,
23764 _In_ const D3D12_RESOURCE_DESC *pDesc,
23765 D3D12_RESOURCE_STATES InitialState,
23766 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23767 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23768 REFIID riid,
23769 _COM_Outptr_opt_ void **ppvResource);
23770
23771 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
23772#if !defined(_WIN32)
23773 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23774 ID3D12Device9 * This,
23775 UINT visibleMask,
23776 UINT numResourceDescs,
23777 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23778 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23779
23780#else
23781 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
23782 ID3D12Device9 * This,
23783 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23784 UINT visibleMask,
23785 UINT numResourceDescs,
23786 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
23787 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23788
23789#endif
23790
23791 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
23792 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
23793 ID3D12Device9 * This,
23794 _In_ ID3D12LifetimeOwner *pOwner,
23795 REFIID riid,
23796 _COM_Outptr_ void **ppvTracker);
23797
23798 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
23799 void ( STDMETHODCALLTYPE *RemoveDevice )(
23800 ID3D12Device9 * This);
23801
23802 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
23803 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
23804 ID3D12Device9 * This,
23805 _Inout_ UINT *pNumMetaCommands,
23806 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
23807
23808 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
23809 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
23810 ID3D12Device9 * This,
23811 _In_ REFGUID CommandId,
23812 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
23813 _Out_opt_ UINT *pTotalStructureSizeInBytes,
23814 _Inout_ UINT *pParameterCount,
23815 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
23816
23817 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
23818 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
23819 ID3D12Device9 * This,
23820 _In_ REFGUID CommandId,
23821 _In_ UINT NodeMask,
23822 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
23823 _In_ SIZE_T CreationParametersDataSizeInBytes,
23824 REFIID riid,
23825 _COM_Outptr_ void **ppMetaCommand);
23826
23827 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
23828 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
23829 ID3D12Device9 * This,
23830 const D3D12_STATE_OBJECT_DESC *pDesc,
23831 REFIID riid,
23832 _COM_Outptr_ void **ppStateObject);
23833
23834 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
23835 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
23836 ID3D12Device9 * This,
23837 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
23838 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
23839
23840 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
23841 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
23842 ID3D12Device9 * This,
23843 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
23844 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
23845
23846 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
23847 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
23848 ID3D12Device9 * This,
23849 D3D12_BACKGROUND_PROCESSING_MODE Mode,
23850 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
23851 _In_opt_ HANDLE hEventToSignalUponCompletion,
23852 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
23853
23854 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
23855 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
23856 ID3D12Device9 * This,
23857 const D3D12_STATE_OBJECT_DESC *pAddition,
23858 ID3D12StateObject *pStateObjectToGrowFrom,
23859 REFIID riid,
23860 _COM_Outptr_ void **ppNewStateObject);
23861
23862 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
23863 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
23864 ID3D12Device9 * This,
23865 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
23866 _In_ REFIID riid,
23867 _COM_Outptr_ void **ppSession);
23868
23869 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
23870#if !defined(_WIN32)
23871 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23872 ID3D12Device9 * This,
23873 UINT visibleMask,
23874 UINT numResourceDescs,
23875 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23876 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23877
23878#else
23879 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
23880 ID3D12Device9 * This,
23881 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
23882 UINT visibleMask,
23883 UINT numResourceDescs,
23884 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
23885 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
23886
23887#endif
23888
23889 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
23890 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
23891 ID3D12Device9 * This,
23892 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
23893 D3D12_HEAP_FLAGS HeapFlags,
23894 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23895 D3D12_RESOURCE_STATES InitialResourceState,
23896 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23897 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
23898 REFIID riidResource,
23899 _COM_Outptr_opt_ void **ppvResource);
23900
23901 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
23902 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
23903 ID3D12Device9 * This,
23904 _In_ ID3D12Heap *pHeap,
23905 UINT64 HeapOffset,
23906 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
23907 D3D12_RESOURCE_STATES InitialState,
23908 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
23909 REFIID riid,
23910 _COM_Outptr_opt_ void **ppvResource);
23911
23912 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
23913 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
23914 ID3D12Device9 * This,
23915 _In_opt_ ID3D12Resource *pTargetedResource,
23916 _In_opt_ ID3D12Resource *pFeedbackResource,
23917 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
23918
23919 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
23920 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
23921 ID3D12Device9 * This,
23922 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
23923 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
23924 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
23925 UINT64 BaseOffset,
23926 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
23927 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
23928 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
23929 _Out_opt_ UINT64 *pTotalBytes);
23930
23931 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
23932 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
23933 ID3D12Device9 * This,
23934 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
23935 REFIID riid,
23936 _COM_Outptr_opt_ void **ppvSession);
23937
23938 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
23939 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
23940 ID3D12Device9 * This,
23941 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
23942 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
23943
23944 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
23945 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
23946 ID3D12Device9 * This,
23947 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
23948 REFIID CreatorID,
23949 REFIID riid,
23950 _COM_Outptr_ void **ppCommandQueue);
23951
23952 END_INTERFACE
23953 } ID3D12Device9Vtbl;
23954
23955 interface ID3D12Device9
23956 {
23957 CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl;
23958 };
23959
23960
23961
23962#ifdef COBJMACROS
23963
23964
23965#define ID3D12Device9_QueryInterface(This,riid,ppvObject) \
23966 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
23967
23968#define ID3D12Device9_AddRef(This) \
23969 ( (This)->lpVtbl -> AddRef(This) )
23970
23971#define ID3D12Device9_Release(This) \
23972 ( (This)->lpVtbl -> Release(This) )
23973
23974
23975#define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \
23976 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
23977
23978#define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \
23979 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
23980
23981#define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \
23982 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
23983
23984#define ID3D12Device9_SetName(This,Name) \
23985 ( (This)->lpVtbl -> SetName(This,Name) )
23986
23987
23988#define ID3D12Device9_GetNodeCount(This) \
23989 ( (This)->lpVtbl -> GetNodeCount(This) )
23990
23991#define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
23992 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
23993
23994#define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
23995 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
23996
23997#define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
23998 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
23999
24000#define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
24001 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
24002
24003#define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
24004 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
24005
24006#define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
24007 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
24008
24009#define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
24010 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
24011
24012#define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
24013 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
24014
24015#define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
24016 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
24017
24018#define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \
24019 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
24020
24021#define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
24022 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
24023
24024#define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
24025 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
24026
24027#define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
24028 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
24029
24030#define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
24031 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
24032
24033#define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \
24034 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
24035
24036#define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
24037 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
24038
24039#define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
24040 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
24041#if !defined(_WIN32)
24042
24043#define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
24044 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
24045#else
24046#define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
24047 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
24048#endif
24049#if !defined(_WIN32)
24050
24051#define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \
24052 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
24053#else
24054#define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
24055 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
24056#endif
24057
24058#define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
24059 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
24060
24061#define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \
24062 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
24063
24064#define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24065 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24066
24067#define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24068 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24069
24070#define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
24071 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
24072
24073#define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
24074 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
24075
24076#define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
24077 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
24078
24079#define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \
24080 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
24081
24082#define ID3D12Device9_Evict(This,NumObjects,ppObjects) \
24083 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
24084
24085#define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \
24086 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
24087
24088#define ID3D12Device9_GetDeviceRemovedReason(This) \
24089 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
24090
24091#define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24092 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24093
24094#define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
24095 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
24096
24097#define ID3D12Device9_SetStablePowerState(This,Enable) \
24098 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
24099
24100#define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
24101 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
24102
24103#define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
24104 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
24105#if !defined(_WIN32)
24106
24107#define ID3D12Device9_GetAdapterLuid(This) \
24108 ( (This)->lpVtbl -> GetAdapterLuid(This) )
24109#else
24110#define ID3D12Device9_GetAdapterLuid(This,RetVal) \
24111 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
24112#endif
24113
24114
24115#define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
24116 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
24117
24118#define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
24119 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
24120
24121#define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
24122 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
24123
24124
24125#define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
24126 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
24127
24128
24129#define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
24130 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
24131
24132#define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
24133 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
24134
24135#define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
24136 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
24137
24138
24139#define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
24140 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
24141
24142#define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
24143 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
24144
24145#define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24146 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24147
24148#define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
24149 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
24150
24151#define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
24152 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
24153#if !defined(_WIN32)
24154
24155#define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24156 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24157#else
24158#define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24159 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24160#endif
24161
24162
24163#define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
24164 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
24165
24166#define ID3D12Device9_RemoveDevice(This) \
24167 ( (This)->lpVtbl -> RemoveDevice(This) )
24168
24169#define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
24170 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
24171
24172#define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
24173 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
24174
24175#define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
24176 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
24177
24178#define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \
24179 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
24180
24181#define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
24182 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
24183
24184#define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
24185 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
24186
24187
24188#define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
24189 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
24190
24191
24192#define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
24193 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
24194
24195#define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
24196 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
24197
24198#if !defined(_WIN32)
24199
24200#define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24201 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24202#else
24203#define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
24204 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
24205#endif
24206
24207#define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
24208 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
24209
24210#define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
24211 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
24212
24213#define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
24214 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
24215
24216#define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
24217 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
24218
24219
24220#define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
24221 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
24222
24223#define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \
24224 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
24225
24226#define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
24227 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
24228
24229#endif /* COBJMACROS */
24230
24231
24232#endif /* C style interface */
24233
24234
24235
24236
24237#endif /* __ID3D12Device9_INTERFACE_DEFINED__ */
24238
24239
24240#ifndef __ID3D12Device10_INTERFACE_DEFINED__
24241#define __ID3D12Device10_INTERFACE_DEFINED__
24242
24243/* interface ID3D12Device10 */
24244/* [unique][local][object][uuid] */
24245
24246
24247EXTERN_C const IID IID_ID3D12Device10;
24248
24249#if defined(__cplusplus) && !defined(CINTERFACE)
24250
24251 MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031")
24252 ID3D12Device10 : public ID3D12Device9
24253 {
24254 public:
24255 virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3(
24256 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24257 D3D12_HEAP_FLAGS HeapFlags,
24258 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24259 D3D12_BARRIER_LAYOUT InitialLayout,
24260 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24261 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24262 UINT32 NumCastableFormats,
24263 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24264 REFIID riidResource,
24265 _COM_Outptr_opt_ void **ppvResource) = 0;
24266
24267 virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2(
24268 _In_ ID3D12Heap *pHeap,
24269 UINT64 HeapOffset,
24270 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24271 D3D12_BARRIER_LAYOUT InitialLayout,
24272 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24273 UINT32 NumCastableFormats,
24274 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24275 REFIID riid,
24276 _COM_Outptr_opt_ void **ppvResource) = 0;
24277
24278 virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2(
24279 _In_ const D3D12_RESOURCE_DESC *pDesc,
24280 D3D12_BARRIER_LAYOUT InitialLayout,
24281 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24282 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24283 UINT32 NumCastableFormats,
24284 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24285 REFIID riid,
24286 _COM_Outptr_opt_ void **ppvResource) = 0;
24287
24288 };
24289
24290
24291#else /* C style interface */
24292
24293 typedef struct ID3D12Device10Vtbl
24294 {
24295 BEGIN_INTERFACE
24296
24297 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
24298 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
24299 ID3D12Device10 * This,
24300 REFIID riid,
24301 _COM_Outptr_ void **ppvObject);
24302
24303 DECLSPEC_XFGVIRT(IUnknown, AddRef)
24304 ULONG ( STDMETHODCALLTYPE *AddRef )(
24305 ID3D12Device10 * This);
24306
24307 DECLSPEC_XFGVIRT(IUnknown, Release)
24308 ULONG ( STDMETHODCALLTYPE *Release )(
24309 ID3D12Device10 * This);
24310
24311 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
24312 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
24313 ID3D12Device10 * This,
24314 _In_ REFGUID guid,
24315 _Inout_ UINT *pDataSize,
24316 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
24317
24318 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
24319 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
24320 ID3D12Device10 * This,
24321 _In_ REFGUID guid,
24322 _In_ UINT DataSize,
24323 _In_reads_bytes_opt_( DataSize ) const void *pData);
24324
24325 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
24326 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
24327 ID3D12Device10 * This,
24328 _In_ REFGUID guid,
24329 _In_opt_ const IUnknown *pData);
24330
24331 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
24332 HRESULT ( STDMETHODCALLTYPE *SetName )(
24333 ID3D12Device10 * This,
24334 _In_z_ LPCWSTR Name);
24335
24336 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
24337 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
24338 ID3D12Device10 * This);
24339
24340 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
24341 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
24342 ID3D12Device10 * This,
24343 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24344 REFIID riid,
24345 _COM_Outptr_ void **ppCommandQueue);
24346
24347 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
24348 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
24349 ID3D12Device10 * This,
24350 _In_ D3D12_COMMAND_LIST_TYPE type,
24351 REFIID riid,
24352 _COM_Outptr_ void **ppCommandAllocator);
24353
24354 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
24355 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
24356 ID3D12Device10 * This,
24357 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
24358 REFIID riid,
24359 _COM_Outptr_ void **ppPipelineState);
24360
24361 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
24362 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
24363 ID3D12Device10 * This,
24364 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
24365 REFIID riid,
24366 _COM_Outptr_ void **ppPipelineState);
24367
24368 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
24369 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
24370 ID3D12Device10 * This,
24371 _In_ UINT nodeMask,
24372 _In_ D3D12_COMMAND_LIST_TYPE type,
24373 _In_ ID3D12CommandAllocator *pCommandAllocator,
24374 _In_opt_ ID3D12PipelineState *pInitialState,
24375 REFIID riid,
24376 _COM_Outptr_ void **ppCommandList);
24377
24378 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
24379 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
24380 ID3D12Device10 * This,
24381 D3D12_FEATURE Feature,
24382 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
24383 UINT FeatureSupportDataSize);
24384
24385 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
24386 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
24387 ID3D12Device10 * This,
24388 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
24389 REFIID riid,
24390 _COM_Outptr_ void **ppvHeap);
24391
24392 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
24393 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
24394 ID3D12Device10 * This,
24395 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
24396
24397 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
24398 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
24399 ID3D12Device10 * This,
24400 _In_ UINT nodeMask,
24401 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
24402 _In_ SIZE_T blobLengthInBytes,
24403 REFIID riid,
24404 _COM_Outptr_ void **ppvRootSignature);
24405
24406 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
24407 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
24408 ID3D12Device10 * This,
24409 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
24410 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24411
24412 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
24413 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
24414 ID3D12Device10 * This,
24415 _In_opt_ ID3D12Resource *pResource,
24416 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
24417 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24418
24419 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
24420 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
24421 ID3D12Device10 * This,
24422 _In_opt_ ID3D12Resource *pResource,
24423 _In_opt_ ID3D12Resource *pCounterResource,
24424 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
24425 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24426
24427 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
24428 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
24429 ID3D12Device10 * This,
24430 _In_opt_ ID3D12Resource *pResource,
24431 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
24432 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24433
24434 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
24435 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
24436 ID3D12Device10 * This,
24437 _In_opt_ ID3D12Resource *pResource,
24438 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
24439 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24440
24441 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
24442 void ( STDMETHODCALLTYPE *CreateSampler )(
24443 ID3D12Device10 * This,
24444 _In_ const D3D12_SAMPLER_DESC *pDesc,
24445 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24446
24447 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
24448 void ( STDMETHODCALLTYPE *CopyDescriptors )(
24449 ID3D12Device10 * This,
24450 _In_ UINT NumDestDescriptorRanges,
24451 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
24452 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
24453 _In_ UINT NumSrcDescriptorRanges,
24454 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
24455 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
24456 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24457
24458 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
24459 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
24460 ID3D12Device10 * This,
24461 _In_ UINT NumDescriptors,
24462 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
24463 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
24464 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
24465
24466 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
24467#if !defined(_WIN32)
24468 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24469 ID3D12Device10 * This,
24470 _In_ UINT visibleMask,
24471 _In_ UINT numResourceDescs,
24472 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24473
24474#else
24475 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
24476 ID3D12Device10 * This,
24477 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24478 _In_ UINT visibleMask,
24479 _In_ UINT numResourceDescs,
24480 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
24481
24482#endif
24483
24484 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
24485#if !defined(_WIN32)
24486 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24487 ID3D12Device10 * This,
24488 _In_ UINT nodeMask,
24489 D3D12_HEAP_TYPE heapType);
24490
24491#else
24492 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
24493 ID3D12Device10 * This,
24494 D3D12_HEAP_PROPERTIES * RetVal,
24495 _In_ UINT nodeMask,
24496 D3D12_HEAP_TYPE heapType);
24497
24498#endif
24499
24500 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
24501 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
24502 ID3D12Device10 * This,
24503 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24504 D3D12_HEAP_FLAGS HeapFlags,
24505 _In_ const D3D12_RESOURCE_DESC *pDesc,
24506 D3D12_RESOURCE_STATES InitialResourceState,
24507 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24508 REFIID riidResource,
24509 _COM_Outptr_opt_ void **ppvResource);
24510
24511 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
24512 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
24513 ID3D12Device10 * This,
24514 _In_ const D3D12_HEAP_DESC *pDesc,
24515 REFIID riid,
24516 _COM_Outptr_opt_ void **ppvHeap);
24517
24518 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
24519 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
24520 ID3D12Device10 * This,
24521 _In_ ID3D12Heap *pHeap,
24522 UINT64 HeapOffset,
24523 _In_ const D3D12_RESOURCE_DESC *pDesc,
24524 D3D12_RESOURCE_STATES InitialState,
24525 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24526 REFIID riid,
24527 _COM_Outptr_opt_ void **ppvResource);
24528
24529 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
24530 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
24531 ID3D12Device10 * This,
24532 _In_ const D3D12_RESOURCE_DESC *pDesc,
24533 D3D12_RESOURCE_STATES InitialState,
24534 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24535 REFIID riid,
24536 _COM_Outptr_opt_ void **ppvResource);
24537
24538 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
24539 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
24540 ID3D12Device10 * This,
24541 _In_ ID3D12DeviceChild *pObject,
24542 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
24543 DWORD Access,
24544 _In_opt_ LPCWSTR Name,
24545 _Out_ HANDLE *pHandle);
24546
24547 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
24548 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
24549 ID3D12Device10 * This,
24550 _In_ HANDLE NTHandle,
24551 REFIID riid,
24552 _COM_Outptr_opt_ void **ppvObj);
24553
24554 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
24555 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
24556 ID3D12Device10 * This,
24557 _In_ LPCWSTR Name,
24558 DWORD Access,
24559 /* [annotation][out] */
24560 _Out_ HANDLE *pNTHandle);
24561
24562 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
24563 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
24564 ID3D12Device10 * This,
24565 UINT NumObjects,
24566 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24567
24568 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
24569 HRESULT ( STDMETHODCALLTYPE *Evict )(
24570 ID3D12Device10 * This,
24571 UINT NumObjects,
24572 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
24573
24574 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
24575 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
24576 ID3D12Device10 * This,
24577 UINT64 InitialValue,
24578 D3D12_FENCE_FLAGS Flags,
24579 REFIID riid,
24580 _COM_Outptr_ void **ppFence);
24581
24582 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
24583 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
24584 ID3D12Device10 * This);
24585
24586 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
24587 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
24588 ID3D12Device10 * This,
24589 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
24590 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24591 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24592 UINT64 BaseOffset,
24593 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24594 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24595 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24596 _Out_opt_ UINT64 *pTotalBytes);
24597
24598 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
24599 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
24600 ID3D12Device10 * This,
24601 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
24602 REFIID riid,
24603 _COM_Outptr_opt_ void **ppvHeap);
24604
24605 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
24606 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
24607 ID3D12Device10 * This,
24608 BOOL Enable);
24609
24610 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
24611 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
24612 ID3D12Device10 * This,
24613 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
24614 _In_opt_ ID3D12RootSignature *pRootSignature,
24615 REFIID riid,
24616 _COM_Outptr_opt_ void **ppvCommandSignature);
24617
24618 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
24619 void ( STDMETHODCALLTYPE *GetResourceTiling )(
24620 ID3D12Device10 * This,
24621 _In_ ID3D12Resource *pTiledResource,
24622 _Out_opt_ UINT *pNumTilesForEntireResource,
24623 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
24624 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
24625 _Inout_opt_ UINT *pNumSubresourceTilings,
24626 _In_ UINT FirstSubresourceTilingToGet,
24627 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
24628
24629 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
24630#if !defined(_WIN32)
24631 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
24632 ID3D12Device10 * This);
24633
24634#else
24635 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
24636 ID3D12Device10 * This,
24637 LUID * RetVal);
24638
24639#endif
24640
24641 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
24642 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
24643 ID3D12Device10 * This,
24644 _In_reads_(BlobLength) const void *pLibraryBlob,
24645 SIZE_T BlobLength,
24646 REFIID riid,
24647 _COM_Outptr_ void **ppPipelineLibrary);
24648
24649 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
24650 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
24651 ID3D12Device10 * This,
24652 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
24653 _In_reads_(NumFences) const UINT64 *pFenceValues,
24654 UINT NumFences,
24655 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
24656 HANDLE hEvent);
24657
24658 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
24659 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
24660 ID3D12Device10 * This,
24661 UINT NumObjects,
24662 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24663 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
24664
24665 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
24666 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
24667 ID3D12Device10 * This,
24668 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
24669 REFIID riid,
24670 _COM_Outptr_ void **ppPipelineState);
24671
24672 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
24673 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
24674 ID3D12Device10 * This,
24675 _In_ const void *pAddress,
24676 REFIID riid,
24677 _COM_Outptr_ void **ppvHeap);
24678
24679 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
24680 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
24681 ID3D12Device10 * This,
24682 _In_ HANDLE hFileMapping,
24683 REFIID riid,
24684 _COM_Outptr_ void **ppvHeap);
24685
24686 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
24687 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
24688 ID3D12Device10 * This,
24689 D3D12_RESIDENCY_FLAGS Flags,
24690 UINT NumObjects,
24691 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
24692 _In_ ID3D12Fence *pFenceToSignal,
24693 UINT64 FenceValueToSignal);
24694
24695 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
24696 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
24697 ID3D12Device10 * This,
24698 _In_ UINT nodeMask,
24699 _In_ D3D12_COMMAND_LIST_TYPE type,
24700 _In_ D3D12_COMMAND_LIST_FLAGS flags,
24701 REFIID riid,
24702 _COM_Outptr_ void **ppCommandList);
24703
24704 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
24705 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
24706 ID3D12Device10 * This,
24707 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
24708 _In_ REFIID riid,
24709 _COM_Outptr_ void **ppSession);
24710
24711 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
24712 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
24713 ID3D12Device10 * This,
24714 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24715 D3D12_HEAP_FLAGS HeapFlags,
24716 _In_ const D3D12_RESOURCE_DESC *pDesc,
24717 D3D12_RESOURCE_STATES InitialResourceState,
24718 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24719 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24720 REFIID riidResource,
24721 _COM_Outptr_opt_ void **ppvResource);
24722
24723 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
24724 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
24725 ID3D12Device10 * This,
24726 _In_ const D3D12_HEAP_DESC *pDesc,
24727 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24728 REFIID riid,
24729 _COM_Outptr_opt_ void **ppvHeap);
24730
24731 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
24732 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
24733 ID3D12Device10 * This,
24734 _In_ const D3D12_RESOURCE_DESC *pDesc,
24735 D3D12_RESOURCE_STATES InitialState,
24736 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24737 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24738 REFIID riid,
24739 _COM_Outptr_opt_ void **ppvResource);
24740
24741 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
24742#if !defined(_WIN32)
24743 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24744 ID3D12Device10 * This,
24745 UINT visibleMask,
24746 UINT numResourceDescs,
24747 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24748 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24749
24750#else
24751 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
24752 ID3D12Device10 * This,
24753 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24754 UINT visibleMask,
24755 UINT numResourceDescs,
24756 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
24757 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24758
24759#endif
24760
24761 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
24762 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
24763 ID3D12Device10 * This,
24764 _In_ ID3D12LifetimeOwner *pOwner,
24765 REFIID riid,
24766 _COM_Outptr_ void **ppvTracker);
24767
24768 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
24769 void ( STDMETHODCALLTYPE *RemoveDevice )(
24770 ID3D12Device10 * This);
24771
24772 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
24773 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
24774 ID3D12Device10 * This,
24775 _Inout_ UINT *pNumMetaCommands,
24776 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
24777
24778 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
24779 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
24780 ID3D12Device10 * This,
24781 _In_ REFGUID CommandId,
24782 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
24783 _Out_opt_ UINT *pTotalStructureSizeInBytes,
24784 _Inout_ UINT *pParameterCount,
24785 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
24786
24787 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
24788 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
24789 ID3D12Device10 * This,
24790 _In_ REFGUID CommandId,
24791 _In_ UINT NodeMask,
24792 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
24793 _In_ SIZE_T CreationParametersDataSizeInBytes,
24794 REFIID riid,
24795 _COM_Outptr_ void **ppMetaCommand);
24796
24797 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
24798 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
24799 ID3D12Device10 * This,
24800 const D3D12_STATE_OBJECT_DESC *pDesc,
24801 REFIID riid,
24802 _COM_Outptr_ void **ppStateObject);
24803
24804 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
24805 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
24806 ID3D12Device10 * This,
24807 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
24808 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
24809
24810 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
24811 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
24812 ID3D12Device10 * This,
24813 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
24814 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
24815
24816 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
24817 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
24818 ID3D12Device10 * This,
24819 D3D12_BACKGROUND_PROCESSING_MODE Mode,
24820 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
24821 _In_opt_ HANDLE hEventToSignalUponCompletion,
24822 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
24823
24824 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
24825 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
24826 ID3D12Device10 * This,
24827 const D3D12_STATE_OBJECT_DESC *pAddition,
24828 ID3D12StateObject *pStateObjectToGrowFrom,
24829 REFIID riid,
24830 _COM_Outptr_ void **ppNewStateObject);
24831
24832 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
24833 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
24834 ID3D12Device10 * This,
24835 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
24836 _In_ REFIID riid,
24837 _COM_Outptr_ void **ppSession);
24838
24839 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
24840#if !defined(_WIN32)
24841 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24842 ID3D12Device10 * This,
24843 UINT visibleMask,
24844 UINT numResourceDescs,
24845 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24846 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24847
24848#else
24849 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
24850 ID3D12Device10 * This,
24851 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
24852 UINT visibleMask,
24853 UINT numResourceDescs,
24854 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
24855 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
24856
24857#endif
24858
24859 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
24860 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
24861 ID3D12Device10 * This,
24862 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24863 D3D12_HEAP_FLAGS HeapFlags,
24864 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24865 D3D12_RESOURCE_STATES InitialResourceState,
24866 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24867 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24868 REFIID riidResource,
24869 _COM_Outptr_opt_ void **ppvResource);
24870
24871 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
24872 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
24873 ID3D12Device10 * This,
24874 _In_ ID3D12Heap *pHeap,
24875 UINT64 HeapOffset,
24876 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24877 D3D12_RESOURCE_STATES InitialState,
24878 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24879 REFIID riid,
24880 _COM_Outptr_opt_ void **ppvResource);
24881
24882 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
24883 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
24884 ID3D12Device10 * This,
24885 _In_opt_ ID3D12Resource *pTargetedResource,
24886 _In_opt_ ID3D12Resource *pFeedbackResource,
24887 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
24888
24889 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
24890 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
24891 ID3D12Device10 * This,
24892 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
24893 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
24894 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
24895 UINT64 BaseOffset,
24896 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
24897 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
24898 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
24899 _Out_opt_ UINT64 *pTotalBytes);
24900
24901 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
24902 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
24903 ID3D12Device10 * This,
24904 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
24905 REFIID riid,
24906 _COM_Outptr_opt_ void **ppvSession);
24907
24908 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
24909 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
24910 ID3D12Device10 * This,
24911 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
24912 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
24913
24914 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
24915 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
24916 ID3D12Device10 * This,
24917 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
24918 REFIID CreatorID,
24919 REFIID riid,
24920 _COM_Outptr_ void **ppCommandQueue);
24921
24922 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
24923 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
24924 ID3D12Device10 * This,
24925 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
24926 D3D12_HEAP_FLAGS HeapFlags,
24927 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24928 D3D12_BARRIER_LAYOUT InitialLayout,
24929 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24930 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24931 UINT32 NumCastableFormats,
24932 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24933 REFIID riidResource,
24934 _COM_Outptr_opt_ void **ppvResource);
24935
24936 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
24937 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
24938 ID3D12Device10 * This,
24939 _In_ ID3D12Heap *pHeap,
24940 UINT64 HeapOffset,
24941 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
24942 D3D12_BARRIER_LAYOUT InitialLayout,
24943 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24944 UINT32 NumCastableFormats,
24945 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24946 REFIID riid,
24947 _COM_Outptr_opt_ void **ppvResource);
24948
24949 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
24950 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
24951 ID3D12Device10 * This,
24952 _In_ const D3D12_RESOURCE_DESC *pDesc,
24953 D3D12_BARRIER_LAYOUT InitialLayout,
24954 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
24955 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
24956 UINT32 NumCastableFormats,
24957 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
24958 REFIID riid,
24959 _COM_Outptr_opt_ void **ppvResource);
24960
24961 END_INTERFACE
24962 } ID3D12Device10Vtbl;
24963
24964 interface ID3D12Device10
24965 {
24966 CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl;
24967 };
24968
24969
24970
24971#ifdef COBJMACROS
24972
24973
24974#define ID3D12Device10_QueryInterface(This,riid,ppvObject) \
24975 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
24976
24977#define ID3D12Device10_AddRef(This) \
24978 ( (This)->lpVtbl -> AddRef(This) )
24979
24980#define ID3D12Device10_Release(This) \
24981 ( (This)->lpVtbl -> Release(This) )
24982
24983
24984#define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \
24985 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
24986
24987#define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \
24988 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
24989
24990#define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \
24991 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
24992
24993#define ID3D12Device10_SetName(This,Name) \
24994 ( (This)->lpVtbl -> SetName(This,Name) )
24995
24996
24997#define ID3D12Device10_GetNodeCount(This) \
24998 ( (This)->lpVtbl -> GetNodeCount(This) )
24999
25000#define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
25001 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
25002
25003#define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
25004 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
25005
25006#define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
25007 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
25008
25009#define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
25010 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
25011
25012#define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
25013 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
25014
25015#define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
25016 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
25017
25018#define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
25019 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
25020
25021#define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
25022 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
25023
25024#define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
25025 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
25026
25027#define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \
25028 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
25029
25030#define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
25031 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
25032
25033#define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
25034 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
25035
25036#define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
25037 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
25038
25039#define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
25040 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
25041
25042#define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \
25043 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
25044
25045#define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
25046 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
25047
25048#define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
25049 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
25050#if !defined(_WIN32)
25051
25052#define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
25053 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
25054#else
25055#define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
25056 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
25057#endif
25058#if !defined(_WIN32)
25059
25060#define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \
25061 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
25062#else
25063#define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
25064 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
25065#endif
25066
25067#define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
25068 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
25069
25070#define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \
25071 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
25072
25073#define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25074 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25075
25076#define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25077 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25078
25079#define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
25080 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
25081
25082#define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
25083 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
25084
25085#define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
25086 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
25087
25088#define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \
25089 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
25090
25091#define ID3D12Device10_Evict(This,NumObjects,ppObjects) \
25092 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
25093
25094#define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \
25095 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
25096
25097#define ID3D12Device10_GetDeviceRemovedReason(This) \
25098 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
25099
25100#define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25101 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25102
25103#define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
25104 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
25105
25106#define ID3D12Device10_SetStablePowerState(This,Enable) \
25107 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
25108
25109#define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
25110 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
25111
25112#define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
25113 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
25114#if !defined(_WIN32)
25115
25116#define ID3D12Device10_GetAdapterLuid(This) \
25117 ( (This)->lpVtbl -> GetAdapterLuid(This) )
25118#else
25119#define ID3D12Device10_GetAdapterLuid(This,RetVal) \
25120 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
25121#endif
25122
25123
25124#define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
25125 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
25126
25127#define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
25128 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
25129
25130#define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
25131 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
25132
25133
25134#define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
25135 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
25136
25137
25138#define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
25139 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
25140
25141#define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
25142 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
25143
25144#define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
25145 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
25146
25147
25148#define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
25149 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
25150
25151#define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
25152 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
25153
25154#define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25155 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25156
25157#define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
25158 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
25159
25160#define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
25161 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
25162#if !defined(_WIN32)
25163
25164#define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25165 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25166#else
25167#define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25168 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25169#endif
25170
25171
25172#define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
25173 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
25174
25175#define ID3D12Device10_RemoveDevice(This) \
25176 ( (This)->lpVtbl -> RemoveDevice(This) )
25177
25178#define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
25179 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
25180
25181#define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
25182 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
25183
25184#define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
25185 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
25186
25187#define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \
25188 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
25189
25190#define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
25191 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
25192
25193#define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
25194 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
25195
25196
25197#define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
25198 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
25199
25200
25201#define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
25202 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
25203
25204#define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
25205 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
25206
25207#if !defined(_WIN32)
25208
25209#define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25210 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25211#else
25212#define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
25213 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
25214#endif
25215
25216#define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
25217 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
25218
25219#define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
25220 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
25221
25222#define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
25223 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
25224
25225#define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
25226 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
25227
25228
25229#define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
25230 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
25231
25232#define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \
25233 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
25234
25235#define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
25236 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
25237
25238
25239#define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
25240 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
25241
25242#define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25243 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25244
25245#define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
25246 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
25247
25248#endif /* COBJMACROS */
25249
25250
25251#endif /* C style interface */
25252
25253
25254
25255
25256#endif /* __ID3D12Device10_INTERFACE_DEFINED__ */
25257
25258
25259#ifndef __ID3D12Device11_INTERFACE_DEFINED__
25260#define __ID3D12Device11_INTERFACE_DEFINED__
25261
25262/* interface ID3D12Device11 */
25263/* [unique][local][object][uuid] */
25264
25265
25266EXTERN_C const IID IID_ID3D12Device11;
25267
25268#if defined(__cplusplus) && !defined(CINTERFACE)
25269
25270 MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39")
25271 ID3D12Device11 : public ID3D12Device10
25272 {
25273 public:
25274 virtual void STDMETHODCALLTYPE CreateSampler2(
25275 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
25276 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
25277
25278 };
25279
25280
25281#else /* C style interface */
25282
25283 typedef struct ID3D12Device11Vtbl
25284 {
25285 BEGIN_INTERFACE
25286
25287 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
25288 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
25289 ID3D12Device11 * This,
25290 REFIID riid,
25291 _COM_Outptr_ void **ppvObject);
25292
25293 DECLSPEC_XFGVIRT(IUnknown, AddRef)
25294 ULONG ( STDMETHODCALLTYPE *AddRef )(
25295 ID3D12Device11 * This);
25296
25297 DECLSPEC_XFGVIRT(IUnknown, Release)
25298 ULONG ( STDMETHODCALLTYPE *Release )(
25299 ID3D12Device11 * This);
25300
25301 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
25302 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
25303 ID3D12Device11 * This,
25304 _In_ REFGUID guid,
25305 _Inout_ UINT *pDataSize,
25306 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
25307
25308 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
25309 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
25310 ID3D12Device11 * This,
25311 _In_ REFGUID guid,
25312 _In_ UINT DataSize,
25313 _In_reads_bytes_opt_( DataSize ) const void *pData);
25314
25315 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
25316 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
25317 ID3D12Device11 * This,
25318 _In_ REFGUID guid,
25319 _In_opt_ const IUnknown *pData);
25320
25321 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
25322 HRESULT ( STDMETHODCALLTYPE *SetName )(
25323 ID3D12Device11 * This,
25324 _In_z_ LPCWSTR Name);
25325
25326 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
25327 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
25328 ID3D12Device11 * This);
25329
25330 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
25331 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
25332 ID3D12Device11 * This,
25333 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25334 REFIID riid,
25335 _COM_Outptr_ void **ppCommandQueue);
25336
25337 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
25338 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
25339 ID3D12Device11 * This,
25340 _In_ D3D12_COMMAND_LIST_TYPE type,
25341 REFIID riid,
25342 _COM_Outptr_ void **ppCommandAllocator);
25343
25344 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
25345 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
25346 ID3D12Device11 * This,
25347 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
25348 REFIID riid,
25349 _COM_Outptr_ void **ppPipelineState);
25350
25351 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
25352 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
25353 ID3D12Device11 * This,
25354 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
25355 REFIID riid,
25356 _COM_Outptr_ void **ppPipelineState);
25357
25358 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
25359 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
25360 ID3D12Device11 * This,
25361 _In_ UINT nodeMask,
25362 _In_ D3D12_COMMAND_LIST_TYPE type,
25363 _In_ ID3D12CommandAllocator *pCommandAllocator,
25364 _In_opt_ ID3D12PipelineState *pInitialState,
25365 REFIID riid,
25366 _COM_Outptr_ void **ppCommandList);
25367
25368 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
25369 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
25370 ID3D12Device11 * This,
25371 D3D12_FEATURE Feature,
25372 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
25373 UINT FeatureSupportDataSize);
25374
25375 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
25376 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
25377 ID3D12Device11 * This,
25378 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
25379 REFIID riid,
25380 _COM_Outptr_ void **ppvHeap);
25381
25382 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
25383 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
25384 ID3D12Device11 * This,
25385 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
25386
25387 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
25388 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
25389 ID3D12Device11 * This,
25390 _In_ UINT nodeMask,
25391 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
25392 _In_ SIZE_T blobLengthInBytes,
25393 REFIID riid,
25394 _COM_Outptr_ void **ppvRootSignature);
25395
25396 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
25397 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
25398 ID3D12Device11 * This,
25399 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
25400 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25401
25402 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
25403 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
25404 ID3D12Device11 * This,
25405 _In_opt_ ID3D12Resource *pResource,
25406 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
25407 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25408
25409 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
25410 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
25411 ID3D12Device11 * This,
25412 _In_opt_ ID3D12Resource *pResource,
25413 _In_opt_ ID3D12Resource *pCounterResource,
25414 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
25415 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25416
25417 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
25418 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
25419 ID3D12Device11 * This,
25420 _In_opt_ ID3D12Resource *pResource,
25421 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
25422 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25423
25424 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
25425 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
25426 ID3D12Device11 * This,
25427 _In_opt_ ID3D12Resource *pResource,
25428 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
25429 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25430
25431 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
25432 void ( STDMETHODCALLTYPE *CreateSampler )(
25433 ID3D12Device11 * This,
25434 _In_ const D3D12_SAMPLER_DESC *pDesc,
25435 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25436
25437 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
25438 void ( STDMETHODCALLTYPE *CopyDescriptors )(
25439 ID3D12Device11 * This,
25440 _In_ UINT NumDestDescriptorRanges,
25441 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
25442 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
25443 _In_ UINT NumSrcDescriptorRanges,
25444 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
25445 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
25446 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25447
25448 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
25449 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
25450 ID3D12Device11 * This,
25451 _In_ UINT NumDescriptors,
25452 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
25453 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
25454 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
25455
25456 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
25457#if !defined(_WIN32)
25458 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25459 ID3D12Device11 * This,
25460 _In_ UINT visibleMask,
25461 _In_ UINT numResourceDescs,
25462 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25463
25464#else
25465 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
25466 ID3D12Device11 * This,
25467 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25468 _In_ UINT visibleMask,
25469 _In_ UINT numResourceDescs,
25470 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
25471
25472#endif
25473
25474 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
25475#if !defined(_WIN32)
25476 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25477 ID3D12Device11 * This,
25478 _In_ UINT nodeMask,
25479 D3D12_HEAP_TYPE heapType);
25480
25481#else
25482 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
25483 ID3D12Device11 * This,
25484 D3D12_HEAP_PROPERTIES * RetVal,
25485 _In_ UINT nodeMask,
25486 D3D12_HEAP_TYPE heapType);
25487
25488#endif
25489
25490 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
25491 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
25492 ID3D12Device11 * This,
25493 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25494 D3D12_HEAP_FLAGS HeapFlags,
25495 _In_ const D3D12_RESOURCE_DESC *pDesc,
25496 D3D12_RESOURCE_STATES InitialResourceState,
25497 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25498 REFIID riidResource,
25499 _COM_Outptr_opt_ void **ppvResource);
25500
25501 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
25502 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
25503 ID3D12Device11 * This,
25504 _In_ const D3D12_HEAP_DESC *pDesc,
25505 REFIID riid,
25506 _COM_Outptr_opt_ void **ppvHeap);
25507
25508 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
25509 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
25510 ID3D12Device11 * This,
25511 _In_ ID3D12Heap *pHeap,
25512 UINT64 HeapOffset,
25513 _In_ const D3D12_RESOURCE_DESC *pDesc,
25514 D3D12_RESOURCE_STATES InitialState,
25515 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25516 REFIID riid,
25517 _COM_Outptr_opt_ void **ppvResource);
25518
25519 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
25520 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
25521 ID3D12Device11 * This,
25522 _In_ const D3D12_RESOURCE_DESC *pDesc,
25523 D3D12_RESOURCE_STATES InitialState,
25524 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25525 REFIID riid,
25526 _COM_Outptr_opt_ void **ppvResource);
25527
25528 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
25529 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
25530 ID3D12Device11 * This,
25531 _In_ ID3D12DeviceChild *pObject,
25532 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
25533 DWORD Access,
25534 _In_opt_ LPCWSTR Name,
25535 _Out_ HANDLE *pHandle);
25536
25537 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
25538 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
25539 ID3D12Device11 * This,
25540 _In_ HANDLE NTHandle,
25541 REFIID riid,
25542 _COM_Outptr_opt_ void **ppvObj);
25543
25544 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
25545 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
25546 ID3D12Device11 * This,
25547 _In_ LPCWSTR Name,
25548 DWORD Access,
25549 /* [annotation][out] */
25550 _Out_ HANDLE *pNTHandle);
25551
25552 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
25553 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
25554 ID3D12Device11 * This,
25555 UINT NumObjects,
25556 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25557
25558 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
25559 HRESULT ( STDMETHODCALLTYPE *Evict )(
25560 ID3D12Device11 * This,
25561 UINT NumObjects,
25562 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
25563
25564 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
25565 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
25566 ID3D12Device11 * This,
25567 UINT64 InitialValue,
25568 D3D12_FENCE_FLAGS Flags,
25569 REFIID riid,
25570 _COM_Outptr_ void **ppFence);
25571
25572 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
25573 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
25574 ID3D12Device11 * This);
25575
25576 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
25577 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
25578 ID3D12Device11 * This,
25579 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
25580 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25581 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25582 UINT64 BaseOffset,
25583 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25584 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25585 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25586 _Out_opt_ UINT64 *pTotalBytes);
25587
25588 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
25589 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
25590 ID3D12Device11 * This,
25591 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
25592 REFIID riid,
25593 _COM_Outptr_opt_ void **ppvHeap);
25594
25595 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
25596 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
25597 ID3D12Device11 * This,
25598 BOOL Enable);
25599
25600 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
25601 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
25602 ID3D12Device11 * This,
25603 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
25604 _In_opt_ ID3D12RootSignature *pRootSignature,
25605 REFIID riid,
25606 _COM_Outptr_opt_ void **ppvCommandSignature);
25607
25608 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
25609 void ( STDMETHODCALLTYPE *GetResourceTiling )(
25610 ID3D12Device11 * This,
25611 _In_ ID3D12Resource *pTiledResource,
25612 _Out_opt_ UINT *pNumTilesForEntireResource,
25613 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
25614 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
25615 _Inout_opt_ UINT *pNumSubresourceTilings,
25616 _In_ UINT FirstSubresourceTilingToGet,
25617 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
25618
25619 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
25620#if !defined(_WIN32)
25621 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
25622 ID3D12Device11 * This);
25623
25624#else
25625 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
25626 ID3D12Device11 * This,
25627 LUID * RetVal);
25628
25629#endif
25630
25631 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
25632 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
25633 ID3D12Device11 * This,
25634 _In_reads_(BlobLength) const void *pLibraryBlob,
25635 SIZE_T BlobLength,
25636 REFIID riid,
25637 _COM_Outptr_ void **ppPipelineLibrary);
25638
25639 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
25640 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
25641 ID3D12Device11 * This,
25642 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
25643 _In_reads_(NumFences) const UINT64 *pFenceValues,
25644 UINT NumFences,
25645 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
25646 HANDLE hEvent);
25647
25648 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
25649 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
25650 ID3D12Device11 * This,
25651 UINT NumObjects,
25652 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25653 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
25654
25655 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
25656 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
25657 ID3D12Device11 * This,
25658 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
25659 REFIID riid,
25660 _COM_Outptr_ void **ppPipelineState);
25661
25662 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
25663 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
25664 ID3D12Device11 * This,
25665 _In_ const void *pAddress,
25666 REFIID riid,
25667 _COM_Outptr_ void **ppvHeap);
25668
25669 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
25670 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
25671 ID3D12Device11 * This,
25672 _In_ HANDLE hFileMapping,
25673 REFIID riid,
25674 _COM_Outptr_ void **ppvHeap);
25675
25676 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
25677 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
25678 ID3D12Device11 * This,
25679 D3D12_RESIDENCY_FLAGS Flags,
25680 UINT NumObjects,
25681 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
25682 _In_ ID3D12Fence *pFenceToSignal,
25683 UINT64 FenceValueToSignal);
25684
25685 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
25686 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
25687 ID3D12Device11 * This,
25688 _In_ UINT nodeMask,
25689 _In_ D3D12_COMMAND_LIST_TYPE type,
25690 _In_ D3D12_COMMAND_LIST_FLAGS flags,
25691 REFIID riid,
25692 _COM_Outptr_ void **ppCommandList);
25693
25694 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
25695 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
25696 ID3D12Device11 * This,
25697 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
25698 _In_ REFIID riid,
25699 _COM_Outptr_ void **ppSession);
25700
25701 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
25702 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
25703 ID3D12Device11 * This,
25704 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25705 D3D12_HEAP_FLAGS HeapFlags,
25706 _In_ const D3D12_RESOURCE_DESC *pDesc,
25707 D3D12_RESOURCE_STATES InitialResourceState,
25708 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25709 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25710 REFIID riidResource,
25711 _COM_Outptr_opt_ void **ppvResource);
25712
25713 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
25714 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
25715 ID3D12Device11 * This,
25716 _In_ const D3D12_HEAP_DESC *pDesc,
25717 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25718 REFIID riid,
25719 _COM_Outptr_opt_ void **ppvHeap);
25720
25721 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
25722 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
25723 ID3D12Device11 * This,
25724 _In_ const D3D12_RESOURCE_DESC *pDesc,
25725 D3D12_RESOURCE_STATES InitialState,
25726 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25727 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25728 REFIID riid,
25729 _COM_Outptr_opt_ void **ppvResource);
25730
25731 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
25732#if !defined(_WIN32)
25733 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25734 ID3D12Device11 * This,
25735 UINT visibleMask,
25736 UINT numResourceDescs,
25737 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25738 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25739
25740#else
25741 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
25742 ID3D12Device11 * This,
25743 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25744 UINT visibleMask,
25745 UINT numResourceDescs,
25746 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
25747 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25748
25749#endif
25750
25751 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
25752 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
25753 ID3D12Device11 * This,
25754 _In_ ID3D12LifetimeOwner *pOwner,
25755 REFIID riid,
25756 _COM_Outptr_ void **ppvTracker);
25757
25758 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
25759 void ( STDMETHODCALLTYPE *RemoveDevice )(
25760 ID3D12Device11 * This);
25761
25762 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
25763 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
25764 ID3D12Device11 * This,
25765 _Inout_ UINT *pNumMetaCommands,
25766 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
25767
25768 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
25769 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
25770 ID3D12Device11 * This,
25771 _In_ REFGUID CommandId,
25772 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
25773 _Out_opt_ UINT *pTotalStructureSizeInBytes,
25774 _Inout_ UINT *pParameterCount,
25775 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
25776
25777 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
25778 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
25779 ID3D12Device11 * This,
25780 _In_ REFGUID CommandId,
25781 _In_ UINT NodeMask,
25782 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
25783 _In_ SIZE_T CreationParametersDataSizeInBytes,
25784 REFIID riid,
25785 _COM_Outptr_ void **ppMetaCommand);
25786
25787 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
25788 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
25789 ID3D12Device11 * This,
25790 const D3D12_STATE_OBJECT_DESC *pDesc,
25791 REFIID riid,
25792 _COM_Outptr_ void **ppStateObject);
25793
25794 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
25795 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
25796 ID3D12Device11 * This,
25797 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
25798 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
25799
25800 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
25801 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
25802 ID3D12Device11 * This,
25803 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
25804 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
25805
25806 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
25807 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
25808 ID3D12Device11 * This,
25809 D3D12_BACKGROUND_PROCESSING_MODE Mode,
25810 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
25811 _In_opt_ HANDLE hEventToSignalUponCompletion,
25812 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
25813
25814 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
25815 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
25816 ID3D12Device11 * This,
25817 const D3D12_STATE_OBJECT_DESC *pAddition,
25818 ID3D12StateObject *pStateObjectToGrowFrom,
25819 REFIID riid,
25820 _COM_Outptr_ void **ppNewStateObject);
25821
25822 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
25823 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
25824 ID3D12Device11 * This,
25825 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
25826 _In_ REFIID riid,
25827 _COM_Outptr_ void **ppSession);
25828
25829 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
25830#if !defined(_WIN32)
25831 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25832 ID3D12Device11 * This,
25833 UINT visibleMask,
25834 UINT numResourceDescs,
25835 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25836 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25837
25838#else
25839 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
25840 ID3D12Device11 * This,
25841 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
25842 UINT visibleMask,
25843 UINT numResourceDescs,
25844 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
25845 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
25846
25847#endif
25848
25849 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
25850 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
25851 ID3D12Device11 * This,
25852 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25853 D3D12_HEAP_FLAGS HeapFlags,
25854 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25855 D3D12_RESOURCE_STATES InitialResourceState,
25856 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25857 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25858 REFIID riidResource,
25859 _COM_Outptr_opt_ void **ppvResource);
25860
25861 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
25862 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
25863 ID3D12Device11 * This,
25864 _In_ ID3D12Heap *pHeap,
25865 UINT64 HeapOffset,
25866 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25867 D3D12_RESOURCE_STATES InitialState,
25868 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25869 REFIID riid,
25870 _COM_Outptr_opt_ void **ppvResource);
25871
25872 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
25873 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
25874 ID3D12Device11 * This,
25875 _In_opt_ ID3D12Resource *pTargetedResource,
25876 _In_opt_ ID3D12Resource *pFeedbackResource,
25877 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25878
25879 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
25880 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
25881 ID3D12Device11 * This,
25882 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
25883 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
25884 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
25885 UINT64 BaseOffset,
25886 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
25887 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
25888 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
25889 _Out_opt_ UINT64 *pTotalBytes);
25890
25891 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
25892 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
25893 ID3D12Device11 * This,
25894 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
25895 REFIID riid,
25896 _COM_Outptr_opt_ void **ppvSession);
25897
25898 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
25899 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
25900 ID3D12Device11 * This,
25901 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
25902 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
25903
25904 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
25905 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
25906 ID3D12Device11 * This,
25907 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
25908 REFIID CreatorID,
25909 REFIID riid,
25910 _COM_Outptr_ void **ppCommandQueue);
25911
25912 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
25913 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
25914 ID3D12Device11 * This,
25915 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
25916 D3D12_HEAP_FLAGS HeapFlags,
25917 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25918 D3D12_BARRIER_LAYOUT InitialLayout,
25919 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25920 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25921 UINT32 NumCastableFormats,
25922 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25923 REFIID riidResource,
25924 _COM_Outptr_opt_ void **ppvResource);
25925
25926 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
25927 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
25928 ID3D12Device11 * This,
25929 _In_ ID3D12Heap *pHeap,
25930 UINT64 HeapOffset,
25931 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
25932 D3D12_BARRIER_LAYOUT InitialLayout,
25933 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25934 UINT32 NumCastableFormats,
25935 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25936 REFIID riid,
25937 _COM_Outptr_opt_ void **ppvResource);
25938
25939 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
25940 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
25941 ID3D12Device11 * This,
25942 _In_ const D3D12_RESOURCE_DESC *pDesc,
25943 D3D12_BARRIER_LAYOUT InitialLayout,
25944 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
25945 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
25946 UINT32 NumCastableFormats,
25947 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
25948 REFIID riid,
25949 _COM_Outptr_opt_ void **ppvResource);
25950
25951 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
25952 void ( STDMETHODCALLTYPE *CreateSampler2 )(
25953 ID3D12Device11 * This,
25954 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
25955 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
25956
25957 END_INTERFACE
25958 } ID3D12Device11Vtbl;
25959
25960 interface ID3D12Device11
25961 {
25962 CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl;
25963 };
25964
25965
25966
25967#ifdef COBJMACROS
25968
25969
25970#define ID3D12Device11_QueryInterface(This,riid,ppvObject) \
25971 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
25972
25973#define ID3D12Device11_AddRef(This) \
25974 ( (This)->lpVtbl -> AddRef(This) )
25975
25976#define ID3D12Device11_Release(This) \
25977 ( (This)->lpVtbl -> Release(This) )
25978
25979
25980#define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \
25981 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
25982
25983#define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \
25984 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
25985
25986#define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \
25987 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
25988
25989#define ID3D12Device11_SetName(This,Name) \
25990 ( (This)->lpVtbl -> SetName(This,Name) )
25991
25992
25993#define ID3D12Device11_GetNodeCount(This) \
25994 ( (This)->lpVtbl -> GetNodeCount(This) )
25995
25996#define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
25997 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
25998
25999#define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
26000 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
26001
26002#define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
26003 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
26004
26005#define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
26006 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
26007
26008#define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
26009 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
26010
26011#define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
26012 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
26013
26014#define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
26015 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
26016
26017#define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
26018 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
26019
26020#define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
26021 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
26022
26023#define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \
26024 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
26025
26026#define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
26027 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
26028
26029#define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
26030 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
26031
26032#define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
26033 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
26034
26035#define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
26036 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
26037
26038#define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \
26039 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
26040
26041#define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
26042 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
26043
26044#define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
26045 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
26046#if !defined(_WIN32)
26047
26048#define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
26049 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
26050#else
26051#define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
26052 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
26053#endif
26054#if !defined(_WIN32)
26055
26056#define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \
26057 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
26058#else
26059#define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
26060 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
26061#endif
26062
26063#define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
26064 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
26065
26066#define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \
26067 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
26068
26069#define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26070 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26071
26072#define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26073 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26074
26075#define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
26076 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
26077
26078#define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
26079 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
26080
26081#define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
26082 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
26083
26084#define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \
26085 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
26086
26087#define ID3D12Device11_Evict(This,NumObjects,ppObjects) \
26088 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
26089
26090#define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \
26091 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
26092
26093#define ID3D12Device11_GetDeviceRemovedReason(This) \
26094 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
26095
26096#define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26097 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26098
26099#define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
26100 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
26101
26102#define ID3D12Device11_SetStablePowerState(This,Enable) \
26103 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
26104
26105#define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
26106 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
26107
26108#define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
26109 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
26110#if !defined(_WIN32)
26111
26112#define ID3D12Device11_GetAdapterLuid(This) \
26113 ( (This)->lpVtbl -> GetAdapterLuid(This) )
26114#else
26115#define ID3D12Device11_GetAdapterLuid(This,RetVal) \
26116 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
26117#endif
26118
26119
26120#define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
26121 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
26122
26123#define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
26124 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
26125
26126#define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
26127 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
26128
26129
26130#define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
26131 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
26132
26133
26134#define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
26135 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
26136
26137#define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
26138 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
26139
26140#define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
26141 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
26142
26143
26144#define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
26145 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
26146
26147#define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
26148 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
26149
26150#define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26151 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26152
26153#define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
26154 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
26155
26156#define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
26157 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
26158#if !defined(_WIN32)
26159
26160#define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26161 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26162#else
26163#define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26164 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26165#endif
26166
26167
26168#define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
26169 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
26170
26171#define ID3D12Device11_RemoveDevice(This) \
26172 ( (This)->lpVtbl -> RemoveDevice(This) )
26173
26174#define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
26175 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
26176
26177#define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
26178 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
26179
26180#define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
26181 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
26182
26183#define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \
26184 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
26185
26186#define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
26187 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
26188
26189#define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
26190 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
26191
26192
26193#define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
26194 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
26195
26196
26197#define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
26198 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
26199
26200#define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
26201 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
26202
26203#if !defined(_WIN32)
26204
26205#define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26206 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26207#else
26208#define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
26209 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
26210#endif
26211
26212#define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
26213 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
26214
26215#define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
26216 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
26217
26218#define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
26219 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
26220
26221#define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
26222 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
26223
26224
26225#define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
26226 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
26227
26228#define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \
26229 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
26230
26231#define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
26232 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
26233
26234
26235#define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
26236 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
26237
26238#define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26239 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26240
26241#define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
26242 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
26243
26244
26245#define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \
26246 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
26247
26248#endif /* COBJMACROS */
26249
26250
26251#endif /* C style interface */
26252
26253
26254
26255
26256#endif /* __ID3D12Device11_INTERFACE_DEFINED__ */
26257
26258
26259#ifndef __ID3D12Device12_INTERFACE_DEFINED__
26260#define __ID3D12Device12_INTERFACE_DEFINED__
26261
26262/* interface ID3D12Device12 */
26263/* [unique][local][object][uuid] */
26264
26265
26266EXTERN_C const IID IID_ID3D12Device12;
26267
26268#if defined(__cplusplus) && !defined(CINTERFACE)
26269
26270 MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5")
26271 ID3D12Device12 : public ID3D12Device11
26272 {
26273 public:
26274#if defined(_MSC_VER) || !defined(_WIN32)
26275 virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3(
26276 UINT visibleMask,
26277 UINT numResourceDescs,
26278 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26279 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26280 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26281 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
26282#else
26283 virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3(
26284 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26285 UINT visibleMask,
26286 UINT numResourceDescs,
26287 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26288 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26289 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26290 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0;
26291#endif
26292
26293 };
26294
26295
26296#else /* C style interface */
26297
26298 typedef struct ID3D12Device12Vtbl
26299 {
26300 BEGIN_INTERFACE
26301
26302 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
26303 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
26304 ID3D12Device12 * This,
26305 REFIID riid,
26306 _COM_Outptr_ void **ppvObject);
26307
26308 DECLSPEC_XFGVIRT(IUnknown, AddRef)
26309 ULONG ( STDMETHODCALLTYPE *AddRef )(
26310 ID3D12Device12 * This);
26311
26312 DECLSPEC_XFGVIRT(IUnknown, Release)
26313 ULONG ( STDMETHODCALLTYPE *Release )(
26314 ID3D12Device12 * This);
26315
26316 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
26317 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
26318 ID3D12Device12 * This,
26319 _In_ REFGUID guid,
26320 _Inout_ UINT *pDataSize,
26321 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
26322
26323 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
26324 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
26325 ID3D12Device12 * This,
26326 _In_ REFGUID guid,
26327 _In_ UINT DataSize,
26328 _In_reads_bytes_opt_( DataSize ) const void *pData);
26329
26330 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
26331 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
26332 ID3D12Device12 * This,
26333 _In_ REFGUID guid,
26334 _In_opt_ const IUnknown *pData);
26335
26336 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
26337 HRESULT ( STDMETHODCALLTYPE *SetName )(
26338 ID3D12Device12 * This,
26339 _In_z_ LPCWSTR Name);
26340
26341 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
26342 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
26343 ID3D12Device12 * This);
26344
26345 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
26346 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
26347 ID3D12Device12 * This,
26348 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26349 REFIID riid,
26350 _COM_Outptr_ void **ppCommandQueue);
26351
26352 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
26353 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
26354 ID3D12Device12 * This,
26355 _In_ D3D12_COMMAND_LIST_TYPE type,
26356 REFIID riid,
26357 _COM_Outptr_ void **ppCommandAllocator);
26358
26359 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
26360 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
26361 ID3D12Device12 * This,
26362 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
26363 REFIID riid,
26364 _COM_Outptr_ void **ppPipelineState);
26365
26366 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
26367 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
26368 ID3D12Device12 * This,
26369 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
26370 REFIID riid,
26371 _COM_Outptr_ void **ppPipelineState);
26372
26373 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
26374 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
26375 ID3D12Device12 * This,
26376 _In_ UINT nodeMask,
26377 _In_ D3D12_COMMAND_LIST_TYPE type,
26378 _In_ ID3D12CommandAllocator *pCommandAllocator,
26379 _In_opt_ ID3D12PipelineState *pInitialState,
26380 REFIID riid,
26381 _COM_Outptr_ void **ppCommandList);
26382
26383 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
26384 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
26385 ID3D12Device12 * This,
26386 D3D12_FEATURE Feature,
26387 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
26388 UINT FeatureSupportDataSize);
26389
26390 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
26391 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
26392 ID3D12Device12 * This,
26393 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
26394 REFIID riid,
26395 _COM_Outptr_ void **ppvHeap);
26396
26397 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
26398 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
26399 ID3D12Device12 * This,
26400 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
26401
26402 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
26403 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
26404 ID3D12Device12 * This,
26405 _In_ UINT nodeMask,
26406 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
26407 _In_ SIZE_T blobLengthInBytes,
26408 REFIID riid,
26409 _COM_Outptr_ void **ppvRootSignature);
26410
26411 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
26412 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
26413 ID3D12Device12 * This,
26414 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
26415 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26416
26417 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
26418 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
26419 ID3D12Device12 * This,
26420 _In_opt_ ID3D12Resource *pResource,
26421 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
26422 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26423
26424 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
26425 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
26426 ID3D12Device12 * This,
26427 _In_opt_ ID3D12Resource *pResource,
26428 _In_opt_ ID3D12Resource *pCounterResource,
26429 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
26430 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26431
26432 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
26433 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
26434 ID3D12Device12 * This,
26435 _In_opt_ ID3D12Resource *pResource,
26436 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
26437 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26438
26439 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
26440 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
26441 ID3D12Device12 * This,
26442 _In_opt_ ID3D12Resource *pResource,
26443 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
26444 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26445
26446 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
26447 void ( STDMETHODCALLTYPE *CreateSampler )(
26448 ID3D12Device12 * This,
26449 _In_ const D3D12_SAMPLER_DESC *pDesc,
26450 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26451
26452 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
26453 void ( STDMETHODCALLTYPE *CopyDescriptors )(
26454 ID3D12Device12 * This,
26455 _In_ UINT NumDestDescriptorRanges,
26456 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
26457 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
26458 _In_ UINT NumSrcDescriptorRanges,
26459 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
26460 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
26461 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26462
26463 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
26464 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
26465 ID3D12Device12 * This,
26466 _In_ UINT NumDescriptors,
26467 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
26468 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
26469 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
26470
26471 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
26472#if !defined(_WIN32)
26473 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26474 ID3D12Device12 * This,
26475 _In_ UINT visibleMask,
26476 _In_ UINT numResourceDescs,
26477 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26478
26479#else
26480 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
26481 ID3D12Device12 * This,
26482 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26483 _In_ UINT visibleMask,
26484 _In_ UINT numResourceDescs,
26485 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
26486
26487#endif
26488
26489 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
26490#if !defined(_WIN32)
26491 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26492 ID3D12Device12 * This,
26493 _In_ UINT nodeMask,
26494 D3D12_HEAP_TYPE heapType);
26495
26496#else
26497 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
26498 ID3D12Device12 * This,
26499 D3D12_HEAP_PROPERTIES * RetVal,
26500 _In_ UINT nodeMask,
26501 D3D12_HEAP_TYPE heapType);
26502
26503#endif
26504
26505 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
26506 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
26507 ID3D12Device12 * This,
26508 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26509 D3D12_HEAP_FLAGS HeapFlags,
26510 _In_ const D3D12_RESOURCE_DESC *pDesc,
26511 D3D12_RESOURCE_STATES InitialResourceState,
26512 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26513 REFIID riidResource,
26514 _COM_Outptr_opt_ void **ppvResource);
26515
26516 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
26517 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
26518 ID3D12Device12 * This,
26519 _In_ const D3D12_HEAP_DESC *pDesc,
26520 REFIID riid,
26521 _COM_Outptr_opt_ void **ppvHeap);
26522
26523 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
26524 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
26525 ID3D12Device12 * This,
26526 _In_ ID3D12Heap *pHeap,
26527 UINT64 HeapOffset,
26528 _In_ const D3D12_RESOURCE_DESC *pDesc,
26529 D3D12_RESOURCE_STATES InitialState,
26530 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26531 REFIID riid,
26532 _COM_Outptr_opt_ void **ppvResource);
26533
26534 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
26535 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
26536 ID3D12Device12 * This,
26537 _In_ const D3D12_RESOURCE_DESC *pDesc,
26538 D3D12_RESOURCE_STATES InitialState,
26539 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26540 REFIID riid,
26541 _COM_Outptr_opt_ void **ppvResource);
26542
26543 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
26544 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
26545 ID3D12Device12 * This,
26546 _In_ ID3D12DeviceChild *pObject,
26547 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
26548 DWORD Access,
26549 _In_opt_ LPCWSTR Name,
26550 _Out_ HANDLE *pHandle);
26551
26552 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
26553 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
26554 ID3D12Device12 * This,
26555 _In_ HANDLE NTHandle,
26556 REFIID riid,
26557 _COM_Outptr_opt_ void **ppvObj);
26558
26559 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
26560 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
26561 ID3D12Device12 * This,
26562 _In_ LPCWSTR Name,
26563 DWORD Access,
26564 /* [annotation][out] */
26565 _Out_ HANDLE *pNTHandle);
26566
26567 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
26568 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
26569 ID3D12Device12 * This,
26570 UINT NumObjects,
26571 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26572
26573 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
26574 HRESULT ( STDMETHODCALLTYPE *Evict )(
26575 ID3D12Device12 * This,
26576 UINT NumObjects,
26577 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
26578
26579 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
26580 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
26581 ID3D12Device12 * This,
26582 UINT64 InitialValue,
26583 D3D12_FENCE_FLAGS Flags,
26584 REFIID riid,
26585 _COM_Outptr_ void **ppFence);
26586
26587 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
26588 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
26589 ID3D12Device12 * This);
26590
26591 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
26592 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
26593 ID3D12Device12 * This,
26594 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
26595 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26596 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26597 UINT64 BaseOffset,
26598 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26599 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26600 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26601 _Out_opt_ UINT64 *pTotalBytes);
26602
26603 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
26604 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
26605 ID3D12Device12 * This,
26606 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
26607 REFIID riid,
26608 _COM_Outptr_opt_ void **ppvHeap);
26609
26610 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
26611 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
26612 ID3D12Device12 * This,
26613 BOOL Enable);
26614
26615 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
26616 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
26617 ID3D12Device12 * This,
26618 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
26619 _In_opt_ ID3D12RootSignature *pRootSignature,
26620 REFIID riid,
26621 _COM_Outptr_opt_ void **ppvCommandSignature);
26622
26623 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
26624 void ( STDMETHODCALLTYPE *GetResourceTiling )(
26625 ID3D12Device12 * This,
26626 _In_ ID3D12Resource *pTiledResource,
26627 _Out_opt_ UINT *pNumTilesForEntireResource,
26628 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
26629 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
26630 _Inout_opt_ UINT *pNumSubresourceTilings,
26631 _In_ UINT FirstSubresourceTilingToGet,
26632 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
26633
26634 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
26635#if !defined(_WIN32)
26636 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
26637 ID3D12Device12 * This);
26638
26639#else
26640 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
26641 ID3D12Device12 * This,
26642 LUID * RetVal);
26643
26644#endif
26645
26646 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
26647 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
26648 ID3D12Device12 * This,
26649 _In_reads_(BlobLength) const void *pLibraryBlob,
26650 SIZE_T BlobLength,
26651 REFIID riid,
26652 _COM_Outptr_ void **ppPipelineLibrary);
26653
26654 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
26655 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
26656 ID3D12Device12 * This,
26657 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
26658 _In_reads_(NumFences) const UINT64 *pFenceValues,
26659 UINT NumFences,
26660 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
26661 HANDLE hEvent);
26662
26663 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
26664 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
26665 ID3D12Device12 * This,
26666 UINT NumObjects,
26667 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26668 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
26669
26670 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
26671 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
26672 ID3D12Device12 * This,
26673 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
26674 REFIID riid,
26675 _COM_Outptr_ void **ppPipelineState);
26676
26677 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
26678 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
26679 ID3D12Device12 * This,
26680 _In_ const void *pAddress,
26681 REFIID riid,
26682 _COM_Outptr_ void **ppvHeap);
26683
26684 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
26685 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
26686 ID3D12Device12 * This,
26687 _In_ HANDLE hFileMapping,
26688 REFIID riid,
26689 _COM_Outptr_ void **ppvHeap);
26690
26691 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
26692 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
26693 ID3D12Device12 * This,
26694 D3D12_RESIDENCY_FLAGS Flags,
26695 UINT NumObjects,
26696 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
26697 _In_ ID3D12Fence *pFenceToSignal,
26698 UINT64 FenceValueToSignal);
26699
26700 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
26701 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
26702 ID3D12Device12 * This,
26703 _In_ UINT nodeMask,
26704 _In_ D3D12_COMMAND_LIST_TYPE type,
26705 _In_ D3D12_COMMAND_LIST_FLAGS flags,
26706 REFIID riid,
26707 _COM_Outptr_ void **ppCommandList);
26708
26709 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
26710 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
26711 ID3D12Device12 * This,
26712 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
26713 _In_ REFIID riid,
26714 _COM_Outptr_ void **ppSession);
26715
26716 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
26717 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
26718 ID3D12Device12 * This,
26719 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26720 D3D12_HEAP_FLAGS HeapFlags,
26721 _In_ const D3D12_RESOURCE_DESC *pDesc,
26722 D3D12_RESOURCE_STATES InitialResourceState,
26723 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26724 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26725 REFIID riidResource,
26726 _COM_Outptr_opt_ void **ppvResource);
26727
26728 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
26729 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
26730 ID3D12Device12 * This,
26731 _In_ const D3D12_HEAP_DESC *pDesc,
26732 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26733 REFIID riid,
26734 _COM_Outptr_opt_ void **ppvHeap);
26735
26736 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
26737 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
26738 ID3D12Device12 * This,
26739 _In_ const D3D12_RESOURCE_DESC *pDesc,
26740 D3D12_RESOURCE_STATES InitialState,
26741 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26742 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26743 REFIID riid,
26744 _COM_Outptr_opt_ void **ppvResource);
26745
26746 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
26747#if !defined(_WIN32)
26748 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26749 ID3D12Device12 * This,
26750 UINT visibleMask,
26751 UINT numResourceDescs,
26752 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26753 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26754
26755#else
26756 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
26757 ID3D12Device12 * This,
26758 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26759 UINT visibleMask,
26760 UINT numResourceDescs,
26761 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
26762 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26763
26764#endif
26765
26766 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
26767 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
26768 ID3D12Device12 * This,
26769 _In_ ID3D12LifetimeOwner *pOwner,
26770 REFIID riid,
26771 _COM_Outptr_ void **ppvTracker);
26772
26773 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
26774 void ( STDMETHODCALLTYPE *RemoveDevice )(
26775 ID3D12Device12 * This);
26776
26777 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
26778 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
26779 ID3D12Device12 * This,
26780 _Inout_ UINT *pNumMetaCommands,
26781 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
26782
26783 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
26784 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
26785 ID3D12Device12 * This,
26786 _In_ REFGUID CommandId,
26787 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
26788 _Out_opt_ UINT *pTotalStructureSizeInBytes,
26789 _Inout_ UINT *pParameterCount,
26790 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
26791
26792 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
26793 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
26794 ID3D12Device12 * This,
26795 _In_ REFGUID CommandId,
26796 _In_ UINT NodeMask,
26797 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
26798 _In_ SIZE_T CreationParametersDataSizeInBytes,
26799 REFIID riid,
26800 _COM_Outptr_ void **ppMetaCommand);
26801
26802 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
26803 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
26804 ID3D12Device12 * This,
26805 const D3D12_STATE_OBJECT_DESC *pDesc,
26806 REFIID riid,
26807 _COM_Outptr_ void **ppStateObject);
26808
26809 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
26810 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
26811 ID3D12Device12 * This,
26812 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
26813 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
26814
26815 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
26816 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
26817 ID3D12Device12 * This,
26818 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
26819 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
26820
26821 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
26822 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
26823 ID3D12Device12 * This,
26824 D3D12_BACKGROUND_PROCESSING_MODE Mode,
26825 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
26826 _In_opt_ HANDLE hEventToSignalUponCompletion,
26827 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
26828
26829 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
26830 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
26831 ID3D12Device12 * This,
26832 const D3D12_STATE_OBJECT_DESC *pAddition,
26833 ID3D12StateObject *pStateObjectToGrowFrom,
26834 REFIID riid,
26835 _COM_Outptr_ void **ppNewStateObject);
26836
26837 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
26838 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
26839 ID3D12Device12 * This,
26840 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
26841 _In_ REFIID riid,
26842 _COM_Outptr_ void **ppSession);
26843
26844 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
26845#if !defined(_WIN32)
26846 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26847 ID3D12Device12 * This,
26848 UINT visibleMask,
26849 UINT numResourceDescs,
26850 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26851 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26852
26853#else
26854 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
26855 ID3D12Device12 * This,
26856 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26857 UINT visibleMask,
26858 UINT numResourceDescs,
26859 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26860 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26861
26862#endif
26863
26864 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
26865 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
26866 ID3D12Device12 * This,
26867 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26868 D3D12_HEAP_FLAGS HeapFlags,
26869 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26870 D3D12_RESOURCE_STATES InitialResourceState,
26871 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26872 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26873 REFIID riidResource,
26874 _COM_Outptr_opt_ void **ppvResource);
26875
26876 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
26877 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
26878 ID3D12Device12 * This,
26879 _In_ ID3D12Heap *pHeap,
26880 UINT64 HeapOffset,
26881 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26882 D3D12_RESOURCE_STATES InitialState,
26883 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26884 REFIID riid,
26885 _COM_Outptr_opt_ void **ppvResource);
26886
26887 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
26888 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
26889 ID3D12Device12 * This,
26890 _In_opt_ ID3D12Resource *pTargetedResource,
26891 _In_opt_ ID3D12Resource *pFeedbackResource,
26892 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26893
26894 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
26895 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
26896 ID3D12Device12 * This,
26897 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
26898 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
26899 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
26900 UINT64 BaseOffset,
26901 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
26902 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
26903 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
26904 _Out_opt_ UINT64 *pTotalBytes);
26905
26906 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
26907 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
26908 ID3D12Device12 * This,
26909 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
26910 REFIID riid,
26911 _COM_Outptr_opt_ void **ppvSession);
26912
26913 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
26914 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
26915 ID3D12Device12 * This,
26916 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
26917 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
26918
26919 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
26920 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
26921 ID3D12Device12 * This,
26922 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
26923 REFIID CreatorID,
26924 REFIID riid,
26925 _COM_Outptr_ void **ppCommandQueue);
26926
26927 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
26928 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
26929 ID3D12Device12 * This,
26930 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
26931 D3D12_HEAP_FLAGS HeapFlags,
26932 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26933 D3D12_BARRIER_LAYOUT InitialLayout,
26934 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26935 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26936 UINT32 NumCastableFormats,
26937 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26938 REFIID riidResource,
26939 _COM_Outptr_opt_ void **ppvResource);
26940
26941 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
26942 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
26943 ID3D12Device12 * This,
26944 _In_ ID3D12Heap *pHeap,
26945 UINT64 HeapOffset,
26946 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
26947 D3D12_BARRIER_LAYOUT InitialLayout,
26948 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26949 UINT32 NumCastableFormats,
26950 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26951 REFIID riid,
26952 _COM_Outptr_opt_ void **ppvResource);
26953
26954 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
26955 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
26956 ID3D12Device12 * This,
26957 _In_ const D3D12_RESOURCE_DESC *pDesc,
26958 D3D12_BARRIER_LAYOUT InitialLayout,
26959 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
26960 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
26961 UINT32 NumCastableFormats,
26962 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
26963 REFIID riid,
26964 _COM_Outptr_opt_ void **ppvResource);
26965
26966 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
26967 void ( STDMETHODCALLTYPE *CreateSampler2 )(
26968 ID3D12Device12 * This,
26969 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
26970 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
26971
26972 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
26973#if !defined(_WIN32)
26974 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26975 ID3D12Device12 * This,
26976 UINT visibleMask,
26977 UINT numResourceDescs,
26978 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26979 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26980 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26981 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26982
26983#else
26984 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
26985 ID3D12Device12 * This,
26986 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
26987 UINT visibleMask,
26988 UINT numResourceDescs,
26989 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
26990 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
26991 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
26992 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
26993
26994#endif
26995
26996 END_INTERFACE
26997 } ID3D12Device12Vtbl;
26998
26999 interface ID3D12Device12
27000 {
27001 CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl;
27002 };
27003
27004
27005
27006#ifdef COBJMACROS
27007
27008
27009#define ID3D12Device12_QueryInterface(This,riid,ppvObject) \
27010 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
27011
27012#define ID3D12Device12_AddRef(This) \
27013 ( (This)->lpVtbl -> AddRef(This) )
27014
27015#define ID3D12Device12_Release(This) \
27016 ( (This)->lpVtbl -> Release(This) )
27017
27018
27019#define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \
27020 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
27021
27022#define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \
27023 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
27024
27025#define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \
27026 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
27027
27028#define ID3D12Device12_SetName(This,Name) \
27029 ( (This)->lpVtbl -> SetName(This,Name) )
27030
27031
27032#define ID3D12Device12_GetNodeCount(This) \
27033 ( (This)->lpVtbl -> GetNodeCount(This) )
27034
27035#define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
27036 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
27037
27038#define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
27039 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
27040
27041#define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
27042 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
27043
27044#define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
27045 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
27046
27047#define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
27048 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
27049
27050#define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
27051 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
27052
27053#define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
27054 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
27055
27056#define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
27057 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
27058
27059#define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
27060 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
27061
27062#define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \
27063 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
27064
27065#define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
27066 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
27067
27068#define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
27069 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
27070
27071#define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
27072 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
27073
27074#define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
27075 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
27076
27077#define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \
27078 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
27079
27080#define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
27081 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
27082
27083#define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
27084 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
27085#if !defined(_WIN32)
27086
27087#define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
27088 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
27089#else
27090#define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
27091 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
27092#endif
27093#if !defined(_WIN32)
27094
27095#define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \
27096 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
27097#else
27098#define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
27099 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
27100#endif
27101
27102#define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
27103 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
27104
27105#define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \
27106 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
27107
27108#define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27109 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27110
27111#define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27112 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27113
27114#define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
27115 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
27116
27117#define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
27118 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
27119
27120#define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
27121 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
27122
27123#define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \
27124 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
27125
27126#define ID3D12Device12_Evict(This,NumObjects,ppObjects) \
27127 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
27128
27129#define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \
27130 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
27131
27132#define ID3D12Device12_GetDeviceRemovedReason(This) \
27133 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
27134
27135#define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27136 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27137
27138#define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
27139 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
27140
27141#define ID3D12Device12_SetStablePowerState(This,Enable) \
27142 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
27143
27144#define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
27145 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
27146
27147#define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
27148 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
27149#if !defined(_WIN32)
27150
27151#define ID3D12Device12_GetAdapterLuid(This) \
27152 ( (This)->lpVtbl -> GetAdapterLuid(This) )
27153#else
27154#define ID3D12Device12_GetAdapterLuid(This,RetVal) \
27155 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
27156#endif
27157
27158
27159#define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
27160 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
27161
27162#define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
27163 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
27164
27165#define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
27166 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
27167
27168
27169#define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
27170 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
27171
27172
27173#define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
27174 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
27175
27176#define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
27177 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
27178
27179#define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
27180 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
27181
27182
27183#define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
27184 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
27185
27186#define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
27187 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
27188
27189#define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27190 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27191
27192#define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
27193 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
27194
27195#define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
27196 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
27197#if !defined(_WIN32)
27198
27199#define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27200 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27201#else
27202#define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27203 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27204#endif
27205
27206
27207#define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
27208 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
27209
27210#define ID3D12Device12_RemoveDevice(This) \
27211 ( (This)->lpVtbl -> RemoveDevice(This) )
27212
27213#define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
27214 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
27215
27216#define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
27217 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
27218
27219#define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
27220 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
27221
27222#define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \
27223 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
27224
27225#define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
27226 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
27227
27228#define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
27229 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
27230
27231
27232#define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
27233 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
27234
27235
27236#define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
27237 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
27238
27239#define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
27240 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
27241
27242#if !defined(_WIN32)
27243
27244#define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27245 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27246#else
27247#define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
27248 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
27249#endif
27250
27251#define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
27252 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
27253
27254#define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
27255 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
27256
27257#define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
27258 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
27259
27260#define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
27261 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
27262
27263
27264#define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
27265 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
27266
27267#define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \
27268 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
27269
27270#define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
27271 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
27272
27273
27274#define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
27275 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
27276
27277#define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27278 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27279
27280#define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
27281 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
27282
27283
27284#define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \
27285 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
27286
27287#if !defined(_WIN32)
27288
27289#define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27290 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27291#else
27292#define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
27293 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
27294#endif
27295
27296#endif /* COBJMACROS */
27297
27298
27299#endif /* C style interface */
27300
27301
27302
27303
27304#endif /* __ID3D12Device12_INTERFACE_DEFINED__ */
27305
27306
27307#ifndef __ID3D12Device13_INTERFACE_DEFINED__
27308#define __ID3D12Device13_INTERFACE_DEFINED__
27309
27310/* interface ID3D12Device13 */
27311/* [unique][local][object][uuid] */
27312
27313
27314EXTERN_C const IID IID_ID3D12Device13;
27315
27316#if defined(__cplusplus) && !defined(CINTERFACE)
27317
27318 MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e")
27319 ID3D12Device13 : public ID3D12Device12
27320 {
27321 public:
27322 virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1(
27323 _In_ const void *pAddress,
27324 SIZE_T size,
27325 REFIID riid,
27326 _COM_Outptr_ void **ppvHeap) = 0;
27327
27328 };
27329
27330
27331#else /* C style interface */
27332
27333 typedef struct ID3D12Device13Vtbl
27334 {
27335 BEGIN_INTERFACE
27336
27337 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
27338 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
27339 ID3D12Device13 * This,
27340 REFIID riid,
27341 _COM_Outptr_ void **ppvObject);
27342
27343 DECLSPEC_XFGVIRT(IUnknown, AddRef)
27344 ULONG ( STDMETHODCALLTYPE *AddRef )(
27345 ID3D12Device13 * This);
27346
27347 DECLSPEC_XFGVIRT(IUnknown, Release)
27348 ULONG ( STDMETHODCALLTYPE *Release )(
27349 ID3D12Device13 * This);
27350
27351 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
27352 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
27353 ID3D12Device13 * This,
27354 _In_ REFGUID guid,
27355 _Inout_ UINT *pDataSize,
27356 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
27357
27358 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
27359 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
27360 ID3D12Device13 * This,
27361 _In_ REFGUID guid,
27362 _In_ UINT DataSize,
27363 _In_reads_bytes_opt_( DataSize ) const void *pData);
27364
27365 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
27366 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
27367 ID3D12Device13 * This,
27368 _In_ REFGUID guid,
27369 _In_opt_ const IUnknown *pData);
27370
27371 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
27372 HRESULT ( STDMETHODCALLTYPE *SetName )(
27373 ID3D12Device13 * This,
27374 _In_z_ LPCWSTR Name);
27375
27376 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
27377 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
27378 ID3D12Device13 * This);
27379
27380 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
27381 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
27382 ID3D12Device13 * This,
27383 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
27384 REFIID riid,
27385 _COM_Outptr_ void **ppCommandQueue);
27386
27387 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
27388 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
27389 ID3D12Device13 * This,
27390 _In_ D3D12_COMMAND_LIST_TYPE type,
27391 REFIID riid,
27392 _COM_Outptr_ void **ppCommandAllocator);
27393
27394 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
27395 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
27396 ID3D12Device13 * This,
27397 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
27398 REFIID riid,
27399 _COM_Outptr_ void **ppPipelineState);
27400
27401 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
27402 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
27403 ID3D12Device13 * This,
27404 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
27405 REFIID riid,
27406 _COM_Outptr_ void **ppPipelineState);
27407
27408 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
27409 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
27410 ID3D12Device13 * This,
27411 _In_ UINT nodeMask,
27412 _In_ D3D12_COMMAND_LIST_TYPE type,
27413 _In_ ID3D12CommandAllocator *pCommandAllocator,
27414 _In_opt_ ID3D12PipelineState *pInitialState,
27415 REFIID riid,
27416 _COM_Outptr_ void **ppCommandList);
27417
27418 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
27419 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
27420 ID3D12Device13 * This,
27421 D3D12_FEATURE Feature,
27422 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
27423 UINT FeatureSupportDataSize);
27424
27425 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
27426 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
27427 ID3D12Device13 * This,
27428 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
27429 REFIID riid,
27430 _COM_Outptr_ void **ppvHeap);
27431
27432 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
27433 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
27434 ID3D12Device13 * This,
27435 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
27436
27437 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
27438 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
27439 ID3D12Device13 * This,
27440 _In_ UINT nodeMask,
27441 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
27442 _In_ SIZE_T blobLengthInBytes,
27443 REFIID riid,
27444 _COM_Outptr_ void **ppvRootSignature);
27445
27446 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
27447 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
27448 ID3D12Device13 * This,
27449 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
27450 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27451
27452 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
27453 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
27454 ID3D12Device13 * This,
27455 _In_opt_ ID3D12Resource *pResource,
27456 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
27457 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27458
27459 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
27460 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
27461 ID3D12Device13 * This,
27462 _In_opt_ ID3D12Resource *pResource,
27463 _In_opt_ ID3D12Resource *pCounterResource,
27464 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
27465 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27466
27467 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
27468 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
27469 ID3D12Device13 * This,
27470 _In_opt_ ID3D12Resource *pResource,
27471 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
27472 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27473
27474 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
27475 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
27476 ID3D12Device13 * This,
27477 _In_opt_ ID3D12Resource *pResource,
27478 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
27479 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27480
27481 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
27482 void ( STDMETHODCALLTYPE *CreateSampler )(
27483 ID3D12Device13 * This,
27484 _In_ const D3D12_SAMPLER_DESC *pDesc,
27485 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27486
27487 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
27488 void ( STDMETHODCALLTYPE *CopyDescriptors )(
27489 ID3D12Device13 * This,
27490 _In_ UINT NumDestDescriptorRanges,
27491 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
27492 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
27493 _In_ UINT NumSrcDescriptorRanges,
27494 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
27495 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
27496 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27497
27498 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
27499 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
27500 ID3D12Device13 * This,
27501 _In_ UINT NumDescriptors,
27502 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
27503 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
27504 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
27505
27506 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
27507#if !defined(_WIN32)
27508 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27509 ID3D12Device13 * This,
27510 _In_ UINT visibleMask,
27511 _In_ UINT numResourceDescs,
27512 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27513
27514#else
27515 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
27516 ID3D12Device13 * This,
27517 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27518 _In_ UINT visibleMask,
27519 _In_ UINT numResourceDescs,
27520 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
27521
27522#endif
27523
27524 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
27525#if !defined(_WIN32)
27526 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27527 ID3D12Device13 * This,
27528 _In_ UINT nodeMask,
27529 D3D12_HEAP_TYPE heapType);
27530
27531#else
27532 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
27533 ID3D12Device13 * This,
27534 D3D12_HEAP_PROPERTIES * RetVal,
27535 _In_ UINT nodeMask,
27536 D3D12_HEAP_TYPE heapType);
27537
27538#endif
27539
27540 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
27541 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
27542 ID3D12Device13 * This,
27543 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27544 D3D12_HEAP_FLAGS HeapFlags,
27545 _In_ const D3D12_RESOURCE_DESC *pDesc,
27546 D3D12_RESOURCE_STATES InitialResourceState,
27547 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27548 REFIID riidResource,
27549 _COM_Outptr_opt_ void **ppvResource);
27550
27551 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
27552 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
27553 ID3D12Device13 * This,
27554 _In_ const D3D12_HEAP_DESC *pDesc,
27555 REFIID riid,
27556 _COM_Outptr_opt_ void **ppvHeap);
27557
27558 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
27559 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
27560 ID3D12Device13 * This,
27561 _In_ ID3D12Heap *pHeap,
27562 UINT64 HeapOffset,
27563 _In_ const D3D12_RESOURCE_DESC *pDesc,
27564 D3D12_RESOURCE_STATES InitialState,
27565 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27566 REFIID riid,
27567 _COM_Outptr_opt_ void **ppvResource);
27568
27569 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
27570 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
27571 ID3D12Device13 * This,
27572 _In_ const D3D12_RESOURCE_DESC *pDesc,
27573 D3D12_RESOURCE_STATES InitialState,
27574 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27575 REFIID riid,
27576 _COM_Outptr_opt_ void **ppvResource);
27577
27578 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
27579 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
27580 ID3D12Device13 * This,
27581 _In_ ID3D12DeviceChild *pObject,
27582 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
27583 DWORD Access,
27584 _In_opt_ LPCWSTR Name,
27585 _Out_ HANDLE *pHandle);
27586
27587 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
27588 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
27589 ID3D12Device13 * This,
27590 _In_ HANDLE NTHandle,
27591 REFIID riid,
27592 _COM_Outptr_opt_ void **ppvObj);
27593
27594 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
27595 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
27596 ID3D12Device13 * This,
27597 _In_ LPCWSTR Name,
27598 DWORD Access,
27599 /* [annotation][out] */
27600 _Out_ HANDLE *pNTHandle);
27601
27602 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
27603 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
27604 ID3D12Device13 * This,
27605 UINT NumObjects,
27606 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27607
27608 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
27609 HRESULT ( STDMETHODCALLTYPE *Evict )(
27610 ID3D12Device13 * This,
27611 UINT NumObjects,
27612 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
27613
27614 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
27615 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
27616 ID3D12Device13 * This,
27617 UINT64 InitialValue,
27618 D3D12_FENCE_FLAGS Flags,
27619 REFIID riid,
27620 _COM_Outptr_ void **ppFence);
27621
27622 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
27623 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
27624 ID3D12Device13 * This);
27625
27626 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
27627 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
27628 ID3D12Device13 * This,
27629 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
27630 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
27631 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
27632 UINT64 BaseOffset,
27633 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
27634 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
27635 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
27636 _Out_opt_ UINT64 *pTotalBytes);
27637
27638 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
27639 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
27640 ID3D12Device13 * This,
27641 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
27642 REFIID riid,
27643 _COM_Outptr_opt_ void **ppvHeap);
27644
27645 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
27646 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
27647 ID3D12Device13 * This,
27648 BOOL Enable);
27649
27650 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
27651 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
27652 ID3D12Device13 * This,
27653 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
27654 _In_opt_ ID3D12RootSignature *pRootSignature,
27655 REFIID riid,
27656 _COM_Outptr_opt_ void **ppvCommandSignature);
27657
27658 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
27659 void ( STDMETHODCALLTYPE *GetResourceTiling )(
27660 ID3D12Device13 * This,
27661 _In_ ID3D12Resource *pTiledResource,
27662 _Out_opt_ UINT *pNumTilesForEntireResource,
27663 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
27664 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
27665 _Inout_opt_ UINT *pNumSubresourceTilings,
27666 _In_ UINT FirstSubresourceTilingToGet,
27667 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
27668
27669 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
27670#if !defined(_WIN32)
27671 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
27672 ID3D12Device13 * This);
27673
27674#else
27675 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
27676 ID3D12Device13 * This,
27677 LUID * RetVal);
27678
27679#endif
27680
27681 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
27682 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
27683 ID3D12Device13 * This,
27684 _In_reads_(BlobLength) const void *pLibraryBlob,
27685 SIZE_T BlobLength,
27686 REFIID riid,
27687 _COM_Outptr_ void **ppPipelineLibrary);
27688
27689 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
27690 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
27691 ID3D12Device13 * This,
27692 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
27693 _In_reads_(NumFences) const UINT64 *pFenceValues,
27694 UINT NumFences,
27695 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
27696 HANDLE hEvent);
27697
27698 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
27699 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
27700 ID3D12Device13 * This,
27701 UINT NumObjects,
27702 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27703 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
27704
27705 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
27706 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
27707 ID3D12Device13 * This,
27708 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
27709 REFIID riid,
27710 _COM_Outptr_ void **ppPipelineState);
27711
27712 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
27713 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
27714 ID3D12Device13 * This,
27715 _In_ const void *pAddress,
27716 REFIID riid,
27717 _COM_Outptr_ void **ppvHeap);
27718
27719 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
27720 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
27721 ID3D12Device13 * This,
27722 _In_ HANDLE hFileMapping,
27723 REFIID riid,
27724 _COM_Outptr_ void **ppvHeap);
27725
27726 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
27727 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
27728 ID3D12Device13 * This,
27729 D3D12_RESIDENCY_FLAGS Flags,
27730 UINT NumObjects,
27731 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
27732 _In_ ID3D12Fence *pFenceToSignal,
27733 UINT64 FenceValueToSignal);
27734
27735 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
27736 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
27737 ID3D12Device13 * This,
27738 _In_ UINT nodeMask,
27739 _In_ D3D12_COMMAND_LIST_TYPE type,
27740 _In_ D3D12_COMMAND_LIST_FLAGS flags,
27741 REFIID riid,
27742 _COM_Outptr_ void **ppCommandList);
27743
27744 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
27745 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
27746 ID3D12Device13 * This,
27747 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
27748 _In_ REFIID riid,
27749 _COM_Outptr_ void **ppSession);
27750
27751 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
27752 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
27753 ID3D12Device13 * This,
27754 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27755 D3D12_HEAP_FLAGS HeapFlags,
27756 _In_ const D3D12_RESOURCE_DESC *pDesc,
27757 D3D12_RESOURCE_STATES InitialResourceState,
27758 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27759 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27760 REFIID riidResource,
27761 _COM_Outptr_opt_ void **ppvResource);
27762
27763 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
27764 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
27765 ID3D12Device13 * This,
27766 _In_ const D3D12_HEAP_DESC *pDesc,
27767 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27768 REFIID riid,
27769 _COM_Outptr_opt_ void **ppvHeap);
27770
27771 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
27772 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
27773 ID3D12Device13 * This,
27774 _In_ const D3D12_RESOURCE_DESC *pDesc,
27775 D3D12_RESOURCE_STATES InitialState,
27776 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27777 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27778 REFIID riid,
27779 _COM_Outptr_opt_ void **ppvResource);
27780
27781 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
27782#if !defined(_WIN32)
27783 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27784 ID3D12Device13 * This,
27785 UINT visibleMask,
27786 UINT numResourceDescs,
27787 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27788 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27789
27790#else
27791 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
27792 ID3D12Device13 * This,
27793 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27794 UINT visibleMask,
27795 UINT numResourceDescs,
27796 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
27797 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27798
27799#endif
27800
27801 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
27802 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
27803 ID3D12Device13 * This,
27804 _In_ ID3D12LifetimeOwner *pOwner,
27805 REFIID riid,
27806 _COM_Outptr_ void **ppvTracker);
27807
27808 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
27809 void ( STDMETHODCALLTYPE *RemoveDevice )(
27810 ID3D12Device13 * This);
27811
27812 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
27813 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
27814 ID3D12Device13 * This,
27815 _Inout_ UINT *pNumMetaCommands,
27816 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
27817
27818 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
27819 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
27820 ID3D12Device13 * This,
27821 _In_ REFGUID CommandId,
27822 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
27823 _Out_opt_ UINT *pTotalStructureSizeInBytes,
27824 _Inout_ UINT *pParameterCount,
27825 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
27826
27827 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
27828 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
27829 ID3D12Device13 * This,
27830 _In_ REFGUID CommandId,
27831 _In_ UINT NodeMask,
27832 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
27833 _In_ SIZE_T CreationParametersDataSizeInBytes,
27834 REFIID riid,
27835 _COM_Outptr_ void **ppMetaCommand);
27836
27837 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
27838 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
27839 ID3D12Device13 * This,
27840 const D3D12_STATE_OBJECT_DESC *pDesc,
27841 REFIID riid,
27842 _COM_Outptr_ void **ppStateObject);
27843
27844 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
27845 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
27846 ID3D12Device13 * This,
27847 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
27848 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
27849
27850 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
27851 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
27852 ID3D12Device13 * This,
27853 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
27854 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
27855
27856 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
27857 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
27858 ID3D12Device13 * This,
27859 D3D12_BACKGROUND_PROCESSING_MODE Mode,
27860 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
27861 _In_opt_ HANDLE hEventToSignalUponCompletion,
27862 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
27863
27864 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
27865 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
27866 ID3D12Device13 * This,
27867 const D3D12_STATE_OBJECT_DESC *pAddition,
27868 ID3D12StateObject *pStateObjectToGrowFrom,
27869 REFIID riid,
27870 _COM_Outptr_ void **ppNewStateObject);
27871
27872 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
27873 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
27874 ID3D12Device13 * This,
27875 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
27876 _In_ REFIID riid,
27877 _COM_Outptr_ void **ppSession);
27878
27879 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
27880#if !defined(_WIN32)
27881 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27882 ID3D12Device13 * This,
27883 UINT visibleMask,
27884 UINT numResourceDescs,
27885 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27886 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27887
27888#else
27889 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
27890 ID3D12Device13 * This,
27891 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
27892 UINT visibleMask,
27893 UINT numResourceDescs,
27894 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
27895 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
27896
27897#endif
27898
27899 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
27900 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
27901 ID3D12Device13 * This,
27902 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27903 D3D12_HEAP_FLAGS HeapFlags,
27904 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27905 D3D12_RESOURCE_STATES InitialResourceState,
27906 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27907 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27908 REFIID riidResource,
27909 _COM_Outptr_opt_ void **ppvResource);
27910
27911 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
27912 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
27913 ID3D12Device13 * This,
27914 _In_ ID3D12Heap *pHeap,
27915 UINT64 HeapOffset,
27916 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27917 D3D12_RESOURCE_STATES InitialState,
27918 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27919 REFIID riid,
27920 _COM_Outptr_opt_ void **ppvResource);
27921
27922 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
27923 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
27924 ID3D12Device13 * This,
27925 _In_opt_ ID3D12Resource *pTargetedResource,
27926 _In_opt_ ID3D12Resource *pFeedbackResource,
27927 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
27928
27929 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
27930 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
27931 ID3D12Device13 * This,
27932 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
27933 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
27934 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
27935 UINT64 BaseOffset,
27936 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
27937 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
27938 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
27939 _Out_opt_ UINT64 *pTotalBytes);
27940
27941 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
27942 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
27943 ID3D12Device13 * This,
27944 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
27945 REFIID riid,
27946 _COM_Outptr_opt_ void **ppvSession);
27947
27948 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
27949 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
27950 ID3D12Device13 * This,
27951 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
27952 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
27953
27954 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
27955 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
27956 ID3D12Device13 * This,
27957 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
27958 REFIID CreatorID,
27959 REFIID riid,
27960 _COM_Outptr_ void **ppCommandQueue);
27961
27962 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
27963 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
27964 ID3D12Device13 * This,
27965 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
27966 D3D12_HEAP_FLAGS HeapFlags,
27967 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27968 D3D12_BARRIER_LAYOUT InitialLayout,
27969 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27970 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27971 UINT32 NumCastableFormats,
27972 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27973 REFIID riidResource,
27974 _COM_Outptr_opt_ void **ppvResource);
27975
27976 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
27977 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
27978 ID3D12Device13 * This,
27979 _In_ ID3D12Heap *pHeap,
27980 UINT64 HeapOffset,
27981 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
27982 D3D12_BARRIER_LAYOUT InitialLayout,
27983 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27984 UINT32 NumCastableFormats,
27985 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27986 REFIID riid,
27987 _COM_Outptr_opt_ void **ppvResource);
27988
27989 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
27990 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
27991 ID3D12Device13 * This,
27992 _In_ const D3D12_RESOURCE_DESC *pDesc,
27993 D3D12_BARRIER_LAYOUT InitialLayout,
27994 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
27995 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
27996 UINT32 NumCastableFormats,
27997 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
27998 REFIID riid,
27999 _COM_Outptr_opt_ void **ppvResource);
28000
28001 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
28002 void ( STDMETHODCALLTYPE *CreateSampler2 )(
28003 ID3D12Device13 * This,
28004 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
28005 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28006
28007 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
28008#if !defined(_WIN32)
28009 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28010 ID3D12Device13 * This,
28011 UINT visibleMask,
28012 UINT numResourceDescs,
28013 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28014 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28015 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28016 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28017
28018#else
28019 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
28020 ID3D12Device13 * This,
28021 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28022 UINT visibleMask,
28023 UINT numResourceDescs,
28024 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28025 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
28026 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
28027 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28028
28029#endif
28030
28031 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
28032 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
28033 ID3D12Device13 * This,
28034 _In_ const void *pAddress,
28035 SIZE_T size,
28036 REFIID riid,
28037 _COM_Outptr_ void **ppvHeap);
28038
28039 END_INTERFACE
28040 } ID3D12Device13Vtbl;
28041
28042 interface ID3D12Device13
28043 {
28044 CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl;
28045 };
28046
28047
28048
28049#ifdef COBJMACROS
28050
28051
28052#define ID3D12Device13_QueryInterface(This,riid,ppvObject) \
28053 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
28054
28055#define ID3D12Device13_AddRef(This) \
28056 ( (This)->lpVtbl -> AddRef(This) )
28057
28058#define ID3D12Device13_Release(This) \
28059 ( (This)->lpVtbl -> Release(This) )
28060
28061
28062#define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \
28063 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
28064
28065#define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \
28066 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
28067
28068#define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \
28069 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
28070
28071#define ID3D12Device13_SetName(This,Name) \
28072 ( (This)->lpVtbl -> SetName(This,Name) )
28073
28074
28075#define ID3D12Device13_GetNodeCount(This) \
28076 ( (This)->lpVtbl -> GetNodeCount(This) )
28077
28078#define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
28079 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
28080
28081#define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
28082 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
28083
28084#define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
28085 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
28086
28087#define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
28088 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
28089
28090#define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
28091 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
28092
28093#define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
28094 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
28095
28096#define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
28097 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
28098
28099#define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
28100 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
28101
28102#define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
28103 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
28104
28105#define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \
28106 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
28107
28108#define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
28109 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
28110
28111#define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
28112 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
28113
28114#define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
28115 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
28116
28117#define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
28118 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
28119
28120#define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \
28121 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
28122
28123#define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
28124 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
28125
28126#define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
28127 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
28128#if !defined(_WIN32)
28129
28130#define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
28131 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
28132#else
28133#define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
28134 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
28135#endif
28136#if !defined(_WIN32)
28137
28138#define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \
28139 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
28140#else
28141#define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
28142 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
28143#endif
28144
28145#define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
28146 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
28147
28148#define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \
28149 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
28150
28151#define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28152 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28153
28154#define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28155 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28156
28157#define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
28158 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
28159
28160#define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
28161 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
28162
28163#define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
28164 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
28165
28166#define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \
28167 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
28168
28169#define ID3D12Device13_Evict(This,NumObjects,ppObjects) \
28170 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
28171
28172#define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \
28173 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
28174
28175#define ID3D12Device13_GetDeviceRemovedReason(This) \
28176 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
28177
28178#define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28179 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28180
28181#define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
28182 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
28183
28184#define ID3D12Device13_SetStablePowerState(This,Enable) \
28185 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
28186
28187#define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
28188 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
28189
28190#define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
28191 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
28192#if !defined(_WIN32)
28193
28194#define ID3D12Device13_GetAdapterLuid(This) \
28195 ( (This)->lpVtbl -> GetAdapterLuid(This) )
28196#else
28197#define ID3D12Device13_GetAdapterLuid(This,RetVal) \
28198 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
28199#endif
28200
28201
28202#define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
28203 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
28204
28205#define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
28206 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
28207
28208#define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
28209 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
28210
28211
28212#define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
28213 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
28214
28215
28216#define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
28217 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
28218
28219#define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
28220 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
28221
28222#define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
28223 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
28224
28225
28226#define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
28227 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
28228
28229#define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
28230 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
28231
28232#define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28233 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28234
28235#define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
28236 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
28237
28238#define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
28239 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
28240#if !defined(_WIN32)
28241
28242#define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28243 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28244#else
28245#define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28246 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28247#endif
28248
28249
28250#define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
28251 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
28252
28253#define ID3D12Device13_RemoveDevice(This) \
28254 ( (This)->lpVtbl -> RemoveDevice(This) )
28255
28256#define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
28257 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
28258
28259#define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
28260 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
28261
28262#define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
28263 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
28264
28265#define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \
28266 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
28267
28268#define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
28269 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
28270
28271#define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
28272 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
28273
28274
28275#define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
28276 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
28277
28278
28279#define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
28280 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
28281
28282#define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
28283 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
28284
28285#if !defined(_WIN32)
28286
28287#define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28288 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28289#else
28290#define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
28291 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
28292#endif
28293
28294#define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
28295 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
28296
28297#define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
28298 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
28299
28300#define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
28301 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
28302
28303#define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
28304 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
28305
28306
28307#define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
28308 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
28309
28310#define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \
28311 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
28312
28313#define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
28314 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
28315
28316
28317#define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
28318 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
28319
28320#define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28321 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28322
28323#define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
28324 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
28325
28326
28327#define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \
28328 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
28329
28330#if !defined(_WIN32)
28331
28332#define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28333 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28334#else
28335#define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
28336 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
28337#endif
28338
28339
28340#define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
28341 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
28342
28343#endif /* COBJMACROS */
28344
28345
28346#endif /* C style interface */
28347
28348
28349
28350
28351#endif /* __ID3D12Device13_INTERFACE_DEFINED__ */
28352
28353
28354#ifndef __ID3D12Device14_INTERFACE_DEFINED__
28355#define __ID3D12Device14_INTERFACE_DEFINED__
28356
28357/* interface ID3D12Device14 */
28358/* [unique][local][object][uuid] */
28359
28360
28361EXTERN_C const IID IID_ID3D12Device14;
28362
28363#if defined(__cplusplus) && !defined(CINTERFACE)
28364
28365 MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323")
28366 ID3D12Device14 : public ID3D12Device13
28367 {
28368 public:
28369 virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary(
28370 _In_ UINT nodeMask,
28371 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
28372 _In_ SIZE_T blobLengthInBytes,
28373 _In_opt_ LPCWSTR subobjectName,
28374 REFIID riid,
28375 _COM_Outptr_ void **ppvRootSignature) = 0;
28376
28377 };
28378
28379
28380#else /* C style interface */
28381
28382 typedef struct ID3D12Device14Vtbl
28383 {
28384 BEGIN_INTERFACE
28385
28386 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
28387 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
28388 ID3D12Device14 * This,
28389 REFIID riid,
28390 _COM_Outptr_ void **ppvObject);
28391
28392 DECLSPEC_XFGVIRT(IUnknown, AddRef)
28393 ULONG ( STDMETHODCALLTYPE *AddRef )(
28394 ID3D12Device14 * This);
28395
28396 DECLSPEC_XFGVIRT(IUnknown, Release)
28397 ULONG ( STDMETHODCALLTYPE *Release )(
28398 ID3D12Device14 * This);
28399
28400 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
28401 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
28402 ID3D12Device14 * This,
28403 _In_ REFGUID guid,
28404 _Inout_ UINT *pDataSize,
28405 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
28406
28407 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
28408 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
28409 ID3D12Device14 * This,
28410 _In_ REFGUID guid,
28411 _In_ UINT DataSize,
28412 _In_reads_bytes_opt_( DataSize ) const void *pData);
28413
28414 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
28415 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
28416 ID3D12Device14 * This,
28417 _In_ REFGUID guid,
28418 _In_opt_ const IUnknown *pData);
28419
28420 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
28421 HRESULT ( STDMETHODCALLTYPE *SetName )(
28422 ID3D12Device14 * This,
28423 _In_z_ LPCWSTR Name);
28424
28425 DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount)
28426 UINT ( STDMETHODCALLTYPE *GetNodeCount )(
28427 ID3D12Device14 * This);
28428
28429 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue)
28430 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
28431 ID3D12Device14 * This,
28432 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
28433 REFIID riid,
28434 _COM_Outptr_ void **ppCommandQueue);
28435
28436 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator)
28437 HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
28438 ID3D12Device14 * This,
28439 _In_ D3D12_COMMAND_LIST_TYPE type,
28440 REFIID riid,
28441 _COM_Outptr_ void **ppCommandAllocator);
28442
28443 DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState)
28444 HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
28445 ID3D12Device14 * This,
28446 _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
28447 REFIID riid,
28448 _COM_Outptr_ void **ppPipelineState);
28449
28450 DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState)
28451 HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
28452 ID3D12Device14 * This,
28453 _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
28454 REFIID riid,
28455 _COM_Outptr_ void **ppPipelineState);
28456
28457 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList)
28458 HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
28459 ID3D12Device14 * This,
28460 _In_ UINT nodeMask,
28461 _In_ D3D12_COMMAND_LIST_TYPE type,
28462 _In_ ID3D12CommandAllocator *pCommandAllocator,
28463 _In_opt_ ID3D12PipelineState *pInitialState,
28464 REFIID riid,
28465 _COM_Outptr_ void **ppCommandList);
28466
28467 DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport)
28468 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
28469 ID3D12Device14 * This,
28470 D3D12_FEATURE Feature,
28471 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
28472 UINT FeatureSupportDataSize);
28473
28474 DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap)
28475 HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
28476 ID3D12Device14 * This,
28477 _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
28478 REFIID riid,
28479 _COM_Outptr_ void **ppvHeap);
28480
28481 DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize)
28482 UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
28483 ID3D12Device14 * This,
28484 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
28485
28486 DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature)
28487 HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
28488 ID3D12Device14 * This,
28489 _In_ UINT nodeMask,
28490 _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
28491 _In_ SIZE_T blobLengthInBytes,
28492 REFIID riid,
28493 _COM_Outptr_ void **ppvRootSignature);
28494
28495 DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView)
28496 void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
28497 ID3D12Device14 * This,
28498 _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
28499 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28500
28501 DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView)
28502 void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
28503 ID3D12Device14 * This,
28504 _In_opt_ ID3D12Resource *pResource,
28505 _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
28506 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28507
28508 DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView)
28509 void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
28510 ID3D12Device14 * This,
28511 _In_opt_ ID3D12Resource *pResource,
28512 _In_opt_ ID3D12Resource *pCounterResource,
28513 _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
28514 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28515
28516 DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView)
28517 void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
28518 ID3D12Device14 * This,
28519 _In_opt_ ID3D12Resource *pResource,
28520 _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
28521 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28522
28523 DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView)
28524 void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
28525 ID3D12Device14 * This,
28526 _In_opt_ ID3D12Resource *pResource,
28527 _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
28528 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28529
28530 DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler)
28531 void ( STDMETHODCALLTYPE *CreateSampler )(
28532 ID3D12Device14 * This,
28533 _In_ const D3D12_SAMPLER_DESC *pDesc,
28534 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28535
28536 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors)
28537 void ( STDMETHODCALLTYPE *CopyDescriptors )(
28538 ID3D12Device14 * This,
28539 _In_ UINT NumDestDescriptorRanges,
28540 _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
28541 _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
28542 _In_ UINT NumSrcDescriptorRanges,
28543 _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
28544 _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
28545 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
28546
28547 DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple)
28548 void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
28549 ID3D12Device14 * This,
28550 _In_ UINT NumDescriptors,
28551 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
28552 _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
28553 _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
28554
28555 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo)
28556#if !defined(_WIN32)
28557 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
28558 ID3D12Device14 * This,
28559 _In_ UINT visibleMask,
28560 _In_ UINT numResourceDescs,
28561 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
28562
28563#else
28564 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
28565 ID3D12Device14 * This,
28566 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28567 _In_ UINT visibleMask,
28568 _In_ UINT numResourceDescs,
28569 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
28570
28571#endif
28572
28573 DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties)
28574#if !defined(_WIN32)
28575 D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
28576 ID3D12Device14 * This,
28577 _In_ UINT nodeMask,
28578 D3D12_HEAP_TYPE heapType);
28579
28580#else
28581 D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )(
28582 ID3D12Device14 * This,
28583 D3D12_HEAP_PROPERTIES * RetVal,
28584 _In_ UINT nodeMask,
28585 D3D12_HEAP_TYPE heapType);
28586
28587#endif
28588
28589 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource)
28590 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
28591 ID3D12Device14 * This,
28592 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28593 D3D12_HEAP_FLAGS HeapFlags,
28594 _In_ const D3D12_RESOURCE_DESC *pDesc,
28595 D3D12_RESOURCE_STATES InitialResourceState,
28596 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28597 REFIID riidResource,
28598 _COM_Outptr_opt_ void **ppvResource);
28599
28600 DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap)
28601 HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
28602 ID3D12Device14 * This,
28603 _In_ const D3D12_HEAP_DESC *pDesc,
28604 REFIID riid,
28605 _COM_Outptr_opt_ void **ppvHeap);
28606
28607 DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource)
28608 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
28609 ID3D12Device14 * This,
28610 _In_ ID3D12Heap *pHeap,
28611 UINT64 HeapOffset,
28612 _In_ const D3D12_RESOURCE_DESC *pDesc,
28613 D3D12_RESOURCE_STATES InitialState,
28614 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28615 REFIID riid,
28616 _COM_Outptr_opt_ void **ppvResource);
28617
28618 DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource)
28619 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
28620 ID3D12Device14 * This,
28621 _In_ const D3D12_RESOURCE_DESC *pDesc,
28622 D3D12_RESOURCE_STATES InitialState,
28623 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28624 REFIID riid,
28625 _COM_Outptr_opt_ void **ppvResource);
28626
28627 DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle)
28628 HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
28629 ID3D12Device14 * This,
28630 _In_ ID3D12DeviceChild *pObject,
28631 _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
28632 DWORD Access,
28633 _In_opt_ LPCWSTR Name,
28634 _Out_ HANDLE *pHandle);
28635
28636 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle)
28637 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
28638 ID3D12Device14 * This,
28639 _In_ HANDLE NTHandle,
28640 REFIID riid,
28641 _COM_Outptr_opt_ void **ppvObj);
28642
28643 DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName)
28644 HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
28645 ID3D12Device14 * This,
28646 _In_ LPCWSTR Name,
28647 DWORD Access,
28648 /* [annotation][out] */
28649 _Out_ HANDLE *pNTHandle);
28650
28651 DECLSPEC_XFGVIRT(ID3D12Device, MakeResident)
28652 HRESULT ( STDMETHODCALLTYPE *MakeResident )(
28653 ID3D12Device14 * This,
28654 UINT NumObjects,
28655 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
28656
28657 DECLSPEC_XFGVIRT(ID3D12Device, Evict)
28658 HRESULT ( STDMETHODCALLTYPE *Evict )(
28659 ID3D12Device14 * This,
28660 UINT NumObjects,
28661 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
28662
28663 DECLSPEC_XFGVIRT(ID3D12Device, CreateFence)
28664 HRESULT ( STDMETHODCALLTYPE *CreateFence )(
28665 ID3D12Device14 * This,
28666 UINT64 InitialValue,
28667 D3D12_FENCE_FLAGS Flags,
28668 REFIID riid,
28669 _COM_Outptr_ void **ppFence);
28670
28671 DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason)
28672 HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
28673 ID3D12Device14 * This);
28674
28675 DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints)
28676 void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
28677 ID3D12Device14 * This,
28678 _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
28679 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
28680 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
28681 UINT64 BaseOffset,
28682 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
28683 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
28684 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
28685 _Out_opt_ UINT64 *pTotalBytes);
28686
28687 DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap)
28688 HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
28689 ID3D12Device14 * This,
28690 _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
28691 REFIID riid,
28692 _COM_Outptr_opt_ void **ppvHeap);
28693
28694 DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState)
28695 HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
28696 ID3D12Device14 * This,
28697 BOOL Enable);
28698
28699 DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature)
28700 HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
28701 ID3D12Device14 * This,
28702 _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
28703 _In_opt_ ID3D12RootSignature *pRootSignature,
28704 REFIID riid,
28705 _COM_Outptr_opt_ void **ppvCommandSignature);
28706
28707 DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling)
28708 void ( STDMETHODCALLTYPE *GetResourceTiling )(
28709 ID3D12Device14 * This,
28710 _In_ ID3D12Resource *pTiledResource,
28711 _Out_opt_ UINT *pNumTilesForEntireResource,
28712 _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
28713 _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
28714 _Inout_opt_ UINT *pNumSubresourceTilings,
28715 _In_ UINT FirstSubresourceTilingToGet,
28716 _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
28717
28718 DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid)
28719#if !defined(_WIN32)
28720 LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
28721 ID3D12Device14 * This);
28722
28723#else
28724 LUID *( STDMETHODCALLTYPE *GetAdapterLuid )(
28725 ID3D12Device14 * This,
28726 LUID * RetVal);
28727
28728#endif
28729
28730 DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary)
28731 HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
28732 ID3D12Device14 * This,
28733 _In_reads_(BlobLength) const void *pLibraryBlob,
28734 SIZE_T BlobLength,
28735 REFIID riid,
28736 _COM_Outptr_ void **ppPipelineLibrary);
28737
28738 DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion)
28739 HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
28740 ID3D12Device14 * This,
28741 _In_reads_(NumFences) ID3D12Fence *const *ppFences,
28742 _In_reads_(NumFences) const UINT64 *pFenceValues,
28743 UINT NumFences,
28744 D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
28745 HANDLE hEvent);
28746
28747 DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority)
28748 HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
28749 ID3D12Device14 * This,
28750 UINT NumObjects,
28751 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
28752 _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
28753
28754 DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState)
28755 HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )(
28756 ID3D12Device14 * This,
28757 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
28758 REFIID riid,
28759 _COM_Outptr_ void **ppPipelineState);
28760
28761 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress)
28762 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )(
28763 ID3D12Device14 * This,
28764 _In_ const void *pAddress,
28765 REFIID riid,
28766 _COM_Outptr_ void **ppvHeap);
28767
28768 DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping)
28769 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )(
28770 ID3D12Device14 * This,
28771 _In_ HANDLE hFileMapping,
28772 REFIID riid,
28773 _COM_Outptr_ void **ppvHeap);
28774
28775 DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident)
28776 HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )(
28777 ID3D12Device14 * This,
28778 D3D12_RESIDENCY_FLAGS Flags,
28779 UINT NumObjects,
28780 _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
28781 _In_ ID3D12Fence *pFenceToSignal,
28782 UINT64 FenceValueToSignal);
28783
28784 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1)
28785 HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )(
28786 ID3D12Device14 * This,
28787 _In_ UINT nodeMask,
28788 _In_ D3D12_COMMAND_LIST_TYPE type,
28789 _In_ D3D12_COMMAND_LIST_FLAGS flags,
28790 REFIID riid,
28791 _COM_Outptr_ void **ppCommandList);
28792
28793 DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession)
28794 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )(
28795 ID3D12Device14 * This,
28796 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc,
28797 _In_ REFIID riid,
28798 _COM_Outptr_ void **ppSession);
28799
28800 DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1)
28801 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )(
28802 ID3D12Device14 * This,
28803 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28804 D3D12_HEAP_FLAGS HeapFlags,
28805 _In_ const D3D12_RESOURCE_DESC *pDesc,
28806 D3D12_RESOURCE_STATES InitialResourceState,
28807 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28808 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28809 REFIID riidResource,
28810 _COM_Outptr_opt_ void **ppvResource);
28811
28812 DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1)
28813 HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )(
28814 ID3D12Device14 * This,
28815 _In_ const D3D12_HEAP_DESC *pDesc,
28816 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28817 REFIID riid,
28818 _COM_Outptr_opt_ void **ppvHeap);
28819
28820 DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1)
28821 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )(
28822 ID3D12Device14 * This,
28823 _In_ const D3D12_RESOURCE_DESC *pDesc,
28824 D3D12_RESOURCE_STATES InitialState,
28825 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28826 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28827 REFIID riid,
28828 _COM_Outptr_opt_ void **ppvResource);
28829
28830 DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1)
28831#if !defined(_WIN32)
28832 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
28833 ID3D12Device14 * This,
28834 UINT visibleMask,
28835 UINT numResourceDescs,
28836 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
28837 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28838
28839#else
28840 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )(
28841 ID3D12Device14 * This,
28842 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28843 UINT visibleMask,
28844 UINT numResourceDescs,
28845 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs,
28846 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28847
28848#endif
28849
28850 DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker)
28851 HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )(
28852 ID3D12Device14 * This,
28853 _In_ ID3D12LifetimeOwner *pOwner,
28854 REFIID riid,
28855 _COM_Outptr_ void **ppvTracker);
28856
28857 DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice)
28858 void ( STDMETHODCALLTYPE *RemoveDevice )(
28859 ID3D12Device14 * This);
28860
28861 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands)
28862 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )(
28863 ID3D12Device14 * This,
28864 _Inout_ UINT *pNumMetaCommands,
28865 _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs);
28866
28867 DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters)
28868 HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )(
28869 ID3D12Device14 * This,
28870 _In_ REFGUID CommandId,
28871 _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage,
28872 _Out_opt_ UINT *pTotalStructureSizeInBytes,
28873 _Inout_ UINT *pParameterCount,
28874 _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs);
28875
28876 DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand)
28877 HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )(
28878 ID3D12Device14 * This,
28879 _In_ REFGUID CommandId,
28880 _In_ UINT NodeMask,
28881 _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData,
28882 _In_ SIZE_T CreationParametersDataSizeInBytes,
28883 REFIID riid,
28884 _COM_Outptr_ void **ppMetaCommand);
28885
28886 DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject)
28887 HRESULT ( STDMETHODCALLTYPE *CreateStateObject )(
28888 ID3D12Device14 * This,
28889 const D3D12_STATE_OBJECT_DESC *pDesc,
28890 REFIID riid,
28891 _COM_Outptr_ void **ppStateObject);
28892
28893 DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo)
28894 void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )(
28895 ID3D12Device14 * This,
28896 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
28897 _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo);
28898
28899 DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier)
28900 D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )(
28901 ID3D12Device14 * This,
28902 _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
28903 _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck);
28904
28905 DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode)
28906 HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )(
28907 ID3D12Device14 * This,
28908 D3D12_BACKGROUND_PROCESSING_MODE Mode,
28909 D3D12_MEASUREMENTS_ACTION MeasurementsAction,
28910 _In_opt_ HANDLE hEventToSignalUponCompletion,
28911 _Out_opt_ BOOL *pbFurtherMeasurementsDesired);
28912
28913 DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject)
28914 HRESULT ( STDMETHODCALLTYPE *AddToStateObject )(
28915 ID3D12Device14 * This,
28916 const D3D12_STATE_OBJECT_DESC *pAddition,
28917 ID3D12StateObject *pStateObjectToGrowFrom,
28918 REFIID riid,
28919 _COM_Outptr_ void **ppNewStateObject);
28920
28921 DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1)
28922 HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )(
28923 ID3D12Device14 * This,
28924 _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc,
28925 _In_ REFIID riid,
28926 _COM_Outptr_ void **ppSession);
28927
28928 DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2)
28929#if !defined(_WIN32)
28930 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
28931 ID3D12Device14 * This,
28932 UINT visibleMask,
28933 UINT numResourceDescs,
28934 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28935 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28936
28937#else
28938 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )(
28939 ID3D12Device14 * This,
28940 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
28941 UINT visibleMask,
28942 UINT numResourceDescs,
28943 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
28944 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
28945
28946#endif
28947
28948 DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2)
28949 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )(
28950 ID3D12Device14 * This,
28951 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
28952 D3D12_HEAP_FLAGS HeapFlags,
28953 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28954 D3D12_RESOURCE_STATES InitialResourceState,
28955 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28956 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
28957 REFIID riidResource,
28958 _COM_Outptr_opt_ void **ppvResource);
28959
28960 DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1)
28961 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )(
28962 ID3D12Device14 * This,
28963 _In_ ID3D12Heap *pHeap,
28964 UINT64 HeapOffset,
28965 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
28966 D3D12_RESOURCE_STATES InitialState,
28967 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
28968 REFIID riid,
28969 _COM_Outptr_opt_ void **ppvResource);
28970
28971 DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView)
28972 void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )(
28973 ID3D12Device14 * This,
28974 _In_opt_ ID3D12Resource *pTargetedResource,
28975 _In_opt_ ID3D12Resource *pFeedbackResource,
28976 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
28977
28978 DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1)
28979 void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )(
28980 ID3D12Device14 * This,
28981 _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc,
28982 _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
28983 _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
28984 UINT64 BaseOffset,
28985 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
28986 _Out_writes_opt_(NumSubresources) UINT *pNumRows,
28987 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
28988 _Out_opt_ UINT64 *pTotalBytes);
28989
28990 DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession)
28991 HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )(
28992 ID3D12Device14 * This,
28993 _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc,
28994 REFIID riid,
28995 _COM_Outptr_opt_ void **ppvSession);
28996
28997 DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl)
28998 HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )(
28999 ID3D12Device14 * This,
29000 D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
29001 D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
29002
29003 DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1)
29004 HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )(
29005 ID3D12Device14 * This,
29006 _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
29007 REFIID CreatorID,
29008 REFIID riid,
29009 _COM_Outptr_ void **ppCommandQueue);
29010
29011 DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3)
29012 HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )(
29013 ID3D12Device14 * This,
29014 _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
29015 D3D12_HEAP_FLAGS HeapFlags,
29016 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
29017 D3D12_BARRIER_LAYOUT InitialLayout,
29018 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29019 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
29020 UINT32 NumCastableFormats,
29021 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29022 REFIID riidResource,
29023 _COM_Outptr_opt_ void **ppvResource);
29024
29025 DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2)
29026 HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )(
29027 ID3D12Device14 * This,
29028 _In_ ID3D12Heap *pHeap,
29029 UINT64 HeapOffset,
29030 _In_ const D3D12_RESOURCE_DESC1 *pDesc,
29031 D3D12_BARRIER_LAYOUT InitialLayout,
29032 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29033 UINT32 NumCastableFormats,
29034 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29035 REFIID riid,
29036 _COM_Outptr_opt_ void **ppvResource);
29037
29038 DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2)
29039 HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )(
29040 ID3D12Device14 * This,
29041 _In_ const D3D12_RESOURCE_DESC *pDesc,
29042 D3D12_BARRIER_LAYOUT InitialLayout,
29043 _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
29044 _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession,
29045 UINT32 NumCastableFormats,
29046 _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats,
29047 REFIID riid,
29048 _COM_Outptr_opt_ void **ppvResource);
29049
29050 DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2)
29051 void ( STDMETHODCALLTYPE *CreateSampler2 )(
29052 ID3D12Device14 * This,
29053 _In_ const D3D12_SAMPLER_DESC2 *pDesc,
29054 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
29055
29056 DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3)
29057#if !defined(_WIN32)
29058 D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
29059 ID3D12Device14 * This,
29060 UINT visibleMask,
29061 UINT numResourceDescs,
29062 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
29063 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
29064 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
29065 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
29066
29067#else
29068 D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )(
29069 ID3D12Device14 * This,
29070 D3D12_RESOURCE_ALLOCATION_INFO * RetVal,
29071 UINT visibleMask,
29072 UINT numResourceDescs,
29073 _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs,
29074 _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats,
29075 _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats,
29076 _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1);
29077
29078#endif
29079
29080 DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1)
29081 HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )(
29082 ID3D12Device14 * This,
29083 _In_ const void *pAddress,
29084 SIZE_T size,
29085 REFIID riid,
29086 _COM_Outptr_ void **ppvHeap);
29087
29088 DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary)
29089 HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )(
29090 ID3D12Device14 * This,
29091 _In_ UINT nodeMask,
29092 _In_reads_(blobLengthInBytes) const void *pLibraryBlob,
29093 _In_ SIZE_T blobLengthInBytes,
29094 _In_opt_ LPCWSTR subobjectName,
29095 REFIID riid,
29096 _COM_Outptr_ void **ppvRootSignature);
29097
29098 END_INTERFACE
29099 } ID3D12Device14Vtbl;
29100
29101 interface ID3D12Device14
29102 {
29103 CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl;
29104 };
29105
29106
29107
29108#ifdef COBJMACROS
29109
29110
29111#define ID3D12Device14_QueryInterface(This,riid,ppvObject) \
29112 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29113
29114#define ID3D12Device14_AddRef(This) \
29115 ( (This)->lpVtbl -> AddRef(This) )
29116
29117#define ID3D12Device14_Release(This) \
29118 ( (This)->lpVtbl -> Release(This) )
29119
29120
29121#define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \
29122 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
29123
29124#define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \
29125 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
29126
29127#define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \
29128 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
29129
29130#define ID3D12Device14_SetName(This,Name) \
29131 ( (This)->lpVtbl -> SetName(This,Name) )
29132
29133
29134#define ID3D12Device14_GetNodeCount(This) \
29135 ( (This)->lpVtbl -> GetNodeCount(This) )
29136
29137#define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
29138 ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
29139
29140#define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
29141 ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
29142
29143#define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
29144 ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
29145
29146#define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
29147 ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
29148
29149#define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
29150 ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
29151
29152#define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
29153 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
29154
29155#define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
29156 ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
29157
29158#define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
29159 ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
29160
29161#define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
29162 ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
29163
29164#define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \
29165 ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
29166
29167#define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
29168 ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
29169
29170#define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
29171 ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
29172
29173#define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
29174 ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
29175
29176#define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
29177 ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
29178
29179#define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \
29180 ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
29181
29182#define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
29183 ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
29184
29185#define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
29186 ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
29187#if !defined(_WIN32)
29188
29189#define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
29190 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
29191#else
29192#define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \
29193 ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) )
29194#endif
29195#if !defined(_WIN32)
29196
29197#define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \
29198 ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
29199#else
29200#define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \
29201 ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) )
29202#endif
29203
29204#define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
29205 ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
29206
29207#define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \
29208 ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
29209
29210#define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29211 ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29212
29213#define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29214 ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29215
29216#define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
29217 ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
29218
29219#define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
29220 ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
29221
29222#define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
29223 ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
29224
29225#define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \
29226 ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
29227
29228#define ID3D12Device14_Evict(This,NumObjects,ppObjects) \
29229 ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
29230
29231#define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \
29232 ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
29233
29234#define ID3D12Device14_GetDeviceRemovedReason(This) \
29235 ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
29236
29237#define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
29238 ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
29239
29240#define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
29241 ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
29242
29243#define ID3D12Device14_SetStablePowerState(This,Enable) \
29244 ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
29245
29246#define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
29247 ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
29248
29249#define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
29250 ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
29251#if !defined(_WIN32)
29252
29253#define ID3D12Device14_GetAdapterLuid(This) \
29254 ( (This)->lpVtbl -> GetAdapterLuid(This) )
29255#else
29256#define ID3D12Device14_GetAdapterLuid(This,RetVal) \
29257 ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) )
29258#endif
29259
29260
29261#define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
29262 ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
29263
29264#define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
29265 ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
29266
29267#define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
29268 ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
29269
29270
29271#define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \
29272 ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) )
29273
29274
29275#define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \
29276 ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) )
29277
29278#define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \
29279 ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) )
29280
29281#define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \
29282 ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) )
29283
29284
29285#define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \
29286 ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) )
29287
29288#define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \
29289 ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) )
29290
29291#define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
29292 ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
29293
29294#define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \
29295 ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) )
29296
29297#define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \
29298 ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) )
29299#if !defined(_WIN32)
29300
29301#define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29302 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29303#else
29304#define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29305 ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29306#endif
29307
29308
29309#define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \
29310 ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) )
29311
29312#define ID3D12Device14_RemoveDevice(This) \
29313 ( (This)->lpVtbl -> RemoveDevice(This) )
29314
29315#define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \
29316 ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) )
29317
29318#define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \
29319 ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) )
29320
29321#define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \
29322 ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) )
29323
29324#define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \
29325 ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) )
29326
29327#define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \
29328 ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) )
29329
29330#define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \
29331 ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) )
29332
29333
29334#define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \
29335 ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) )
29336
29337
29338#define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \
29339 ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) )
29340
29341#define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \
29342 ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) )
29343
29344#if !defined(_WIN32)
29345
29346#define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29347 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29348#else
29349#define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \
29350 ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) )
29351#endif
29352
29353#define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \
29354 ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) )
29355
29356#define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
29357 ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
29358
29359#define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \
29360 ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) )
29361
29362#define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
29363 ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
29364
29365
29366#define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \
29367 ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) )
29368
29369#define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \
29370 ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) )
29371
29372#define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \
29373 ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) )
29374
29375
29376#define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \
29377 ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) )
29378
29379#define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \
29380 ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) )
29381
29382#define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \
29383 ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) )
29384
29385
29386#define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \
29387 ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) )
29388
29389#if !defined(_WIN32)
29390
29391#define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
29392 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
29393#else
29394#define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \
29395 ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) )
29396#endif
29397
29398
29399#define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \
29400 ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) )
29401
29402
29403#define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \
29404 ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) )
29405
29406#endif /* COBJMACROS */
29407
29408
29409#endif /* C style interface */
29410
29411
29412
29413
29414#endif /* __ID3D12Device14_INTERFACE_DEFINED__ */
29415
29416
29417/* interface __MIDL_itf_d3d12_0000_0063 */
29418/* [local] */
29419
29420typedef union D3D12_VERSION_NUMBER
29421 {
29422 UINT64 Version;
29423 UINT16 VersionParts[ 4 ];
29424 } D3D12_VERSION_NUMBER;
29425
29426typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT
29427 {
29428 WCHAR szAdapterFamily[ 128 ];
29429 UINT64 MinimumABISupportVersion;
29430 UINT64 MaximumABISupportVersion;
29431 D3D12_VERSION_NUMBER CompilerVersion;
29432 D3D12_VERSION_NUMBER ApplicationProfileVersion;
29433 } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT;
29434
29435typedef void ( __stdcall *D3D12PipelineStateFunc )(
29436 _In_reads_bytes_(KeySize) const void *pKey,
29437 UINT KeySize,
29438 UINT Version,
29439 const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc,
29440 _Inout_opt_ void *pContext);
29441
29442typedef void ( __stdcall *D3D12StateObjectFunc )(
29443 _In_reads_bytes_(KeySize) const void *pKey,
29444 UINT KeySize,
29445 UINT Version,
29446 const D3D12_STATE_OBJECT_DESC *pDesc,
29447 _In_reads_bytes_(ParentKeySize) const void *pParentKey,
29448 UINT ParentKeySize,
29449 _Inout_opt_ void *pContext);
29450
29451typedef struct D3D12_APPLICATION_DESC
29452 {
29453 LPCWSTR pExeFilename;
29454 LPCWSTR pName;
29455 D3D12_VERSION_NUMBER Version;
29456 LPCWSTR pEngineName;
29457 D3D12_VERSION_NUMBER EngineVersion;
29458 } D3D12_APPLICATION_DESC;
29459
29460typedef void ( __stdcall *D3D12ApplicationDescFunc )(
29461 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc,
29462 _Inout_opt_ void *pContext);
29463
29464typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC
29465 {
29466 _Field_size_bytes_full_(KeySize) const void *pKey;
29467 UINT KeySize;
29468 UINT NumExports;
29469 _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports;
29470 } D3D12_EXISTING_COLLECTION_BY_KEY_DESC;
29471
29472
29473
29474extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec;
29475extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec;
29476
29477#ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
29478#define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__
29479
29480/* interface ID3D12StateObjectDatabase */
29481/* [unique][local][object][uuid] */
29482
29483
29484EXTERN_C const IID IID_ID3D12StateObjectDatabase;
29485
29486#if defined(__cplusplus) && !defined(CINTERFACE)
29487
29488 MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0")
29489 ID3D12StateObjectDatabase : public IUnknown
29490 {
29491 public:
29492 virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc(
29493 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0;
29494
29495 virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc(
29496 _In_ D3D12ApplicationDescFunc CallbackFunc,
29497 _Inout_opt_ void *pContext) = 0;
29498
29499 virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc(
29500 _In_reads_(KeySize) const void *pKey,
29501 UINT KeySize,
29502 UINT Version,
29503 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0;
29504
29505 virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc(
29506 _In_reads_(KeySize) const void *pKey,
29507 UINT KeySize,
29508 _In_ D3D12PipelineStateFunc CallbackFunc,
29509 _Inout_opt_ void *pContext) = 0;
29510
29511 virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc(
29512 _In_reads_(KeySize) const void *pKey,
29513 UINT KeySize,
29514 UINT Version,
29515 _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
29516 _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
29517 UINT StateObjectToGrowFromKeySize) = 0;
29518
29519 virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc(
29520 _In_reads_(keySize) const void *pKey,
29521 UINT KeySize,
29522 D3D12StateObjectFunc CallbackFunc,
29523 _Inout_opt_ void *pContext) = 0;
29524
29525 virtual HRESULT STDMETHODCALLTYPE FindObjectVersion(
29526 _In_reads_(keySize) const void *pKey,
29527 UINT KeySize,
29528 _Out_ UINT *pVersion) = 0;
29529
29530 };
29531
29532
29533#else /* C style interface */
29534
29535 typedef struct ID3D12StateObjectDatabaseVtbl
29536 {
29537 BEGIN_INTERFACE
29538
29539 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29540 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29541 ID3D12StateObjectDatabase * This,
29542 REFIID riid,
29543 _COM_Outptr_ void **ppvObject);
29544
29545 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29546 ULONG ( STDMETHODCALLTYPE *AddRef )(
29547 ID3D12StateObjectDatabase * This);
29548
29549 DECLSPEC_XFGVIRT(IUnknown, Release)
29550 ULONG ( STDMETHODCALLTYPE *Release )(
29551 ID3D12StateObjectDatabase * This);
29552
29553 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc)
29554 HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )(
29555 ID3D12StateObjectDatabase * This,
29556 _In_ const D3D12_APPLICATION_DESC *pApplicationDesc);
29557
29558 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc)
29559 HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )(
29560 ID3D12StateObjectDatabase * This,
29561 _In_ D3D12ApplicationDescFunc CallbackFunc,
29562 _Inout_opt_ void *pContext);
29563
29564 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc)
29565 HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )(
29566 ID3D12StateObjectDatabase * This,
29567 _In_reads_(KeySize) const void *pKey,
29568 UINT KeySize,
29569 UINT Version,
29570 _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc);
29571
29572 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc)
29573 HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )(
29574 ID3D12StateObjectDatabase * This,
29575 _In_reads_(KeySize) const void *pKey,
29576 UINT KeySize,
29577 _In_ D3D12PipelineStateFunc CallbackFunc,
29578 _Inout_opt_ void *pContext);
29579
29580 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc)
29581 HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )(
29582 ID3D12StateObjectDatabase * This,
29583 _In_reads_(KeySize) const void *pKey,
29584 UINT KeySize,
29585 UINT Version,
29586 _In_ const D3D12_STATE_OBJECT_DESC *pDesc,
29587 _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey,
29588 UINT StateObjectToGrowFromKeySize);
29589
29590 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc)
29591 HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )(
29592 ID3D12StateObjectDatabase * This,
29593 _In_reads_(keySize) const void *pKey,
29594 UINT KeySize,
29595 D3D12StateObjectFunc CallbackFunc,
29596 _Inout_opt_ void *pContext);
29597
29598 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion)
29599 HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )(
29600 ID3D12StateObjectDatabase * This,
29601 _In_reads_(keySize) const void *pKey,
29602 UINT KeySize,
29603 _Out_ UINT *pVersion);
29604
29605 END_INTERFACE
29606 } ID3D12StateObjectDatabaseVtbl;
29607
29608 interface ID3D12StateObjectDatabase
29609 {
29610 CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl;
29611 };
29612
29613
29614
29615#ifdef COBJMACROS
29616
29617
29618#define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \
29619 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29620
29621#define ID3D12StateObjectDatabase_AddRef(This) \
29622 ( (This)->lpVtbl -> AddRef(This) )
29623
29624#define ID3D12StateObjectDatabase_Release(This) \
29625 ( (This)->lpVtbl -> Release(This) )
29626
29627
29628#define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \
29629 ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) )
29630
29631#define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \
29632 ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) )
29633
29634#define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \
29635 ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) )
29636
29637#define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \
29638 ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) )
29639
29640#define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \
29641 ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) )
29642
29643#define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \
29644 ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) )
29645
29646#define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \
29647 ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) )
29648
29649#endif /* COBJMACROS */
29650
29651
29652#endif /* C style interface */
29653
29654
29655
29656
29657#endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */
29658
29659
29660#ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
29661#define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__
29662
29663/* interface ID3D12VirtualizationGuestDevice */
29664/* [unique][local][object][uuid] */
29665
29666
29667EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice;
29668
29669#if defined(__cplusplus) && !defined(CINTERFACE)
29670
29671 MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476")
29672 ID3D12VirtualizationGuestDevice : public IUnknown
29673 {
29674 public:
29675 virtual HRESULT STDMETHODCALLTYPE ShareWithHost(
29676 _In_ ID3D12DeviceChild *pObject,
29677 _Out_ HANDLE *pHandle) = 0;
29678
29679 virtual HRESULT STDMETHODCALLTYPE CreateFenceFd(
29680 _In_ ID3D12Fence *pFence,
29681 UINT64 FenceValue,
29682 _Out_ int *pFenceFd) = 0;
29683
29684 };
29685
29686
29687#else /* C style interface */
29688
29689 typedef struct ID3D12VirtualizationGuestDeviceVtbl
29690 {
29691 BEGIN_INTERFACE
29692
29693 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29694 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29695 ID3D12VirtualizationGuestDevice * This,
29696 REFIID riid,
29697 _COM_Outptr_ void **ppvObject);
29698
29699 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29700 ULONG ( STDMETHODCALLTYPE *AddRef )(
29701 ID3D12VirtualizationGuestDevice * This);
29702
29703 DECLSPEC_XFGVIRT(IUnknown, Release)
29704 ULONG ( STDMETHODCALLTYPE *Release )(
29705 ID3D12VirtualizationGuestDevice * This);
29706
29707 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost)
29708 HRESULT ( STDMETHODCALLTYPE *ShareWithHost )(
29709 ID3D12VirtualizationGuestDevice * This,
29710 _In_ ID3D12DeviceChild *pObject,
29711 _Out_ HANDLE *pHandle);
29712
29713 DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd)
29714 HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )(
29715 ID3D12VirtualizationGuestDevice * This,
29716 _In_ ID3D12Fence *pFence,
29717 UINT64 FenceValue,
29718 _Out_ int *pFenceFd);
29719
29720 END_INTERFACE
29721 } ID3D12VirtualizationGuestDeviceVtbl;
29722
29723 interface ID3D12VirtualizationGuestDevice
29724 {
29725 CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl;
29726 };
29727
29728
29729
29730#ifdef COBJMACROS
29731
29732
29733#define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \
29734 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29735
29736#define ID3D12VirtualizationGuestDevice_AddRef(This) \
29737 ( (This)->lpVtbl -> AddRef(This) )
29738
29739#define ID3D12VirtualizationGuestDevice_Release(This) \
29740 ( (This)->lpVtbl -> Release(This) )
29741
29742
29743#define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \
29744 ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) )
29745
29746#define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \
29747 ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) )
29748
29749#endif /* COBJMACROS */
29750
29751
29752#endif /* C style interface */
29753
29754
29755
29756
29757#endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */
29758
29759
29760#ifndef __ID3D12Tools_INTERFACE_DEFINED__
29761#define __ID3D12Tools_INTERFACE_DEFINED__
29762
29763/* interface ID3D12Tools */
29764/* [unique][local][object][uuid] */
29765
29766
29767EXTERN_C const IID IID_ID3D12Tools;
29768
29769#if defined(__cplusplus) && !defined(CINTERFACE)
29770
29771 MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5")
29772 ID3D12Tools : public IUnknown
29773 {
29774 public:
29775 virtual void STDMETHODCALLTYPE EnableShaderInstrumentation(
29776 BOOL bEnable) = 0;
29777
29778 virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0;
29779
29780 };
29781
29782
29783#else /* C style interface */
29784
29785 typedef struct ID3D12ToolsVtbl
29786 {
29787 BEGIN_INTERFACE
29788
29789 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29790 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29791 ID3D12Tools * This,
29792 REFIID riid,
29793 _COM_Outptr_ void **ppvObject);
29794
29795 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29796 ULONG ( STDMETHODCALLTYPE *AddRef )(
29797 ID3D12Tools * This);
29798
29799 DECLSPEC_XFGVIRT(IUnknown, Release)
29800 ULONG ( STDMETHODCALLTYPE *Release )(
29801 ID3D12Tools * This);
29802
29803 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
29804 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
29805 ID3D12Tools * This,
29806 BOOL bEnable);
29807
29808 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
29809 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
29810 ID3D12Tools * This);
29811
29812 END_INTERFACE
29813 } ID3D12ToolsVtbl;
29814
29815 interface ID3D12Tools
29816 {
29817 CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl;
29818 };
29819
29820
29821
29822#ifdef COBJMACROS
29823
29824
29825#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \
29826 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29827
29828#define ID3D12Tools_AddRef(This) \
29829 ( (This)->lpVtbl -> AddRef(This) )
29830
29831#define ID3D12Tools_Release(This) \
29832 ( (This)->lpVtbl -> Release(This) )
29833
29834
29835#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \
29836 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
29837
29838#define ID3D12Tools_ShaderInstrumentationEnabled(This) \
29839 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
29840
29841#endif /* COBJMACROS */
29842
29843
29844#endif /* C style interface */
29845
29846
29847
29848
29849#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */
29850
29851
29852#ifndef __ID3D12Tools1_INTERFACE_DEFINED__
29853#define __ID3D12Tools1_INTERFACE_DEFINED__
29854
29855/* interface ID3D12Tools1 */
29856/* [unique][local][object][uuid] */
29857
29858
29859EXTERN_C const IID IID_ID3D12Tools1;
29860
29861#if defined(__cplusplus) && !defined(CINTERFACE)
29862
29863 MIDL_INTERFACE("e4fbc019-dd3c-43e1-8f32-7f649575f0a0")
29864 ID3D12Tools1 : public ID3D12Tools
29865 {
29866 public:
29867 virtual HRESULT STDMETHODCALLTYPE ReserveGPUVARangesAtCreate(
29868 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
29869 _In_ UINT uiNumRanges) = 0;
29870
29871 virtual void STDMETHODCALLTYPE ClearReservedGPUVARangesList( void) = 0;
29872
29873 };
29874
29875
29876#else /* C style interface */
29877
29878 typedef struct ID3D12Tools1Vtbl
29879 {
29880 BEGIN_INTERFACE
29881
29882 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29883 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29884 ID3D12Tools1 * This,
29885 REFIID riid,
29886 _COM_Outptr_ void **ppvObject);
29887
29888 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29889 ULONG ( STDMETHODCALLTYPE *AddRef )(
29890 ID3D12Tools1 * This);
29891
29892 DECLSPEC_XFGVIRT(IUnknown, Release)
29893 ULONG ( STDMETHODCALLTYPE *Release )(
29894 ID3D12Tools1 * This);
29895
29896 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
29897 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
29898 ID3D12Tools1 * This,
29899 BOOL bEnable);
29900
29901 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
29902 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
29903 ID3D12Tools1 * This);
29904
29905 DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
29906 HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
29907 ID3D12Tools1 * This,
29908 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
29909 _In_ UINT uiNumRanges);
29910
29911 DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
29912 void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
29913 ID3D12Tools1 * This);
29914
29915 END_INTERFACE
29916 } ID3D12Tools1Vtbl;
29917
29918 interface ID3D12Tools1
29919 {
29920 CONST_VTBL struct ID3D12Tools1Vtbl *lpVtbl;
29921 };
29922
29923
29924
29925#ifdef COBJMACROS
29926
29927
29928#define ID3D12Tools1_QueryInterface(This,riid,ppvObject) \
29929 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
29930
29931#define ID3D12Tools1_AddRef(This) \
29932 ( (This)->lpVtbl -> AddRef(This) )
29933
29934#define ID3D12Tools1_Release(This) \
29935 ( (This)->lpVtbl -> Release(This) )
29936
29937
29938#define ID3D12Tools1_EnableShaderInstrumentation(This,bEnable) \
29939 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
29940
29941#define ID3D12Tools1_ShaderInstrumentationEnabled(This) \
29942 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
29943
29944
29945#define ID3D12Tools1_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
29946 ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
29947
29948#define ID3D12Tools1_ClearReservedGPUVARangesList(This) \
29949 ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
29950
29951#endif /* COBJMACROS */
29952
29953
29954#endif /* C style interface */
29955
29956
29957
29958
29959#endif /* __ID3D12Tools1_INTERFACE_DEFINED__ */
29960
29961
29962#ifndef __ID3D12Tools2_INTERFACE_DEFINED__
29963#define __ID3D12Tools2_INTERFACE_DEFINED__
29964
29965/* interface ID3D12Tools2 */
29966/* [unique][local][object][uuid] */
29967
29968
29969EXTERN_C const IID IID_ID3D12Tools2;
29970
29971#if defined(__cplusplus) && !defined(CINTERFACE)
29972
29973 MIDL_INTERFACE("01d393c5-c9b0-42a1-958c-c26b02d4d097")
29974 ID3D12Tools2 : public ID3D12Tools1
29975 {
29976 public:
29977 virtual HRESULT STDMETHODCALLTYPE SetApplicationSpecificDriverState(
29978 _In_ IUnknown *pAdapter,
29979 _In_opt_ ID3DBlob *pBlob) = 0;
29980
29981 };
29982
29983
29984#else /* C style interface */
29985
29986 typedef struct ID3D12Tools2Vtbl
29987 {
29988 BEGIN_INTERFACE
29989
29990 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
29991 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
29992 ID3D12Tools2 * This,
29993 REFIID riid,
29994 _COM_Outptr_ void **ppvObject);
29995
29996 DECLSPEC_XFGVIRT(IUnknown, AddRef)
29997 ULONG ( STDMETHODCALLTYPE *AddRef )(
29998 ID3D12Tools2 * This);
29999
30000 DECLSPEC_XFGVIRT(IUnknown, Release)
30001 ULONG ( STDMETHODCALLTYPE *Release )(
30002 ID3D12Tools2 * This);
30003
30004 DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation)
30005 void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )(
30006 ID3D12Tools2 * This,
30007 BOOL bEnable);
30008
30009 DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled)
30010 BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )(
30011 ID3D12Tools2 * This);
30012
30013 DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate)
30014 HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )(
30015 ID3D12Tools2 * This,
30016 _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges,
30017 _In_ UINT uiNumRanges);
30018
30019 DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList)
30020 void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )(
30021 ID3D12Tools2 * This);
30022
30023 DECLSPEC_XFGVIRT(ID3D12Tools2, SetApplicationSpecificDriverState)
30024 HRESULT ( STDMETHODCALLTYPE *SetApplicationSpecificDriverState )(
30025 ID3D12Tools2 * This,
30026 _In_ IUnknown *pAdapter,
30027 _In_opt_ ID3DBlob *pBlob);
30028
30029 END_INTERFACE
30030 } ID3D12Tools2Vtbl;
30031
30032 interface ID3D12Tools2
30033 {
30034 CONST_VTBL struct ID3D12Tools2Vtbl *lpVtbl;
30035 };
30036
30037
30038
30039#ifdef COBJMACROS
30040
30041
30042#define ID3D12Tools2_QueryInterface(This,riid,ppvObject) \
30043 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30044
30045#define ID3D12Tools2_AddRef(This) \
30046 ( (This)->lpVtbl -> AddRef(This) )
30047
30048#define ID3D12Tools2_Release(This) \
30049 ( (This)->lpVtbl -> Release(This) )
30050
30051
30052#define ID3D12Tools2_EnableShaderInstrumentation(This,bEnable) \
30053 ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) )
30054
30055#define ID3D12Tools2_ShaderInstrumentationEnabled(This) \
30056 ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) )
30057
30058
30059#define ID3D12Tools2_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \
30060 ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) )
30061
30062#define ID3D12Tools2_ClearReservedGPUVARangesList(This) \
30063 ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) )
30064
30065
30066#define ID3D12Tools2_SetApplicationSpecificDriverState(This,pAdapter,pBlob) \
30067 ( (This)->lpVtbl -> SetApplicationSpecificDriverState(This,pAdapter,pBlob) )
30068
30069#endif /* COBJMACROS */
30070
30071
30072#endif /* C style interface */
30073
30074
30075
30076
30077#endif /* __ID3D12Tools2_INTERFACE_DEFINED__ */
30078
30079
30080#ifndef __ID3D12PageableTools_INTERFACE_DEFINED__
30081#define __ID3D12PageableTools_INTERFACE_DEFINED__
30082
30083/* interface ID3D12PageableTools */
30084/* [unique][local][object][uuid] */
30085
30086
30087EXTERN_C const IID IID_ID3D12PageableTools;
30088
30089#if defined(__cplusplus) && !defined(CINTERFACE)
30090
30091 MIDL_INTERFACE("8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d")
30092 ID3D12PageableTools : public IUnknown
30093 {
30094 public:
30095 virtual HRESULT STDMETHODCALLTYPE GetAllocation(
30096 _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation) = 0;
30097
30098 };
30099
30100
30101#else /* C style interface */
30102
30103 typedef struct ID3D12PageableToolsVtbl
30104 {
30105 BEGIN_INTERFACE
30106
30107 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30108 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30109 ID3D12PageableTools * This,
30110 REFIID riid,
30111 _COM_Outptr_ void **ppvObject);
30112
30113 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30114 ULONG ( STDMETHODCALLTYPE *AddRef )(
30115 ID3D12PageableTools * This);
30116
30117 DECLSPEC_XFGVIRT(IUnknown, Release)
30118 ULONG ( STDMETHODCALLTYPE *Release )(
30119 ID3D12PageableTools * This);
30120
30121 DECLSPEC_XFGVIRT(ID3D12PageableTools, GetAllocation)
30122 HRESULT ( STDMETHODCALLTYPE *GetAllocation )(
30123 ID3D12PageableTools * This,
30124 _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation);
30125
30126 END_INTERFACE
30127 } ID3D12PageableToolsVtbl;
30128
30129 interface ID3D12PageableTools
30130 {
30131 CONST_VTBL struct ID3D12PageableToolsVtbl *lpVtbl;
30132 };
30133
30134
30135
30136#ifdef COBJMACROS
30137
30138
30139#define ID3D12PageableTools_QueryInterface(This,riid,ppvObject) \
30140 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30141
30142#define ID3D12PageableTools_AddRef(This) \
30143 ( (This)->lpVtbl -> AddRef(This) )
30144
30145#define ID3D12PageableTools_Release(This) \
30146 ( (This)->lpVtbl -> Release(This) )
30147
30148
30149#define ID3D12PageableTools_GetAllocation(This,pAllocation) \
30150 ( (This)->lpVtbl -> GetAllocation(This,pAllocation) )
30151
30152#endif /* COBJMACROS */
30153
30154
30155#endif /* C style interface */
30156
30157
30158
30159
30160#endif /* __ID3D12PageableTools_INTERFACE_DEFINED__ */
30161
30162
30163#ifndef __ID3D12DeviceTools_INTERFACE_DEFINED__
30164#define __ID3D12DeviceTools_INTERFACE_DEFINED__
30165
30166/* interface ID3D12DeviceTools */
30167/* [unique][local][object][uuid] */
30168
30169
30170EXTERN_C const IID IID_ID3D12DeviceTools;
30171
30172#if defined(__cplusplus) && !defined(CINTERFACE)
30173
30174 MIDL_INTERFACE("2ea68e9c-19c3-4e47-a109-6cdadff0aca9")
30175 ID3D12DeviceTools : public IUnknown
30176 {
30177 public:
30178 virtual void STDMETHODCALLTYPE SetNextAllocationAddress(
30179 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress) = 0;
30180
30181 };
30182
30183
30184#else /* C style interface */
30185
30186 typedef struct ID3D12DeviceToolsVtbl
30187 {
30188 BEGIN_INTERFACE
30189
30190 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30191 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30192 ID3D12DeviceTools * This,
30193 REFIID riid,
30194 _COM_Outptr_ void **ppvObject);
30195
30196 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30197 ULONG ( STDMETHODCALLTYPE *AddRef )(
30198 ID3D12DeviceTools * This);
30199
30200 DECLSPEC_XFGVIRT(IUnknown, Release)
30201 ULONG ( STDMETHODCALLTYPE *Release )(
30202 ID3D12DeviceTools * This);
30203
30204 DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
30205 void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
30206 ID3D12DeviceTools * This,
30207 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
30208
30209 END_INTERFACE
30210 } ID3D12DeviceToolsVtbl;
30211
30212 interface ID3D12DeviceTools
30213 {
30214 CONST_VTBL struct ID3D12DeviceToolsVtbl *lpVtbl;
30215 };
30216
30217
30218
30219#ifdef COBJMACROS
30220
30221
30222#define ID3D12DeviceTools_QueryInterface(This,riid,ppvObject) \
30223 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30224
30225#define ID3D12DeviceTools_AddRef(This) \
30226 ( (This)->lpVtbl -> AddRef(This) )
30227
30228#define ID3D12DeviceTools_Release(This) \
30229 ( (This)->lpVtbl -> Release(This) )
30230
30231
30232#define ID3D12DeviceTools_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
30233 ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
30234
30235#endif /* COBJMACROS */
30236
30237
30238#endif /* C style interface */
30239
30240
30241
30242
30243#endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */
30244
30245
30246/* interface __MIDL_itf_d3d12_0000_0070 */
30247/* [local] */
30248
30249typedef
30250enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS
30251 {
30252 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_UNKNOWN = 1,
30253 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_USED = 2,
30254 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_IGNORED = 3,
30255 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_NOT_SPECIFIED = 4
30256 } D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS;
30257
30258
30259
30260extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec;
30261extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec;
30262
30263#ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__
30264#define __ID3D12DeviceTools1_INTERFACE_DEFINED__
30265
30266/* interface ID3D12DeviceTools1 */
30267/* [unique][local][object][uuid] */
30268
30269
30270EXTERN_C const IID IID_ID3D12DeviceTools1;
30271
30272#if defined(__cplusplus) && !defined(CINTERFACE)
30273
30274 MIDL_INTERFACE("e30e9fc7-e641-4d6e-8a81-9dd9206ec47a")
30275 ID3D12DeviceTools1 : public ID3D12DeviceTools
30276 {
30277 public:
30278 virtual HRESULT STDMETHODCALLTYPE GetApplicationSpecificDriverState(
30279 _COM_Outptr_ ID3DBlob **ppBlob) = 0;
30280
30281 virtual D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS STDMETHODCALLTYPE GetApplicationSpecificDriverBlobStatus( void) = 0;
30282
30283 };
30284
30285
30286#else /* C style interface */
30287
30288 typedef struct ID3D12DeviceTools1Vtbl
30289 {
30290 BEGIN_INTERFACE
30291
30292 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30293 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30294 ID3D12DeviceTools1 * This,
30295 REFIID riid,
30296 _COM_Outptr_ void **ppvObject);
30297
30298 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30299 ULONG ( STDMETHODCALLTYPE *AddRef )(
30300 ID3D12DeviceTools1 * This);
30301
30302 DECLSPEC_XFGVIRT(IUnknown, Release)
30303 ULONG ( STDMETHODCALLTYPE *Release )(
30304 ID3D12DeviceTools1 * This);
30305
30306 DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress)
30307 void ( STDMETHODCALLTYPE *SetNextAllocationAddress )(
30308 ID3D12DeviceTools1 * This,
30309 _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress);
30310
30311 DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverState)
30312 HRESULT ( STDMETHODCALLTYPE *GetApplicationSpecificDriverState )(
30313 ID3D12DeviceTools1 * This,
30314 _COM_Outptr_ ID3DBlob **ppBlob);
30315
30316 DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverBlobStatus)
30317 D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS ( STDMETHODCALLTYPE *GetApplicationSpecificDriverBlobStatus )(
30318 ID3D12DeviceTools1 * This);
30319
30320 END_INTERFACE
30321 } ID3D12DeviceTools1Vtbl;
30322
30323 interface ID3D12DeviceTools1
30324 {
30325 CONST_VTBL struct ID3D12DeviceTools1Vtbl *lpVtbl;
30326 };
30327
30328
30329
30330#ifdef COBJMACROS
30331
30332
30333#define ID3D12DeviceTools1_QueryInterface(This,riid,ppvObject) \
30334 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30335
30336#define ID3D12DeviceTools1_AddRef(This) \
30337 ( (This)->lpVtbl -> AddRef(This) )
30338
30339#define ID3D12DeviceTools1_Release(This) \
30340 ( (This)->lpVtbl -> Release(This) )
30341
30342
30343#define ID3D12DeviceTools1_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \
30344 ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) )
30345
30346
30347#define ID3D12DeviceTools1_GetApplicationSpecificDriverState(This,ppBlob) \
30348 ( (This)->lpVtbl -> GetApplicationSpecificDriverState(This,ppBlob) )
30349
30350#define ID3D12DeviceTools1_GetApplicationSpecificDriverBlobStatus(This) \
30351 ( (This)->lpVtbl -> GetApplicationSpecificDriverBlobStatus(This) )
30352
30353#endif /* COBJMACROS */
30354
30355
30356#endif /* C style interface */
30357
30358
30359
30360
30361#endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */
30362
30363
30364/* interface __MIDL_itf_d3d12_0000_0071 */
30365/* [local] */
30366
30367typedef struct D3D12_SUBRESOURCE_DATA
30368 {
30369 const void *pData;
30370 LONG_PTR RowPitch;
30371 LONG_PTR SlicePitch;
30372 } D3D12_SUBRESOURCE_DATA;
30373
30374typedef struct D3D12_MEMCPY_DEST
30375 {
30376 void *pData;
30377 SIZE_T RowPitch;
30378 SIZE_T SlicePitch;
30379 } D3D12_MEMCPY_DEST;
30380
30381#if !defined( D3D12_IGNORE_SDK_LAYERS )
30382#include "d3d12sdklayers.h"
30383#endif
30384
30385///////////////////////////////////////////////////////////////////////////
30386// D3D12CreateDevice
30387// ------------------
30388//
30389// pAdapter
30390// If NULL, D3D12CreateDevice will choose the primary adapter.
30391// If non-NULL, D3D12CreateDevice will use the provided adapter.
30392// MinimumFeatureLevel
30393// The minimum feature level required for successful device creation.
30394// riid
30395// The interface IID of the device to be returned. Expected: ID3D12Device.
30396// ppDevice
30397// Pointer to returned interface. May be NULL.
30398//
30399// Return Values
30400// Any of those documented for
30401// CreateDXGIFactory1
30402// IDXGIFactory::EnumAdapters
30403// D3D12CreateDevice
30404//
30405///////////////////////////////////////////////////////////////////////////
30406typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*,
30407 D3D_FEATURE_LEVEL,
30408 _In_ REFIID, _COM_Outptr_opt_ void** );
30409
30410HRESULT WINAPI D3D12CreateDevice(
30411 _In_opt_ IUnknown* pAdapter,
30412 D3D_FEATURE_LEVEL MinimumFeatureLevel,
30413 _In_ REFIID riid, // Expected: ID3D12Device
30414 _COM_Outptr_opt_ void** ppDevice );
30415
30416
30417typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );
30418
30419HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
30420
30421// --------------------------------------------------------------------------------------------------------------------------------
30422// D3D12EnableExperimentalFeatures
30423//
30424// Pass in a list of feature GUIDs to be enabled together.
30425//
30426// If a particular feature requires some configuration information on enablement, it will have
30427// a configuration struct that can be passed alongside the GUID.
30428//
30429// Some features might use an interface IID as the GUID. For these, once the feature is enabled via
30430// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface
30431// for manipulating the feature. This allows for control that might not cleanly be expressed by just
30432// the configuration struct that D3D12EnableExperimentalFeatures provides.
30433//
30434// If this method is called and a change to existing feature enablement is made,
30435// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one
30436// singleton device for a process. Removing the devices when configuration changes prevents
30437// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.
30438//
30439// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.
30440// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed
30441// in are known to be incompatible with each other, or other errors.
30442// Returns S_OK otherwise.
30443//
30444// --------------------------------------------------------------------------------------------------------------------------------
30445HRESULT WINAPI D3D12EnableExperimentalFeatures(
30446 UINT NumFeatures,
30447 _In_count_(NumFeatures) const IID* pIIDs,
30448 _In_opt_count_(NumFeatures) void* pConfigurationStructs,
30449 _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);
30450
30451// --------------------------------------------------------------------------------------------------------------------------------
30452// Experimental Feature: D3D12ExperimentalShaderModels
30453//
30454// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
30455// meaning shader models that haven't been finalized for use in retail.
30456//
30457// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
30458//
30459// --------------------------------------------------------------------------------------------------------------------------------
30460static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
30461 0x76f5573e,
30462 0xf13a,
30463 0x40f5,
30464 { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
30465};
30466// --------------------------------------------------------------------------------------------------------------------------------
30467// Experimental Feature: D3D12TiledResourceTier4
30468//
30469// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,
30470// meaning texture tile data-inheritance is allowed.
30471//
30472// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.
30473//
30474// --------------------------------------------------------------------------------------------------------------------------------
30475static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */
30476 0xc9c4725f,
30477 0xa81a,
30478 0x4f56,
30479 { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }
30480};
30481// --------------------------------------------------------------------------------------------------------------------------------
30482// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS
30483//
30484// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS,
30485// driver support is still required for this feature.
30486//
30487// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.
30488//
30489// --------------------------------------------------------------------------------------------------------------------------------
30490static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */
30491 0x45dc51f3,
30492 0x767f,
30493 0x4588,
30494 { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }
30495};
30496// --------------------------------------------------------------------------------------------------------------------------------
30497// D3D12GetInterface
30498//
30499// Retrieve Global D3D12 Interface.
30500//
30501
30502DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);
30503DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);
30504DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);
30505DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);
30506DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);
30507DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28);
30508DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73);
30509
30510typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );
30511
30512HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );
30513
30514
30515
30516extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec;
30517extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec;
30518
30519#ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__
30520#define __ID3D12SDKConfiguration_INTERFACE_DEFINED__
30521
30522/* interface ID3D12SDKConfiguration */
30523/* [unique][local][object][uuid] */
30524
30525
30526EXTERN_C const IID IID_ID3D12SDKConfiguration;
30527
30528#if defined(__cplusplus) && !defined(CINTERFACE)
30529
30530 MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7")
30531 ID3D12SDKConfiguration : public IUnknown
30532 {
30533 public:
30534 virtual HRESULT STDMETHODCALLTYPE SetSDKVersion(
30535 UINT SDKVersion,
30536 _In_z_ LPCSTR SDKPath) = 0;
30537
30538 };
30539
30540
30541#else /* C style interface */
30542
30543 typedef struct ID3D12SDKConfigurationVtbl
30544 {
30545 BEGIN_INTERFACE
30546
30547 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30548 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30549 ID3D12SDKConfiguration * This,
30550 REFIID riid,
30551 _COM_Outptr_ void **ppvObject);
30552
30553 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30554 ULONG ( STDMETHODCALLTYPE *AddRef )(
30555 ID3D12SDKConfiguration * This);
30556
30557 DECLSPEC_XFGVIRT(IUnknown, Release)
30558 ULONG ( STDMETHODCALLTYPE *Release )(
30559 ID3D12SDKConfiguration * This);
30560
30561 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
30562 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
30563 ID3D12SDKConfiguration * This,
30564 UINT SDKVersion,
30565 _In_z_ LPCSTR SDKPath);
30566
30567 END_INTERFACE
30568 } ID3D12SDKConfigurationVtbl;
30569
30570 interface ID3D12SDKConfiguration
30571 {
30572 CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl;
30573 };
30574
30575
30576
30577#ifdef COBJMACROS
30578
30579
30580#define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \
30581 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30582
30583#define ID3D12SDKConfiguration_AddRef(This) \
30584 ( (This)->lpVtbl -> AddRef(This) )
30585
30586#define ID3D12SDKConfiguration_Release(This) \
30587 ( (This)->lpVtbl -> Release(This) )
30588
30589
30590#define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \
30591 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
30592
30593#endif /* COBJMACROS */
30594
30595
30596#endif /* C style interface */
30597
30598
30599
30600
30601#endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
30602
30603
30604#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
30605#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
30606
30607/* interface ID3D12SDKConfiguration1 */
30608/* [unique][local][object][uuid] */
30609
30610
30611EXTERN_C const IID IID_ID3D12SDKConfiguration1;
30612
30613#if defined(__cplusplus) && !defined(CINTERFACE)
30614
30615 MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
30616 ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
30617 {
30618 public:
30619 virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
30620 UINT SDKVersion,
30621 _In_ LPCSTR SDKPath,
30622 REFIID riid,
30623 _COM_Outptr_ void **ppvFactory) = 0;
30624
30625 virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0;
30626
30627 };
30628
30629
30630#else /* C style interface */
30631
30632 typedef struct ID3D12SDKConfiguration1Vtbl
30633 {
30634 BEGIN_INTERFACE
30635
30636 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30637 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30638 ID3D12SDKConfiguration1 * This,
30639 REFIID riid,
30640 _COM_Outptr_ void **ppvObject);
30641
30642 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30643 ULONG ( STDMETHODCALLTYPE *AddRef )(
30644 ID3D12SDKConfiguration1 * This);
30645
30646 DECLSPEC_XFGVIRT(IUnknown, Release)
30647 ULONG ( STDMETHODCALLTYPE *Release )(
30648 ID3D12SDKConfiguration1 * This);
30649
30650 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion)
30651 HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )(
30652 ID3D12SDKConfiguration1 * This,
30653 UINT SDKVersion,
30654 _In_z_ LPCSTR SDKPath);
30655
30656 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory)
30657 HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )(
30658 ID3D12SDKConfiguration1 * This,
30659 UINT SDKVersion,
30660 _In_ LPCSTR SDKPath,
30661 REFIID riid,
30662 _COM_Outptr_ void **ppvFactory);
30663
30664 DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs)
30665 void ( STDMETHODCALLTYPE *FreeUnusedSDKs )(
30666 ID3D12SDKConfiguration1 * This);
30667
30668 END_INTERFACE
30669 } ID3D12SDKConfiguration1Vtbl;
30670
30671 interface ID3D12SDKConfiguration1
30672 {
30673 CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl;
30674 };
30675
30676
30677
30678#ifdef COBJMACROS
30679
30680
30681#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \
30682 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30683
30684#define ID3D12SDKConfiguration1_AddRef(This) \
30685 ( (This)->lpVtbl -> AddRef(This) )
30686
30687#define ID3D12SDKConfiguration1_Release(This) \
30688 ( (This)->lpVtbl -> Release(This) )
30689
30690
30691#define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \
30692 ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) )
30693
30694
30695#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \
30696 ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) )
30697
30698#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \
30699 ( (This)->lpVtbl -> FreeUnusedSDKs(This) )
30700
30701#endif /* COBJMACROS */
30702
30703
30704#endif /* C style interface */
30705
30706
30707
30708
30709#endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
30710
30711
30712/* interface __MIDL_itf_d3d12_0000_0073 */
30713/* [local] */
30714
30715typedef
30716enum D3D12_DEVICE_FACTORY_FLAGS
30717 {
30718 D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
30719 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
30720 D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
30721 D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
30722 } D3D12_DEVICE_FACTORY_FLAGS;
30723
30724DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )
30725
30726
30727extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec;
30728extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec;
30729
30730#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
30731#define __ID3D12DeviceFactory_INTERFACE_DEFINED__
30732
30733/* interface ID3D12DeviceFactory */
30734/* [unique][local][object][uuid] */
30735
30736
30737EXTERN_C const IID IID_ID3D12DeviceFactory;
30738
30739#if defined(__cplusplus) && !defined(CINTERFACE)
30740
30741 MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
30742 ID3D12DeviceFactory : public IUnknown
30743 {
30744 public:
30745 virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0;
30746
30747 virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0;
30748
30749 virtual HRESULT STDMETHODCALLTYPE SetFlags(
30750 D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
30751
30752 virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0;
30753
30754 virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
30755 REFCLSID clsid,
30756 REFIID iid,
30757 _COM_Outptr_ void **ppv) = 0;
30758
30759 virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
30760 UINT NumFeatures,
30761 _In_reads_(NumFeatures) const IID *pIIDs,
30762 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
30763 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0;
30764
30765 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
30766 _In_opt_ IUnknown *adapter,
30767 D3D_FEATURE_LEVEL FeatureLevel,
30768 REFIID riid,
30769 _COM_Outptr_opt_ void **ppvDevice) = 0;
30770
30771 };
30772
30773
30774#else /* C style interface */
30775
30776 typedef struct ID3D12DeviceFactoryVtbl
30777 {
30778 BEGIN_INTERFACE
30779
30780 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30781 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30782 ID3D12DeviceFactory * This,
30783 REFIID riid,
30784 _COM_Outptr_ void **ppvObject);
30785
30786 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30787 ULONG ( STDMETHODCALLTYPE *AddRef )(
30788 ID3D12DeviceFactory * This);
30789
30790 DECLSPEC_XFGVIRT(IUnknown, Release)
30791 ULONG ( STDMETHODCALLTYPE *Release )(
30792 ID3D12DeviceFactory * This);
30793
30794 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState)
30795 HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )(
30796 ID3D12DeviceFactory * This);
30797
30798 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState)
30799 HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )(
30800 ID3D12DeviceFactory * This);
30801
30802 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags)
30803 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
30804 ID3D12DeviceFactory * This,
30805 D3D12_DEVICE_FACTORY_FLAGS flags);
30806
30807 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags)
30808 D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )(
30809 ID3D12DeviceFactory * This);
30810
30811 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface)
30812 HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )(
30813 ID3D12DeviceFactory * This,
30814 REFCLSID clsid,
30815 REFIID iid,
30816 _COM_Outptr_ void **ppv);
30817
30818 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures)
30819 HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )(
30820 ID3D12DeviceFactory * This,
30821 UINT NumFeatures,
30822 _In_reads_(NumFeatures) const IID *pIIDs,
30823 _In_reads_opt_(NumFeatures) void *pConfigurationStructs,
30824 _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes);
30825
30826 DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice)
30827 HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
30828 ID3D12DeviceFactory * This,
30829 _In_opt_ IUnknown *adapter,
30830 D3D_FEATURE_LEVEL FeatureLevel,
30831 REFIID riid,
30832 _COM_Outptr_opt_ void **ppvDevice);
30833
30834 END_INTERFACE
30835 } ID3D12DeviceFactoryVtbl;
30836
30837 interface ID3D12DeviceFactory
30838 {
30839 CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl;
30840 };
30841
30842
30843
30844#ifdef COBJMACROS
30845
30846
30847#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \
30848 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
30849
30850#define ID3D12DeviceFactory_AddRef(This) \
30851 ( (This)->lpVtbl -> AddRef(This) )
30852
30853#define ID3D12DeviceFactory_Release(This) \
30854 ( (This)->lpVtbl -> Release(This) )
30855
30856
30857#define ID3D12DeviceFactory_InitializeFromGlobalState(This) \
30858 ( (This)->lpVtbl -> InitializeFromGlobalState(This) )
30859
30860#define ID3D12DeviceFactory_ApplyToGlobalState(This) \
30861 ( (This)->lpVtbl -> ApplyToGlobalState(This) )
30862
30863#define ID3D12DeviceFactory_SetFlags(This,flags) \
30864 ( (This)->lpVtbl -> SetFlags(This,flags) )
30865
30866#define ID3D12DeviceFactory_GetFlags(This) \
30867 ( (This)->lpVtbl -> GetFlags(This) )
30868
30869#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \
30870 ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) )
30871
30872#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \
30873 ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) )
30874
30875#define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \
30876 ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) )
30877
30878#endif /* COBJMACROS */
30879
30880
30881#endif /* C style interface */
30882
30883
30884
30885
30886#endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
30887
30888
30889/* interface __MIDL_itf_d3d12_0000_0074 */
30890/* [local] */
30891
30892typedef
30893enum D3D12_DEVICE_FLAGS
30894 {
30895 D3D12_DEVICE_FLAG_NONE = 0,
30896 D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
30897 D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
30898 D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
30899 D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
30900 D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
30901 D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
30902 D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
30903 D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
30904 D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
30905 D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
30906 D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
30907 } D3D12_DEVICE_FLAGS;
30908
30909DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )
30910typedef struct D3D12_DEVICE_CONFIGURATION_DESC
30911 {
30912 D3D12_DEVICE_FLAGS Flags;
30913 UINT GpuBasedValidationFlags;
30914 UINT SDKVersion;
30915 UINT NumEnabledExperimentalFeatures;
30916 } D3D12_DEVICE_CONFIGURATION_DESC;
30917
30918
30919
30920extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec;
30921extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec;
30922
30923#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
30924#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
30925
30926/* interface ID3D12DeviceConfiguration */
30927/* [unique][local][object][uuid] */
30928
30929
30930EXTERN_C const IID IID_ID3D12DeviceConfiguration;
30931
30932#if defined(__cplusplus) && !defined(CINTERFACE)
30933
30934 MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
30935 ID3D12DeviceConfiguration : public IUnknown
30936 {
30937 public:
30938#if defined(_MSC_VER) || !defined(_WIN32)
30939 virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
30940#else
30941 virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc(
30942 D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0;
30943#endif
30944
30945 virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
30946 _Out_writes_(NumGuids) GUID *pGuids,
30947 UINT NumGuids) = 0;
30948
30949 virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
30950 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
30951 _COM_Outptr_ ID3DBlob **ppResult,
30952 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0;
30953
30954 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
30955 _In_reads_bytes_(Size) const void *pBlob,
30956 SIZE_T Size,
30957 REFIID riid,
30958 _COM_Outptr_ void **ppvDeserializer) = 0;
30959
30960 };
30961
30962
30963#else /* C style interface */
30964
30965 typedef struct ID3D12DeviceConfigurationVtbl
30966 {
30967 BEGIN_INTERFACE
30968
30969 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
30970 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
30971 ID3D12DeviceConfiguration * This,
30972 REFIID riid,
30973 _COM_Outptr_ void **ppvObject);
30974
30975 DECLSPEC_XFGVIRT(IUnknown, AddRef)
30976 ULONG ( STDMETHODCALLTYPE *AddRef )(
30977 ID3D12DeviceConfiguration * This);
30978
30979 DECLSPEC_XFGVIRT(IUnknown, Release)
30980 ULONG ( STDMETHODCALLTYPE *Release )(
30981 ID3D12DeviceConfiguration * This);
30982
30983 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
30984#if !defined(_WIN32)
30985 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
30986 ID3D12DeviceConfiguration * This);
30987
30988#else
30989 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
30990 ID3D12DeviceConfiguration * This,
30991 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
30992
30993#endif
30994
30995 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
30996 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
30997 ID3D12DeviceConfiguration * This,
30998 _Out_writes_(NumGuids) GUID *pGuids,
30999 UINT NumGuids);
31000
31001 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
31002 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
31003 ID3D12DeviceConfiguration * This,
31004 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
31005 _COM_Outptr_ ID3DBlob **ppResult,
31006 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
31007
31008 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
31009 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
31010 ID3D12DeviceConfiguration * This,
31011 _In_reads_bytes_(Size) const void *pBlob,
31012 SIZE_T Size,
31013 REFIID riid,
31014 _COM_Outptr_ void **ppvDeserializer);
31015
31016 END_INTERFACE
31017 } ID3D12DeviceConfigurationVtbl;
31018
31019 interface ID3D12DeviceConfiguration
31020 {
31021 CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl;
31022 };
31023
31024
31025
31026#ifdef COBJMACROS
31027
31028
31029#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \
31030 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31031
31032#define ID3D12DeviceConfiguration_AddRef(This) \
31033 ( (This)->lpVtbl -> AddRef(This) )
31034
31035#define ID3D12DeviceConfiguration_Release(This) \
31036 ( (This)->lpVtbl -> Release(This) )
31037
31038#if !defined(_WIN32)
31039
31040#define ID3D12DeviceConfiguration_GetDesc(This) \
31041 ( (This)->lpVtbl -> GetDesc(This) )
31042#else
31043#define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \
31044 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
31045#endif
31046
31047#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
31048 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
31049
31050#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
31051 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
31052
31053#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
31054 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
31055
31056#endif /* COBJMACROS */
31057
31058
31059#endif /* C style interface */
31060
31061
31062
31063
31064#endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
31065
31066
31067#ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
31068#define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__
31069
31070/* interface ID3D12DeviceConfiguration1 */
31071/* [unique][local][object][uuid] */
31072
31073
31074EXTERN_C const IID IID_ID3D12DeviceConfiguration1;
31075
31076#if defined(__cplusplus) && !defined(CINTERFACE)
31077
31078 MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56")
31079 ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration
31080 {
31081 public:
31082 virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(
31083 _In_reads_bytes_(Size) const void *pLibraryBlob,
31084 SIZE_T Size,
31085 LPCWSTR RootSignatureSubobjectName,
31086 REFIID riid,
31087 _COM_Outptr_ void **ppvDeserializer) = 0;
31088
31089 };
31090
31091
31092#else /* C style interface */
31093
31094 typedef struct ID3D12DeviceConfiguration1Vtbl
31095 {
31096 BEGIN_INTERFACE
31097
31098 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31099 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31100 ID3D12DeviceConfiguration1 * This,
31101 REFIID riid,
31102 _COM_Outptr_ void **ppvObject);
31103
31104 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31105 ULONG ( STDMETHODCALLTYPE *AddRef )(
31106 ID3D12DeviceConfiguration1 * This);
31107
31108 DECLSPEC_XFGVIRT(IUnknown, Release)
31109 ULONG ( STDMETHODCALLTYPE *Release )(
31110 ID3D12DeviceConfiguration1 * This);
31111
31112 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc)
31113#if !defined(_WIN32)
31114 D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )(
31115 ID3D12DeviceConfiguration1 * This);
31116
31117#else
31118 D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )(
31119 ID3D12DeviceConfiguration1 * This,
31120 D3D12_DEVICE_CONFIGURATION_DESC * RetVal);
31121
31122#endif
31123
31124 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures)
31125 HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )(
31126 ID3D12DeviceConfiguration1 * This,
31127 _Out_writes_(NumGuids) GUID *pGuids,
31128 UINT NumGuids);
31129
31130 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature)
31131 HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )(
31132 ID3D12DeviceConfiguration1 * This,
31133 _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc,
31134 _COM_Outptr_ ID3DBlob **ppResult,
31135 _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError);
31136
31137 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer)
31138 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )(
31139 ID3D12DeviceConfiguration1 * This,
31140 _In_reads_bytes_(Size) const void *pBlob,
31141 SIZE_T Size,
31142 REFIID riid,
31143 _COM_Outptr_ void **ppvDeserializer);
31144
31145 DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary)
31146 HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )(
31147 ID3D12DeviceConfiguration1 * This,
31148 _In_reads_bytes_(Size) const void *pLibraryBlob,
31149 SIZE_T Size,
31150 LPCWSTR RootSignatureSubobjectName,
31151 REFIID riid,
31152 _COM_Outptr_ void **ppvDeserializer);
31153
31154 END_INTERFACE
31155 } ID3D12DeviceConfiguration1Vtbl;
31156
31157 interface ID3D12DeviceConfiguration1
31158 {
31159 CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl;
31160 };
31161
31162
31163
31164#ifdef COBJMACROS
31165
31166
31167#define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \
31168 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31169
31170#define ID3D12DeviceConfiguration1_AddRef(This) \
31171 ( (This)->lpVtbl -> AddRef(This) )
31172
31173#define ID3D12DeviceConfiguration1_Release(This) \
31174 ( (This)->lpVtbl -> Release(This) )
31175
31176#if !defined(_WIN32)
31177
31178#define ID3D12DeviceConfiguration1_GetDesc(This) \
31179 ( (This)->lpVtbl -> GetDesc(This) )
31180#else
31181#define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \
31182 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
31183#endif
31184
31185#define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \
31186 ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) )
31187
31188#define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \
31189 ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) )
31190
31191#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \
31192 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) )
31193
31194
31195#define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \
31196 ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) )
31197
31198#endif /* COBJMACROS */
31199
31200
31201#endif /* C style interface */
31202
31203
31204
31205
31206#endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */
31207
31208
31209/* interface __MIDL_itf_d3d12_0000_0076 */
31210/* [local] */
31211
31212typedef
31213enum D3D12_STATE_OBJECT_DATABASE_FLAGS
31214 {
31215 D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0,
31216 D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1
31217 } D3D12_STATE_OBJECT_DATABASE_FLAGS;
31218
31219DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS )
31220
31221
31222extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec;
31223extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec;
31224
31225#ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
31226#define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__
31227
31228/* interface ID3D12StateObjectDatabaseFactory */
31229/* [unique][local][object][uuid] */
31230
31231
31232EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory;
31233
31234#if defined(__cplusplus) && !defined(CINTERFACE)
31235
31236 MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb")
31237 ID3D12StateObjectDatabaseFactory : public IUnknown
31238 {
31239 public:
31240 virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile(
31241 LPCWSTR pDatabaseFile,
31242 D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
31243 REFIID riid,
31244 _COM_Outptr_ void **ppvStateObjectDatabase) = 0;
31245
31246 };
31247
31248
31249#else /* C style interface */
31250
31251 typedef struct ID3D12StateObjectDatabaseFactoryVtbl
31252 {
31253 BEGIN_INTERFACE
31254
31255 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31256 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31257 ID3D12StateObjectDatabaseFactory * This,
31258 REFIID riid,
31259 _COM_Outptr_ void **ppvObject);
31260
31261 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31262 ULONG ( STDMETHODCALLTYPE *AddRef )(
31263 ID3D12StateObjectDatabaseFactory * This);
31264
31265 DECLSPEC_XFGVIRT(IUnknown, Release)
31266 ULONG ( STDMETHODCALLTYPE *Release )(
31267 ID3D12StateObjectDatabaseFactory * This);
31268
31269 DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile)
31270 HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )(
31271 ID3D12StateObjectDatabaseFactory * This,
31272 LPCWSTR pDatabaseFile,
31273 D3D12_STATE_OBJECT_DATABASE_FLAGS flags,
31274 REFIID riid,
31275 _COM_Outptr_ void **ppvStateObjectDatabase);
31276
31277 END_INTERFACE
31278 } ID3D12StateObjectDatabaseFactoryVtbl;
31279
31280 interface ID3D12StateObjectDatabaseFactory
31281 {
31282 CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl;
31283 };
31284
31285
31286
31287#ifdef COBJMACROS
31288
31289
31290#define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \
31291 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31292
31293#define ID3D12StateObjectDatabaseFactory_AddRef(This) \
31294 ( (This)->lpVtbl -> AddRef(This) )
31295
31296#define ID3D12StateObjectDatabaseFactory_Release(This) \
31297 ( (This)->lpVtbl -> Release(This) )
31298
31299
31300#define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \
31301 ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) )
31302
31303#endif /* COBJMACROS */
31304
31305
31306#endif /* C style interface */
31307
31308
31309
31310
31311#endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */
31312
31313
31314/* interface __MIDL_itf_d3d12_0000_0077 */
31315/* [local] */
31316
31317typedef
31318enum D3D12_AXIS_SHADING_RATE
31319 {
31320 D3D12_AXIS_SHADING_RATE_1X = 0,
31321 D3D12_AXIS_SHADING_RATE_2X = 0x1,
31322 D3D12_AXIS_SHADING_RATE_4X = 0x2
31323 } D3D12_AXIS_SHADING_RATE;
31324
31325#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2
31326#define D3D12_SHADING_RATE_VALID_MASK 3
31327#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))
31328#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)
31329#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)
31330typedef
31331enum D3D12_SHADING_RATE
31332 {
31333 D3D12_SHADING_RATE_1X1 = 0,
31334 D3D12_SHADING_RATE_1X2 = 0x1,
31335 D3D12_SHADING_RATE_2X1 = 0x4,
31336 D3D12_SHADING_RATE_2X2 = 0x5,
31337 D3D12_SHADING_RATE_2X4 = 0x6,
31338 D3D12_SHADING_RATE_4X2 = 0x9,
31339 D3D12_SHADING_RATE_4X4 = 0xa
31340 } D3D12_SHADING_RATE;
31341
31342typedef
31343enum D3D12_SHADING_RATE_COMBINER
31344 {
31345 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
31346 D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
31347 D3D12_SHADING_RATE_COMBINER_MIN = 2,
31348 D3D12_SHADING_RATE_COMBINER_MAX = 3,
31349 D3D12_SHADING_RATE_COMBINER_SUM = 4
31350 } D3D12_SHADING_RATE_COMBINER;
31351
31352
31353
31354extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec;
31355extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec;
31356
31357#ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
31358#define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__
31359
31360/* interface ID3D12GraphicsCommandList5 */
31361/* [unique][local][object][uuid] */
31362
31363
31364EXTERN_C const IID IID_ID3D12GraphicsCommandList5;
31365
31366#if defined(__cplusplus) && !defined(CINTERFACE)
31367
31368 MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea")
31369 ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4
31370 {
31371 public:
31372 virtual void STDMETHODCALLTYPE RSSetShadingRate(
31373 _In_ D3D12_SHADING_RATE baseShadingRate,
31374 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0;
31375
31376 virtual void STDMETHODCALLTYPE RSSetShadingRateImage(
31377 _In_opt_ ID3D12Resource *shadingRateImage) = 0;
31378
31379 };
31380
31381
31382#else /* C style interface */
31383
31384 typedef struct ID3D12GraphicsCommandList5Vtbl
31385 {
31386 BEGIN_INTERFACE
31387
31388 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
31389 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
31390 ID3D12GraphicsCommandList5 * This,
31391 REFIID riid,
31392 _COM_Outptr_ void **ppvObject);
31393
31394 DECLSPEC_XFGVIRT(IUnknown, AddRef)
31395 ULONG ( STDMETHODCALLTYPE *AddRef )(
31396 ID3D12GraphicsCommandList5 * This);
31397
31398 DECLSPEC_XFGVIRT(IUnknown, Release)
31399 ULONG ( STDMETHODCALLTYPE *Release )(
31400 ID3D12GraphicsCommandList5 * This);
31401
31402 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
31403 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
31404 ID3D12GraphicsCommandList5 * This,
31405 _In_ REFGUID guid,
31406 _Inout_ UINT *pDataSize,
31407 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
31408
31409 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
31410 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
31411 ID3D12GraphicsCommandList5 * This,
31412 _In_ REFGUID guid,
31413 _In_ UINT DataSize,
31414 _In_reads_bytes_opt_( DataSize ) const void *pData);
31415
31416 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
31417 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
31418 ID3D12GraphicsCommandList5 * This,
31419 _In_ REFGUID guid,
31420 _In_opt_ const IUnknown *pData);
31421
31422 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
31423 HRESULT ( STDMETHODCALLTYPE *SetName )(
31424 ID3D12GraphicsCommandList5 * This,
31425 _In_z_ LPCWSTR Name);
31426
31427 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
31428 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
31429 ID3D12GraphicsCommandList5 * This,
31430 REFIID riid,
31431 _COM_Outptr_opt_ void **ppvDevice);
31432
31433 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
31434 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
31435 ID3D12GraphicsCommandList5 * This);
31436
31437 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
31438 HRESULT ( STDMETHODCALLTYPE *Close )(
31439 ID3D12GraphicsCommandList5 * This);
31440
31441 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
31442 HRESULT ( STDMETHODCALLTYPE *Reset )(
31443 ID3D12GraphicsCommandList5 * This,
31444 _In_ ID3D12CommandAllocator *pAllocator,
31445 _In_opt_ ID3D12PipelineState *pInitialState);
31446
31447 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
31448 void ( STDMETHODCALLTYPE *ClearState )(
31449 ID3D12GraphicsCommandList5 * This,
31450 _In_opt_ ID3D12PipelineState *pPipelineState);
31451
31452 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
31453 void ( STDMETHODCALLTYPE *DrawInstanced )(
31454 ID3D12GraphicsCommandList5 * This,
31455 _In_ UINT VertexCountPerInstance,
31456 _In_ UINT InstanceCount,
31457 _In_ UINT StartVertexLocation,
31458 _In_ UINT StartInstanceLocation);
31459
31460 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
31461 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
31462 ID3D12GraphicsCommandList5 * This,
31463 _In_ UINT IndexCountPerInstance,
31464 _In_ UINT InstanceCount,
31465 _In_ UINT StartIndexLocation,
31466 _In_ INT BaseVertexLocation,
31467 _In_ UINT StartInstanceLocation);
31468
31469 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
31470 void ( STDMETHODCALLTYPE *Dispatch )(
31471 ID3D12GraphicsCommandList5 * This,
31472 _In_ UINT ThreadGroupCountX,
31473 _In_ UINT ThreadGroupCountY,
31474 _In_ UINT ThreadGroupCountZ);
31475
31476 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
31477 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
31478 ID3D12GraphicsCommandList5 * This,
31479 _In_ ID3D12Resource *pDstBuffer,
31480 UINT64 DstOffset,
31481 _In_ ID3D12Resource *pSrcBuffer,
31482 UINT64 SrcOffset,
31483 UINT64 NumBytes);
31484
31485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
31486 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
31487 ID3D12GraphicsCommandList5 * This,
31488 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
31489 UINT DstX,
31490 UINT DstY,
31491 UINT DstZ,
31492 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
31493 _In_opt_ const D3D12_BOX *pSrcBox);
31494
31495 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
31496 void ( STDMETHODCALLTYPE *CopyResource )(
31497 ID3D12GraphicsCommandList5 * This,
31498 _In_ ID3D12Resource *pDstResource,
31499 _In_ ID3D12Resource *pSrcResource);
31500
31501 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
31502 void ( STDMETHODCALLTYPE *CopyTiles )(
31503 ID3D12GraphicsCommandList5 * This,
31504 _In_ ID3D12Resource *pTiledResource,
31505 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
31506 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
31507 _In_ ID3D12Resource *pBuffer,
31508 UINT64 BufferStartOffsetInBytes,
31509 D3D12_TILE_COPY_FLAGS Flags);
31510
31511 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
31512 void ( STDMETHODCALLTYPE *ResolveSubresource )(
31513 ID3D12GraphicsCommandList5 * This,
31514 _In_ ID3D12Resource *pDstResource,
31515 _In_ UINT DstSubresource,
31516 _In_ ID3D12Resource *pSrcResource,
31517 _In_ UINT SrcSubresource,
31518 _In_ DXGI_FORMAT Format);
31519
31520 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
31521 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
31522 ID3D12GraphicsCommandList5 * This,
31523 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
31524
31525 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
31526 void ( STDMETHODCALLTYPE *RSSetViewports )(
31527 ID3D12GraphicsCommandList5 * This,
31528 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
31529 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
31530
31531 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
31532 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
31533 ID3D12GraphicsCommandList5 * This,
31534 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
31535 _In_reads_( NumRects) const D3D12_RECT *pRects);
31536
31537 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
31538 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
31539 ID3D12GraphicsCommandList5 * This,
31540 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
31541
31542 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
31543 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
31544 ID3D12GraphicsCommandList5 * This,
31545 _In_ UINT StencilRef);
31546
31547 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
31548 void ( STDMETHODCALLTYPE *SetPipelineState )(
31549 ID3D12GraphicsCommandList5 * This,
31550 _In_ ID3D12PipelineState *pPipelineState);
31551
31552 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
31553 void ( STDMETHODCALLTYPE *ResourceBarrier )(
31554 ID3D12GraphicsCommandList5 * This,
31555 _In_ UINT NumBarriers,
31556 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
31557
31558 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
31559 void ( STDMETHODCALLTYPE *ExecuteBundle )(
31560 ID3D12GraphicsCommandList5 * This,
31561 _In_ ID3D12GraphicsCommandList *pCommandList);
31562
31563 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
31564 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
31565 ID3D12GraphicsCommandList5 * This,
31566 _In_ UINT NumDescriptorHeaps,
31567 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
31568
31569 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
31570 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
31571 ID3D12GraphicsCommandList5 * This,
31572 _In_opt_ ID3D12RootSignature *pRootSignature);
31573
31574 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
31575 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
31576 ID3D12GraphicsCommandList5 * This,
31577 _In_opt_ ID3D12RootSignature *pRootSignature);
31578
31579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
31580 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
31581 ID3D12GraphicsCommandList5 * This,
31582 _In_ UINT RootParameterIndex,
31583 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31584
31585 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
31586 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
31587 ID3D12GraphicsCommandList5 * This,
31588 _In_ UINT RootParameterIndex,
31589 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
31590
31591 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
31592 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
31593 ID3D12GraphicsCommandList5 * This,
31594 _In_ UINT RootParameterIndex,
31595 _In_ UINT SrcData,
31596 _In_ UINT DestOffsetIn32BitValues);
31597
31598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
31599 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
31600 ID3D12GraphicsCommandList5 * This,
31601 _In_ UINT RootParameterIndex,
31602 _In_ UINT SrcData,
31603 _In_ UINT DestOffsetIn32BitValues);
31604
31605 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
31606 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
31607 ID3D12GraphicsCommandList5 * This,
31608 _In_ UINT RootParameterIndex,
31609 _In_ UINT Num32BitValuesToSet,
31610 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31611 _In_ UINT DestOffsetIn32BitValues);
31612
31613 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
31614 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
31615 ID3D12GraphicsCommandList5 * This,
31616 _In_ UINT RootParameterIndex,
31617 _In_ UINT Num32BitValuesToSet,
31618 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
31619 _In_ UINT DestOffsetIn32BitValues);
31620
31621 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
31622 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
31623 ID3D12GraphicsCommandList5 * This,
31624 _In_ UINT RootParameterIndex,
31625 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31626
31627 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
31628 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
31629 ID3D12GraphicsCommandList5 * This,
31630 _In_ UINT RootParameterIndex,
31631 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31632
31633 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
31634 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
31635 ID3D12GraphicsCommandList5 * This,
31636 _In_ UINT RootParameterIndex,
31637 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31638
31639 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
31640 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
31641 ID3D12GraphicsCommandList5 * This,
31642 _In_ UINT RootParameterIndex,
31643 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31644
31645 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
31646 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
31647 ID3D12GraphicsCommandList5 * This,
31648 _In_ UINT RootParameterIndex,
31649 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31650
31651 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
31652 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
31653 ID3D12GraphicsCommandList5 * This,
31654 _In_ UINT RootParameterIndex,
31655 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
31656
31657 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
31658 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
31659 ID3D12GraphicsCommandList5 * This,
31660 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
31661
31662 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
31663 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
31664 ID3D12GraphicsCommandList5 * This,
31665 _In_ UINT StartSlot,
31666 _In_ UINT NumViews,
31667 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
31668
31669 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
31670 void ( STDMETHODCALLTYPE *SOSetTargets )(
31671 ID3D12GraphicsCommandList5 * This,
31672 _In_ UINT StartSlot,
31673 _In_ UINT NumViews,
31674 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
31675
31676 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
31677 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
31678 ID3D12GraphicsCommandList5 * This,
31679 _In_ UINT NumRenderTargetDescriptors,
31680 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
31681 _In_ BOOL RTsSingleHandleToDescriptorRange,
31682 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
31683
31684 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
31685 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
31686 ID3D12GraphicsCommandList5 * This,
31687 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
31688 _In_ D3D12_CLEAR_FLAGS ClearFlags,
31689 _In_ FLOAT Depth,
31690 _In_ UINT8 Stencil,
31691 _In_ UINT NumRects,
31692 _In_reads_(NumRects) const D3D12_RECT *pRects);
31693
31694 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
31695 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
31696 ID3D12GraphicsCommandList5 * This,
31697 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
31698 _In_ const FLOAT ColorRGBA[ 4 ],
31699 _In_ UINT NumRects,
31700 _In_reads_(NumRects) const D3D12_RECT *pRects);
31701
31702 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
31703 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
31704 ID3D12GraphicsCommandList5 * This,
31705 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31706 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31707 _In_ ID3D12Resource *pResource,
31708 _In_ const UINT Values[ 4 ],
31709 _In_ UINT NumRects,
31710 _In_reads_(NumRects) const D3D12_RECT *pRects);
31711
31712 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
31713 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
31714 ID3D12GraphicsCommandList5 * This,
31715 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
31716 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
31717 _In_ ID3D12Resource *pResource,
31718 _In_ const FLOAT Values[ 4 ],
31719 _In_ UINT NumRects,
31720 _In_reads_(NumRects) const D3D12_RECT *pRects);
31721
31722 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
31723 void ( STDMETHODCALLTYPE *DiscardResource )(
31724 ID3D12GraphicsCommandList5 * This,
31725 _In_ ID3D12Resource *pResource,
31726 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
31727
31728 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
31729 void ( STDMETHODCALLTYPE *BeginQuery )(
31730 ID3D12GraphicsCommandList5 * This,
31731 _In_ ID3D12QueryHeap *pQueryHeap,
31732 _In_ D3D12_QUERY_TYPE Type,
31733 _In_ UINT Index);
31734
31735 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
31736 void ( STDMETHODCALLTYPE *EndQuery )(
31737 ID3D12GraphicsCommandList5 * This,
31738 _In_ ID3D12QueryHeap *pQueryHeap,
31739 _In_ D3D12_QUERY_TYPE Type,
31740 _In_ UINT Index);
31741
31742 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
31743 void ( STDMETHODCALLTYPE *ResolveQueryData )(
31744 ID3D12GraphicsCommandList5 * This,
31745 _In_ ID3D12QueryHeap *pQueryHeap,
31746 _In_ D3D12_QUERY_TYPE Type,
31747 _In_ UINT StartIndex,
31748 _In_ UINT NumQueries,
31749 _In_ ID3D12Resource *pDestinationBuffer,
31750 _In_ UINT64 AlignedDestinationBufferOffset);
31751
31752 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
31753 void ( STDMETHODCALLTYPE *SetPredication )(
31754 ID3D12GraphicsCommandList5 * This,
31755 _In_opt_ ID3D12Resource *pBuffer,
31756 _In_ UINT64 AlignedBufferOffset,
31757 _In_ D3D12_PREDICATION_OP Operation);
31758
31759 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
31760 void ( STDMETHODCALLTYPE *SetMarker )(
31761 ID3D12GraphicsCommandList5 * This,
31762 UINT Metadata,
31763 _In_reads_bytes_opt_(Size) const void *pData,
31764 UINT Size);
31765
31766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
31767 void ( STDMETHODCALLTYPE *BeginEvent )(
31768 ID3D12GraphicsCommandList5 * This,
31769 UINT Metadata,
31770 _In_reads_bytes_opt_(Size) const void *pData,
31771 UINT Size);
31772
31773 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
31774 void ( STDMETHODCALLTYPE *EndEvent )(
31775 ID3D12GraphicsCommandList5 * This);
31776
31777 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
31778 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
31779 ID3D12GraphicsCommandList5 * This,
31780 _In_ ID3D12CommandSignature *pCommandSignature,
31781 _In_ UINT MaxCommandCount,
31782 _In_ ID3D12Resource *pArgumentBuffer,
31783 _In_ UINT64 ArgumentBufferOffset,
31784 _In_opt_ ID3D12Resource *pCountBuffer,
31785 _In_ UINT64 CountBufferOffset);
31786
31787 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
31788 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
31789 ID3D12GraphicsCommandList5 * This,
31790 _In_ ID3D12Resource *pDstBuffer,
31791 UINT64 DstOffset,
31792 _In_ ID3D12Resource *pSrcBuffer,
31793 UINT64 SrcOffset,
31794 UINT Dependencies,
31795 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31796 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31797
31798 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
31799 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
31800 ID3D12GraphicsCommandList5 * This,
31801 _In_ ID3D12Resource *pDstBuffer,
31802 UINT64 DstOffset,
31803 _In_ ID3D12Resource *pSrcBuffer,
31804 UINT64 SrcOffset,
31805 UINT Dependencies,
31806 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
31807 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
31808
31809 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
31810 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
31811 ID3D12GraphicsCommandList5 * This,
31812 _In_ FLOAT Min,
31813 _In_ FLOAT Max);
31814
31815 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
31816 void ( STDMETHODCALLTYPE *SetSamplePositions )(
31817 ID3D12GraphicsCommandList5 * This,
31818 _In_ UINT NumSamplesPerPixel,
31819 _In_ UINT NumPixels,
31820 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
31821
31822 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
31823 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
31824 ID3D12GraphicsCommandList5 * This,
31825 _In_ ID3D12Resource *pDstResource,
31826 _In_ UINT DstSubresource,
31827 _In_ UINT DstX,
31828 _In_ UINT DstY,
31829 _In_ ID3D12Resource *pSrcResource,
31830 _In_ UINT SrcSubresource,
31831 _In_opt_ D3D12_RECT *pSrcRect,
31832 _In_ DXGI_FORMAT Format,
31833 _In_ D3D12_RESOLVE_MODE ResolveMode);
31834
31835 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
31836 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
31837 ID3D12GraphicsCommandList5 * This,
31838 _In_ UINT Mask);
31839
31840 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
31841 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
31842 ID3D12GraphicsCommandList5 * This,
31843 UINT Count,
31844 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
31845 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
31846
31847 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
31848 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
31849 ID3D12GraphicsCommandList5 * This,
31850 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
31851
31852 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
31853 void ( STDMETHODCALLTYPE *BeginRenderPass )(
31854 ID3D12GraphicsCommandList5 * This,
31855 _In_ UINT NumRenderTargets,
31856 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
31857 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
31858 D3D12_RENDER_PASS_FLAGS Flags);
31859
31860 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
31861 void ( STDMETHODCALLTYPE *EndRenderPass )(
31862 ID3D12GraphicsCommandList5 * This);
31863
31864 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
31865 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
31866 ID3D12GraphicsCommandList5 * This,
31867 _In_ ID3D12MetaCommand *pMetaCommand,
31868 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
31869 _In_ SIZE_T InitializationParametersDataSizeInBytes);
31870
31871 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
31872 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
31873 ID3D12GraphicsCommandList5 * This,
31874 _In_ ID3D12MetaCommand *pMetaCommand,
31875 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
31876 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
31877
31878 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
31879 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
31880 ID3D12GraphicsCommandList5 * This,
31881 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
31882 _In_ UINT NumPostbuildInfoDescs,
31883 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
31884
31885 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
31886 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
31887 ID3D12GraphicsCommandList5 * This,
31888 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
31889 _In_ UINT NumSourceAccelerationStructures,
31890 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
31891
31892 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
31893 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
31894 ID3D12GraphicsCommandList5 * This,
31895 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
31896 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
31897 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
31898
31899 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
31900 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
31901 ID3D12GraphicsCommandList5 * This,
31902 _In_ ID3D12StateObject *pStateObject);
31903
31904 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
31905 void ( STDMETHODCALLTYPE *DispatchRays )(
31906 ID3D12GraphicsCommandList5 * This,
31907 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
31908
31909 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
31910 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
31911 ID3D12GraphicsCommandList5 * This,
31912 _In_ D3D12_SHADING_RATE baseShadingRate,
31913 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
31914
31915 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
31916 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
31917 ID3D12GraphicsCommandList5 * This,
31918 _In_opt_ ID3D12Resource *shadingRateImage);
31919
31920 END_INTERFACE
31921 } ID3D12GraphicsCommandList5Vtbl;
31922
31923 interface ID3D12GraphicsCommandList5
31924 {
31925 CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl;
31926 };
31927
31928
31929
31930#ifdef COBJMACROS
31931
31932
31933#define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \
31934 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
31935
31936#define ID3D12GraphicsCommandList5_AddRef(This) \
31937 ( (This)->lpVtbl -> AddRef(This) )
31938
31939#define ID3D12GraphicsCommandList5_Release(This) \
31940 ( (This)->lpVtbl -> Release(This) )
31941
31942
31943#define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \
31944 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
31945
31946#define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \
31947 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
31948
31949#define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \
31950 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
31951
31952#define ID3D12GraphicsCommandList5_SetName(This,Name) \
31953 ( (This)->lpVtbl -> SetName(This,Name) )
31954
31955
31956#define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \
31957 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
31958
31959
31960#define ID3D12GraphicsCommandList5_GetType(This) \
31961 ( (This)->lpVtbl -> GetType(This) )
31962
31963
31964#define ID3D12GraphicsCommandList5_Close(This) \
31965 ( (This)->lpVtbl -> Close(This) )
31966
31967#define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \
31968 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
31969
31970#define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \
31971 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
31972
31973#define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
31974 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
31975
31976#define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
31977 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
31978
31979#define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
31980 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
31981
31982#define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
31983 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
31984
31985#define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
31986 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
31987
31988#define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \
31989 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
31990
31991#define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
31992 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
31993
31994#define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
31995 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
31996
31997#define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \
31998 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
31999
32000#define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \
32001 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
32002
32003#define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \
32004 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
32005
32006#define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \
32007 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
32008
32009#define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \
32010 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
32011
32012#define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \
32013 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
32014
32015#define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \
32016 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
32017
32018#define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \
32019 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
32020
32021#define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
32022 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
32023
32024#define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \
32025 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
32026
32027#define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \
32028 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
32029
32030#define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32031 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32032
32033#define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32034 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32035
32036#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32037 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32038
32039#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32040 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32041
32042#define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32043 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32044
32045#define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32046 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32047
32048#define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32049 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32050
32051#define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32052 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32053
32054#define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32055 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32056
32057#define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32058 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32059
32060#define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32061 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32062
32063#define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32064 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32065
32066#define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \
32067 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
32068
32069#define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
32070 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
32071
32072#define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \
32073 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
32074
32075#define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
32076 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
32077
32078#define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
32079 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
32080
32081#define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
32082 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
32083
32084#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32085 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32086
32087#define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32088 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32089
32090#define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \
32091 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
32092
32093#define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \
32094 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
32095
32096#define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \
32097 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
32098
32099#define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
32100 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
32101
32102#define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
32103 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
32104
32105#define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \
32106 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
32107
32108#define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \
32109 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
32110
32111#define ID3D12GraphicsCommandList5_EndEvent(This) \
32112 ( (This)->lpVtbl -> EndEvent(This) )
32113
32114#define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
32115 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
32116
32117
32118#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32119 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32120
32121#define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32122 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32123
32124#define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \
32125 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
32126
32127#define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
32128 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
32129
32130#define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
32131 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
32132
32133#define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \
32134 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
32135
32136
32137#define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \
32138 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32139
32140
32141#define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \
32142 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
32143
32144
32145#define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
32146 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
32147
32148#define ID3D12GraphicsCommandList5_EndRenderPass(This) \
32149 ( (This)->lpVtbl -> EndRenderPass(This) )
32150
32151#define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
32152 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
32153
32154#define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
32155 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
32156
32157#define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
32158 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
32159
32160#define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
32161 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
32162
32163#define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
32164 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
32165
32166#define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \
32167 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
32168
32169#define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \
32170 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
32171
32172
32173#define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \
32174 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
32175
32176#define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \
32177 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
32178
32179#endif /* COBJMACROS */
32180
32181
32182#endif /* C style interface */
32183
32184
32185
32186
32187#endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */
32188
32189
32190/* interface __MIDL_itf_d3d12_0000_0078 */
32191/* [local] */
32192
32193typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
32194 {
32195 UINT ThreadGroupCountX;
32196 UINT ThreadGroupCountY;
32197 UINT ThreadGroupCountZ;
32198 } D3D12_DISPATCH_MESH_ARGUMENTS;
32199
32200
32201
32202extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec;
32203extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec;
32204
32205#ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
32206#define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__
32207
32208/* interface ID3D12GraphicsCommandList6 */
32209/* [unique][local][object][uuid] */
32210
32211
32212EXTERN_C const IID IID_ID3D12GraphicsCommandList6;
32213
32214#if defined(__cplusplus) && !defined(CINTERFACE)
32215
32216 MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80")
32217 ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5
32218 {
32219 public:
32220 virtual void STDMETHODCALLTYPE DispatchMesh(
32221 _In_ UINT ThreadGroupCountX,
32222 _In_ UINT ThreadGroupCountY,
32223 _In_ UINT ThreadGroupCountZ) = 0;
32224
32225 };
32226
32227
32228#else /* C style interface */
32229
32230 typedef struct ID3D12GraphicsCommandList6Vtbl
32231 {
32232 BEGIN_INTERFACE
32233
32234 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
32235 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
32236 ID3D12GraphicsCommandList6 * This,
32237 REFIID riid,
32238 _COM_Outptr_ void **ppvObject);
32239
32240 DECLSPEC_XFGVIRT(IUnknown, AddRef)
32241 ULONG ( STDMETHODCALLTYPE *AddRef )(
32242 ID3D12GraphicsCommandList6 * This);
32243
32244 DECLSPEC_XFGVIRT(IUnknown, Release)
32245 ULONG ( STDMETHODCALLTYPE *Release )(
32246 ID3D12GraphicsCommandList6 * This);
32247
32248 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
32249 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
32250 ID3D12GraphicsCommandList6 * This,
32251 _In_ REFGUID guid,
32252 _Inout_ UINT *pDataSize,
32253 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
32254
32255 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
32256 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
32257 ID3D12GraphicsCommandList6 * This,
32258 _In_ REFGUID guid,
32259 _In_ UINT DataSize,
32260 _In_reads_bytes_opt_( DataSize ) const void *pData);
32261
32262 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
32263 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
32264 ID3D12GraphicsCommandList6 * This,
32265 _In_ REFGUID guid,
32266 _In_opt_ const IUnknown *pData);
32267
32268 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
32269 HRESULT ( STDMETHODCALLTYPE *SetName )(
32270 ID3D12GraphicsCommandList6 * This,
32271 _In_z_ LPCWSTR Name);
32272
32273 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
32274 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
32275 ID3D12GraphicsCommandList6 * This,
32276 REFIID riid,
32277 _COM_Outptr_opt_ void **ppvDevice);
32278
32279 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
32280 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
32281 ID3D12GraphicsCommandList6 * This);
32282
32283 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
32284 HRESULT ( STDMETHODCALLTYPE *Close )(
32285 ID3D12GraphicsCommandList6 * This);
32286
32287 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
32288 HRESULT ( STDMETHODCALLTYPE *Reset )(
32289 ID3D12GraphicsCommandList6 * This,
32290 _In_ ID3D12CommandAllocator *pAllocator,
32291 _In_opt_ ID3D12PipelineState *pInitialState);
32292
32293 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
32294 void ( STDMETHODCALLTYPE *ClearState )(
32295 ID3D12GraphicsCommandList6 * This,
32296 _In_opt_ ID3D12PipelineState *pPipelineState);
32297
32298 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
32299 void ( STDMETHODCALLTYPE *DrawInstanced )(
32300 ID3D12GraphicsCommandList6 * This,
32301 _In_ UINT VertexCountPerInstance,
32302 _In_ UINT InstanceCount,
32303 _In_ UINT StartVertexLocation,
32304 _In_ UINT StartInstanceLocation);
32305
32306 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
32307 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
32308 ID3D12GraphicsCommandList6 * This,
32309 _In_ UINT IndexCountPerInstance,
32310 _In_ UINT InstanceCount,
32311 _In_ UINT StartIndexLocation,
32312 _In_ INT BaseVertexLocation,
32313 _In_ UINT StartInstanceLocation);
32314
32315 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
32316 void ( STDMETHODCALLTYPE *Dispatch )(
32317 ID3D12GraphicsCommandList6 * This,
32318 _In_ UINT ThreadGroupCountX,
32319 _In_ UINT ThreadGroupCountY,
32320 _In_ UINT ThreadGroupCountZ);
32321
32322 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
32323 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
32324 ID3D12GraphicsCommandList6 * This,
32325 _In_ ID3D12Resource *pDstBuffer,
32326 UINT64 DstOffset,
32327 _In_ ID3D12Resource *pSrcBuffer,
32328 UINT64 SrcOffset,
32329 UINT64 NumBytes);
32330
32331 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
32332 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
32333 ID3D12GraphicsCommandList6 * This,
32334 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
32335 UINT DstX,
32336 UINT DstY,
32337 UINT DstZ,
32338 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
32339 _In_opt_ const D3D12_BOX *pSrcBox);
32340
32341 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
32342 void ( STDMETHODCALLTYPE *CopyResource )(
32343 ID3D12GraphicsCommandList6 * This,
32344 _In_ ID3D12Resource *pDstResource,
32345 _In_ ID3D12Resource *pSrcResource);
32346
32347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
32348 void ( STDMETHODCALLTYPE *CopyTiles )(
32349 ID3D12GraphicsCommandList6 * This,
32350 _In_ ID3D12Resource *pTiledResource,
32351 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
32352 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
32353 _In_ ID3D12Resource *pBuffer,
32354 UINT64 BufferStartOffsetInBytes,
32355 D3D12_TILE_COPY_FLAGS Flags);
32356
32357 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
32358 void ( STDMETHODCALLTYPE *ResolveSubresource )(
32359 ID3D12GraphicsCommandList6 * This,
32360 _In_ ID3D12Resource *pDstResource,
32361 _In_ UINT DstSubresource,
32362 _In_ ID3D12Resource *pSrcResource,
32363 _In_ UINT SrcSubresource,
32364 _In_ DXGI_FORMAT Format);
32365
32366 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
32367 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
32368 ID3D12GraphicsCommandList6 * This,
32369 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
32370
32371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
32372 void ( STDMETHODCALLTYPE *RSSetViewports )(
32373 ID3D12GraphicsCommandList6 * This,
32374 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
32375 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
32376
32377 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
32378 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
32379 ID3D12GraphicsCommandList6 * This,
32380 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
32381 _In_reads_( NumRects) const D3D12_RECT *pRects);
32382
32383 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
32384 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
32385 ID3D12GraphicsCommandList6 * This,
32386 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
32387
32388 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
32389 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
32390 ID3D12GraphicsCommandList6 * This,
32391 _In_ UINT StencilRef);
32392
32393 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
32394 void ( STDMETHODCALLTYPE *SetPipelineState )(
32395 ID3D12GraphicsCommandList6 * This,
32396 _In_ ID3D12PipelineState *pPipelineState);
32397
32398 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
32399 void ( STDMETHODCALLTYPE *ResourceBarrier )(
32400 ID3D12GraphicsCommandList6 * This,
32401 _In_ UINT NumBarriers,
32402 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
32403
32404 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
32405 void ( STDMETHODCALLTYPE *ExecuteBundle )(
32406 ID3D12GraphicsCommandList6 * This,
32407 _In_ ID3D12GraphicsCommandList *pCommandList);
32408
32409 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
32410 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
32411 ID3D12GraphicsCommandList6 * This,
32412 _In_ UINT NumDescriptorHeaps,
32413 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
32414
32415 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
32416 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
32417 ID3D12GraphicsCommandList6 * This,
32418 _In_opt_ ID3D12RootSignature *pRootSignature);
32419
32420 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
32421 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
32422 ID3D12GraphicsCommandList6 * This,
32423 _In_opt_ ID3D12RootSignature *pRootSignature);
32424
32425 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
32426 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
32427 ID3D12GraphicsCommandList6 * This,
32428 _In_ UINT RootParameterIndex,
32429 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32430
32431 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
32432 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
32433 ID3D12GraphicsCommandList6 * This,
32434 _In_ UINT RootParameterIndex,
32435 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
32436
32437 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
32438 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
32439 ID3D12GraphicsCommandList6 * This,
32440 _In_ UINT RootParameterIndex,
32441 _In_ UINT SrcData,
32442 _In_ UINT DestOffsetIn32BitValues);
32443
32444 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
32445 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
32446 ID3D12GraphicsCommandList6 * This,
32447 _In_ UINT RootParameterIndex,
32448 _In_ UINT SrcData,
32449 _In_ UINT DestOffsetIn32BitValues);
32450
32451 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
32452 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
32453 ID3D12GraphicsCommandList6 * This,
32454 _In_ UINT RootParameterIndex,
32455 _In_ UINT Num32BitValuesToSet,
32456 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32457 _In_ UINT DestOffsetIn32BitValues);
32458
32459 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
32460 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
32461 ID3D12GraphicsCommandList6 * This,
32462 _In_ UINT RootParameterIndex,
32463 _In_ UINT Num32BitValuesToSet,
32464 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
32465 _In_ UINT DestOffsetIn32BitValues);
32466
32467 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
32468 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
32469 ID3D12GraphicsCommandList6 * This,
32470 _In_ UINT RootParameterIndex,
32471 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32472
32473 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
32474 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
32475 ID3D12GraphicsCommandList6 * This,
32476 _In_ UINT RootParameterIndex,
32477 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32478
32479 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
32480 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
32481 ID3D12GraphicsCommandList6 * This,
32482 _In_ UINT RootParameterIndex,
32483 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32484
32485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
32486 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
32487 ID3D12GraphicsCommandList6 * This,
32488 _In_ UINT RootParameterIndex,
32489 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32490
32491 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
32492 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
32493 ID3D12GraphicsCommandList6 * This,
32494 _In_ UINT RootParameterIndex,
32495 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32496
32497 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
32498 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
32499 ID3D12GraphicsCommandList6 * This,
32500 _In_ UINT RootParameterIndex,
32501 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
32502
32503 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
32504 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
32505 ID3D12GraphicsCommandList6 * This,
32506 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
32507
32508 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
32509 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
32510 ID3D12GraphicsCommandList6 * This,
32511 _In_ UINT StartSlot,
32512 _In_ UINT NumViews,
32513 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
32514
32515 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
32516 void ( STDMETHODCALLTYPE *SOSetTargets )(
32517 ID3D12GraphicsCommandList6 * This,
32518 _In_ UINT StartSlot,
32519 _In_ UINT NumViews,
32520 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
32521
32522 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
32523 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
32524 ID3D12GraphicsCommandList6 * This,
32525 _In_ UINT NumRenderTargetDescriptors,
32526 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
32527 _In_ BOOL RTsSingleHandleToDescriptorRange,
32528 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
32529
32530 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
32531 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
32532 ID3D12GraphicsCommandList6 * This,
32533 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
32534 _In_ D3D12_CLEAR_FLAGS ClearFlags,
32535 _In_ FLOAT Depth,
32536 _In_ UINT8 Stencil,
32537 _In_ UINT NumRects,
32538 _In_reads_(NumRects) const D3D12_RECT *pRects);
32539
32540 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
32541 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
32542 ID3D12GraphicsCommandList6 * This,
32543 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
32544 _In_ const FLOAT ColorRGBA[ 4 ],
32545 _In_ UINT NumRects,
32546 _In_reads_(NumRects) const D3D12_RECT *pRects);
32547
32548 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
32549 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
32550 ID3D12GraphicsCommandList6 * This,
32551 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32552 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32553 _In_ ID3D12Resource *pResource,
32554 _In_ const UINT Values[ 4 ],
32555 _In_ UINT NumRects,
32556 _In_reads_(NumRects) const D3D12_RECT *pRects);
32557
32558 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
32559 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
32560 ID3D12GraphicsCommandList6 * This,
32561 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
32562 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
32563 _In_ ID3D12Resource *pResource,
32564 _In_ const FLOAT Values[ 4 ],
32565 _In_ UINT NumRects,
32566 _In_reads_(NumRects) const D3D12_RECT *pRects);
32567
32568 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
32569 void ( STDMETHODCALLTYPE *DiscardResource )(
32570 ID3D12GraphicsCommandList6 * This,
32571 _In_ ID3D12Resource *pResource,
32572 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
32573
32574 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
32575 void ( STDMETHODCALLTYPE *BeginQuery )(
32576 ID3D12GraphicsCommandList6 * This,
32577 _In_ ID3D12QueryHeap *pQueryHeap,
32578 _In_ D3D12_QUERY_TYPE Type,
32579 _In_ UINT Index);
32580
32581 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
32582 void ( STDMETHODCALLTYPE *EndQuery )(
32583 ID3D12GraphicsCommandList6 * This,
32584 _In_ ID3D12QueryHeap *pQueryHeap,
32585 _In_ D3D12_QUERY_TYPE Type,
32586 _In_ UINT Index);
32587
32588 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
32589 void ( STDMETHODCALLTYPE *ResolveQueryData )(
32590 ID3D12GraphicsCommandList6 * This,
32591 _In_ ID3D12QueryHeap *pQueryHeap,
32592 _In_ D3D12_QUERY_TYPE Type,
32593 _In_ UINT StartIndex,
32594 _In_ UINT NumQueries,
32595 _In_ ID3D12Resource *pDestinationBuffer,
32596 _In_ UINT64 AlignedDestinationBufferOffset);
32597
32598 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
32599 void ( STDMETHODCALLTYPE *SetPredication )(
32600 ID3D12GraphicsCommandList6 * This,
32601 _In_opt_ ID3D12Resource *pBuffer,
32602 _In_ UINT64 AlignedBufferOffset,
32603 _In_ D3D12_PREDICATION_OP Operation);
32604
32605 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
32606 void ( STDMETHODCALLTYPE *SetMarker )(
32607 ID3D12GraphicsCommandList6 * This,
32608 UINT Metadata,
32609 _In_reads_bytes_opt_(Size) const void *pData,
32610 UINT Size);
32611
32612 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
32613 void ( STDMETHODCALLTYPE *BeginEvent )(
32614 ID3D12GraphicsCommandList6 * This,
32615 UINT Metadata,
32616 _In_reads_bytes_opt_(Size) const void *pData,
32617 UINT Size);
32618
32619 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
32620 void ( STDMETHODCALLTYPE *EndEvent )(
32621 ID3D12GraphicsCommandList6 * This);
32622
32623 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
32624 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
32625 ID3D12GraphicsCommandList6 * This,
32626 _In_ ID3D12CommandSignature *pCommandSignature,
32627 _In_ UINT MaxCommandCount,
32628 _In_ ID3D12Resource *pArgumentBuffer,
32629 _In_ UINT64 ArgumentBufferOffset,
32630 _In_opt_ ID3D12Resource *pCountBuffer,
32631 _In_ UINT64 CountBufferOffset);
32632
32633 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
32634 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
32635 ID3D12GraphicsCommandList6 * This,
32636 _In_ ID3D12Resource *pDstBuffer,
32637 UINT64 DstOffset,
32638 _In_ ID3D12Resource *pSrcBuffer,
32639 UINT64 SrcOffset,
32640 UINT Dependencies,
32641 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32642 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32643
32644 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
32645 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
32646 ID3D12GraphicsCommandList6 * This,
32647 _In_ ID3D12Resource *pDstBuffer,
32648 UINT64 DstOffset,
32649 _In_ ID3D12Resource *pSrcBuffer,
32650 UINT64 SrcOffset,
32651 UINT Dependencies,
32652 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
32653 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
32654
32655 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
32656 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
32657 ID3D12GraphicsCommandList6 * This,
32658 _In_ FLOAT Min,
32659 _In_ FLOAT Max);
32660
32661 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
32662 void ( STDMETHODCALLTYPE *SetSamplePositions )(
32663 ID3D12GraphicsCommandList6 * This,
32664 _In_ UINT NumSamplesPerPixel,
32665 _In_ UINT NumPixels,
32666 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
32667
32668 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
32669 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
32670 ID3D12GraphicsCommandList6 * This,
32671 _In_ ID3D12Resource *pDstResource,
32672 _In_ UINT DstSubresource,
32673 _In_ UINT DstX,
32674 _In_ UINT DstY,
32675 _In_ ID3D12Resource *pSrcResource,
32676 _In_ UINT SrcSubresource,
32677 _In_opt_ D3D12_RECT *pSrcRect,
32678 _In_ DXGI_FORMAT Format,
32679 _In_ D3D12_RESOLVE_MODE ResolveMode);
32680
32681 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
32682 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
32683 ID3D12GraphicsCommandList6 * This,
32684 _In_ UINT Mask);
32685
32686 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
32687 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
32688 ID3D12GraphicsCommandList6 * This,
32689 UINT Count,
32690 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
32691 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
32692
32693 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
32694 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
32695 ID3D12GraphicsCommandList6 * This,
32696 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
32697
32698 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
32699 void ( STDMETHODCALLTYPE *BeginRenderPass )(
32700 ID3D12GraphicsCommandList6 * This,
32701 _In_ UINT NumRenderTargets,
32702 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
32703 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
32704 D3D12_RENDER_PASS_FLAGS Flags);
32705
32706 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
32707 void ( STDMETHODCALLTYPE *EndRenderPass )(
32708 ID3D12GraphicsCommandList6 * This);
32709
32710 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
32711 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
32712 ID3D12GraphicsCommandList6 * This,
32713 _In_ ID3D12MetaCommand *pMetaCommand,
32714 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
32715 _In_ SIZE_T InitializationParametersDataSizeInBytes);
32716
32717 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
32718 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
32719 ID3D12GraphicsCommandList6 * This,
32720 _In_ ID3D12MetaCommand *pMetaCommand,
32721 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
32722 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
32723
32724 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
32725 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
32726 ID3D12GraphicsCommandList6 * This,
32727 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
32728 _In_ UINT NumPostbuildInfoDescs,
32729 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
32730
32731 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
32732 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
32733 ID3D12GraphicsCommandList6 * This,
32734 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
32735 _In_ UINT NumSourceAccelerationStructures,
32736 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
32737
32738 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
32739 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
32740 ID3D12GraphicsCommandList6 * This,
32741 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
32742 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
32743 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
32744
32745 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
32746 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
32747 ID3D12GraphicsCommandList6 * This,
32748 _In_ ID3D12StateObject *pStateObject);
32749
32750 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
32751 void ( STDMETHODCALLTYPE *DispatchRays )(
32752 ID3D12GraphicsCommandList6 * This,
32753 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
32754
32755 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
32756 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
32757 ID3D12GraphicsCommandList6 * This,
32758 _In_ D3D12_SHADING_RATE baseShadingRate,
32759 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
32760
32761 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
32762 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
32763 ID3D12GraphicsCommandList6 * This,
32764 _In_opt_ ID3D12Resource *shadingRateImage);
32765
32766 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
32767 void ( STDMETHODCALLTYPE *DispatchMesh )(
32768 ID3D12GraphicsCommandList6 * This,
32769 _In_ UINT ThreadGroupCountX,
32770 _In_ UINT ThreadGroupCountY,
32771 _In_ UINT ThreadGroupCountZ);
32772
32773 END_INTERFACE
32774 } ID3D12GraphicsCommandList6Vtbl;
32775
32776 interface ID3D12GraphicsCommandList6
32777 {
32778 CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl;
32779 };
32780
32781
32782
32783#ifdef COBJMACROS
32784
32785
32786#define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \
32787 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
32788
32789#define ID3D12GraphicsCommandList6_AddRef(This) \
32790 ( (This)->lpVtbl -> AddRef(This) )
32791
32792#define ID3D12GraphicsCommandList6_Release(This) \
32793 ( (This)->lpVtbl -> Release(This) )
32794
32795
32796#define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \
32797 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
32798
32799#define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \
32800 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
32801
32802#define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \
32803 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
32804
32805#define ID3D12GraphicsCommandList6_SetName(This,Name) \
32806 ( (This)->lpVtbl -> SetName(This,Name) )
32807
32808
32809#define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \
32810 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
32811
32812
32813#define ID3D12GraphicsCommandList6_GetType(This) \
32814 ( (This)->lpVtbl -> GetType(This) )
32815
32816
32817#define ID3D12GraphicsCommandList6_Close(This) \
32818 ( (This)->lpVtbl -> Close(This) )
32819
32820#define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \
32821 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
32822
32823#define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \
32824 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
32825
32826#define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
32827 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
32828
32829#define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
32830 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
32831
32832#define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
32833 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
32834
32835#define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
32836 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
32837
32838#define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
32839 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
32840
32841#define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \
32842 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
32843
32844#define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
32845 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
32846
32847#define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
32848 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
32849
32850#define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \
32851 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
32852
32853#define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \
32854 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
32855
32856#define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \
32857 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
32858
32859#define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \
32860 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
32861
32862#define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \
32863 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
32864
32865#define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \
32866 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
32867
32868#define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \
32869 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
32870
32871#define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \
32872 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
32873
32874#define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
32875 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
32876
32877#define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \
32878 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
32879
32880#define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \
32881 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
32882
32883#define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32884 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32885
32886#define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
32887 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
32888
32889#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32890 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32891
32892#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
32893 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
32894
32895#define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32896 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32897
32898#define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
32899 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
32900
32901#define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32902 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32903
32904#define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
32905 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
32906
32907#define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32908 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32909
32910#define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
32911 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
32912
32913#define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32914 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32915
32916#define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
32917 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
32918
32919#define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \
32920 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
32921
32922#define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
32923 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
32924
32925#define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \
32926 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
32927
32928#define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
32929 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
32930
32931#define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
32932 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
32933
32934#define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
32935 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
32936
32937#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32938 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32939
32940#define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
32941 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
32942
32943#define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \
32944 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
32945
32946#define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \
32947 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
32948
32949#define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \
32950 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
32951
32952#define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
32953 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
32954
32955#define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
32956 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
32957
32958#define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \
32959 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
32960
32961#define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \
32962 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
32963
32964#define ID3D12GraphicsCommandList6_EndEvent(This) \
32965 ( (This)->lpVtbl -> EndEvent(This) )
32966
32967#define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
32968 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
32969
32970
32971#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32972 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32973
32974#define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
32975 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
32976
32977#define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \
32978 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
32979
32980#define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
32981 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
32982
32983#define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
32984 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
32985
32986#define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \
32987 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
32988
32989
32990#define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \
32991 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
32992
32993
32994#define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \
32995 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
32996
32997
32998#define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
32999 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
33000
33001#define ID3D12GraphicsCommandList6_EndRenderPass(This) \
33002 ( (This)->lpVtbl -> EndRenderPass(This) )
33003
33004#define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
33005 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
33006
33007#define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
33008 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
33009
33010#define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
33011 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
33012
33013#define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
33014 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
33015
33016#define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
33017 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
33018
33019#define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \
33020 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
33021
33022#define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \
33023 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
33024
33025
33026#define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \
33027 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
33028
33029#define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \
33030 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
33031
33032
33033#define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33034 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33035
33036#endif /* COBJMACROS */
33037
33038
33039#endif /* C style interface */
33040
33041
33042
33043
33044#endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */
33045
33046
33047#ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
33048#define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__
33049
33050/* interface ID3D12GraphicsCommandList7 */
33051/* [unique][local][object][uuid] */
33052
33053
33054EXTERN_C const IID IID_ID3D12GraphicsCommandList7;
33055
33056#if defined(__cplusplus) && !defined(CINTERFACE)
33057
33058 MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1")
33059 ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6
33060 {
33061 public:
33062 virtual void STDMETHODCALLTYPE Barrier(
33063 UINT32 NumBarrierGroups,
33064 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
33065
33066 };
33067
33068
33069#else /* C style interface */
33070
33071 typedef struct ID3D12GraphicsCommandList7Vtbl
33072 {
33073 BEGIN_INTERFACE
33074
33075 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
33076 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
33077 ID3D12GraphicsCommandList7 * This,
33078 REFIID riid,
33079 _COM_Outptr_ void **ppvObject);
33080
33081 DECLSPEC_XFGVIRT(IUnknown, AddRef)
33082 ULONG ( STDMETHODCALLTYPE *AddRef )(
33083 ID3D12GraphicsCommandList7 * This);
33084
33085 DECLSPEC_XFGVIRT(IUnknown, Release)
33086 ULONG ( STDMETHODCALLTYPE *Release )(
33087 ID3D12GraphicsCommandList7 * This);
33088
33089 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
33090 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
33091 ID3D12GraphicsCommandList7 * This,
33092 _In_ REFGUID guid,
33093 _Inout_ UINT *pDataSize,
33094 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
33095
33096 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
33097 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
33098 ID3D12GraphicsCommandList7 * This,
33099 _In_ REFGUID guid,
33100 _In_ UINT DataSize,
33101 _In_reads_bytes_opt_( DataSize ) const void *pData);
33102
33103 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
33104 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
33105 ID3D12GraphicsCommandList7 * This,
33106 _In_ REFGUID guid,
33107 _In_opt_ const IUnknown *pData);
33108
33109 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
33110 HRESULT ( STDMETHODCALLTYPE *SetName )(
33111 ID3D12GraphicsCommandList7 * This,
33112 _In_z_ LPCWSTR Name);
33113
33114 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
33115 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
33116 ID3D12GraphicsCommandList7 * This,
33117 REFIID riid,
33118 _COM_Outptr_opt_ void **ppvDevice);
33119
33120 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
33121 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
33122 ID3D12GraphicsCommandList7 * This);
33123
33124 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33125 HRESULT ( STDMETHODCALLTYPE *Close )(
33126 ID3D12GraphicsCommandList7 * This);
33127
33128 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33129 HRESULT ( STDMETHODCALLTYPE *Reset )(
33130 ID3D12GraphicsCommandList7 * This,
33131 _In_ ID3D12CommandAllocator *pAllocator,
33132 _In_opt_ ID3D12PipelineState *pInitialState);
33133
33134 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33135 void ( STDMETHODCALLTYPE *ClearState )(
33136 ID3D12GraphicsCommandList7 * This,
33137 _In_opt_ ID3D12PipelineState *pPipelineState);
33138
33139 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33140 void ( STDMETHODCALLTYPE *DrawInstanced )(
33141 ID3D12GraphicsCommandList7 * This,
33142 _In_ UINT VertexCountPerInstance,
33143 _In_ UINT InstanceCount,
33144 _In_ UINT StartVertexLocation,
33145 _In_ UINT StartInstanceLocation);
33146
33147 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
33148 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
33149 ID3D12GraphicsCommandList7 * This,
33150 _In_ UINT IndexCountPerInstance,
33151 _In_ UINT InstanceCount,
33152 _In_ UINT StartIndexLocation,
33153 _In_ INT BaseVertexLocation,
33154 _In_ UINT StartInstanceLocation);
33155
33156 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
33157 void ( STDMETHODCALLTYPE *Dispatch )(
33158 ID3D12GraphicsCommandList7 * This,
33159 _In_ UINT ThreadGroupCountX,
33160 _In_ UINT ThreadGroupCountY,
33161 _In_ UINT ThreadGroupCountZ);
33162
33163 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
33164 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
33165 ID3D12GraphicsCommandList7 * This,
33166 _In_ ID3D12Resource *pDstBuffer,
33167 UINT64 DstOffset,
33168 _In_ ID3D12Resource *pSrcBuffer,
33169 UINT64 SrcOffset,
33170 UINT64 NumBytes);
33171
33172 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
33173 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
33174 ID3D12GraphicsCommandList7 * This,
33175 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
33176 UINT DstX,
33177 UINT DstY,
33178 UINT DstZ,
33179 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
33180 _In_opt_ const D3D12_BOX *pSrcBox);
33181
33182 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
33183 void ( STDMETHODCALLTYPE *CopyResource )(
33184 ID3D12GraphicsCommandList7 * This,
33185 _In_ ID3D12Resource *pDstResource,
33186 _In_ ID3D12Resource *pSrcResource);
33187
33188 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
33189 void ( STDMETHODCALLTYPE *CopyTiles )(
33190 ID3D12GraphicsCommandList7 * This,
33191 _In_ ID3D12Resource *pTiledResource,
33192 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
33193 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
33194 _In_ ID3D12Resource *pBuffer,
33195 UINT64 BufferStartOffsetInBytes,
33196 D3D12_TILE_COPY_FLAGS Flags);
33197
33198 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
33199 void ( STDMETHODCALLTYPE *ResolveSubresource )(
33200 ID3D12GraphicsCommandList7 * This,
33201 _In_ ID3D12Resource *pDstResource,
33202 _In_ UINT DstSubresource,
33203 _In_ ID3D12Resource *pSrcResource,
33204 _In_ UINT SrcSubresource,
33205 _In_ DXGI_FORMAT Format);
33206
33207 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
33208 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
33209 ID3D12GraphicsCommandList7 * This,
33210 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
33211
33212 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
33213 void ( STDMETHODCALLTYPE *RSSetViewports )(
33214 ID3D12GraphicsCommandList7 * This,
33215 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
33216 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
33217
33218 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
33219 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
33220 ID3D12GraphicsCommandList7 * This,
33221 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
33222 _In_reads_( NumRects) const D3D12_RECT *pRects);
33223
33224 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
33225 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
33226 ID3D12GraphicsCommandList7 * This,
33227 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
33228
33229 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
33230 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
33231 ID3D12GraphicsCommandList7 * This,
33232 _In_ UINT StencilRef);
33233
33234 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
33235 void ( STDMETHODCALLTYPE *SetPipelineState )(
33236 ID3D12GraphicsCommandList7 * This,
33237 _In_ ID3D12PipelineState *pPipelineState);
33238
33239 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
33240 void ( STDMETHODCALLTYPE *ResourceBarrier )(
33241 ID3D12GraphicsCommandList7 * This,
33242 _In_ UINT NumBarriers,
33243 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
33244
33245 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
33246 void ( STDMETHODCALLTYPE *ExecuteBundle )(
33247 ID3D12GraphicsCommandList7 * This,
33248 _In_ ID3D12GraphicsCommandList *pCommandList);
33249
33250 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
33251 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
33252 ID3D12GraphicsCommandList7 * This,
33253 _In_ UINT NumDescriptorHeaps,
33254 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
33255
33256 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
33257 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
33258 ID3D12GraphicsCommandList7 * This,
33259 _In_opt_ ID3D12RootSignature *pRootSignature);
33260
33261 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
33262 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
33263 ID3D12GraphicsCommandList7 * This,
33264 _In_opt_ ID3D12RootSignature *pRootSignature);
33265
33266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
33267 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
33268 ID3D12GraphicsCommandList7 * This,
33269 _In_ UINT RootParameterIndex,
33270 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33271
33272 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
33273 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
33274 ID3D12GraphicsCommandList7 * This,
33275 _In_ UINT RootParameterIndex,
33276 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
33277
33278 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
33279 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
33280 ID3D12GraphicsCommandList7 * This,
33281 _In_ UINT RootParameterIndex,
33282 _In_ UINT SrcData,
33283 _In_ UINT DestOffsetIn32BitValues);
33284
33285 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
33286 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
33287 ID3D12GraphicsCommandList7 * This,
33288 _In_ UINT RootParameterIndex,
33289 _In_ UINT SrcData,
33290 _In_ UINT DestOffsetIn32BitValues);
33291
33292 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
33293 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
33294 ID3D12GraphicsCommandList7 * This,
33295 _In_ UINT RootParameterIndex,
33296 _In_ UINT Num32BitValuesToSet,
33297 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33298 _In_ UINT DestOffsetIn32BitValues);
33299
33300 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
33301 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
33302 ID3D12GraphicsCommandList7 * This,
33303 _In_ UINT RootParameterIndex,
33304 _In_ UINT Num32BitValuesToSet,
33305 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
33306 _In_ UINT DestOffsetIn32BitValues);
33307
33308 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
33309 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
33310 ID3D12GraphicsCommandList7 * This,
33311 _In_ UINT RootParameterIndex,
33312 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33313
33314 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
33315 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
33316 ID3D12GraphicsCommandList7 * This,
33317 _In_ UINT RootParameterIndex,
33318 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33319
33320 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
33321 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
33322 ID3D12GraphicsCommandList7 * This,
33323 _In_ UINT RootParameterIndex,
33324 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33325
33326 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
33327 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
33328 ID3D12GraphicsCommandList7 * This,
33329 _In_ UINT RootParameterIndex,
33330 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33331
33332 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
33333 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
33334 ID3D12GraphicsCommandList7 * This,
33335 _In_ UINT RootParameterIndex,
33336 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33337
33338 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
33339 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
33340 ID3D12GraphicsCommandList7 * This,
33341 _In_ UINT RootParameterIndex,
33342 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
33343
33344 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
33345 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
33346 ID3D12GraphicsCommandList7 * This,
33347 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
33348
33349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
33350 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
33351 ID3D12GraphicsCommandList7 * This,
33352 _In_ UINT StartSlot,
33353 _In_ UINT NumViews,
33354 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
33355
33356 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
33357 void ( STDMETHODCALLTYPE *SOSetTargets )(
33358 ID3D12GraphicsCommandList7 * This,
33359 _In_ UINT StartSlot,
33360 _In_ UINT NumViews,
33361 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
33362
33363 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
33364 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
33365 ID3D12GraphicsCommandList7 * This,
33366 _In_ UINT NumRenderTargetDescriptors,
33367 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
33368 _In_ BOOL RTsSingleHandleToDescriptorRange,
33369 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
33370
33371 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
33372 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
33373 ID3D12GraphicsCommandList7 * This,
33374 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
33375 _In_ D3D12_CLEAR_FLAGS ClearFlags,
33376 _In_ FLOAT Depth,
33377 _In_ UINT8 Stencil,
33378 _In_ UINT NumRects,
33379 _In_reads_(NumRects) const D3D12_RECT *pRects);
33380
33381 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
33382 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
33383 ID3D12GraphicsCommandList7 * This,
33384 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
33385 _In_ const FLOAT ColorRGBA[ 4 ],
33386 _In_ UINT NumRects,
33387 _In_reads_(NumRects) const D3D12_RECT *pRects);
33388
33389 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
33390 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
33391 ID3D12GraphicsCommandList7 * This,
33392 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33393 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33394 _In_ ID3D12Resource *pResource,
33395 _In_ const UINT Values[ 4 ],
33396 _In_ UINT NumRects,
33397 _In_reads_(NumRects) const D3D12_RECT *pRects);
33398
33399 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
33400 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
33401 ID3D12GraphicsCommandList7 * This,
33402 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
33403 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
33404 _In_ ID3D12Resource *pResource,
33405 _In_ const FLOAT Values[ 4 ],
33406 _In_ UINT NumRects,
33407 _In_reads_(NumRects) const D3D12_RECT *pRects);
33408
33409 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
33410 void ( STDMETHODCALLTYPE *DiscardResource )(
33411 ID3D12GraphicsCommandList7 * This,
33412 _In_ ID3D12Resource *pResource,
33413 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
33414
33415 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
33416 void ( STDMETHODCALLTYPE *BeginQuery )(
33417 ID3D12GraphicsCommandList7 * This,
33418 _In_ ID3D12QueryHeap *pQueryHeap,
33419 _In_ D3D12_QUERY_TYPE Type,
33420 _In_ UINT Index);
33421
33422 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
33423 void ( STDMETHODCALLTYPE *EndQuery )(
33424 ID3D12GraphicsCommandList7 * This,
33425 _In_ ID3D12QueryHeap *pQueryHeap,
33426 _In_ D3D12_QUERY_TYPE Type,
33427 _In_ UINT Index);
33428
33429 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
33430 void ( STDMETHODCALLTYPE *ResolveQueryData )(
33431 ID3D12GraphicsCommandList7 * This,
33432 _In_ ID3D12QueryHeap *pQueryHeap,
33433 _In_ D3D12_QUERY_TYPE Type,
33434 _In_ UINT StartIndex,
33435 _In_ UINT NumQueries,
33436 _In_ ID3D12Resource *pDestinationBuffer,
33437 _In_ UINT64 AlignedDestinationBufferOffset);
33438
33439 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
33440 void ( STDMETHODCALLTYPE *SetPredication )(
33441 ID3D12GraphicsCommandList7 * This,
33442 _In_opt_ ID3D12Resource *pBuffer,
33443 _In_ UINT64 AlignedBufferOffset,
33444 _In_ D3D12_PREDICATION_OP Operation);
33445
33446 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
33447 void ( STDMETHODCALLTYPE *SetMarker )(
33448 ID3D12GraphicsCommandList7 * This,
33449 UINT Metadata,
33450 _In_reads_bytes_opt_(Size) const void *pData,
33451 UINT Size);
33452
33453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
33454 void ( STDMETHODCALLTYPE *BeginEvent )(
33455 ID3D12GraphicsCommandList7 * This,
33456 UINT Metadata,
33457 _In_reads_bytes_opt_(Size) const void *pData,
33458 UINT Size);
33459
33460 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
33461 void ( STDMETHODCALLTYPE *EndEvent )(
33462 ID3D12GraphicsCommandList7 * This);
33463
33464 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
33465 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
33466 ID3D12GraphicsCommandList7 * This,
33467 _In_ ID3D12CommandSignature *pCommandSignature,
33468 _In_ UINT MaxCommandCount,
33469 _In_ ID3D12Resource *pArgumentBuffer,
33470 _In_ UINT64 ArgumentBufferOffset,
33471 _In_opt_ ID3D12Resource *pCountBuffer,
33472 _In_ UINT64 CountBufferOffset);
33473
33474 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
33475 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
33476 ID3D12GraphicsCommandList7 * This,
33477 _In_ ID3D12Resource *pDstBuffer,
33478 UINT64 DstOffset,
33479 _In_ ID3D12Resource *pSrcBuffer,
33480 UINT64 SrcOffset,
33481 UINT Dependencies,
33482 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33483 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33484
33485 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
33486 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
33487 ID3D12GraphicsCommandList7 * This,
33488 _In_ ID3D12Resource *pDstBuffer,
33489 UINT64 DstOffset,
33490 _In_ ID3D12Resource *pSrcBuffer,
33491 UINT64 SrcOffset,
33492 UINT Dependencies,
33493 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
33494 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
33495
33496 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
33497 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
33498 ID3D12GraphicsCommandList7 * This,
33499 _In_ FLOAT Min,
33500 _In_ FLOAT Max);
33501
33502 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
33503 void ( STDMETHODCALLTYPE *SetSamplePositions )(
33504 ID3D12GraphicsCommandList7 * This,
33505 _In_ UINT NumSamplesPerPixel,
33506 _In_ UINT NumPixels,
33507 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
33508
33509 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
33510 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
33511 ID3D12GraphicsCommandList7 * This,
33512 _In_ ID3D12Resource *pDstResource,
33513 _In_ UINT DstSubresource,
33514 _In_ UINT DstX,
33515 _In_ UINT DstY,
33516 _In_ ID3D12Resource *pSrcResource,
33517 _In_ UINT SrcSubresource,
33518 _In_opt_ D3D12_RECT *pSrcRect,
33519 _In_ DXGI_FORMAT Format,
33520 _In_ D3D12_RESOLVE_MODE ResolveMode);
33521
33522 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
33523 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
33524 ID3D12GraphicsCommandList7 * This,
33525 _In_ UINT Mask);
33526
33527 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
33528 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
33529 ID3D12GraphicsCommandList7 * This,
33530 UINT Count,
33531 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
33532 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
33533
33534 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
33535 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
33536 ID3D12GraphicsCommandList7 * This,
33537 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
33538
33539 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
33540 void ( STDMETHODCALLTYPE *BeginRenderPass )(
33541 ID3D12GraphicsCommandList7 * This,
33542 _In_ UINT NumRenderTargets,
33543 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
33544 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
33545 D3D12_RENDER_PASS_FLAGS Flags);
33546
33547 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
33548 void ( STDMETHODCALLTYPE *EndRenderPass )(
33549 ID3D12GraphicsCommandList7 * This);
33550
33551 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
33552 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
33553 ID3D12GraphicsCommandList7 * This,
33554 _In_ ID3D12MetaCommand *pMetaCommand,
33555 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
33556 _In_ SIZE_T InitializationParametersDataSizeInBytes);
33557
33558 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
33559 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
33560 ID3D12GraphicsCommandList7 * This,
33561 _In_ ID3D12MetaCommand *pMetaCommand,
33562 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
33563 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
33564
33565 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
33566 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
33567 ID3D12GraphicsCommandList7 * This,
33568 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
33569 _In_ UINT NumPostbuildInfoDescs,
33570 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
33571
33572 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
33573 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
33574 ID3D12GraphicsCommandList7 * This,
33575 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
33576 _In_ UINT NumSourceAccelerationStructures,
33577 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
33578
33579 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
33580 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
33581 ID3D12GraphicsCommandList7 * This,
33582 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
33583 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
33584 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
33585
33586 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
33587 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
33588 ID3D12GraphicsCommandList7 * This,
33589 _In_ ID3D12StateObject *pStateObject);
33590
33591 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
33592 void ( STDMETHODCALLTYPE *DispatchRays )(
33593 ID3D12GraphicsCommandList7 * This,
33594 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
33595
33596 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
33597 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
33598 ID3D12GraphicsCommandList7 * This,
33599 _In_ D3D12_SHADING_RATE baseShadingRate,
33600 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
33601
33602 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
33603 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
33604 ID3D12GraphicsCommandList7 * This,
33605 _In_opt_ ID3D12Resource *shadingRateImage);
33606
33607 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
33608 void ( STDMETHODCALLTYPE *DispatchMesh )(
33609 ID3D12GraphicsCommandList7 * This,
33610 _In_ UINT ThreadGroupCountX,
33611 _In_ UINT ThreadGroupCountY,
33612 _In_ UINT ThreadGroupCountZ);
33613
33614 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
33615 void ( STDMETHODCALLTYPE *Barrier )(
33616 ID3D12GraphicsCommandList7 * This,
33617 UINT32 NumBarrierGroups,
33618 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
33619
33620 END_INTERFACE
33621 } ID3D12GraphicsCommandList7Vtbl;
33622
33623 interface ID3D12GraphicsCommandList7
33624 {
33625 CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl;
33626 };
33627
33628
33629
33630#ifdef COBJMACROS
33631
33632
33633#define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \
33634 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
33635
33636#define ID3D12GraphicsCommandList7_AddRef(This) \
33637 ( (This)->lpVtbl -> AddRef(This) )
33638
33639#define ID3D12GraphicsCommandList7_Release(This) \
33640 ( (This)->lpVtbl -> Release(This) )
33641
33642
33643#define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \
33644 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
33645
33646#define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \
33647 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
33648
33649#define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \
33650 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
33651
33652#define ID3D12GraphicsCommandList7_SetName(This,Name) \
33653 ( (This)->lpVtbl -> SetName(This,Name) )
33654
33655
33656#define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \
33657 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
33658
33659
33660#define ID3D12GraphicsCommandList7_GetType(This) \
33661 ( (This)->lpVtbl -> GetType(This) )
33662
33663
33664#define ID3D12GraphicsCommandList7_Close(This) \
33665 ( (This)->lpVtbl -> Close(This) )
33666
33667#define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \
33668 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
33669
33670#define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \
33671 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
33672
33673#define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
33674 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
33675
33676#define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
33677 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
33678
33679#define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33680 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33681
33682#define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
33683 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
33684
33685#define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
33686 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
33687
33688#define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \
33689 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
33690
33691#define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
33692 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
33693
33694#define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
33695 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
33696
33697#define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \
33698 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
33699
33700#define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \
33701 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
33702
33703#define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \
33704 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
33705
33706#define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \
33707 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
33708
33709#define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \
33710 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
33711
33712#define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \
33713 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
33714
33715#define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \
33716 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
33717
33718#define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \
33719 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
33720
33721#define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
33722 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
33723
33724#define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \
33725 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
33726
33727#define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \
33728 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
33729
33730#define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33731 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33732
33733#define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
33734 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
33735
33736#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33737 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33738
33739#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
33740 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
33741
33742#define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33743 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33744
33745#define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
33746 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
33747
33748#define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33749 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33750
33751#define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
33752 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
33753
33754#define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33755 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33756
33757#define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
33758 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
33759
33760#define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33761 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33762
33763#define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
33764 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
33765
33766#define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \
33767 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
33768
33769#define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
33770 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
33771
33772#define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \
33773 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
33774
33775#define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
33776 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
33777
33778#define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
33779 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
33780
33781#define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
33782 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
33783
33784#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33785 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33786
33787#define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
33788 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
33789
33790#define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \
33791 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
33792
33793#define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \
33794 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
33795
33796#define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \
33797 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
33798
33799#define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
33800 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
33801
33802#define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
33803 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
33804
33805#define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \
33806 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
33807
33808#define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \
33809 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
33810
33811#define ID3D12GraphicsCommandList7_EndEvent(This) \
33812 ( (This)->lpVtbl -> EndEvent(This) )
33813
33814#define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
33815 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
33816
33817
33818#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33819 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33820
33821#define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
33822 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
33823
33824#define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \
33825 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
33826
33827#define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
33828 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
33829
33830#define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
33831 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
33832
33833#define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \
33834 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
33835
33836
33837#define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \
33838 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
33839
33840
33841#define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \
33842 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
33843
33844
33845#define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
33846 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
33847
33848#define ID3D12GraphicsCommandList7_EndRenderPass(This) \
33849 ( (This)->lpVtbl -> EndRenderPass(This) )
33850
33851#define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
33852 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
33853
33854#define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
33855 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
33856
33857#define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
33858 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
33859
33860#define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
33861 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
33862
33863#define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
33864 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
33865
33866#define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \
33867 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
33868
33869#define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \
33870 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
33871
33872
33873#define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \
33874 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
33875
33876#define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \
33877 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
33878
33879
33880#define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
33881 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
33882
33883
33884#define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \
33885 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
33886
33887#endif /* COBJMACROS */
33888
33889
33890#endif /* C style interface */
33891
33892
33893
33894
33895#endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */
33896
33897
33898#ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
33899#define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__
33900
33901/* interface ID3D12GraphicsCommandList8 */
33902/* [unique][local][object][uuid] */
33903
33904
33905EXTERN_C const IID IID_ID3D12GraphicsCommandList8;
33906
33907#if defined(__cplusplus) && !defined(CINTERFACE)
33908
33909 MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51")
33910 ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7
33911 {
33912 public:
33913 virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef(
33914 _In_ UINT FrontStencilRef,
33915 _In_ UINT BackStencilRef) = 0;
33916
33917 };
33918
33919
33920#else /* C style interface */
33921
33922 typedef struct ID3D12GraphicsCommandList8Vtbl
33923 {
33924 BEGIN_INTERFACE
33925
33926 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
33927 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
33928 ID3D12GraphicsCommandList8 * This,
33929 REFIID riid,
33930 _COM_Outptr_ void **ppvObject);
33931
33932 DECLSPEC_XFGVIRT(IUnknown, AddRef)
33933 ULONG ( STDMETHODCALLTYPE *AddRef )(
33934 ID3D12GraphicsCommandList8 * This);
33935
33936 DECLSPEC_XFGVIRT(IUnknown, Release)
33937 ULONG ( STDMETHODCALLTYPE *Release )(
33938 ID3D12GraphicsCommandList8 * This);
33939
33940 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
33941 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
33942 ID3D12GraphicsCommandList8 * This,
33943 _In_ REFGUID guid,
33944 _Inout_ UINT *pDataSize,
33945 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
33946
33947 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
33948 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
33949 ID3D12GraphicsCommandList8 * This,
33950 _In_ REFGUID guid,
33951 _In_ UINT DataSize,
33952 _In_reads_bytes_opt_( DataSize ) const void *pData);
33953
33954 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
33955 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
33956 ID3D12GraphicsCommandList8 * This,
33957 _In_ REFGUID guid,
33958 _In_opt_ const IUnknown *pData);
33959
33960 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
33961 HRESULT ( STDMETHODCALLTYPE *SetName )(
33962 ID3D12GraphicsCommandList8 * This,
33963 _In_z_ LPCWSTR Name);
33964
33965 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
33966 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
33967 ID3D12GraphicsCommandList8 * This,
33968 REFIID riid,
33969 _COM_Outptr_opt_ void **ppvDevice);
33970
33971 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
33972 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
33973 ID3D12GraphicsCommandList8 * This);
33974
33975 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
33976 HRESULT ( STDMETHODCALLTYPE *Close )(
33977 ID3D12GraphicsCommandList8 * This);
33978
33979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
33980 HRESULT ( STDMETHODCALLTYPE *Reset )(
33981 ID3D12GraphicsCommandList8 * This,
33982 _In_ ID3D12CommandAllocator *pAllocator,
33983 _In_opt_ ID3D12PipelineState *pInitialState);
33984
33985 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
33986 void ( STDMETHODCALLTYPE *ClearState )(
33987 ID3D12GraphicsCommandList8 * This,
33988 _In_opt_ ID3D12PipelineState *pPipelineState);
33989
33990 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
33991 void ( STDMETHODCALLTYPE *DrawInstanced )(
33992 ID3D12GraphicsCommandList8 * This,
33993 _In_ UINT VertexCountPerInstance,
33994 _In_ UINT InstanceCount,
33995 _In_ UINT StartVertexLocation,
33996 _In_ UINT StartInstanceLocation);
33997
33998 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
33999 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
34000 ID3D12GraphicsCommandList8 * This,
34001 _In_ UINT IndexCountPerInstance,
34002 _In_ UINT InstanceCount,
34003 _In_ UINT StartIndexLocation,
34004 _In_ INT BaseVertexLocation,
34005 _In_ UINT StartInstanceLocation);
34006
34007 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
34008 void ( STDMETHODCALLTYPE *Dispatch )(
34009 ID3D12GraphicsCommandList8 * This,
34010 _In_ UINT ThreadGroupCountX,
34011 _In_ UINT ThreadGroupCountY,
34012 _In_ UINT ThreadGroupCountZ);
34013
34014 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
34015 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
34016 ID3D12GraphicsCommandList8 * This,
34017 _In_ ID3D12Resource *pDstBuffer,
34018 UINT64 DstOffset,
34019 _In_ ID3D12Resource *pSrcBuffer,
34020 UINT64 SrcOffset,
34021 UINT64 NumBytes);
34022
34023 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
34024 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
34025 ID3D12GraphicsCommandList8 * This,
34026 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
34027 UINT DstX,
34028 UINT DstY,
34029 UINT DstZ,
34030 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
34031 _In_opt_ const D3D12_BOX *pSrcBox);
34032
34033 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
34034 void ( STDMETHODCALLTYPE *CopyResource )(
34035 ID3D12GraphicsCommandList8 * This,
34036 _In_ ID3D12Resource *pDstResource,
34037 _In_ ID3D12Resource *pSrcResource);
34038
34039 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
34040 void ( STDMETHODCALLTYPE *CopyTiles )(
34041 ID3D12GraphicsCommandList8 * This,
34042 _In_ ID3D12Resource *pTiledResource,
34043 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
34044 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
34045 _In_ ID3D12Resource *pBuffer,
34046 UINT64 BufferStartOffsetInBytes,
34047 D3D12_TILE_COPY_FLAGS Flags);
34048
34049 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
34050 void ( STDMETHODCALLTYPE *ResolveSubresource )(
34051 ID3D12GraphicsCommandList8 * This,
34052 _In_ ID3D12Resource *pDstResource,
34053 _In_ UINT DstSubresource,
34054 _In_ ID3D12Resource *pSrcResource,
34055 _In_ UINT SrcSubresource,
34056 _In_ DXGI_FORMAT Format);
34057
34058 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
34059 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
34060 ID3D12GraphicsCommandList8 * This,
34061 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
34062
34063 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
34064 void ( STDMETHODCALLTYPE *RSSetViewports )(
34065 ID3D12GraphicsCommandList8 * This,
34066 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
34067 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
34068
34069 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
34070 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
34071 ID3D12GraphicsCommandList8 * This,
34072 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
34073 _In_reads_( NumRects) const D3D12_RECT *pRects);
34074
34075 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
34076 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
34077 ID3D12GraphicsCommandList8 * This,
34078 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
34079
34080 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
34081 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
34082 ID3D12GraphicsCommandList8 * This,
34083 _In_ UINT StencilRef);
34084
34085 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
34086 void ( STDMETHODCALLTYPE *SetPipelineState )(
34087 ID3D12GraphicsCommandList8 * This,
34088 _In_ ID3D12PipelineState *pPipelineState);
34089
34090 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
34091 void ( STDMETHODCALLTYPE *ResourceBarrier )(
34092 ID3D12GraphicsCommandList8 * This,
34093 _In_ UINT NumBarriers,
34094 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
34095
34096 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
34097 void ( STDMETHODCALLTYPE *ExecuteBundle )(
34098 ID3D12GraphicsCommandList8 * This,
34099 _In_ ID3D12GraphicsCommandList *pCommandList);
34100
34101 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
34102 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
34103 ID3D12GraphicsCommandList8 * This,
34104 _In_ UINT NumDescriptorHeaps,
34105 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
34106
34107 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
34108 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
34109 ID3D12GraphicsCommandList8 * This,
34110 _In_opt_ ID3D12RootSignature *pRootSignature);
34111
34112 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
34113 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
34114 ID3D12GraphicsCommandList8 * This,
34115 _In_opt_ ID3D12RootSignature *pRootSignature);
34116
34117 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
34118 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
34119 ID3D12GraphicsCommandList8 * This,
34120 _In_ UINT RootParameterIndex,
34121 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34122
34123 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
34124 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
34125 ID3D12GraphicsCommandList8 * This,
34126 _In_ UINT RootParameterIndex,
34127 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34128
34129 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
34130 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
34131 ID3D12GraphicsCommandList8 * This,
34132 _In_ UINT RootParameterIndex,
34133 _In_ UINT SrcData,
34134 _In_ UINT DestOffsetIn32BitValues);
34135
34136 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
34137 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
34138 ID3D12GraphicsCommandList8 * This,
34139 _In_ UINT RootParameterIndex,
34140 _In_ UINT SrcData,
34141 _In_ UINT DestOffsetIn32BitValues);
34142
34143 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
34144 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
34145 ID3D12GraphicsCommandList8 * This,
34146 _In_ UINT RootParameterIndex,
34147 _In_ UINT Num32BitValuesToSet,
34148 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34149 _In_ UINT DestOffsetIn32BitValues);
34150
34151 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
34152 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
34153 ID3D12GraphicsCommandList8 * This,
34154 _In_ UINT RootParameterIndex,
34155 _In_ UINT Num32BitValuesToSet,
34156 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
34157 _In_ UINT DestOffsetIn32BitValues);
34158
34159 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
34160 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
34161 ID3D12GraphicsCommandList8 * This,
34162 _In_ UINT RootParameterIndex,
34163 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34164
34165 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
34166 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
34167 ID3D12GraphicsCommandList8 * This,
34168 _In_ UINT RootParameterIndex,
34169 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34170
34171 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
34172 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
34173 ID3D12GraphicsCommandList8 * This,
34174 _In_ UINT RootParameterIndex,
34175 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34176
34177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
34178 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
34179 ID3D12GraphicsCommandList8 * This,
34180 _In_ UINT RootParameterIndex,
34181 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34182
34183 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
34184 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
34185 ID3D12GraphicsCommandList8 * This,
34186 _In_ UINT RootParameterIndex,
34187 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34188
34189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
34190 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
34191 ID3D12GraphicsCommandList8 * This,
34192 _In_ UINT RootParameterIndex,
34193 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
34194
34195 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
34196 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
34197 ID3D12GraphicsCommandList8 * This,
34198 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
34199
34200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
34201 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
34202 ID3D12GraphicsCommandList8 * This,
34203 _In_ UINT StartSlot,
34204 _In_ UINT NumViews,
34205 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
34206
34207 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
34208 void ( STDMETHODCALLTYPE *SOSetTargets )(
34209 ID3D12GraphicsCommandList8 * This,
34210 _In_ UINT StartSlot,
34211 _In_ UINT NumViews,
34212 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
34213
34214 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
34215 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
34216 ID3D12GraphicsCommandList8 * This,
34217 _In_ UINT NumRenderTargetDescriptors,
34218 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
34219 _In_ BOOL RTsSingleHandleToDescriptorRange,
34220 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
34221
34222 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
34223 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
34224 ID3D12GraphicsCommandList8 * This,
34225 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
34226 _In_ D3D12_CLEAR_FLAGS ClearFlags,
34227 _In_ FLOAT Depth,
34228 _In_ UINT8 Stencil,
34229 _In_ UINT NumRects,
34230 _In_reads_(NumRects) const D3D12_RECT *pRects);
34231
34232 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
34233 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
34234 ID3D12GraphicsCommandList8 * This,
34235 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
34236 _In_ const FLOAT ColorRGBA[ 4 ],
34237 _In_ UINT NumRects,
34238 _In_reads_(NumRects) const D3D12_RECT *pRects);
34239
34240 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
34241 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
34242 ID3D12GraphicsCommandList8 * This,
34243 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34244 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34245 _In_ ID3D12Resource *pResource,
34246 _In_ const UINT Values[ 4 ],
34247 _In_ UINT NumRects,
34248 _In_reads_(NumRects) const D3D12_RECT *pRects);
34249
34250 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
34251 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
34252 ID3D12GraphicsCommandList8 * This,
34253 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
34254 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
34255 _In_ ID3D12Resource *pResource,
34256 _In_ const FLOAT Values[ 4 ],
34257 _In_ UINT NumRects,
34258 _In_reads_(NumRects) const D3D12_RECT *pRects);
34259
34260 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
34261 void ( STDMETHODCALLTYPE *DiscardResource )(
34262 ID3D12GraphicsCommandList8 * This,
34263 _In_ ID3D12Resource *pResource,
34264 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
34265
34266 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
34267 void ( STDMETHODCALLTYPE *BeginQuery )(
34268 ID3D12GraphicsCommandList8 * This,
34269 _In_ ID3D12QueryHeap *pQueryHeap,
34270 _In_ D3D12_QUERY_TYPE Type,
34271 _In_ UINT Index);
34272
34273 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
34274 void ( STDMETHODCALLTYPE *EndQuery )(
34275 ID3D12GraphicsCommandList8 * This,
34276 _In_ ID3D12QueryHeap *pQueryHeap,
34277 _In_ D3D12_QUERY_TYPE Type,
34278 _In_ UINT Index);
34279
34280 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
34281 void ( STDMETHODCALLTYPE *ResolveQueryData )(
34282 ID3D12GraphicsCommandList8 * This,
34283 _In_ ID3D12QueryHeap *pQueryHeap,
34284 _In_ D3D12_QUERY_TYPE Type,
34285 _In_ UINT StartIndex,
34286 _In_ UINT NumQueries,
34287 _In_ ID3D12Resource *pDestinationBuffer,
34288 _In_ UINT64 AlignedDestinationBufferOffset);
34289
34290 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
34291 void ( STDMETHODCALLTYPE *SetPredication )(
34292 ID3D12GraphicsCommandList8 * This,
34293 _In_opt_ ID3D12Resource *pBuffer,
34294 _In_ UINT64 AlignedBufferOffset,
34295 _In_ D3D12_PREDICATION_OP Operation);
34296
34297 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
34298 void ( STDMETHODCALLTYPE *SetMarker )(
34299 ID3D12GraphicsCommandList8 * This,
34300 UINT Metadata,
34301 _In_reads_bytes_opt_(Size) const void *pData,
34302 UINT Size);
34303
34304 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
34305 void ( STDMETHODCALLTYPE *BeginEvent )(
34306 ID3D12GraphicsCommandList8 * This,
34307 UINT Metadata,
34308 _In_reads_bytes_opt_(Size) const void *pData,
34309 UINT Size);
34310
34311 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
34312 void ( STDMETHODCALLTYPE *EndEvent )(
34313 ID3D12GraphicsCommandList8 * This);
34314
34315 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
34316 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
34317 ID3D12GraphicsCommandList8 * This,
34318 _In_ ID3D12CommandSignature *pCommandSignature,
34319 _In_ UINT MaxCommandCount,
34320 _In_ ID3D12Resource *pArgumentBuffer,
34321 _In_ UINT64 ArgumentBufferOffset,
34322 _In_opt_ ID3D12Resource *pCountBuffer,
34323 _In_ UINT64 CountBufferOffset);
34324
34325 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
34326 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
34327 ID3D12GraphicsCommandList8 * This,
34328 _In_ ID3D12Resource *pDstBuffer,
34329 UINT64 DstOffset,
34330 _In_ ID3D12Resource *pSrcBuffer,
34331 UINT64 SrcOffset,
34332 UINT Dependencies,
34333 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34334 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34335
34336 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
34337 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
34338 ID3D12GraphicsCommandList8 * This,
34339 _In_ ID3D12Resource *pDstBuffer,
34340 UINT64 DstOffset,
34341 _In_ ID3D12Resource *pSrcBuffer,
34342 UINT64 SrcOffset,
34343 UINT Dependencies,
34344 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
34345 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
34346
34347 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
34348 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
34349 ID3D12GraphicsCommandList8 * This,
34350 _In_ FLOAT Min,
34351 _In_ FLOAT Max);
34352
34353 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
34354 void ( STDMETHODCALLTYPE *SetSamplePositions )(
34355 ID3D12GraphicsCommandList8 * This,
34356 _In_ UINT NumSamplesPerPixel,
34357 _In_ UINT NumPixels,
34358 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
34359
34360 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
34361 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
34362 ID3D12GraphicsCommandList8 * This,
34363 _In_ ID3D12Resource *pDstResource,
34364 _In_ UINT DstSubresource,
34365 _In_ UINT DstX,
34366 _In_ UINT DstY,
34367 _In_ ID3D12Resource *pSrcResource,
34368 _In_ UINT SrcSubresource,
34369 _In_opt_ D3D12_RECT *pSrcRect,
34370 _In_ DXGI_FORMAT Format,
34371 _In_ D3D12_RESOLVE_MODE ResolveMode);
34372
34373 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
34374 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
34375 ID3D12GraphicsCommandList8 * This,
34376 _In_ UINT Mask);
34377
34378 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
34379 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
34380 ID3D12GraphicsCommandList8 * This,
34381 UINT Count,
34382 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
34383 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
34384
34385 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
34386 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
34387 ID3D12GraphicsCommandList8 * This,
34388 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
34389
34390 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
34391 void ( STDMETHODCALLTYPE *BeginRenderPass )(
34392 ID3D12GraphicsCommandList8 * This,
34393 _In_ UINT NumRenderTargets,
34394 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
34395 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
34396 D3D12_RENDER_PASS_FLAGS Flags);
34397
34398 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
34399 void ( STDMETHODCALLTYPE *EndRenderPass )(
34400 ID3D12GraphicsCommandList8 * This);
34401
34402 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
34403 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
34404 ID3D12GraphicsCommandList8 * This,
34405 _In_ ID3D12MetaCommand *pMetaCommand,
34406 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
34407 _In_ SIZE_T InitializationParametersDataSizeInBytes);
34408
34409 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
34410 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
34411 ID3D12GraphicsCommandList8 * This,
34412 _In_ ID3D12MetaCommand *pMetaCommand,
34413 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
34414 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
34415
34416 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
34417 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
34418 ID3D12GraphicsCommandList8 * This,
34419 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
34420 _In_ UINT NumPostbuildInfoDescs,
34421 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
34422
34423 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
34424 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
34425 ID3D12GraphicsCommandList8 * This,
34426 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
34427 _In_ UINT NumSourceAccelerationStructures,
34428 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
34429
34430 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
34431 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
34432 ID3D12GraphicsCommandList8 * This,
34433 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
34434 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
34435 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
34436
34437 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
34438 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
34439 ID3D12GraphicsCommandList8 * This,
34440 _In_ ID3D12StateObject *pStateObject);
34441
34442 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
34443 void ( STDMETHODCALLTYPE *DispatchRays )(
34444 ID3D12GraphicsCommandList8 * This,
34445 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
34446
34447 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
34448 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
34449 ID3D12GraphicsCommandList8 * This,
34450 _In_ D3D12_SHADING_RATE baseShadingRate,
34451 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
34452
34453 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
34454 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
34455 ID3D12GraphicsCommandList8 * This,
34456 _In_opt_ ID3D12Resource *shadingRateImage);
34457
34458 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
34459 void ( STDMETHODCALLTYPE *DispatchMesh )(
34460 ID3D12GraphicsCommandList8 * This,
34461 _In_ UINT ThreadGroupCountX,
34462 _In_ UINT ThreadGroupCountY,
34463 _In_ UINT ThreadGroupCountZ);
34464
34465 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
34466 void ( STDMETHODCALLTYPE *Barrier )(
34467 ID3D12GraphicsCommandList8 * This,
34468 UINT32 NumBarrierGroups,
34469 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
34470
34471 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
34472 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
34473 ID3D12GraphicsCommandList8 * This,
34474 _In_ UINT FrontStencilRef,
34475 _In_ UINT BackStencilRef);
34476
34477 END_INTERFACE
34478 } ID3D12GraphicsCommandList8Vtbl;
34479
34480 interface ID3D12GraphicsCommandList8
34481 {
34482 CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl;
34483 };
34484
34485
34486
34487#ifdef COBJMACROS
34488
34489
34490#define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \
34491 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
34492
34493#define ID3D12GraphicsCommandList8_AddRef(This) \
34494 ( (This)->lpVtbl -> AddRef(This) )
34495
34496#define ID3D12GraphicsCommandList8_Release(This) \
34497 ( (This)->lpVtbl -> Release(This) )
34498
34499
34500#define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \
34501 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
34502
34503#define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \
34504 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
34505
34506#define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \
34507 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
34508
34509#define ID3D12GraphicsCommandList8_SetName(This,Name) \
34510 ( (This)->lpVtbl -> SetName(This,Name) )
34511
34512
34513#define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \
34514 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
34515
34516
34517#define ID3D12GraphicsCommandList8_GetType(This) \
34518 ( (This)->lpVtbl -> GetType(This) )
34519
34520
34521#define ID3D12GraphicsCommandList8_Close(This) \
34522 ( (This)->lpVtbl -> Close(This) )
34523
34524#define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \
34525 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
34526
34527#define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \
34528 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
34529
34530#define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
34531 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
34532
34533#define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
34534 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
34535
34536#define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34537 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34538
34539#define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
34540 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
34541
34542#define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
34543 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
34544
34545#define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \
34546 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
34547
34548#define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
34549 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
34550
34551#define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
34552 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
34553
34554#define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \
34555 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
34556
34557#define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \
34558 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
34559
34560#define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \
34561 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
34562
34563#define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \
34564 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
34565
34566#define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \
34567 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
34568
34569#define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \
34570 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
34571
34572#define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \
34573 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
34574
34575#define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \
34576 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
34577
34578#define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
34579 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
34580
34581#define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \
34582 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
34583
34584#define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \
34585 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
34586
34587#define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34588 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34589
34590#define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
34591 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
34592
34593#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34594 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34595
34596#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
34597 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
34598
34599#define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34600 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34601
34602#define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
34603 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
34604
34605#define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34606 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34607
34608#define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
34609 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
34610
34611#define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34612 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34613
34614#define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
34615 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
34616
34617#define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34618 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34619
34620#define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
34621 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
34622
34623#define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \
34624 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
34625
34626#define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
34627 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
34628
34629#define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \
34630 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
34631
34632#define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
34633 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
34634
34635#define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
34636 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
34637
34638#define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
34639 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
34640
34641#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34642 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34643
34644#define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
34645 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
34646
34647#define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \
34648 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
34649
34650#define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \
34651 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
34652
34653#define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \
34654 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
34655
34656#define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
34657 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
34658
34659#define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
34660 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
34661
34662#define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \
34663 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
34664
34665#define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \
34666 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
34667
34668#define ID3D12GraphicsCommandList8_EndEvent(This) \
34669 ( (This)->lpVtbl -> EndEvent(This) )
34670
34671#define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
34672 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
34673
34674
34675#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34676 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34677
34678#define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
34679 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
34680
34681#define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \
34682 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
34683
34684#define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
34685 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
34686
34687#define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
34688 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
34689
34690#define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \
34691 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
34692
34693
34694#define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \
34695 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
34696
34697
34698#define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \
34699 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
34700
34701
34702#define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
34703 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
34704
34705#define ID3D12GraphicsCommandList8_EndRenderPass(This) \
34706 ( (This)->lpVtbl -> EndRenderPass(This) )
34707
34708#define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
34709 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
34710
34711#define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
34712 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
34713
34714#define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
34715 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
34716
34717#define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
34718 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
34719
34720#define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
34721 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
34722
34723#define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \
34724 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
34725
34726#define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \
34727 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
34728
34729
34730#define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \
34731 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
34732
34733#define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \
34734 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
34735
34736
34737#define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
34738 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
34739
34740
34741#define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \
34742 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
34743
34744
34745#define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
34746 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
34747
34748#endif /* COBJMACROS */
34749
34750
34751#endif /* C style interface */
34752
34753
34754
34755
34756#endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */
34757
34758
34759#ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
34760#define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__
34761
34762/* interface ID3D12GraphicsCommandList9 */
34763/* [unique][local][object][uuid] */
34764
34765
34766EXTERN_C const IID IID_ID3D12GraphicsCommandList9;
34767
34768#if defined(__cplusplus) && !defined(CINTERFACE)
34769
34770 MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1")
34771 ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8
34772 {
34773 public:
34774 virtual void STDMETHODCALLTYPE RSSetDepthBias(
34775 _In_ FLOAT DepthBias,
34776 _In_ FLOAT DepthBiasClamp,
34777 _In_ FLOAT SlopeScaledDepthBias) = 0;
34778
34779 virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue(
34780 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0;
34781
34782 };
34783
34784
34785#else /* C style interface */
34786
34787 typedef struct ID3D12GraphicsCommandList9Vtbl
34788 {
34789 BEGIN_INTERFACE
34790
34791 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
34792 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
34793 ID3D12GraphicsCommandList9 * This,
34794 REFIID riid,
34795 _COM_Outptr_ void **ppvObject);
34796
34797 DECLSPEC_XFGVIRT(IUnknown, AddRef)
34798 ULONG ( STDMETHODCALLTYPE *AddRef )(
34799 ID3D12GraphicsCommandList9 * This);
34800
34801 DECLSPEC_XFGVIRT(IUnknown, Release)
34802 ULONG ( STDMETHODCALLTYPE *Release )(
34803 ID3D12GraphicsCommandList9 * This);
34804
34805 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
34806 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
34807 ID3D12GraphicsCommandList9 * This,
34808 _In_ REFGUID guid,
34809 _Inout_ UINT *pDataSize,
34810 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
34811
34812 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
34813 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
34814 ID3D12GraphicsCommandList9 * This,
34815 _In_ REFGUID guid,
34816 _In_ UINT DataSize,
34817 _In_reads_bytes_opt_( DataSize ) const void *pData);
34818
34819 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
34820 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
34821 ID3D12GraphicsCommandList9 * This,
34822 _In_ REFGUID guid,
34823 _In_opt_ const IUnknown *pData);
34824
34825 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
34826 HRESULT ( STDMETHODCALLTYPE *SetName )(
34827 ID3D12GraphicsCommandList9 * This,
34828 _In_z_ LPCWSTR Name);
34829
34830 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
34831 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
34832 ID3D12GraphicsCommandList9 * This,
34833 REFIID riid,
34834 _COM_Outptr_opt_ void **ppvDevice);
34835
34836 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
34837 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
34838 ID3D12GraphicsCommandList9 * This);
34839
34840 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
34841 HRESULT ( STDMETHODCALLTYPE *Close )(
34842 ID3D12GraphicsCommandList9 * This);
34843
34844 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
34845 HRESULT ( STDMETHODCALLTYPE *Reset )(
34846 ID3D12GraphicsCommandList9 * This,
34847 _In_ ID3D12CommandAllocator *pAllocator,
34848 _In_opt_ ID3D12PipelineState *pInitialState);
34849
34850 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
34851 void ( STDMETHODCALLTYPE *ClearState )(
34852 ID3D12GraphicsCommandList9 * This,
34853 _In_opt_ ID3D12PipelineState *pPipelineState);
34854
34855 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
34856 void ( STDMETHODCALLTYPE *DrawInstanced )(
34857 ID3D12GraphicsCommandList9 * This,
34858 _In_ UINT VertexCountPerInstance,
34859 _In_ UINT InstanceCount,
34860 _In_ UINT StartVertexLocation,
34861 _In_ UINT StartInstanceLocation);
34862
34863 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
34864 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
34865 ID3D12GraphicsCommandList9 * This,
34866 _In_ UINT IndexCountPerInstance,
34867 _In_ UINT InstanceCount,
34868 _In_ UINT StartIndexLocation,
34869 _In_ INT BaseVertexLocation,
34870 _In_ UINT StartInstanceLocation);
34871
34872 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
34873 void ( STDMETHODCALLTYPE *Dispatch )(
34874 ID3D12GraphicsCommandList9 * This,
34875 _In_ UINT ThreadGroupCountX,
34876 _In_ UINT ThreadGroupCountY,
34877 _In_ UINT ThreadGroupCountZ);
34878
34879 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
34880 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
34881 ID3D12GraphicsCommandList9 * This,
34882 _In_ ID3D12Resource *pDstBuffer,
34883 UINT64 DstOffset,
34884 _In_ ID3D12Resource *pSrcBuffer,
34885 UINT64 SrcOffset,
34886 UINT64 NumBytes);
34887
34888 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
34889 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
34890 ID3D12GraphicsCommandList9 * This,
34891 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
34892 UINT DstX,
34893 UINT DstY,
34894 UINT DstZ,
34895 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
34896 _In_opt_ const D3D12_BOX *pSrcBox);
34897
34898 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
34899 void ( STDMETHODCALLTYPE *CopyResource )(
34900 ID3D12GraphicsCommandList9 * This,
34901 _In_ ID3D12Resource *pDstResource,
34902 _In_ ID3D12Resource *pSrcResource);
34903
34904 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
34905 void ( STDMETHODCALLTYPE *CopyTiles )(
34906 ID3D12GraphicsCommandList9 * This,
34907 _In_ ID3D12Resource *pTiledResource,
34908 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
34909 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
34910 _In_ ID3D12Resource *pBuffer,
34911 UINT64 BufferStartOffsetInBytes,
34912 D3D12_TILE_COPY_FLAGS Flags);
34913
34914 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
34915 void ( STDMETHODCALLTYPE *ResolveSubresource )(
34916 ID3D12GraphicsCommandList9 * This,
34917 _In_ ID3D12Resource *pDstResource,
34918 _In_ UINT DstSubresource,
34919 _In_ ID3D12Resource *pSrcResource,
34920 _In_ UINT SrcSubresource,
34921 _In_ DXGI_FORMAT Format);
34922
34923 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
34924 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
34925 ID3D12GraphicsCommandList9 * This,
34926 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
34927
34928 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
34929 void ( STDMETHODCALLTYPE *RSSetViewports )(
34930 ID3D12GraphicsCommandList9 * This,
34931 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
34932 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
34933
34934 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
34935 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
34936 ID3D12GraphicsCommandList9 * This,
34937 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
34938 _In_reads_( NumRects) const D3D12_RECT *pRects);
34939
34940 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
34941 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
34942 ID3D12GraphicsCommandList9 * This,
34943 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
34944
34945 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
34946 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
34947 ID3D12GraphicsCommandList9 * This,
34948 _In_ UINT StencilRef);
34949
34950 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
34951 void ( STDMETHODCALLTYPE *SetPipelineState )(
34952 ID3D12GraphicsCommandList9 * This,
34953 _In_ ID3D12PipelineState *pPipelineState);
34954
34955 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
34956 void ( STDMETHODCALLTYPE *ResourceBarrier )(
34957 ID3D12GraphicsCommandList9 * This,
34958 _In_ UINT NumBarriers,
34959 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
34960
34961 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
34962 void ( STDMETHODCALLTYPE *ExecuteBundle )(
34963 ID3D12GraphicsCommandList9 * This,
34964 _In_ ID3D12GraphicsCommandList *pCommandList);
34965
34966 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
34967 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
34968 ID3D12GraphicsCommandList9 * This,
34969 _In_ UINT NumDescriptorHeaps,
34970 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
34971
34972 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
34973 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
34974 ID3D12GraphicsCommandList9 * This,
34975 _In_opt_ ID3D12RootSignature *pRootSignature);
34976
34977 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
34978 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
34979 ID3D12GraphicsCommandList9 * This,
34980 _In_opt_ ID3D12RootSignature *pRootSignature);
34981
34982 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
34983 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
34984 ID3D12GraphicsCommandList9 * This,
34985 _In_ UINT RootParameterIndex,
34986 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34987
34988 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
34989 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
34990 ID3D12GraphicsCommandList9 * This,
34991 _In_ UINT RootParameterIndex,
34992 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
34993
34994 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
34995 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
34996 ID3D12GraphicsCommandList9 * This,
34997 _In_ UINT RootParameterIndex,
34998 _In_ UINT SrcData,
34999 _In_ UINT DestOffsetIn32BitValues);
35000
35001 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
35002 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
35003 ID3D12GraphicsCommandList9 * This,
35004 _In_ UINT RootParameterIndex,
35005 _In_ UINT SrcData,
35006 _In_ UINT DestOffsetIn32BitValues);
35007
35008 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
35009 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
35010 ID3D12GraphicsCommandList9 * This,
35011 _In_ UINT RootParameterIndex,
35012 _In_ UINT Num32BitValuesToSet,
35013 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35014 _In_ UINT DestOffsetIn32BitValues);
35015
35016 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
35017 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
35018 ID3D12GraphicsCommandList9 * This,
35019 _In_ UINT RootParameterIndex,
35020 _In_ UINT Num32BitValuesToSet,
35021 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35022 _In_ UINT DestOffsetIn32BitValues);
35023
35024 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
35025 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
35026 ID3D12GraphicsCommandList9 * This,
35027 _In_ UINT RootParameterIndex,
35028 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35029
35030 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
35031 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
35032 ID3D12GraphicsCommandList9 * This,
35033 _In_ UINT RootParameterIndex,
35034 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35035
35036 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
35037 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
35038 ID3D12GraphicsCommandList9 * This,
35039 _In_ UINT RootParameterIndex,
35040 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35041
35042 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
35043 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
35044 ID3D12GraphicsCommandList9 * This,
35045 _In_ UINT RootParameterIndex,
35046 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35047
35048 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
35049 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
35050 ID3D12GraphicsCommandList9 * This,
35051 _In_ UINT RootParameterIndex,
35052 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35053
35054 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
35055 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
35056 ID3D12GraphicsCommandList9 * This,
35057 _In_ UINT RootParameterIndex,
35058 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35059
35060 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
35061 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
35062 ID3D12GraphicsCommandList9 * This,
35063 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
35064
35065 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
35066 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
35067 ID3D12GraphicsCommandList9 * This,
35068 _In_ UINT StartSlot,
35069 _In_ UINT NumViews,
35070 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
35071
35072 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
35073 void ( STDMETHODCALLTYPE *SOSetTargets )(
35074 ID3D12GraphicsCommandList9 * This,
35075 _In_ UINT StartSlot,
35076 _In_ UINT NumViews,
35077 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
35078
35079 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
35080 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
35081 ID3D12GraphicsCommandList9 * This,
35082 _In_ UINT NumRenderTargetDescriptors,
35083 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
35084 _In_ BOOL RTsSingleHandleToDescriptorRange,
35085 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
35086
35087 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
35088 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
35089 ID3D12GraphicsCommandList9 * This,
35090 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
35091 _In_ D3D12_CLEAR_FLAGS ClearFlags,
35092 _In_ FLOAT Depth,
35093 _In_ UINT8 Stencil,
35094 _In_ UINT NumRects,
35095 _In_reads_(NumRects) const D3D12_RECT *pRects);
35096
35097 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
35098 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
35099 ID3D12GraphicsCommandList9 * This,
35100 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
35101 _In_ const FLOAT ColorRGBA[ 4 ],
35102 _In_ UINT NumRects,
35103 _In_reads_(NumRects) const D3D12_RECT *pRects);
35104
35105 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
35106 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
35107 ID3D12GraphicsCommandList9 * This,
35108 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35109 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35110 _In_ ID3D12Resource *pResource,
35111 _In_ const UINT Values[ 4 ],
35112 _In_ UINT NumRects,
35113 _In_reads_(NumRects) const D3D12_RECT *pRects);
35114
35115 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
35116 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
35117 ID3D12GraphicsCommandList9 * This,
35118 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35119 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35120 _In_ ID3D12Resource *pResource,
35121 _In_ const FLOAT Values[ 4 ],
35122 _In_ UINT NumRects,
35123 _In_reads_(NumRects) const D3D12_RECT *pRects);
35124
35125 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
35126 void ( STDMETHODCALLTYPE *DiscardResource )(
35127 ID3D12GraphicsCommandList9 * This,
35128 _In_ ID3D12Resource *pResource,
35129 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
35130
35131 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
35132 void ( STDMETHODCALLTYPE *BeginQuery )(
35133 ID3D12GraphicsCommandList9 * This,
35134 _In_ ID3D12QueryHeap *pQueryHeap,
35135 _In_ D3D12_QUERY_TYPE Type,
35136 _In_ UINT Index);
35137
35138 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
35139 void ( STDMETHODCALLTYPE *EndQuery )(
35140 ID3D12GraphicsCommandList9 * This,
35141 _In_ ID3D12QueryHeap *pQueryHeap,
35142 _In_ D3D12_QUERY_TYPE Type,
35143 _In_ UINT Index);
35144
35145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
35146 void ( STDMETHODCALLTYPE *ResolveQueryData )(
35147 ID3D12GraphicsCommandList9 * This,
35148 _In_ ID3D12QueryHeap *pQueryHeap,
35149 _In_ D3D12_QUERY_TYPE Type,
35150 _In_ UINT StartIndex,
35151 _In_ UINT NumQueries,
35152 _In_ ID3D12Resource *pDestinationBuffer,
35153 _In_ UINT64 AlignedDestinationBufferOffset);
35154
35155 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
35156 void ( STDMETHODCALLTYPE *SetPredication )(
35157 ID3D12GraphicsCommandList9 * This,
35158 _In_opt_ ID3D12Resource *pBuffer,
35159 _In_ UINT64 AlignedBufferOffset,
35160 _In_ D3D12_PREDICATION_OP Operation);
35161
35162 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
35163 void ( STDMETHODCALLTYPE *SetMarker )(
35164 ID3D12GraphicsCommandList9 * This,
35165 UINT Metadata,
35166 _In_reads_bytes_opt_(Size) const void *pData,
35167 UINT Size);
35168
35169 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
35170 void ( STDMETHODCALLTYPE *BeginEvent )(
35171 ID3D12GraphicsCommandList9 * This,
35172 UINT Metadata,
35173 _In_reads_bytes_opt_(Size) const void *pData,
35174 UINT Size);
35175
35176 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
35177 void ( STDMETHODCALLTYPE *EndEvent )(
35178 ID3D12GraphicsCommandList9 * This);
35179
35180 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
35181 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
35182 ID3D12GraphicsCommandList9 * This,
35183 _In_ ID3D12CommandSignature *pCommandSignature,
35184 _In_ UINT MaxCommandCount,
35185 _In_ ID3D12Resource *pArgumentBuffer,
35186 _In_ UINT64 ArgumentBufferOffset,
35187 _In_opt_ ID3D12Resource *pCountBuffer,
35188 _In_ UINT64 CountBufferOffset);
35189
35190 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
35191 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
35192 ID3D12GraphicsCommandList9 * This,
35193 _In_ ID3D12Resource *pDstBuffer,
35194 UINT64 DstOffset,
35195 _In_ ID3D12Resource *pSrcBuffer,
35196 UINT64 SrcOffset,
35197 UINT Dependencies,
35198 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
35199 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
35200
35201 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
35202 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
35203 ID3D12GraphicsCommandList9 * This,
35204 _In_ ID3D12Resource *pDstBuffer,
35205 UINT64 DstOffset,
35206 _In_ ID3D12Resource *pSrcBuffer,
35207 UINT64 SrcOffset,
35208 UINT Dependencies,
35209 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
35210 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
35211
35212 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
35213 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
35214 ID3D12GraphicsCommandList9 * This,
35215 _In_ FLOAT Min,
35216 _In_ FLOAT Max);
35217
35218 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
35219 void ( STDMETHODCALLTYPE *SetSamplePositions )(
35220 ID3D12GraphicsCommandList9 * This,
35221 _In_ UINT NumSamplesPerPixel,
35222 _In_ UINT NumPixels,
35223 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
35224
35225 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
35226 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
35227 ID3D12GraphicsCommandList9 * This,
35228 _In_ ID3D12Resource *pDstResource,
35229 _In_ UINT DstSubresource,
35230 _In_ UINT DstX,
35231 _In_ UINT DstY,
35232 _In_ ID3D12Resource *pSrcResource,
35233 _In_ UINT SrcSubresource,
35234 _In_opt_ D3D12_RECT *pSrcRect,
35235 _In_ DXGI_FORMAT Format,
35236 _In_ D3D12_RESOLVE_MODE ResolveMode);
35237
35238 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
35239 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
35240 ID3D12GraphicsCommandList9 * This,
35241 _In_ UINT Mask);
35242
35243 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
35244 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
35245 ID3D12GraphicsCommandList9 * This,
35246 UINT Count,
35247 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
35248 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
35249
35250 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
35251 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
35252 ID3D12GraphicsCommandList9 * This,
35253 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
35254
35255 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
35256 void ( STDMETHODCALLTYPE *BeginRenderPass )(
35257 ID3D12GraphicsCommandList9 * This,
35258 _In_ UINT NumRenderTargets,
35259 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
35260 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
35261 D3D12_RENDER_PASS_FLAGS Flags);
35262
35263 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
35264 void ( STDMETHODCALLTYPE *EndRenderPass )(
35265 ID3D12GraphicsCommandList9 * This);
35266
35267 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
35268 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
35269 ID3D12GraphicsCommandList9 * This,
35270 _In_ ID3D12MetaCommand *pMetaCommand,
35271 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
35272 _In_ SIZE_T InitializationParametersDataSizeInBytes);
35273
35274 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
35275 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
35276 ID3D12GraphicsCommandList9 * This,
35277 _In_ ID3D12MetaCommand *pMetaCommand,
35278 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
35279 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
35280
35281 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
35282 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
35283 ID3D12GraphicsCommandList9 * This,
35284 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
35285 _In_ UINT NumPostbuildInfoDescs,
35286 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
35287
35288 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
35289 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
35290 ID3D12GraphicsCommandList9 * This,
35291 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
35292 _In_ UINT NumSourceAccelerationStructures,
35293 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
35294
35295 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
35296 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
35297 ID3D12GraphicsCommandList9 * This,
35298 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
35299 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
35300 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
35301
35302 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
35303 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
35304 ID3D12GraphicsCommandList9 * This,
35305 _In_ ID3D12StateObject *pStateObject);
35306
35307 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
35308 void ( STDMETHODCALLTYPE *DispatchRays )(
35309 ID3D12GraphicsCommandList9 * This,
35310 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
35311
35312 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
35313 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
35314 ID3D12GraphicsCommandList9 * This,
35315 _In_ D3D12_SHADING_RATE baseShadingRate,
35316 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
35317
35318 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
35319 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
35320 ID3D12GraphicsCommandList9 * This,
35321 _In_opt_ ID3D12Resource *shadingRateImage);
35322
35323 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
35324 void ( STDMETHODCALLTYPE *DispatchMesh )(
35325 ID3D12GraphicsCommandList9 * This,
35326 _In_ UINT ThreadGroupCountX,
35327 _In_ UINT ThreadGroupCountY,
35328 _In_ UINT ThreadGroupCountZ);
35329
35330 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
35331 void ( STDMETHODCALLTYPE *Barrier )(
35332 ID3D12GraphicsCommandList9 * This,
35333 UINT32 NumBarrierGroups,
35334 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
35335
35336 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
35337 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
35338 ID3D12GraphicsCommandList9 * This,
35339 _In_ UINT FrontStencilRef,
35340 _In_ UINT BackStencilRef);
35341
35342 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
35343 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
35344 ID3D12GraphicsCommandList9 * This,
35345 _In_ FLOAT DepthBias,
35346 _In_ FLOAT DepthBiasClamp,
35347 _In_ FLOAT SlopeScaledDepthBias);
35348
35349 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
35350 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
35351 ID3D12GraphicsCommandList9 * This,
35352 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
35353
35354 END_INTERFACE
35355 } ID3D12GraphicsCommandList9Vtbl;
35356
35357 interface ID3D12GraphicsCommandList9
35358 {
35359 CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl;
35360 };
35361
35362
35363
35364#ifdef COBJMACROS
35365
35366
35367#define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \
35368 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
35369
35370#define ID3D12GraphicsCommandList9_AddRef(This) \
35371 ( (This)->lpVtbl -> AddRef(This) )
35372
35373#define ID3D12GraphicsCommandList9_Release(This) \
35374 ( (This)->lpVtbl -> Release(This) )
35375
35376
35377#define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \
35378 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
35379
35380#define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \
35381 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
35382
35383#define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \
35384 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
35385
35386#define ID3D12GraphicsCommandList9_SetName(This,Name) \
35387 ( (This)->lpVtbl -> SetName(This,Name) )
35388
35389
35390#define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \
35391 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
35392
35393
35394#define ID3D12GraphicsCommandList9_GetType(This) \
35395 ( (This)->lpVtbl -> GetType(This) )
35396
35397
35398#define ID3D12GraphicsCommandList9_Close(This) \
35399 ( (This)->lpVtbl -> Close(This) )
35400
35401#define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \
35402 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
35403
35404#define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \
35405 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
35406
35407#define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
35408 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
35409
35410#define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
35411 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
35412
35413#define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
35414 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
35415
35416#define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
35417 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
35418
35419#define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
35420 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
35421
35422#define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \
35423 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
35424
35425#define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
35426 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
35427
35428#define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
35429 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
35430
35431#define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \
35432 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
35433
35434#define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \
35435 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
35436
35437#define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \
35438 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
35439
35440#define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \
35441 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
35442
35443#define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \
35444 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
35445
35446#define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \
35447 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
35448
35449#define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \
35450 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
35451
35452#define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \
35453 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
35454
35455#define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
35456 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
35457
35458#define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \
35459 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
35460
35461#define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \
35462 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
35463
35464#define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
35465 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
35466
35467#define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
35468 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
35469
35470#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
35471 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
35472
35473#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
35474 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
35475
35476#define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
35477 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
35478
35479#define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
35480 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
35481
35482#define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
35483 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
35484
35485#define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
35486 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
35487
35488#define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
35489 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
35490
35491#define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
35492 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
35493
35494#define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
35495 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
35496
35497#define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
35498 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
35499
35500#define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \
35501 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
35502
35503#define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
35504 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
35505
35506#define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \
35507 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
35508
35509#define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
35510 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
35511
35512#define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
35513 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
35514
35515#define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
35516 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
35517
35518#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
35519 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
35520
35521#define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
35522 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
35523
35524#define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \
35525 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
35526
35527#define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \
35528 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
35529
35530#define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \
35531 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
35532
35533#define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
35534 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
35535
35536#define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
35537 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
35538
35539#define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \
35540 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
35541
35542#define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \
35543 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
35544
35545#define ID3D12GraphicsCommandList9_EndEvent(This) \
35546 ( (This)->lpVtbl -> EndEvent(This) )
35547
35548#define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
35549 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
35550
35551
35552#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
35553 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
35554
35555#define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
35556 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
35557
35558#define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \
35559 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
35560
35561#define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
35562 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
35563
35564#define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
35565 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
35566
35567#define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \
35568 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
35569
35570
35571#define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \
35572 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
35573
35574
35575#define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \
35576 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
35577
35578
35579#define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
35580 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
35581
35582#define ID3D12GraphicsCommandList9_EndRenderPass(This) \
35583 ( (This)->lpVtbl -> EndRenderPass(This) )
35584
35585#define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
35586 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
35587
35588#define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
35589 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
35590
35591#define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
35592 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
35593
35594#define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
35595 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
35596
35597#define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
35598 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
35599
35600#define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \
35601 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
35602
35603#define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \
35604 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
35605
35606
35607#define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \
35608 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
35609
35610#define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \
35611 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
35612
35613
35614#define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
35615 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
35616
35617
35618#define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \
35619 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
35620
35621
35622#define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
35623 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
35624
35625
35626#define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
35627 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
35628
35629#define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
35630 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
35631
35632#endif /* COBJMACROS */
35633
35634
35635#endif /* C style interface */
35636
35637
35638
35639
35640#endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */
35641
35642
35643#ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
35644#define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__
35645
35646/* interface ID3D12GraphicsCommandList10 */
35647/* [unique][local][object][uuid] */
35648
35649
35650EXTERN_C const IID IID_ID3D12GraphicsCommandList10;
35651
35652#if defined(__cplusplus) && !defined(CINTERFACE)
35653
35654 MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc")
35655 ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9
35656 {
35657 public:
35658 virtual void STDMETHODCALLTYPE SetProgram(
35659 _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0;
35660
35661 virtual void STDMETHODCALLTYPE DispatchGraph(
35662 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0;
35663
35664 };
35665
35666
35667#else /* C style interface */
35668
35669 typedef struct ID3D12GraphicsCommandList10Vtbl
35670 {
35671 BEGIN_INTERFACE
35672
35673 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
35674 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
35675 ID3D12GraphicsCommandList10 * This,
35676 REFIID riid,
35677 _COM_Outptr_ void **ppvObject);
35678
35679 DECLSPEC_XFGVIRT(IUnknown, AddRef)
35680 ULONG ( STDMETHODCALLTYPE *AddRef )(
35681 ID3D12GraphicsCommandList10 * This);
35682
35683 DECLSPEC_XFGVIRT(IUnknown, Release)
35684 ULONG ( STDMETHODCALLTYPE *Release )(
35685 ID3D12GraphicsCommandList10 * This);
35686
35687 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
35688 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
35689 ID3D12GraphicsCommandList10 * This,
35690 _In_ REFGUID guid,
35691 _Inout_ UINT *pDataSize,
35692 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
35693
35694 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
35695 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
35696 ID3D12GraphicsCommandList10 * This,
35697 _In_ REFGUID guid,
35698 _In_ UINT DataSize,
35699 _In_reads_bytes_opt_( DataSize ) const void *pData);
35700
35701 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
35702 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
35703 ID3D12GraphicsCommandList10 * This,
35704 _In_ REFGUID guid,
35705 _In_opt_ const IUnknown *pData);
35706
35707 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
35708 HRESULT ( STDMETHODCALLTYPE *SetName )(
35709 ID3D12GraphicsCommandList10 * This,
35710 _In_z_ LPCWSTR Name);
35711
35712 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
35713 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
35714 ID3D12GraphicsCommandList10 * This,
35715 REFIID riid,
35716 _COM_Outptr_opt_ void **ppvDevice);
35717
35718 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
35719 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
35720 ID3D12GraphicsCommandList10 * This);
35721
35722 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close)
35723 HRESULT ( STDMETHODCALLTYPE *Close )(
35724 ID3D12GraphicsCommandList10 * This);
35725
35726 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset)
35727 HRESULT ( STDMETHODCALLTYPE *Reset )(
35728 ID3D12GraphicsCommandList10 * This,
35729 _In_ ID3D12CommandAllocator *pAllocator,
35730 _In_opt_ ID3D12PipelineState *pInitialState);
35731
35732 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState)
35733 void ( STDMETHODCALLTYPE *ClearState )(
35734 ID3D12GraphicsCommandList10 * This,
35735 _In_opt_ ID3D12PipelineState *pPipelineState);
35736
35737 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced)
35738 void ( STDMETHODCALLTYPE *DrawInstanced )(
35739 ID3D12GraphicsCommandList10 * This,
35740 _In_ UINT VertexCountPerInstance,
35741 _In_ UINT InstanceCount,
35742 _In_ UINT StartVertexLocation,
35743 _In_ UINT StartInstanceLocation);
35744
35745 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced)
35746 void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
35747 ID3D12GraphicsCommandList10 * This,
35748 _In_ UINT IndexCountPerInstance,
35749 _In_ UINT InstanceCount,
35750 _In_ UINT StartIndexLocation,
35751 _In_ INT BaseVertexLocation,
35752 _In_ UINT StartInstanceLocation);
35753
35754 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch)
35755 void ( STDMETHODCALLTYPE *Dispatch )(
35756 ID3D12GraphicsCommandList10 * This,
35757 _In_ UINT ThreadGroupCountX,
35758 _In_ UINT ThreadGroupCountY,
35759 _In_ UINT ThreadGroupCountZ);
35760
35761 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion)
35762 void ( STDMETHODCALLTYPE *CopyBufferRegion )(
35763 ID3D12GraphicsCommandList10 * This,
35764 _In_ ID3D12Resource *pDstBuffer,
35765 UINT64 DstOffset,
35766 _In_ ID3D12Resource *pSrcBuffer,
35767 UINT64 SrcOffset,
35768 UINT64 NumBytes);
35769
35770 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion)
35771 void ( STDMETHODCALLTYPE *CopyTextureRegion )(
35772 ID3D12GraphicsCommandList10 * This,
35773 _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
35774 UINT DstX,
35775 UINT DstY,
35776 UINT DstZ,
35777 _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
35778 _In_opt_ const D3D12_BOX *pSrcBox);
35779
35780 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource)
35781 void ( STDMETHODCALLTYPE *CopyResource )(
35782 ID3D12GraphicsCommandList10 * This,
35783 _In_ ID3D12Resource *pDstResource,
35784 _In_ ID3D12Resource *pSrcResource);
35785
35786 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles)
35787 void ( STDMETHODCALLTYPE *CopyTiles )(
35788 ID3D12GraphicsCommandList10 * This,
35789 _In_ ID3D12Resource *pTiledResource,
35790 _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
35791 _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
35792 _In_ ID3D12Resource *pBuffer,
35793 UINT64 BufferStartOffsetInBytes,
35794 D3D12_TILE_COPY_FLAGS Flags);
35795
35796 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource)
35797 void ( STDMETHODCALLTYPE *ResolveSubresource )(
35798 ID3D12GraphicsCommandList10 * This,
35799 _In_ ID3D12Resource *pDstResource,
35800 _In_ UINT DstSubresource,
35801 _In_ ID3D12Resource *pSrcResource,
35802 _In_ UINT SrcSubresource,
35803 _In_ DXGI_FORMAT Format);
35804
35805 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology)
35806 void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
35807 ID3D12GraphicsCommandList10 * This,
35808 _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology);
35809
35810 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports)
35811 void ( STDMETHODCALLTYPE *RSSetViewports )(
35812 ID3D12GraphicsCommandList10 * This,
35813 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports,
35814 _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports);
35815
35816 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects)
35817 void ( STDMETHODCALLTYPE *RSSetScissorRects )(
35818 ID3D12GraphicsCommandList10 * This,
35819 _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects,
35820 _In_reads_( NumRects) const D3D12_RECT *pRects);
35821
35822 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor)
35823 void ( STDMETHODCALLTYPE *OMSetBlendFactor )(
35824 ID3D12GraphicsCommandList10 * This,
35825 _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]);
35826
35827 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef)
35828 void ( STDMETHODCALLTYPE *OMSetStencilRef )(
35829 ID3D12GraphicsCommandList10 * This,
35830 _In_ UINT StencilRef);
35831
35832 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState)
35833 void ( STDMETHODCALLTYPE *SetPipelineState )(
35834 ID3D12GraphicsCommandList10 * This,
35835 _In_ ID3D12PipelineState *pPipelineState);
35836
35837 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier)
35838 void ( STDMETHODCALLTYPE *ResourceBarrier )(
35839 ID3D12GraphicsCommandList10 * This,
35840 _In_ UINT NumBarriers,
35841 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
35842
35843 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle)
35844 void ( STDMETHODCALLTYPE *ExecuteBundle )(
35845 ID3D12GraphicsCommandList10 * This,
35846 _In_ ID3D12GraphicsCommandList *pCommandList);
35847
35848 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps)
35849 void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
35850 ID3D12GraphicsCommandList10 * This,
35851 _In_ UINT NumDescriptorHeaps,
35852 _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
35853
35854 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature)
35855 void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
35856 ID3D12GraphicsCommandList10 * This,
35857 _In_opt_ ID3D12RootSignature *pRootSignature);
35858
35859 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature)
35860 void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
35861 ID3D12GraphicsCommandList10 * This,
35862 _In_opt_ ID3D12RootSignature *pRootSignature);
35863
35864 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable)
35865 void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
35866 ID3D12GraphicsCommandList10 * This,
35867 _In_ UINT RootParameterIndex,
35868 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
35869
35870 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable)
35871 void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )(
35872 ID3D12GraphicsCommandList10 * This,
35873 _In_ UINT RootParameterIndex,
35874 _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
35875
35876 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant)
35877 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )(
35878 ID3D12GraphicsCommandList10 * This,
35879 _In_ UINT RootParameterIndex,
35880 _In_ UINT SrcData,
35881 _In_ UINT DestOffsetIn32BitValues);
35882
35883 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant)
35884 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )(
35885 ID3D12GraphicsCommandList10 * This,
35886 _In_ UINT RootParameterIndex,
35887 _In_ UINT SrcData,
35888 _In_ UINT DestOffsetIn32BitValues);
35889
35890 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants)
35891 void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )(
35892 ID3D12GraphicsCommandList10 * This,
35893 _In_ UINT RootParameterIndex,
35894 _In_ UINT Num32BitValuesToSet,
35895 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35896 _In_ UINT DestOffsetIn32BitValues);
35897
35898 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants)
35899 void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )(
35900 ID3D12GraphicsCommandList10 * This,
35901 _In_ UINT RootParameterIndex,
35902 _In_ UINT Num32BitValuesToSet,
35903 _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData,
35904 _In_ UINT DestOffsetIn32BitValues);
35905
35906 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView)
35907 void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )(
35908 ID3D12GraphicsCommandList10 * This,
35909 _In_ UINT RootParameterIndex,
35910 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35911
35912 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView)
35913 void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )(
35914 ID3D12GraphicsCommandList10 * This,
35915 _In_ UINT RootParameterIndex,
35916 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35917
35918 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView)
35919 void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )(
35920 ID3D12GraphicsCommandList10 * This,
35921 _In_ UINT RootParameterIndex,
35922 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35923
35924 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView)
35925 void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )(
35926 ID3D12GraphicsCommandList10 * This,
35927 _In_ UINT RootParameterIndex,
35928 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35929
35930 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView)
35931 void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )(
35932 ID3D12GraphicsCommandList10 * This,
35933 _In_ UINT RootParameterIndex,
35934 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35935
35936 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView)
35937 void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )(
35938 ID3D12GraphicsCommandList10 * This,
35939 _In_ UINT RootParameterIndex,
35940 _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
35941
35942 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer)
35943 void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
35944 ID3D12GraphicsCommandList10 * This,
35945 _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView);
35946
35947 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers)
35948 void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
35949 ID3D12GraphicsCommandList10 * This,
35950 _In_ UINT StartSlot,
35951 _In_ UINT NumViews,
35952 _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
35953
35954 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets)
35955 void ( STDMETHODCALLTYPE *SOSetTargets )(
35956 ID3D12GraphicsCommandList10 * This,
35957 _In_ UINT StartSlot,
35958 _In_ UINT NumViews,
35959 _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
35960
35961 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets)
35962 void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
35963 ID3D12GraphicsCommandList10 * This,
35964 _In_ UINT NumRenderTargetDescriptors,
35965 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
35966 _In_ BOOL RTsSingleHandleToDescriptorRange,
35967 _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
35968
35969 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView)
35970 void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
35971 ID3D12GraphicsCommandList10 * This,
35972 _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
35973 _In_ D3D12_CLEAR_FLAGS ClearFlags,
35974 _In_ FLOAT Depth,
35975 _In_ UINT8 Stencil,
35976 _In_ UINT NumRects,
35977 _In_reads_(NumRects) const D3D12_RECT *pRects);
35978
35979 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView)
35980 void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
35981 ID3D12GraphicsCommandList10 * This,
35982 _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
35983 _In_ const FLOAT ColorRGBA[ 4 ],
35984 _In_ UINT NumRects,
35985 _In_reads_(NumRects) const D3D12_RECT *pRects);
35986
35987 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint)
35988 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
35989 ID3D12GraphicsCommandList10 * This,
35990 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
35991 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
35992 _In_ ID3D12Resource *pResource,
35993 _In_ const UINT Values[ 4 ],
35994 _In_ UINT NumRects,
35995 _In_reads_(NumRects) const D3D12_RECT *pRects);
35996
35997 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat)
35998 void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
35999 ID3D12GraphicsCommandList10 * This,
36000 _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
36001 _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
36002 _In_ ID3D12Resource *pResource,
36003 _In_ const FLOAT Values[ 4 ],
36004 _In_ UINT NumRects,
36005 _In_reads_(NumRects) const D3D12_RECT *pRects);
36006
36007 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource)
36008 void ( STDMETHODCALLTYPE *DiscardResource )(
36009 ID3D12GraphicsCommandList10 * This,
36010 _In_ ID3D12Resource *pResource,
36011 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
36012
36013 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery)
36014 void ( STDMETHODCALLTYPE *BeginQuery )(
36015 ID3D12GraphicsCommandList10 * This,
36016 _In_ ID3D12QueryHeap *pQueryHeap,
36017 _In_ D3D12_QUERY_TYPE Type,
36018 _In_ UINT Index);
36019
36020 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery)
36021 void ( STDMETHODCALLTYPE *EndQuery )(
36022 ID3D12GraphicsCommandList10 * This,
36023 _In_ ID3D12QueryHeap *pQueryHeap,
36024 _In_ D3D12_QUERY_TYPE Type,
36025 _In_ UINT Index);
36026
36027 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData)
36028 void ( STDMETHODCALLTYPE *ResolveQueryData )(
36029 ID3D12GraphicsCommandList10 * This,
36030 _In_ ID3D12QueryHeap *pQueryHeap,
36031 _In_ D3D12_QUERY_TYPE Type,
36032 _In_ UINT StartIndex,
36033 _In_ UINT NumQueries,
36034 _In_ ID3D12Resource *pDestinationBuffer,
36035 _In_ UINT64 AlignedDestinationBufferOffset);
36036
36037 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication)
36038 void ( STDMETHODCALLTYPE *SetPredication )(
36039 ID3D12GraphicsCommandList10 * This,
36040 _In_opt_ ID3D12Resource *pBuffer,
36041 _In_ UINT64 AlignedBufferOffset,
36042 _In_ D3D12_PREDICATION_OP Operation);
36043
36044 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker)
36045 void ( STDMETHODCALLTYPE *SetMarker )(
36046 ID3D12GraphicsCommandList10 * This,
36047 UINT Metadata,
36048 _In_reads_bytes_opt_(Size) const void *pData,
36049 UINT Size);
36050
36051 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent)
36052 void ( STDMETHODCALLTYPE *BeginEvent )(
36053 ID3D12GraphicsCommandList10 * This,
36054 UINT Metadata,
36055 _In_reads_bytes_opt_(Size) const void *pData,
36056 UINT Size);
36057
36058 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent)
36059 void ( STDMETHODCALLTYPE *EndEvent )(
36060 ID3D12GraphicsCommandList10 * This);
36061
36062 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect)
36063 void ( STDMETHODCALLTYPE *ExecuteIndirect )(
36064 ID3D12GraphicsCommandList10 * This,
36065 _In_ ID3D12CommandSignature *pCommandSignature,
36066 _In_ UINT MaxCommandCount,
36067 _In_ ID3D12Resource *pArgumentBuffer,
36068 _In_ UINT64 ArgumentBufferOffset,
36069 _In_opt_ ID3D12Resource *pCountBuffer,
36070 _In_ UINT64 CountBufferOffset);
36071
36072 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT)
36073 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )(
36074 ID3D12GraphicsCommandList10 * This,
36075 _In_ ID3D12Resource *pDstBuffer,
36076 UINT64 DstOffset,
36077 _In_ ID3D12Resource *pSrcBuffer,
36078 UINT64 SrcOffset,
36079 UINT Dependencies,
36080 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
36081 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
36082
36083 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64)
36084 void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )(
36085 ID3D12GraphicsCommandList10 * This,
36086 _In_ ID3D12Resource *pDstBuffer,
36087 UINT64 DstOffset,
36088 _In_ ID3D12Resource *pSrcBuffer,
36089 UINT64 SrcOffset,
36090 UINT Dependencies,
36091 _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources,
36092 _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges);
36093
36094 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds)
36095 void ( STDMETHODCALLTYPE *OMSetDepthBounds )(
36096 ID3D12GraphicsCommandList10 * This,
36097 _In_ FLOAT Min,
36098 _In_ FLOAT Max);
36099
36100 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions)
36101 void ( STDMETHODCALLTYPE *SetSamplePositions )(
36102 ID3D12GraphicsCommandList10 * This,
36103 _In_ UINT NumSamplesPerPixel,
36104 _In_ UINT NumPixels,
36105 _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions);
36106
36107 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion)
36108 void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )(
36109 ID3D12GraphicsCommandList10 * This,
36110 _In_ ID3D12Resource *pDstResource,
36111 _In_ UINT DstSubresource,
36112 _In_ UINT DstX,
36113 _In_ UINT DstY,
36114 _In_ ID3D12Resource *pSrcResource,
36115 _In_ UINT SrcSubresource,
36116 _In_opt_ D3D12_RECT *pSrcRect,
36117 _In_ DXGI_FORMAT Format,
36118 _In_ D3D12_RESOLVE_MODE ResolveMode);
36119
36120 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask)
36121 void ( STDMETHODCALLTYPE *SetViewInstanceMask )(
36122 ID3D12GraphicsCommandList10 * This,
36123 _In_ UINT Mask);
36124
36125 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate)
36126 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
36127 ID3D12GraphicsCommandList10 * This,
36128 UINT Count,
36129 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
36130 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
36131
36132 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession)
36133 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
36134 ID3D12GraphicsCommandList10 * This,
36135 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
36136
36137 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass)
36138 void ( STDMETHODCALLTYPE *BeginRenderPass )(
36139 ID3D12GraphicsCommandList10 * This,
36140 _In_ UINT NumRenderTargets,
36141 _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets,
36142 _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil,
36143 D3D12_RENDER_PASS_FLAGS Flags);
36144
36145 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass)
36146 void ( STDMETHODCALLTYPE *EndRenderPass )(
36147 ID3D12GraphicsCommandList10 * This);
36148
36149 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand)
36150 void ( STDMETHODCALLTYPE *InitializeMetaCommand )(
36151 ID3D12GraphicsCommandList10 * This,
36152 _In_ ID3D12MetaCommand *pMetaCommand,
36153 _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData,
36154 _In_ SIZE_T InitializationParametersDataSizeInBytes);
36155
36156 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand)
36157 void ( STDMETHODCALLTYPE *ExecuteMetaCommand )(
36158 ID3D12GraphicsCommandList10 * This,
36159 _In_ ID3D12MetaCommand *pMetaCommand,
36160 _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData,
36161 _In_ SIZE_T ExecutionParametersDataSizeInBytes);
36162
36163 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure)
36164 void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )(
36165 ID3D12GraphicsCommandList10 * This,
36166 _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc,
36167 _In_ UINT NumPostbuildInfoDescs,
36168 _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs);
36169
36170 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo)
36171 void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )(
36172 ID3D12GraphicsCommandList10 * This,
36173 _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc,
36174 _In_ UINT NumSourceAccelerationStructures,
36175 _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData);
36176
36177 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure)
36178 void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )(
36179 ID3D12GraphicsCommandList10 * This,
36180 _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
36181 _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
36182 _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
36183
36184 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1)
36185 void ( STDMETHODCALLTYPE *SetPipelineState1 )(
36186 ID3D12GraphicsCommandList10 * This,
36187 _In_ ID3D12StateObject *pStateObject);
36188
36189 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays)
36190 void ( STDMETHODCALLTYPE *DispatchRays )(
36191 ID3D12GraphicsCommandList10 * This,
36192 _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc);
36193
36194 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate)
36195 void ( STDMETHODCALLTYPE *RSSetShadingRate )(
36196 ID3D12GraphicsCommandList10 * This,
36197 _In_ D3D12_SHADING_RATE baseShadingRate,
36198 _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners);
36199
36200 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage)
36201 void ( STDMETHODCALLTYPE *RSSetShadingRateImage )(
36202 ID3D12GraphicsCommandList10 * This,
36203 _In_opt_ ID3D12Resource *shadingRateImage);
36204
36205 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh)
36206 void ( STDMETHODCALLTYPE *DispatchMesh )(
36207 ID3D12GraphicsCommandList10 * This,
36208 _In_ UINT ThreadGroupCountX,
36209 _In_ UINT ThreadGroupCountY,
36210 _In_ UINT ThreadGroupCountZ);
36211
36212 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier)
36213 void ( STDMETHODCALLTYPE *Barrier )(
36214 ID3D12GraphicsCommandList10 * This,
36215 UINT32 NumBarrierGroups,
36216 _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
36217
36218 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef)
36219 void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )(
36220 ID3D12GraphicsCommandList10 * This,
36221 _In_ UINT FrontStencilRef,
36222 _In_ UINT BackStencilRef);
36223
36224 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias)
36225 void ( STDMETHODCALLTYPE *RSSetDepthBias )(
36226 ID3D12GraphicsCommandList10 * This,
36227 _In_ FLOAT DepthBias,
36228 _In_ FLOAT DepthBiasClamp,
36229 _In_ FLOAT SlopeScaledDepthBias);
36230
36231 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue)
36232 void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )(
36233 ID3D12GraphicsCommandList10 * This,
36234 _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue);
36235
36236 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram)
36237 void ( STDMETHODCALLTYPE *SetProgram )(
36238 ID3D12GraphicsCommandList10 * This,
36239 _In_ const D3D12_SET_PROGRAM_DESC *pDesc);
36240
36241 DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph)
36242 void ( STDMETHODCALLTYPE *DispatchGraph )(
36243 ID3D12GraphicsCommandList10 * This,
36244 _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc);
36245
36246 END_INTERFACE
36247 } ID3D12GraphicsCommandList10Vtbl;
36248
36249 interface ID3D12GraphicsCommandList10
36250 {
36251 CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl;
36252 };
36253
36254
36255
36256#ifdef COBJMACROS
36257
36258
36259#define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \
36260 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36261
36262#define ID3D12GraphicsCommandList10_AddRef(This) \
36263 ( (This)->lpVtbl -> AddRef(This) )
36264
36265#define ID3D12GraphicsCommandList10_Release(This) \
36266 ( (This)->lpVtbl -> Release(This) )
36267
36268
36269#define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \
36270 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
36271
36272#define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \
36273 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
36274
36275#define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \
36276 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
36277
36278#define ID3D12GraphicsCommandList10_SetName(This,Name) \
36279 ( (This)->lpVtbl -> SetName(This,Name) )
36280
36281
36282#define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \
36283 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
36284
36285
36286#define ID3D12GraphicsCommandList10_GetType(This) \
36287 ( (This)->lpVtbl -> GetType(This) )
36288
36289
36290#define ID3D12GraphicsCommandList10_Close(This) \
36291 ( (This)->lpVtbl -> Close(This) )
36292
36293#define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \
36294 ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) )
36295
36296#define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \
36297 ( (This)->lpVtbl -> ClearState(This,pPipelineState) )
36298
36299#define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \
36300 ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
36301
36302#define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \
36303 ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
36304
36305#define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
36306 ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
36307
36308#define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \
36309 ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) )
36310
36311#define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \
36312 ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) )
36313
36314#define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \
36315 ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
36316
36317#define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \
36318 ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) )
36319
36320#define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \
36321 ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
36322
36323#define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \
36324 ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) )
36325
36326#define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \
36327 ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
36328
36329#define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \
36330 ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
36331
36332#define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \
36333 ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) )
36334
36335#define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \
36336 ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) )
36337
36338#define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \
36339 ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) )
36340
36341#define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \
36342 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
36343
36344#define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \
36345 ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) )
36346
36347#define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \
36348 ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) )
36349
36350#define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \
36351 ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) )
36352
36353#define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \
36354 ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) )
36355
36356#define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
36357 ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
36358
36359#define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \
36360 ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) )
36361
36362#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
36363 ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
36364
36365#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \
36366 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) )
36367
36368#define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
36369 ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
36370
36371#define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \
36372 ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) )
36373
36374#define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
36375 ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
36376
36377#define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \
36378 ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) )
36379
36380#define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
36381 ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
36382
36383#define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \
36384 ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) )
36385
36386#define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
36387 ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
36388
36389#define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \
36390 ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) )
36391
36392#define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \
36393 ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) )
36394
36395#define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \
36396 ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) )
36397
36398#define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \
36399 ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) )
36400
36401#define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \
36402 ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) )
36403
36404#define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \
36405 ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) )
36406
36407#define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \
36408 ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) )
36409
36410#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
36411 ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
36412
36413#define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \
36414 ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) )
36415
36416#define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \
36417 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
36418
36419#define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \
36420 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
36421
36422#define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \
36423 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
36424
36425#define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
36426 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
36427
36428#define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
36429 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
36430
36431#define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \
36432 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
36433
36434#define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \
36435 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
36436
36437#define ID3D12GraphicsCommandList10_EndEvent(This) \
36438 ( (This)->lpVtbl -> EndEvent(This) )
36439
36440#define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \
36441 ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) )
36442
36443
36444#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
36445 ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
36446
36447#define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \
36448 ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) )
36449
36450#define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \
36451 ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) )
36452
36453#define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \
36454 ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) )
36455
36456#define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \
36457 ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) )
36458
36459#define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \
36460 ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) )
36461
36462
36463#define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \
36464 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
36465
36466
36467#define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \
36468 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
36469
36470
36471#define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \
36472 ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) )
36473
36474#define ID3D12GraphicsCommandList10_EndRenderPass(This) \
36475 ( (This)->lpVtbl -> EndRenderPass(This) )
36476
36477#define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \
36478 ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) )
36479
36480#define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \
36481 ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) )
36482
36483#define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \
36484 ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) )
36485
36486#define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \
36487 ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) )
36488
36489#define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \
36490 ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) )
36491
36492#define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \
36493 ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) )
36494
36495#define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \
36496 ( (This)->lpVtbl -> DispatchRays(This,pDesc) )
36497
36498
36499#define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \
36500 ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) )
36501
36502#define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \
36503 ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) )
36504
36505
36506#define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \
36507 ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
36508
36509
36510#define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \
36511 ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
36512
36513
36514#define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \
36515 ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) )
36516
36517
36518#define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \
36519 ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) )
36520
36521#define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \
36522 ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) )
36523
36524
36525#define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \
36526 ( (This)->lpVtbl -> SetProgram(This,pDesc) )
36527
36528#define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \
36529 ( (This)->lpVtbl -> DispatchGraph(This,pDesc) )
36530
36531#endif /* COBJMACROS */
36532
36533
36534#endif /* C style interface */
36535
36536
36537
36538
36539#endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */
36540
36541
36542#ifndef __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
36543#define __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__
36544
36545/* interface ID3D12DSRDeviceFactory */
36546/* [unique][local][object][uuid] */
36547
36548
36549EXTERN_C const IID IID_ID3D12DSRDeviceFactory;
36550
36551#if defined(__cplusplus) && !defined(CINTERFACE)
36552
36553 MIDL_INTERFACE("f343d1a0-afe3-439f-b13d-cd87a43b70ca")
36554 ID3D12DSRDeviceFactory : public IUnknown
36555 {
36556 public:
36557 virtual HRESULT STDMETHODCALLTYPE CreateDSRDevice(
36558 ID3D12Device *pD3D12Device,
36559 UINT NodeMask,
36560 REFIID riid,
36561 _COM_Outptr_ void **ppvDSRDevice) = 0;
36562
36563 };
36564
36565
36566#else /* C style interface */
36567
36568 typedef struct ID3D12DSRDeviceFactoryVtbl
36569 {
36570 BEGIN_INTERFACE
36571
36572 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
36573 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
36574 ID3D12DSRDeviceFactory * This,
36575 REFIID riid,
36576 _COM_Outptr_ void **ppvObject);
36577
36578 DECLSPEC_XFGVIRT(IUnknown, AddRef)
36579 ULONG ( STDMETHODCALLTYPE *AddRef )(
36580 ID3D12DSRDeviceFactory * This);
36581
36582 DECLSPEC_XFGVIRT(IUnknown, Release)
36583 ULONG ( STDMETHODCALLTYPE *Release )(
36584 ID3D12DSRDeviceFactory * This);
36585
36586 DECLSPEC_XFGVIRT(ID3D12DSRDeviceFactory, CreateDSRDevice)
36587 HRESULT ( STDMETHODCALLTYPE *CreateDSRDevice )(
36588 ID3D12DSRDeviceFactory * This,
36589 ID3D12Device *pD3D12Device,
36590 UINT NodeMask,
36591 REFIID riid,
36592 _COM_Outptr_ void **ppvDSRDevice);
36593
36594 END_INTERFACE
36595 } ID3D12DSRDeviceFactoryVtbl;
36596
36597 interface ID3D12DSRDeviceFactory
36598 {
36599 CONST_VTBL struct ID3D12DSRDeviceFactoryVtbl *lpVtbl;
36600 };
36601
36602
36603
36604#ifdef COBJMACROS
36605
36606
36607#define ID3D12DSRDeviceFactory_QueryInterface(This,riid,ppvObject) \
36608 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36609
36610#define ID3D12DSRDeviceFactory_AddRef(This) \
36611 ( (This)->lpVtbl -> AddRef(This) )
36612
36613#define ID3D12DSRDeviceFactory_Release(This) \
36614 ( (This)->lpVtbl -> Release(This) )
36615
36616
36617#define ID3D12DSRDeviceFactory_CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) \
36618 ( (This)->lpVtbl -> CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) )
36619
36620#endif /* COBJMACROS */
36621
36622
36623#endif /* C style interface */
36624
36625
36626
36627
36628#endif /* __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ */
36629
36630
36631#ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
36632#define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__
36633
36634/* interface ID3D12GBVDiagnostics */
36635/* [unique][local][object][uuid] */
36636
36637
36638EXTERN_C const IID IID_ID3D12GBVDiagnostics;
36639
36640#if defined(__cplusplus) && !defined(CINTERFACE)
36641
36642 MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee")
36643 ID3D12GBVDiagnostics : public IUnknown
36644 {
36645 public:
36646 virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData(
36647 _In_ ID3D12Resource *pResource,
36648 _Out_writes_bytes_(DataSize) int *pData,
36649 UINT DataSize) = 0;
36650
36651 virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState(
36652 _In_ ID3D12Resource *pResource,
36653 UINT Subresource,
36654 _Out_ int *pData) = 0;
36655
36656 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState(
36657 _In_ ID3D12Resource *pResource,
36658 _Out_ int *pData) = 0;
36659
36660 virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo(
36661 _In_ ID3D12Resource *pResource,
36662 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
36663 _In_opt_ UINT32 *pResourceHash,
36664 _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0;
36665
36666 virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0;
36667
36668 virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0;
36669
36670 };
36671
36672
36673#else /* C style interface */
36674
36675 typedef struct ID3D12GBVDiagnosticsVtbl
36676 {
36677 BEGIN_INTERFACE
36678
36679 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
36680 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
36681 ID3D12GBVDiagnostics * This,
36682 REFIID riid,
36683 _COM_Outptr_ void **ppvObject);
36684
36685 DECLSPEC_XFGVIRT(IUnknown, AddRef)
36686 ULONG ( STDMETHODCALLTYPE *AddRef )(
36687 ID3D12GBVDiagnostics * This);
36688
36689 DECLSPEC_XFGVIRT(IUnknown, Release)
36690 ULONG ( STDMETHODCALLTYPE *Release )(
36691 ID3D12GBVDiagnostics * This);
36692
36693 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData)
36694 HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )(
36695 ID3D12GBVDiagnostics * This,
36696 _In_ ID3D12Resource *pResource,
36697 _Out_writes_bytes_(DataSize) int *pData,
36698 UINT DataSize);
36699
36700 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState)
36701 HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )(
36702 ID3D12GBVDiagnostics * This,
36703 _In_ ID3D12Resource *pResource,
36704 UINT Subresource,
36705 _Out_ int *pData);
36706
36707 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState)
36708 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )(
36709 ID3D12GBVDiagnostics * This,
36710 _In_ ID3D12Resource *pResource,
36711 _Out_ int *pData);
36712
36713 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo)
36714 HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )(
36715 ID3D12GBVDiagnostics * This,
36716 _In_ ID3D12Resource *pResource,
36717 _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc,
36718 _In_opt_ UINT32 *pResourceHash,
36719 _In_opt_ UINT32 *pSubresourceStatesByteOffset);
36720
36721 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0)
36722 void ( STDMETHODCALLTYPE *GBVReserved0 )(
36723 ID3D12GBVDiagnostics * This);
36724
36725 DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1)
36726 void ( STDMETHODCALLTYPE *GBVReserved1 )(
36727 ID3D12GBVDiagnostics * This);
36728
36729 END_INTERFACE
36730 } ID3D12GBVDiagnosticsVtbl;
36731
36732 interface ID3D12GBVDiagnostics
36733 {
36734 CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl;
36735 };
36736
36737
36738
36739#ifdef COBJMACROS
36740
36741
36742#define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \
36743 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
36744
36745#define ID3D12GBVDiagnostics_AddRef(This) \
36746 ( (This)->lpVtbl -> AddRef(This) )
36747
36748#define ID3D12GBVDiagnostics_Release(This) \
36749 ( (This)->lpVtbl -> Release(This) )
36750
36751
36752#define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \
36753 ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) )
36754
36755#define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \
36756 ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) )
36757
36758#define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \
36759 ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) )
36760
36761#define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \
36762 ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) )
36763
36764#define ID3D12GBVDiagnostics_GBVReserved0(This) \
36765 ( (This)->lpVtbl -> GBVReserved0(This) )
36766
36767#define ID3D12GBVDiagnostics_GBVReserved1(This) \
36768 ( (This)->lpVtbl -> GBVReserved1(This) )
36769
36770#endif /* COBJMACROS */
36771
36772
36773#endif /* C style interface */
36774
36775
36776
36777
36778#endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */
36779
36780
36781/* interface __MIDL_itf_d3d12_0000_0085 */
36782/* [local] */
36783
36784#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
36785#pragma endregion
36786DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);
36787DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
36788DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
36789DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
36790DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
36791DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
36792DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
36793DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
36794DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);
36795DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);
36796DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);
36797DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);
36798DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb);
36799DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);
36800DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);
36801DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);
36802DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);
36803DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
36804DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
36805DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);
36806DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
36807DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9);
36808DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
36809DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
36810DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);
36811DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
36812DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);
36813DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);
36814DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);
36815DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);
36816DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);
36817DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);
36818DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);
36819DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);
36820DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);
36821DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);
36822DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);
36823DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84);
36824DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);
36825DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);
36826DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);
36827DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);
36828DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);
36829DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);
36830DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);
36831DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);
36832DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);
36833DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);
36834DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);
36835DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);
36836DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);
36837DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);
36838DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);
36839DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);
36840DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);
36841DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);
36842DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);
36843DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);
36844DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);
36845DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);
36846DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);
36847DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);
36848DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);
36849DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0);
36850DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);
36851DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);
36852DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0);
36853DEFINE_GUID(IID_ID3D12Tools2,0x01d393c5,0xc9b0,0x42a1,0x95,0x8c,0xc2,0x6b,0x02,0xd4,0xd0,0x97);
36854DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d);
36855DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9);
36856DEFINE_GUID(IID_ID3D12DeviceTools1,0xe30e9fc7,0xe641,0x4d6e,0x8a,0x81,0x9d,0xd9,0x20,0x6e,0xc4,0x7a);
36857DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);
36858DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
36859DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);
36860DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);
36861DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);
36862DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb);
36863DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);
36864DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);
36865DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);
36866DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);
36867DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);
36868DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);
36869DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca);
36870DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);
36871
36872
36873extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec;
36874extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec;
36875
36876/* Additional Prototypes for ALL interfaces */
36877
36878/* end of Additional Prototypes */
36879
36880#ifdef __cplusplus
36881}
36882#endif
36883
36884#endif
36885
36886